Skip to content

サンプルCSVの不足を埋め、画面専用だった業務記録をCSVで取り込めるようにする - #28

Merged
msmsrep merged 13 commits into
mainfrom
dev
Sep 23, 2026
Merged

msmsrep merged 13 commits into
mainfrom
dev

Conversation

@msmsrep

@msmsrep msmsrep commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

概要

サンプルCSVだけでアプリ全体を一通り試せるようにする。前半(A)でサンプルの不足を埋め、後半(B)で画面からしか登録できなかった業務記録をCSVで取り込めるようにした。

A. サンプルの不足を埋める(A1〜A6)

  • A1 16_equipment-logs.csv を追加:稼働・段取り・待機に加え、EQ-01 の故障と EQ-04 の停止(稼働監視・OEE が空にならない)
  • A3 17_manufacturing-orders.csv を追加:SMP-FG-001 を元指図にしたリワーク指図 SMP-RW-001(承認まで)
  • A2 追加入荷 R3001-260902 の受入検査を不合格にする(ロットは不良、不適合を自動起票)
  • A4 期限切れ(R3006-250801)・期限間近(R3004-251001)のロット、op002 の期限切れの資格 SK-03
  • A5・A6 サンプル実績の README に日付固定(9/1〜3)の見方と期限の見え方を追記

B. 画面専用機能のCSV対応(docs-dev/CsvCoverageTasks.md CSV-01〜08+保全計画。Spec.md 改訂137〜143)

方針:行ごとに単票APIと同じ業務サービスを呼ぶ/番号のある記録は手入力(自動採番の接頭辞は拒否)/番号の無い記録は1行の列で実行まで進める/マイグレーションなし/取消はCSV対象外。

カード 内容
CSV-01 ActualCsvService を領域ごとの partial に分割。自動採番の接頭辞を NumberingService に集約し、ピッキング・棚卸・不適合・保全指示に手入力番号の引数を追加
CSV-02 マスタCSV maintenance-procedures(保全手順書。更新で版数+1、権限は MaintenanceManage)
CSV-03 実績CSV maintenance-orders・maintenance-records(消耗品の在庫引落し・必要スキル照合は単票と同じ)
CSV-04 tool-usages・tool-issues・calibrations(利用実績を ShopFloorReportService へ、校正を新設 InspectionDeviceService へ移動)
CSV-05 inventory-operations(Operation 列で移動・調整・状態変更・分割・統合・振替・廃棄・返品・払出戻し)
CSV-06 transfer-orders・picking-orders・stocktakes・stocktake-counts(搬送を新設 TransferOrderService へ移動)
CSV-07 nonconformances・sample-storages(自動起票の不適合は、未完了が1件だけのときロット番号で指す。サンプルを新設 SampleStorageService へ移動)
CSV-08 通し取込の確認とユーザーガイド(walkthrough 10章)の見直し
保全計画 maintenance-plans(常に新規登録)。保全指示CSVの FromPlan で、設備+予定日が一致する未指示の計画1件から指示を作る

レビューで見てほしい点

  • LotOperationService の分割・振替:自前で張っていたトランザクションが、CSV取込の外側のトランザクションと衝突していた(500)。呼び出し側に既にあればそれに乗るよう変更(単票からの呼び出しは従来どおり)
  • Controller からサービスへの移動(保全計画の作成、治工具の利用実績、校正、搬送、サンプル保管):API契約・エラー文言は変えていない
  • 権限:計画保全の指示と不適合の対応指示・承認は、取り込んだユーザーのロールを行ごとにDBで引いて判定(単票と同じ条件)
  • サンプルの番号変更:18_maintenance-plans.csv を足したため、実績サンプルの 18〜29 を 19〜30 に繰り下げた。マスタは 20ファイル(20_maintenance-procedures.csv)、実績は 30ファイル
  • カードと異なる判断(保全手順書の版数は毎回上がる・参照中でも無効化できる、など)は docs-dev/CsvCoverageTasks.md の各カードの「実施結果」に記録

テスト

  • dotnet test 全緑(API 282件、画面 229件)。scripts/I18nCheck.ps1 終了コード0、jekyll build 成功
  • 実DB:SQL Server(LocalDB)・PostgreSQL 18 で MasterCsv / Inventory / Maintenance / Quality の各テスト 111件が全緑(CSV-08 時点。保全計画の追加後は SQLite のみ)
  • 種別ごとに「取り込める」「1行エラーで全件取消」「単票と同じ判定で拒否」「権限」をテスト。サンプルのZIP通し取込で、追加した各一覧が空でないことを確認

🤖 Generated with Claude Code

msmsrep and others added 12 commits September 23, 2026 23:13
少量のサンプル(samples/actual-csv)だけでは稼働監視が空のままで、
再作業待ちの1台をリワーク指図にする流れも試せなかった。

- 16_equipment-logs.csv:03〜08 と同じ時間帯の稼働・段取り・待機と、EQ-01 の故障・EQ-04 の停止
- 17_manufacturing-orders.csv:SMP-FG-001 を元指図にしたリワーク指図 SMP-RW-001(承認まで)
- README・ユーザーガイド(walkthrough)の表と、ZIP一括取込テストのファイル数・確認を更新

業務No:B-40-20(設備稼働報告)/ E-20-10(稼働監視)/ A-20(製造指図・リワーク)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
サンプルの検査は全件合格で、期限もすべて2027年以降だったため、
不合格から不適合への流れ・期限アラート・資格切れの照合を試せなかった。

