元宇品の散歩 環境側面の見直し

甲斐犬のキクと元宇品を散歩
高射砲陣地跡の公園はきれいに草が刈ってあった

法規制の特定を見直したので、同じような処理をしている環境側面の特定方法も修正する
今まで特定のための検索条件を工事概要から実施していたが、法規制の特定で作成した工事に関する条件DBを共有化、項目追加することに変更する・・・また、フロントエンドも法規制と同じようにする

質問回答
条件保存方式project_conditions` テーブル新規作成。環境側面モーダルの条件も同テーブルに登録
AI軽量化今回は対象外。次のステップとして実施
edit_overview の廃止範囲☑ボックスで設定した内容を概要欄に転記する機能をすべて廃止。テキストボックスのみに変更
@section(‘extra_tabs)環境側面編集画面のみで使用。他ページへの影響なし

1.edit_overview.blade.php の変更

1-1.廃止する要素

現在のファイルは3エリアで構成:

エリア内容対応
エリア1(上部)textareaとフォーム残す
エリア2(中央)「選択した項目を概要に追加する」ボタン残す
エリア3(下部)チェックボックス群(工事種別・立地条件・工事規模・工事の特性・仮設設備等)削除

2.DB設計:project_conditionsテーブル(新規)

2-1.テーブル定義

sql
CREATE TABLE project_conditions (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
project_id BIGINT UNSIGNED NOT NULL,
condition_value VARCHAR(100) NOT NULL, — 例: ‘市街地・商業地’, ‘解体工事あり’
source VARCHAR(20) NOT NULL, — ‘laws’(法規制)or ‘environment’(環境側面)
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL,
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
UNIQUE KEY uq_project_condition (project_id, condition_value)
);

2-2.データの流れ

法規制条件モーダルでチェック
→ 「この条件で特定」実行時に project_conditions に保存(source=’laws’)

環境側面AIモーダルを開く
→ project_conditions を読み込み、該当項目をチェック済みで表示

環境側面モーダルで追加チェック
→ 保存時に project_conditions に追加保存(source=’environment’)
→ 法規制側にも反映される(共有)

5.フロントエンド変更:タブメニュー方式

5-1.現在の方式(@section(‘extra_tabs))

php
// edit_environment.blade.php の先頭付近
@section(‘extra_tabs’)
@foreach($tabDefs as $tabKey => $tabLabel)
{{ $tabLabel }}
@endforeach
@endsection
レイアウト側(app.blade.php)を削除し、本文内に操作バー+タブバーを配置
操作バー(AI特定ボタン・登録/更新・閉じる)

タブバー(大気・水環境 / 廃棄物・エネルギー / 騒音・土壌・化学物質 / 生態系・社会・設計調達 / 新規設定)

タブコンテンツ(テーブル)

5-2.変更後の方式(法規制スタイル)

@section(‘extra_tabs’)` を削除し、本文内に操作バー+タブバーを配置
操作バー(AI特定ボタン・登録/更新・閉じる)

タブバー(大気・水環境 / 廃棄物・エネルギー / 騒音・土壌・化学物質 / 生態系・社会・設計調達 / 新規設定)

タブコンテンツ(テーブル)

