コンテンツにスキップ

マスタ管理(取引先・回収先・品目・車両)

マスタ管理(取引先・回収先・品目・車両)

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 限定)。
  • 関連画面: 取引先、車両、会社情報(工場)