- 01_receiving.csv:期限切れ(R3006-250801)・期限間近(R3004-251001)のロットと、追加入荷 R3001-260902
- 10_inspections.csv:R3001-260902 の受入検査を不合格にする(ロットは不良、不適合を自動起票)
- 19_user-skills.csv:op002 に期限切れの SK-03(最終検査の差立・着手が拒否される)
- README・ユーザーガイド(walkthrough)と、ZIP一括取込テストの確認を更新

業務No:C-20 / C-30(検査・不適合)/ D-10-30-09(期限アラート)/ F-20-10・F-20-30-01(資格の期限と照合)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
作業時刻が 2026-09-01〜03 に固定なので、取り込む日が遅いと期間指定の画面が空に見える。
期限間近のロットが「間近」に見える時期と、治工具の寿命がサンプルに入らない理由
(利用実績は画面からだけ記録できる)も書いておく。

業務No:D-10-30-09(期限アラート)/ E-60(治工具の寿命管理)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- ActualCsvService.cs(755行)を入口・共通部分と、在庫・製造指図・実行記録・品質の partial に分割(挙動は変えない)
- 自動採番の接頭辞と手入力番号の判定を NumberingService に集める(製造指図・出荷指示の個別定数を置き換え)
- ピッキング・棚卸・不適合・保全指示の作成に手入力番号の引数を足す(空なら自動採番。接頭辞と重なる番号・既存の番号は拒否)
- 画面からしか登録できない機能のCSV対応バックログ(docs-dev/CsvCoverageTasks.md)を追加

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- マスタCSVの種別 maintenance-procedures を追加(対象設備・治工具・必要スキルはコードで参照。更新で版数+1)
- 取込の権限は単票APIと同じ MaintenanceManage。取込欄は保全手順書タブに置く
- 全マスタの一括ZIPの20番に入れ、サンプル 20_maintenance-procedures.csv を追加
- Spec.md 改訂137・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 maintenance-orders(保全指示番号は手入力・必須)と maintenance-records(同じ番号の行を1件の実績にまとめ、1行に消費部材1つ)を追加
- 行ごとに MaintenanceOrderService を通す(在庫引落し・資産管理部品の拒否・必要スキルの照合・設備の復帰は単票と同じ)
- 計画保全を作れるロールを MaintenanceOrderService.PlannedOrderRoles に置き、単票APIとCSV取込で共有
- サンプル 18・19 と保全部品の受入を追加。Spec.md 改訂138・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 tool-usages・tool-issues(1行で払出・返却まで)・calibrations を追加
- 利用実績の登録を ShopFloorReportService へ、校正の記録を新設の InspectionDeviceService へ移し、単票APIとCSVで共有
- サンプル 20〜22 を追加(TL-01 の寿命警告、使用中の TL-03、DV-03 の校正)。19 の治工具メンテは寿命をリセットしない
- Spec.md 改訂139・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 inventory-operations を追加。Operation 列で移動・調整・状態変更・分割・統合・振替・廃棄・返品・払出戻しを選び、行ごとに LotOperationService の同名メソッドを呼ぶ
- 操作ごとの必須列をコードで検査。分割・振替の NewLotNumber で後の行から新しいロットを指せる
- 分割・振替の派生ロット作成は、呼び出し側のトランザクションがあればそれに乗る(取込の外側のトランザクションと衝突していた)
- サンプル 23 を追加。Spec.md 改訂140・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 transfer-orders(1行で実行まで)・picking-orders(番号が同じ行を1件の指示に。FEFO引当は単票と同じ)・stocktakes・stocktake-counts(確定まで)を追加
- 搬送指示の作成・実行・取消を新設の TransferOrderService へ移し、単票APIとCSVで共有
- サンプル 24〜27 を追加(期限切れロットを避けた工程払出、未完了の搬送、棚卸の差異調整)
- Spec.md 改訂141・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 nonconformances(不適合番号か、未完了が1件だけのロット番号で指し、対応指示→対応記録→承認まで)と sample-storages(採取・保管の終了)を追加
- 対応指示・承認は単票と同じく品質管理だけ(行ごとに取り込んだユーザーのロールで判定)
- サンプルの採取・保管の終了を新設の SampleStorageService へ移し、単票APIとCSVで共有(サンプル番号の手入力を受ける)
- サンプル 28・29 を追加(受入検査で自動起票された不適合をロット番号で承認まで)。Spec.md 改訂142・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 通し取込のテストで、CSV-02〜07 で足した記録(保全手順書・治工具・校正・搬送・棚卸など)の一覧が空でないことを確認
- walkthrough 10章の表に保全・治工具と校正・在庫と物流・不適合とサンプルを足し、画面から操作することを残した指示に合わせる
- samples/actual-csv/README に全体の流れ(4段)を、getting-started にサンプルで入る範囲を追記
- 画面専用機能のCSV対応バックログ(CSV-01〜08)を完了

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 実績CSVの種別 maintenance-plans を追加(常に新規登録。権限は単票と同じ MaintenanceManage)
- 計画の登録を MaintenanceOrderService.CreatePlanAsync へ移し、単票APIとCSVで共有
- 保全指示CSVに FromPlan 列を追加。設備と予定日が一致する未指示の計画が1件だけのときにその計画から作る
- サンプル 18_maintenance-plans.csv を追加し、以降のサンプルを 19〜30 に繰り下げ。Spec.md 改訂143・3.8節、CodeMap、利用者ガイドを更新

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@msmsrep msmsrep changed the title サンプルCSVの不足を埋める(設備稼働・リワーク・不合格検査・期限切れ) サンプルCSVの不足を埋め、画面専用だった業務記録をCSVで取り込めるようにする Sep 23, 2026
オフセットの無い日時はサーバーの時刻として読むため、UTC で動く CI では +09:00 と一致せず失敗していた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@msmsrep
msmsrep merged commit d8e807c into main Sep 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant