Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 24 additions & 9 deletions Spec.md

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions docs-dev/CodeMap.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@

| 業務 | MES No | API | エンティティ | 画面 | テスト |
|:--|:--|:--|:--|:--|:--|
| 作業指示・差立(作業員/設備割当・着手順) | B-10-20 / F-20-30-01 | `WorkOrdersController.cs` `api/work-orders`<br>差立の検証・反映は `Api/Services/WorkOrderDispatchService.cs`<br>候補設備は `api/work-orders/{id}/equipment-candidates`(**候補があればその中からしか割り当てられない**。候補は工順マスタの現在値。**新しく割り当てる設備は `Status`=稼働可能のみ**) | Production.cs: WorkOrder<br>Masters.cs: **RoutingEquipment**(工順の候補設備) | `/work-orders` `WorkOrders.razor`<br>`/dispatch` `Dispatch.razor` | `Tests/ExecutionTests.cs` |
| 作業指示・差立(作業員/設備割当・着手順) | B-10-20 / F-20-30-01 | `WorkOrdersController.cs` `api/work-orders`<br>差立の検証・反映は `Api/Services/WorkOrderDispatchService.cs`<br>スキル照合は `Api/Policies/SkillQualificationPolicy.cs`(**差立=割当者と着手=着手する者の両方**で通す。着手は `WorkOrderExecutionService.StartAsync`)<br>候補設備は `api/work-orders/{id}/equipment-candidates`(**候補があればその中からしか割り当てられない**。候補は工順マスタの現在値。**新しく割り当てる設備は `Status`=稼働可能のみ**) | Production.cs: WorkOrder<br>Masters.cs: **RoutingEquipment**(工順の候補設備) | `/work-orders` `WorkOrders.razor`<br>`/dispatch` `Dispatch.razor` | `Tests/ExecutionTests.cs`・`ProductionTests.cs`(スキル照合) |
| 実行系(着手・段取り・チェックリスト・部材投入・実績報告・製造条件データ・状態履歴) | B-30-30-01 / B-20-50 / B-40-40 | `WorkOrderExecutionController.cs`<br>`api/work-orders/{id:int}`<br>着手・承認・判定・在庫計上は `Api/Services/WorkOrderExecutionService.cs`(CSV取込と共有) | `Core/Entities/Execution.cs`<br>SetupRecord / ChecklistRecord / ChecklistResultItem / MaterialConsumption / ProductionRecord / ProductionDataRecord | `/work-orders/{id}/setup` `WorkOrderSetup.razor`<br>`/work-orders/{id}/record` `ProductionRecordEntry.razor`(部材投入・製造条件データ・訂正・状態履歴もここ)<br>`/process-progress` `ProcessProgress.razor` | `Tests/ExecutionTests.cs` |
| 製造履歴訂正(訂正履歴+監査ログ) | B-70-30-01 | `ProductionRecordsController.cs` `api/production-records`(数量だけを訂正する。**直は記録時に固定した値なので動かない**) | Execution.cs: ProductionRecord / **ProductionRecordCorrection**(訂正前の値。Spec.md 5.7) | `ProductionRecordEntry.razor` の実績一覧から訂正<br>`/traceability` の履歴タブに訂正履歴を表示 | `Tests/ExecutionTests.cs` / `QualityTests.cs` |
| 作業時間記録(直接/間接) | B-30-30-02 / F-30-20-02 | `WorkTimeRecordsController.cs` `api/work-time-records` | Execution.cs: WorkTimeRecord | `/work-time` `WorkTime.razor` | `Tests/ExecutionTests.cs` |
| 製造トラブル報告 | B-40-10-06 / B-60-10 | `TroubleReportsController.cs` `api/trouble-reports` | Execution.cs: TroubleReport | `ProcessProgress.razor` 内 | `Tests/ExecutionTests.cs` |
| 工程間搬送・移動指示 | B-50-10 / D-30-10-04 | `TransferOrdersController.cs` `api/transfer-orders`(更新系は在庫権限) | Execution.cs: TransferOrder | `/transfer-orders` `TransferOrders.razor`(`Inventory.razor` の「振替」は別機能の `api/inventory/transfer`) | `Tests/InventoryTests.cs` |
| 設備稼働報告・稼働監視 | B-40-20 / E-20-10 | `EquipmentLogsController.cs` `api/equipment-logs`(`?workOrderId=` で絞り込み。登録の判定は `ShopFloorReportService.AddEquipmentLogAsync` で実績CSVと共通)<br>稼働サマリは `GET summary?from=&to=`(**製造日基準**。稼働の開始時刻が属する製造日で振り分ける。省略時は全期間) | `Core/Entities/Maintenance.cs`: EquipmentLog(`WorkOrderId` 任意=**PQC×EQCの交差点**。ロット履歴 H-30-10-04 はこれを辿る。`EquipmentLogStatus` への追加は**末尾のみ**:JSONが数値) | `/maintenance` `Maintenance/EquipmentLogsTab.razor` | `Tests/MaintenanceTests.cs` |

| 生産性モニタリング(歩留まり・直行率・標準時間予実) | B-60-10-05 | `ProductivityController.cs` `api/productivity`(製造日で期間指定。**リワーク指図の産出は分母に入れない**=救済分は歩留まりの分子だけ) | Execution.cs: ProductionRecord / WorkTimeRecord / SetupRecord<br>Production.cs: WorkOrder(標準時間は**展開時の工順スナップショット**。マスタ現在値で引き直さない) | `/productivity` `Web/Pages/Productivity.razor`<br>`Web/Shared/ProductivityTable.razor` | `Tests/ProductionTests.cs` |
| 生産性モニタリング(歩留まり・直行率・標準時間予実) | B-60-10-05 | `ProductivityController.cs` `api/productivity`(製造日で期間指定。**リワーク指図の産出は分母に入れない**=救済分は歩留まりの分子だけ)<br>標準時間の見直し候補 `api/productivity/standard-time-review`(**比べる相手は工順マスタの現在値**。実績は中央値。時間の記録が無い作業指示は件数から外す)<br>製造リードタイム `api/productivity/lead-time`(**着手・完了は作業の記録の時刻**。状態履歴は実績CSV取込で取込時刻になるため使わない。異常値は四分位から) | Execution.cs: ProductionRecord / WorkTimeRecord / SetupRecord<br>Production.cs: WorkOrder(標準時間は**展開時の工順スナップショット**。マスタ現在値で引き直さない) | `/productivity` `Web/Pages/Productivity.razor`<br>`Web/Shared/ProductivityTable.razor` | `Tests/ProductionTests.cs` |

## C. 品質管理

Expand All @@ -47,9 +47,9 @@
| 工程管理項目マスタ(指示値・許容範囲。版数付き) | B-30-30-04 | `ControlItemsController.cs` `api/control-items`<br>展開時のスナップショット取得は `WorkOrdersController.ControlItems` `api/work-orders/{id}/control-items` | Masters.cs: ControlItem(対象品目・工程は持たない)/ **RoutingControlItem**(工順の工程への紐付け。展開はこの紐付けどおり。紐付け中は無効化できない:`MasterDeactivationPolicy`)<br>Production.cs: **WorkOrderControlItem**(展開時点の指示値。判定・表示はこちらを使い、マスタ現在値を参照しない) | `/masters` `Masters/ControlItemsTab.razor`<br>工順への紐付けは `Masters/Products/ProductRoutingEditor.razor` | `Tests/MasterTests.cs` / `MasterCsvTests.cs` / `ProductionTests.cs` |
| 検査機・測定器マスタ/校正管理 | C-20-50-03 | `InspectionDevicesController.cs` `api/inspection-devices`<br>校正の記録は `POST {id}/calibrations`(次回期限は校正周期から自動)/期限接近は `GET expiring?withinDays=` | Masters.cs: InspectionDevice(現在の校正状態)/InspectionDeviceCalibration(実施履歴) | `/masters` `Masters/InspectionDevicesTab.razor` | `Tests/MasterTests.cs` / `MasterCsvTests.cs` |
| 検査項目・基準マスタ | C-10-10 | `InspectionItemsController.cs` `api/inspection-items`<br>対象品目/工程の意味(**「かつ」で組み合わせ、空は問わない**)と登録時の制約は `Api/Policies/InspectionItemPolicy.cs`(単票API・マスタCSV・検査指示の発行で共通) | Masters.cs: InspectionItem | `/masters` `Masters/InspectionItemsTab.razor` | `Tests/MasterTests.cs` |
| 検査指示・実績・判定・成績書 | C-20 | `InspectionOrdersController.cs` `api/inspection-orders`(発行・実績・判定の処理は `Api/Services/InspectionService.cs`。実績登録時に**検査機の校正期限を判定**:`InspectionDeviceCalibrationPolicy`。発行できるロットの状態・判定前の指示の重複は `InspectionLotPolicy`。合否(手の指定は自動判定と食い違えば拒否。訂正も同じ)とサンプリング数(判定の下限)は `InspectionJudgmentPolicy`。取消はロットを**発行前のステータス**へ戻す) | `Core/Entities/Quality.cs`<br>InspectionOrder / InspectionOrderItem(**発行時点の基準スナップショット**。判定・成績書はこちらを使い、マスタ現在値を参照しない:Spec.md 5.7) / InspectionResult / **InspectionResultCorrection**(訂正前の記録。詳細画面・成績書に表示) | `/inspections` `Inspections.razor`<br>`/inspections/{id}` `InspectionDetail.razor`<br>`/print/inspection/{id}` `Print/InspectionCertificate.razor` | `Tests/QualityTests.cs` |
| 検査指示・実績・判定・成績書 | C-20 | `InspectionOrdersController.cs` `api/inspection-orders`(発行・実績・判定の処理は `Api/Services/InspectionService.cs`。実績登録時に**検査機の校正期限を判定**:`InspectionDeviceCalibrationPolicy`。**検査員のスキル照合**も実績登録時(発行時に写した `InspectionOrderItem.RequiredSkillId` → `SkillQualificationPolicy`)。発行できるロットの状態・判定前の指示の重複は `InspectionLotPolicy`。合否(手の指定は自動判定と食い違えば拒否。訂正も同じ)とサンプリング数(判定の下限)は `InspectionJudgmentPolicy`。取消はロットを**発行前のステータス**へ戻す) | `Core/Entities/Quality.cs`<br>InspectionOrder / InspectionOrderItem(**発行時点の基準スナップショット**。判定・成績書はこちらを使い、マスタ現在値を参照しない:Spec.md 5.7) / InspectionResult / **InspectionResultCorrection**(訂正前の記録。詳細画面・成績書に表示) | `/inspections` `Inspections.razor`<br>`/inspections/{id}` `InspectionDetail.razor`<br>`/print/inspection/{id}` `Print/InspectionCertificate.razor` | `Tests/QualityTests.cs` |
| 不適合・逸脱管理(特採・廃棄・保留) | C-30 / B-40-30 | `NonconformanceController.cs` `api/nonconformances`<br>記録・対応指示・承認と不適合の連鎖は `Api/Services/NonconformanceService.cs` | Quality.cs: NonconformanceReport | `/nonconformances` `Nonconformances.razor` | `Tests/QualityTests.cs` |
| 品質分析(不良理由別・品目別・工程別・**直別**・期間別) | C-40-10 | `QualityAnalysisController.cs` `api/quality/summary` | Execution.cs: ProductionDefect(不良理由別の内訳)<br>ProductionRecord.`ShiftId`(**記録時に固定**。集計で引き直さない) | `/quality-analysis` `QualityAnalysis.razor`<br>`Web/Shared/BarMeter.razor` | `Tests/QualityTests.cs` |
| 品質分析(不良理由別・品目別・工程別・**直別**・期間別) | C-40-10 | `QualityAnalysisController.cs` `api/quality/summary`<br>管理図・工程能力(C-50-10-01〜02)は `ControlChartController.cs` `api/quality/control-chart` → 計算は `Api/Services/ControlChartCalculator.cs`(**群=検査指示**。係数表・群の揃え方・9点連続の判定はここだけ)。描画は `Web/Shared/Charts/ControlLineChart.razor` | Execution.cs: ProductionDefect(不良理由別の内訳)<br>ProductionRecord.`ShiftId`(**記録時に固定**。集計で引き直さない) | `/quality-analysis` `QualityAnalysis.razor`<br>`Web/Shared/BarMeter.razor` | `Tests/QualityTests.cs`・`ControlChartCalculatorTests.cs` |
| 不良理由マスタ | C-40-10-01 | `DefectReasonsController.cs` `api/defect-reasons` | Masters.cs: DefectReason | `/masters` `Masters/DefectReasonsTab.razor` | `Tests/MasterTests.cs` / `MasterCsvTests.cs` |
| チェックリストマスタ(HSE含む) | B-30-10 / G-20-20-02 | `ChecklistsController.cs` `api/checklists` | Masters.cs: Checklist / ChecklistItem | `/masters` `Masters/ChecklistsTab.razor` | `Tests/MasterTests.cs` |

Expand All @@ -73,7 +73,7 @@
|:--|:--|:--|:--|:--|:--|
| 作業区/資源階層(BOR。工場/ライン/エリア/作業区) | I-10-20-02 | `WorkCentersController.cs` `api/work-centers`<br>`Api/Policies/WorkCenterHierarchyPolicy.cs`(段の妥当性・循環。単票APIとCSV取込の**両方**から呼ぶ) | Masters.cs: WorkCenter(自己参照。`Level` は文字列保存のため**DB側で並べると段の順にならない**。取得後に並べ直す) | `/masters` `Masters/WorkCentersTab.razor` | `Tests/MasterTests.cs` / `MasterCsvTests.cs` |
| 設備台帳/BOE・保全部品 | E-10-10 / I-10-20 | `EquipmentsController.cs` `api/equipments`<br>保全部品は `api/equipments/{id}/parts`(**設備ごとの一括置換**) | Masters.cs: Equipment(`WorkCenterId`=設置場所の正。**作業区(最下段)のみ**。`Site` は移行用の旧項目)<br>Masters.cs: **EquipmentPart**(品目参照。資産管理部品/消耗品の区分。`MaintenanceParts` の自由記述は移行元) | `/masters` `Masters/EquipmentsTab.razor` | `Tests/MasterTests.cs` |
| 保全手順書(版数管理) | E-10-20 / E-20-30 | `MaintenanceProceduresController.cs` `api/maintenance-procedures` | Maintenance.cs: MaintenanceProcedure | `/maintenance` `Maintenance/MaintenanceProceduresTab.razor` | `Tests/MaintenanceTests.cs` |
| 保全手順書(版数管理) | E-10-20 / E-20-30 | `MaintenanceProceduresController.cs` `api/maintenance-procedures`(**必要スキル**は保全実績の登録時に実施者と照合:`MaintenanceOrderService.AddRecordAsync` → `SkillQualificationPolicy`) | Maintenance.cs: MaintenanceProcedure | `/maintenance` `Maintenance/MaintenanceProceduresTab.razor` | `Tests/MaintenanceTests.cs` |
| 保全計画(中長期・年次) | E-30-10 | `MaintenancePlansController.cs` `api/maintenance-plans`<br>取消(状態変更)は `Api/Services/MaintenanceOrderService.CancelPlanAsync` | Maintenance.cs: MaintenancePlan | `/maintenance` `Maintenance/MaintenancePlansTab.razor` | `Tests/MaintenanceTests.cs` |
| 保全指示・実績・突発依頼 | E-30-20 / E-30-30 / E-40 | `MaintenanceOrdersController.cs` `api/maintenance-orders`<br>作成・実績登録・取消(指示と元計画の状態変更)は `Api/Services/MaintenanceOrderService.cs`<br>消費部材の在庫引落しは `POST {id}/record` の `parts`(**`InventoryService.RemoveAsync` 経由**。区分 `MaintenanceIssue`) | Maintenance.cs: MaintenanceOrder / MaintenanceRecord / **MaintenanceRecordPart**(ロット単位の消費明細。`PartsUsed` の自由記述は補足) | `/maintenance` `Maintenance/MaintenanceOrdersTab.razor` | `Tests/MaintenanceTests.cs` |
| 設備総合効率(OEE) | E-20-30-03 | `OeeController.cs` `api/oee`(**稼働サマリとは別**。あちらは稼働監視の素の時間区分、こちらは製造実績と突き合わせた評価指標)<br>負荷時間=記録済み総時間(**計画休止の区分は無い**)。理論CTは作業指示の標準作業時間(1個あたり) | Maintenance.cs: EquipmentLog(`WorkOrderId` が無い稼働は**対象外**=カバー率で開示)<br>Execution.cs: ProductionRecord | `/maintenance` `Maintenance/EquipmentLogsTab.razor`(稼働監視タブ) | `Tests/MaintenanceTests.cs` |
Expand Down
Loading
Loading