5-3.スタイル統一方針
項目法規制環境側面(変更後)
タブボタンbg-purple-900` アクティブbg-green-900` アクティブ(維持)
フォントサイズtext-xstext-xs`(統一)
操作バーボーダーborder-t-2 border-purple-400border-t-2 border-green-400`(維持
タブバー配置flex flex-wrap gap-0.5同一

7.変更ファイル一覧

ファイル種別変更内容
database/migrations/XXXXXX_create_project_conditions_table.php新規project_conditionsテーブル作成
app/Models/ProjectCondition.php新規Eloquentモデル
app/Http/Controllers/ProjectConditionController.php新規条件の保存・取得API
routes/web.php変更条件保存・環境印刷ルート追加
resources/views/projects/edit_overview.blade.php変更チェックボックスUI全削除・テキストボックスのみに
resources/views/components/laws_condition_modal.blade.php変更「特定」実行時にproject_conditionsへ保存
resources/views/environment/edit_environment.blade.php大幅変更タブ方式変更・AIモーダルに共有条件追加・印刷ボタン更新
resources/views/environment/index.blade.php変更印刷ボタン→専用ページURLに変更
resources/views/environment/print.blade.php新規印刷専用ページ(A4横)
resources/views/environment/_env_tab_bar.blade.php新規タブバーパーシャル
app/Http/Controllers/EnvironmentController.php変更印刷メソッド追加・AI送信情報に共有条件を追加

3.法規制条件モーダル(laws_condition_modal.blade.php)の変更

3-1.変更内容

「この条件で特定」ボタン押下時に、選択済み条件をproject_conditions テーブルに保存するAPIコールを追加

3-2.新規APIエンドポイント

POST /projects/{project}/conditions
body: { conditions: [‘市街地・商業地’, ‘解体工事あり’, …], source: ‘laws’ }

3-3.対象条件(保存対象)

全条件を保存する(絞らない)。環境側面モーダル側で必要なものだけ表示する

4.環境側面 AIモーダルの変更

4-1.現在のAIモーダル構成

発注者の環境への要求(textarea)
近隣関係の要求(textarea)
環境での取組(textarea)
取り組み姿勢(ラジオA/B/C)
工事規模・工法テーブル(7項目 × 大/中/小/なし)

4-2.変更後の構成

【共有条件(法規制から引用)】 ← 新規セクション
現場環境(市街地・商業地~海洋など 11項目)
建屋解体(80㎡以上)
特定建設作業(騒音・振動作業)
業務用エアコン/重機エアコン/フロン設備工事
発電機使用(10kw以上)
※法規制でチェック済みは自動チェック・色付き表示
※未チェックの場合はここでチェック可(project_conditionsに保存)

発注者の環境への要求(textarea)※維持
近隣関係の要求(textarea)※維持
環境での取組(textarea)※維持
取り組み姿勢(ラジオA/B/C)※維持
工事規模・工法テーブル(7項目)※維持

4-3.AIへの送信情報の変更

現在:$project->overview(工事概要テキスト)をメインコンテキストとして送信
変更後:
工事概要テキストは引き続き送信(補助情報として維持)
共有条件(project_conditions)を構造化データとして追加送信
AI側が条件リストを読めるため判定精度が向上

4-4.EnvironmentController の変更

php
// aiEstimate() メソッドに追加
$conditions = ProjectCondition::where(‘project_id’, $project->id)
->pluck(‘condition_value’)
->toArray();
// $conditions を $extra_info に追加してAIサービスに渡す

6.印刷方式の変更

6-1.現在の問題
  • index.blade.phpでwindow.print()を直接呼び出し
  • ブラウザの印刷ヘッダー(URL・日時)が出力される
  • @media printでUIを非表示にしているが余白制御が不十分
6-2.変更後(法規制方式)

**新規ファイル:resources/views/environment/print.blade.php
@page { margin: 0; } → ブラウザヘッダー非表示
body { padding: 10mm; } → コンテンツ余白
A4横(landscape)で著しい環境側面テーブルを表示
window.print() 自動起動
window.afterprint → window.close() タブ自動クローズ
title = “著しい環境側面_{作業所名}” → PDF保存ファイル名
新規ルート:
GET /projects/{project}/environment/print
→ EnvironmentController@printEnvironment

8.実装順序

作業依存関係
DBマイグレーション(project_conditions)なし
ModelとController作成①に依存
edit_overview.blade.php` のUI簡略化なし(独立して実施可)
法規制条件モーダルに保存APIコール追加①②に依存
環境側面AIモーダルに共有条件セクション追加④に依存
フロントエンドのタブ方式変更なし(独立して実施可)
印刷専用ページ作成なし(独立して実施可)

9.注意事項・リスク

9-1.@section(‘extra_tabs’)` 廃止時の影響

環境側面編集画面のみで使用されていることを確認済みapp.blade.phpの@yield(‘extra_tabs’)は残してもエラーにならないが、廃止後は削除することを推奨

9-2.工事概要テキストとAI判定の関係

工事概要テキストは引き続きAIに送信する。チェックボックス機能廃止後も「テキスト直接入力」で工事概要を記述できるため、AI判定の品質への影響は最小限

9-3.既存データの条件未保存問題

project_conditions
テーブル導入前に設定済みのプロジェクトは条件が空になる。法規制モーダルを再度開いて「この条件で特定」を実行すれば条件が保存される。初回利用時のガイドが必要

9-4.laws_condition_modal` は複数箇所から呼び出される

共有コンポーネントのため変更時は全呼び出し元を確認すること
bash
grep -rn “laws_condition_modal” resources/views/

ブックマークする パーマリンク.

コメントを残す

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

  • 2026年6月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930