雨の散歩 法規制の再構築コーディング開始

雨の広島港
雨の広島みなと公園をキクと散歩
1-3.更新ファイル

app/Models/Regulation.php ← $fillable 新カラム追加
app/Http/Controllers/ChecklistController.php ← 全面再構築
app/Http/Controllers/AdminController.php ← CSV新フォーマット対応
resources/views/components/eval_modal.php ← deleteEvidence URL修正
resources/views/layouts/footer.blade.php ← z-50 → z-10(モーダル被り解消)
routes/web.php ← conditionMatchルート追加・deleteEvidenceルート修正

法規制特定のコードの問題点が洗い出せたので、Excelシートをもう一度、見直しと再構築をして、いよいよコードを作成する

もう一度、法規制をまとめたExcelシートを見直す・・しっかり作ったつもりだったが、また変更追記する箇所が多くある・・・法律は難しい

1.法規制特定機能 再構築(Step 1〜8)

1-1.概要

edit_Laws_Regulations.blade.phpとindex.blade.phpを指示書に従い全面再構築した

1-2.新規作成ファイル

database/migrations/
2026_06_05_095137_add_select_columns_to_regulations_table.php
2026_06_05_095150_add_source_to_checklist_results_table.php
2026_06_05_112359_add_unique_index_to_checklist_results_table.php
app/Services/
RegulationMatcherService.php
resources/views/
components/laws_condition_modal.blade.php
Laws_Regulations/edit_Laws_Regulations.blade.php ← 新設計版
Laws_Regulations/index.blade.php ← 新設計版
Laws_Regulations/_tab_bar.blade.php ← 共通パーシャル

1-4.テーブル変更(マイグレーション)
テーブル追加カラム内容
regulationssubgroup_codeA1/A2=メイン、ch=子
regulationsselect_mode必須/選択/保留/AI
regulationsselect_orOR条件キーワード(改行区切り)
regulationsselect_andAND条件キーワード(改行区切り)
regulationsai_keywordsAI判定参考キーワード
checklist_resultssourcemanual/condition/ai
checklist_resultsユニーク制約(project_id, regulation_id)
1-5.主な機能変更
  • AI判定ボタン → 「🔍 条件で特定」ボタン(65条件のモーダル)に変更
  • タブをヘッダースロットからコンテンツ内に移動
  • 保存処理を全DELETE→INSERT から upsert + トランザクションに変更
  • deleteEvidenceにプロジェクトIDを含めテナント分離を強化
  • 全onclick=””をaddEventListenerに統一(CSP方針準拠)
  • 親行・子行表示を_regulation_row.blade.phpパーシャルに共通化

4.次回の作業(残課題

4-1.優先度:高
  • CSVインポート実施
  • 20260605-法規制リストー最終.xlsx を CSV に変換(列順:group_code, subgroup_code, law_name, ref_law, action_content, select_mode, select_OR, select_AND, ai_keywords, full_law_text)
  • /admin/regulations/importからインポート実行
  • インポート完了後、全タブの表示・条件検索の動作確認
4-2.優先度:中
  • 退避ファイルの削除(動作確認後)
  • edit_Laws_Regulations-tmp.blade.php
  • index-tmp.blade.php
  • ChecklistController-tmp.php
  • AiRecommendationService-tmp.php
4-3.優先度:低(次ステップ)
  • AI判定機能(select_mode=’AI’ の実装)
  • エビデンスファイルの private ディスク化
  • 作業別法規制リスト化(安全パトロール連携)

2.修正対応(確認・不具合修正)

2-1.修正一覧
問題対応
index画面で「法規制編集」ボタンが不要showChecklist() を edit ページへ redirect に変更
条件検索時の通信エラーchecklist_results にユニーク制約追加、conditionMatch の DB upsert を削除(ID返却のみに簡略化)
モーダルにフッターが被るfooter z-50→z-10に変更
条件検索時に AI モーダルが表示されるAI モーダルを削除、ボタンテキスト変化のシンプルなインジケーターに変更
検索結果がタブに反映されない条件特定後、最もマッチ数が多いタブに自動切替
条件モーダルの選択状態が保持されないモーダル開閉でクリアしない実装に(既に正常)
親・子の法規制名の濃さ不統一子も `font-bold text-gray-800に統一
action_content の文字が小さく薄いtext-[13px]text-gray-700に変更
チェックボックスが見えにくいカスタム CSS(薄紫背景・2px 紫枠・白チェック)に変更
区分タイトルと説明文が接近しすぎml-3(12px)の余白追加、text-gray-700に濃く変更
「法規制表示:選択のみ/全表示」ボタン追加操作バーに切替ボタン新設(edit・index 両画面)
選択のみ表示で子行が残るCSS に 3段階の非表示ルール追加(children-list クラス)
ページ入場時・検索後の自動切替選択済みあれば「選択のみ」モードで自動開始

5.動作確認手順(次回開始時)

  1. サーバー起動(php artisan serve)
  2. /admin/regulations/importで CSV インポート実行
  3. 任意のプロジェクトの法規制ページ(/projects/{id}/checklist)を開く
  4. 全タブが表示されることを確認
  5. 「🔍 条件で特定」→ 条件選択 → 「この条件で特定」→ チェックが反映されることを確認
  6. 「登録/更新」で保存 → 再度開いて「選択のみ」モードで自動起動することを確認
ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  • 2026年6月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930