マスタ管理(取引先・回収先・品目・車両)¶
マスタ管理(取引先・回収先・品目・車両)¶
collector(共栄)事務が使う 4 種のマスタ。SideNav の「マスタ管理」セクション(取引先 / 委託先 / 二次搬出運搬費 / 車両 / メンバー / 会社情報)に集約されている。回収先・回収先ごとの品目設定は取引先詳細の中に内包される。品目マスタ(7 品目)はシステム共通で UI からの追加・編集はできない(後述)。
図: 取引先・回収先マスタ。①取引先を追加 ②取引先配下に回収先を追加 ③品目単位設定/車両への移動 ④回収先の回収タイミング(凡例は図内)。
取引先マスタ(partners)¶
- 対象ロール: admin / normal(driver 不可。作成・更新は RLS で admin|normal 限定・mig87)
- 前提: なし(取引先は waste-link にログインしない自社内マスタ)
- 操作手順:
- 左メニュー「取引先」(
/collector/partners)を開く。一覧(取引先名 / コード / 連絡先 / 状態)が表示される。 - 新規登録: 右上の「新規取引先」ボタンを押すとインラインでフォームが開く。
取引先名(必須・赤 * 印)・コード・住所・連絡先を入力。既定でチェック済みの「有効にする」で有効/無効を選ぶ。「保存」を押す。 - 編集・詳細: 一覧の行をクリックすると取引先詳細(
/collector/partners/:id)へ遷移。「取引先情報」カードの「編集」ボタンで名称・コード・住所・契約タイプ(未設定/選択)・備考を編集し「保存」。 - 無効化/有効化: 詳細「取引先情報」カード右上の「無効化」/「有効化」ボタン。無効化時は確認ダイアログ(DeactivateConfirmDialog)が出る。
- 確認/完了条件: 保存で「取引先を追加しました」/「取引先情報を更新しました」/「取引先を無効化(有効化)しました」トースト。一覧の「状態」列が
有効(緑)/無効(グレー)バッジで反映される。 - つまずき/注意:
- 取引先はハード削除できない(削除ボタンなし)。使わなくなったら「無効化」する。
- driver ロールはそもそも「マスタ管理」ナビが出ず、DB 側でも作成・更新が拒否される。
- 詳細画面には他に「問い合わせ先」「請求設定(締め日/支払周期/請求書送付先)」「単価契約」「回収品目 段別課金(運搬/処分)」「契約書ファイル」「排出事業者アカウント連携」の各セクションがある(本業務の範囲外)。
- 取引先詳細の「最終処分場」チェックを staff(admin / normal)が ON にすると、その取引先の回収先が二次搬出の排出元・搬出先候補になる。二次搬出のピッカーは最終処分場に設定された取引先に絞られる。
- 関連画面: 取引先詳細(回収先・品目設定を内包)、取引先 CSV 取込、回収先 CSV 取込
回収先マスタ(collection_sites)¶
- 対象ロール: 追加・編集・有効/無効切替 = admin / normal。ハード削除 = admin のみ(mig61 RLS + UI ゲート)
- 前提: 親となる取引先が登録済みであること(回収先は取引先にぶら下がる)
- 操作手順:
- 取引先詳細(
/collector/partners/:id)を開き、下部の「回収先」カードへ。件数が「回収先 (N 件)」と表示される。 - 追加: カード右上の「回収先追加」ボタン → ダイアログ「回収先を追加」。
名称(必須)・住所・連絡先を入力。任意で「繰り返し(回収予定)」グリッド(曜日 × 週序数)をタップして回収予定を設定。「追加」を押す。 - 一覧の絞り込み/並び替え: 「曜日」「週」セレクト、「住所」キーワード、「並び替え」(名称/住所/回収タイミング + 昇順/降順トグル)。「解除」で条件クリア(表示専用・永続化しない)。
- 編集: 行の「詳細」を開き、「情報編集」で名称/住所/連絡先を修正して「保存」。「繰り返し編集」で回収予定グリッドを更新して「繰り返しを保存」。
- 有効/無効: 行「詳細」内の「無効化」/「有効化」ボタン(無効化は確認ダイアログ)。
- 削除(admin のみ): 行「詳細」内の「削除」ボタン(ゴミ箱アイコン)→ 不可逆確認ダイアログで「削除」。
- 確認/完了条件: 「回収先を追加しました」(繰り返し同時保存時は「回収先と繰り返し設定を追加しました」)/「回収先情報を更新しました」/「回収先を削除しました」等のトースト。無効な回収先は名称横に
無効バッジ。 - つまずき/注意:
- 同一取引先内で同名(active)の回収先は作成・有効化できない(「同じ名称の回収先が既にあります」)。DB 一意制約は無くアプリ層チェックのみのため、一覧読込中は追加が一時的に止まる。
- 削除ボタンは admin のみ表示。配車やスケジュールで使用中の回収先は削除できず(lib/db のガードが日本語エラー)、その場合は無効化を使う。
- 繰り返し設定はダイアログでの追加後に「回収先は作成済み・繰り返しだけ失敗」の中間状態になり得る。その場合は行の「繰り返し編集」から再設定する。
- 関連画面: 取引先詳細、回収先 CSV 取込
回収先ごとの品目設定(collection_site_item_types)¶
- 対象ロール: admin / normal(回収先編集と同水準)
- 前提: 対象の回収先が登録済みであること
- 操作手順:
- 取引先詳細 → 「回収先」カード → 対象回収先の「詳細」を開く。
- 「品目設定」ボタンを押す。「この回収先で回収できる品目を選びます」の説明とともに、有効品目(後述の 7 品目)のチェックリストが 2 列で表示される。
- 回収できる品目にチェックを入れ「品目設定を保存」を押す。
- 確認/完了条件: 「品目設定を保存しました」トースト。選択済みなら「選択した N 品目がドライバーの目方入力に表示されます」、未選択(0 件)なら「未設定(全品目がドライバーの目方入力に表示されます)」の注記が出る。
- つまずき/注意:
- 1 件も選ばず保存(または未設定のまま)だと、ドライバーの目方入力には全有効品目が出るフォールバック挙動になる(「絞り込み」ではなくホワイトリスト)。
- この設定はドライバーのモバイル運行目方入力の品目候補を絞る用途。品目そのものの追加ではない。
- 関連画面: 取引先詳細、ドライバーの計量/目方入力(モバイル・本業務の範囲外)
品目マスタ(item_types)¶
- 対象ロール: 参照のみ(全ロール SELECT 可)。管理 UI なし
- 前提: なし
- 状態: ⚠️ UI からの登録・編集・無効化は未提供(システム共通の固定マスタ)。
item_typesはテナント非依存の共通参照で、マイグレーションでシード投入される。現在の有効品目は 7 種:段ボール/雑誌/新聞/ペットボトル/ウエス/シュレッダー/アルミ(発泡スチロール・ミックスペーパーはactive=falseで新規選択肢から除外・履歴は温存)。品目の追加・改廃はマイグレーションで行う。 - どこで参照されるか: 取引先詳細の「単価契約」「回収品目 段別課金」のピッカー、回収先ごとの「品目設定」チェックリスト、計量画面の品目選択など。事務が画面上で「品目を新規作成する」導線は存在しない。
- 関連画面: 回収先ごとの品目設定、取引先詳細(単価契約・段別課金)、計量
品目単位設定(ドライバー目方入力の換算)¶
- 対象ロール: admin / normal(collector staff)。driver は設定不可。
- 前提: collector テナントでログイン済み。有効な品目が表示される。
- 操作手順:
- 左メニュー「品目単位設定」(
/collector/item-unit-settings)を開く。 - 品目ごとに「単位」(例: 袋)と「kg/単位」(例: 20)を入力する。
- 「保存」を押す。既定の kg 入力へ戻す場合は「kgに戻す」を押す。
- 確認/完了条件: 「○○の単位設定を保存しました」トーストが出て、
1 単位 = N kgの表示が更新される。設定はドライバーの目方入力の換算に使われる。 - つまずき/注意:
- これはテナントごとの単位・kg換算設定であり、システム共通の品目マスタに新しい品目を追加する機能ではない。
- 単位は空欄不可、kg/単位は 0 より大きい数値が必要。
- 関連画面: 取引先詳細の回収先ごとの品目設定、ドライバーの目方入力(モバイル)
車両マスタ(vehicles)¶
- 対象ロール: 新規作成・CSV 取込 = admin のみ(mig44 で車両 INSERT は admin 限定・ルートも
allowedRole="admin")。編集・有効/無効切替 = admin / normal - 前提: 有効な工場(factory)が最低 1 つ登録済みであること。車両は所属工場が必須。工場は「会社情報」(
/collector/profile)で管理する。 - 操作手順:
- 左メニュー「車両」(
/collector/fleet/vehicles)を開く。一覧(ナンバー / 車種 / 所属工場 / 専用車ドライバー / 走行距離(最新)/ 納車日 / 状態)が表示される。 - 追加(admin): 右上「車両を追加」→ フォームで
ナンバープレート(必須)・車両種別(必須・セレクト)・所属工場(必須・有効工場から選択)・専用車(担当ドライバー)(任意・未割当可)・最大積載量 (kg)(任意)・納車日(任意)・対応廃棄物(複数選択)を入力し「保存」。 - 編集: 一覧行右端の「編集」(鉛筆アイコン)→ 上記フィールド + 「状態」(有効/無効セレクト)を編集し「更新」。
- 無効化/有効化: 行右端の「無効化」(active 行)/「有効化」(無効行)ボタン。無効化は確認ダイアログ。
- 確認/完了条件: 「車両を追加しました」/「車両情報を更新しました」/「車両を無効化(有効化)しました」トースト。「状態」列が
有効(緑)/無効(グレー)バッジで反映。 - つまずき/注意:
- normal には「車両を追加」「CSV取込」ボタンが出ない(admin 限定)。normal でも一覧閲覧・既存車両の編集・無効化は可能。
- 有効な工場が 0 件だと追加フォームで「有効な工場がありません」の案内が出て保存できない。「工場を追加(会社情報)」リンクから先に工場を登録する。
- 車両はハード削除の導線がない(無効化で運用)。
- 関連画面: 会社情報(工場マスタ)、車両 CSV 取込、コスト集計(VehicleCostDashboard・本業務の範囲外)
CSV 入出力(取引先 / 回収先 / 車両)¶
- 対象ロール: 取引先・回収先の出力/取込 = admin / normal。車両の出力 = admin / normal、車両の取込 = admin のみ(取込ボタンが admin 限定表示・ルートも admin ゲート)
- 前提: 出力・取込の対象マスタ(取引先/回収先/工場)が読み込み済みであること。回収先取込は親「取引先名」、車両取込は「所属工場(工場名)」が既存に存在すること
- 操作手順(出力):
- 取引先/回収先: 「取引先」画面(
/collector/partners)右上の「取引先CSV出力」「回収先CSV出力」。空一覧でもヘッダーのみ = 取込テンプレートとして出力される。 - 車両: 「車両」画面右上の「CSV出力」。
- 操作手順(取込・共通 5 ステップ): 各画面の「〜CSV取込」ボタンから取込画面へ(取引先=
/collector/partners/import、回収先=/collector/partners/sites-import、車両=/collector/fleet/vehicles/import)。共通のMasterCsvImportFlowで以下を行う: - ①ファイルを選択: CSV をドラッグ&ドロップ or 選択。文字コードは「自動判定 / UTF-8 / Shift_JIS」。文字化け時は Shift_JIS を選ぶ。読込後にファイル名・データ行数・判定文字コードが表示される。
- ②列の対応: CSV ヘッダーを各項目(例: 取引先=
取引先名/コード/住所/連絡先/有効)へ割り当て。自動検出され、前回設定はテナント単位で自動復元される(localStorage)。必須項目には赤 * 印。 - ③プレビュー: 各行が
新規(緑)/更新(青)/変更なし(グレー)/エラー(赤)バッジで判定表示。更新は変更列、エラーは理由を併記。先頭 200 行 + キャップ外のエラー行を全件表示。 - ④取込実行: 下部固定バーの「N 件を取込」ボタン。エラー行・変更なし行は除外し、新規+更新のみ逐次実行(部分取込)。完了後に「取込が完了しました 新規/更新/変更なし/エラー」の結果カードと行番号付きエラー一覧が出る。
- 照合キー(重複判定):
- 取引先: 取引先名(trim + 小文字化)
- 回収先: 取引先名 + 回収先名(親取引先名から partnerId を解決)
- 車両: ナンバープレート(正規化)+ 所属工場は工場名で解決
- 確認/完了条件: 結果カードの件数と「CSV を取り込みました」トースト(一部失敗時は「一部の行を取り込めませんでした」警告)。取込完了後は同一プランの重複登録を防ぐため再取込不可 → 「別のファイル」でファイルを選び直す。
- つまずき/注意:
- 取引先・回収先には DB 一意制約が無いため、取込直後の再実行で重複登録の恐れがある(そのため完了後は取込ボタンが無効化される)。
- 回収先取込で親「取引先名」が存在しない、車両取込で「所属工場」名が一致しない行はエラーになる。先に親マスタ/工場を用意する。
- マスタ取得に失敗している間は取込ボタンが「マスタ取得エラー」/「マスタ読込中…」で押せない。
- 車両取込は normal では画面自体に到達できない(admin 限定)。
- 関連画面: 取引先、車両、会社情報(工場)