在庫・出荷管理アプリを作ってます⑥:生産者向け当日出荷情報表示機能(shipment-view)の実装

農産物流通管理システムの第6段階として、生産者が当日の出荷予定を確認できる「shipment-view」機能を実装しました。

この機能により、生産者は朝一番に「本日出荷する商品と出荷先」をすぐに確認でき、作業準備をスムーズにするのが目的です。

出荷予定の登録

7月5日と6日の出荷予定を入力している

今回作成した当日(7月5日と仮定)出荷情報

当日の出荷情報のみ閲覧でき、生産者はこの出荷情報を元に伝票などを作成する


目次

機能仕様

基本機能

  • 当日出荷情報の抽出planned_shipments テーブルから当日分のデータのみを表示
  • 出荷先情報の表示:出荷先の会社名を表示(将来的にマスタ連携も予定)
  • 数量・注意事項の確認:数量と特記事項を一覧で確認可能
  • 生産者専用画面:認証により、生産者のみアクセス可能

表示項目

  • 本日の出荷日(shipment_date
  • 出荷先(destination
  • 数量(quantity
  • 注意事項(note_caution

技術実装

データベース設計

当日の出荷情報は Supabaseのビュー機能(View) を活用して抽出しています。

CREATE VIEW shipment_view AS
SELECT *
FROM planned_shipments
WHERE shipment_date = current_date;

このビューにより、フロントエンド側で複雑な日付条件を指定する必要がなく、シンプルに当日分のデータだけを取得できます。

フロントエンド実装

const { data, error } = await supabase
.from("shipment_view")
.select("*");

技術的なポイント

  • データベースビューの活用shipment_view で当日分だけ自動抽出
  • 簡潔なクエリ構造.select("*") のみでOK
  • コンポーネント分離設計FlexibleShipmentTable(PC)と MobileFlexibleShipmentTable(スマホ)を実装
  • レスポンシブ対応useIsMobile フックでデバイスを自動判定
  • 読み取り専用モードreadOnly フラグにより編集を制御

業務フローでの位置づけ

従来の課題

  • 出荷予定の確認が煩雑
  • 紙ベースの管理による情報の散逸
  • 当日以外の情報が混在し、探しづらい

導入による改善

  • 効率化:当日の業務に集中できる
  • ミス防止:正確な出荷先・数量の把握
  • 時短:朝の準備時間を大幅に削減

今後の課題と改善点

データライフサイクルの自動化

今後、下記のような自動処理を実装予定です。

  • 出荷完了後の自動アーカイブ
  • shipments テーブルへの自動移行
  • 古いデータの期限切れ自動削除

運用面での留意事項

  • 当日出荷予定の変更対応
  • 緊急時の連絡体制
  • データ整合性の担保

次のステップ

この shipment-view 機能により、生産者は当日の出荷予定を確認できます。
次のステップでは、**伝票作成画面**に進み、伝票の写真アップロード・OCR処理へと移行します。

この画面は、出荷作業のスタート地点としての役割を果たしています。


目次