diff --git a/CLAUDE.md b/CLAUDE.md index f2ba8b2..c2e8c98 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -43,6 +43,11 @@ dotnet test tests/MesApp.Api.Tests --filter FullyQualifiedName~MasterCsvTests -v ./scripts/Migrations.ps1 -RemoveLast # 3プロバイダーの最新を取り消す ``` +ユーザーガイド(`docs/`)の表示確認は Jekyll でビルドする。出力はリポジトリの外に出す(`docs/_site` を作らない)。手動確認用の `jekyll serve` は Readme.md の「ユーザーガイドの確認」: +```powershell +jekyll build -s docs -d "$env:TEMP\mes-docs-site" +``` + アプリ起動は `.claude/launch.json` の `mesapp`(preview_start)を使う。シェルから `dotnet run` を常駐させない。 ## 構成(依存は Core ← Infrastructure ← Api、Client.Web → Core) diff --git a/Readme.md b/Readme.md index fb3d8c0..355e7b7 100644 --- a/Readme.md +++ b/Readme.md @@ -187,6 +187,19 @@ $env:MESAPP_TEST_PROVIDER="SqlServer"; $env:MESAPP_TEST_CONNECTION="Server=(loca dotnet test tests/MesApp.Api.Tests ``` +## ユーザーガイドの確認(Jekyll) + +`docs/` は GitHub Pages(Jekyll)でそのまま公開されます。手元で見るには Ruby と Jekyll を入れて、リポジトリのルートで次を実行し、 +http://127.0.0.1:4000/ を開きます。`docs/` を保存すると作り直され、ブラウザも自動で再読み込みされます(止めるのは Ctrl+C)。 + +```powershell +jekyll serve -s docs -d "$env:TEMP\mes-docs-site" --livereload +``` + +ビルドだけ確かめるときは `jekyll build -s docs -d "$env:TEMP\mes-docs-site"` です。 +出力先(`-d`)はリポジトリの外にします。省くと `docs/_site` ができ、未追跡ファイルとして残ります。 +`jekyll` が見つからないときは、インストール後にターミナルを開き直すか、`$env:Path = "C:\Ruby40-x64\bin;$env:Path"` のように Ruby の `bin` を足してください。 + ## プロジェクト構成 ``` diff --git a/docs/_config.yml b/docs/_config.yml index 0e39f0a..c798ebc 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -34,6 +34,8 @@ nav: url: getting-started.html - title: 画面構成と共通操作 url: basics.html + - title: サンプルで見る 製造から出荷まで + url: walkthrough.html - section: 準備 items: - title: マスタ管理 diff --git a/docs/assets/style.css b/docs/assets/style.css index 1fe26e6..63797ba 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -363,6 +363,60 @@ ol.steps > li::before { font-size: 12.5px; } +/* ---------- 図解(walkthrough.md) ---------- */ +/* 担当ロールの色。図の枠と凡例で同じ色を使う */ +:root { + --r-pm: #1f6feb; --r-pm-bg: #ddf0ff; /* 生産管理 */ + --r-op: #1a7f37; --r-op-bg: #e6f6ec; /* 現場作業者 */ + --r-lg: #9a6700; --r-lg-bg: #fff6e0; /* 物流・倉庫 */ + --r-qc: #8250df; --r-qc-bg: #f3ecff; /* 品質管理・品質保証 */ + --r-ng: #b42318; --r-ng-bg: #ffebe9; /* 不良・逸脱 */ +} +@media (prefers-color-scheme: dark) { + :root { + --r-pm: #6cb0ff; --r-pm-bg: #16283f; + --r-op: #56d364; --r-op-bg: #12261a; + --r-lg: #e3b341; --r-lg-bg: #2a2213; + --r-qc: #c297ff; --r-qc-bg: #231a38; + --r-ng: #ff8a80; --r-ng-bg: #3a1618; + } +} +.fig { margin: 18px 0 26px; } +/* 狭い画面では図を縮めすぎず、横にスクロールさせる */ +.fig .scroll { overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); } +.fig svg { display: block; width: 100%; min-width: 680px; height: auto; font-family: inherit; } +.fig figcaption { margin-top: 6px; font-size: 13px; color: var(--text-muted); text-align: center; } +.fig .box { fill: var(--bg-alt); stroke: var(--border); } +.fig .lane { fill: var(--bg-alt); } +.fig .card { fill: var(--bg); stroke: var(--border); } +.fig .t { fill: var(--text); font-size: 13px; } +.fig .tb { fill: var(--text); font-size: 13px; font-weight: 700; } +.fig .m { fill: var(--text-muted); font-size: 11.5px; } +.fig .ln { fill: none; stroke: var(--text-muted); stroke-width: 1.4; } +.fig .dash { stroke-dasharray: 5 4; } +.fig .head { fill: var(--text-muted); } +.fig .pm { fill: var(--r-pm-bg); stroke: var(--r-pm); } +.fig .op { fill: var(--r-op-bg); stroke: var(--r-op); } +.fig .lg { fill: var(--r-lg-bg); stroke: var(--r-lg); } +.fig .qc { fill: var(--r-qc-bg); stroke: var(--r-qc); } +.fig .ng { fill: var(--r-ng-bg); stroke: var(--r-ng); } +.fig .c-pm { fill: var(--r-pm); } .fig .c-op { fill: var(--r-op); } +.fig .c-lg { fill: var(--r-lg); } .fig .c-qc { fill: var(--r-qc); } +.fig .c-ng { fill: var(--r-ng); } +.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 8px 0 0; font-size: 13px; color: var(--text-muted); } +.legend span::before { + content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 5px; + vertical-align: -1px; border-radius: 3px; border: 1.5px solid; +} +.legend .pm::before { background: var(--r-pm-bg); border-color: var(--r-pm); } +.legend .op::before { background: var(--r-op-bg); border-color: var(--r-op); } +.legend .lg::before { background: var(--r-lg-bg); border-color: var(--r-lg); } +.legend .qc::before { background: var(--r-qc-bg); border-color: var(--r-qc); } +.legend .ng::before { background: var(--r-ng-bg); border-color: var(--r-ng); } +.shot { margin: 16px 0 24px; } +.shot img { display: block; width: 100%; height: auto; border: 1px solid var(--border); border-radius: 8px; } +.shot figcaption { margin-top: 6px; font-size: 13px; color: var(--text-muted); } + /* ---------- responsive ---------- */ @media (max-width: 900px) { .menu-toggle { display: block; } diff --git a/docs/assets/walkthrough/dispatch.webp b/docs/assets/walkthrough/dispatch.webp new file mode 100644 index 0000000..47adbfa Binary files /dev/null and b/docs/assets/walkthrough/dispatch.webp differ diff --git a/docs/assets/walkthrough/inspections.webp b/docs/assets/walkthrough/inspections.webp new file mode 100644 index 0000000..b39edff Binary files /dev/null and b/docs/assets/walkthrough/inspections.webp differ diff --git a/docs/assets/walkthrough/inventory.webp b/docs/assets/walkthrough/inventory.webp new file mode 100644 index 0000000..fc70aa4 Binary files /dev/null and b/docs/assets/walkthrough/inventory.webp differ diff --git a/docs/assets/walkthrough/order-detail.webp b/docs/assets/walkthrough/order-detail.webp new file mode 100644 index 0000000..4649f64 Binary files /dev/null and b/docs/assets/walkthrough/order-detail.webp differ diff --git a/docs/assets/walkthrough/record.webp b/docs/assets/walkthrough/record.webp new file mode 100644 index 0000000..d5d17fe Binary files /dev/null and b/docs/assets/walkthrough/record.webp differ diff --git a/docs/assets/walkthrough/shipment-judgments.webp b/docs/assets/walkthrough/shipment-judgments.webp new file mode 100644 index 0000000..2c29c14 Binary files /dev/null and b/docs/assets/walkthrough/shipment-judgments.webp differ diff --git a/docs/assets/walkthrough/shipping.webp b/docs/assets/walkthrough/shipping.webp new file mode 100644 index 0000000..e38a6b7 Binary files /dev/null and b/docs/assets/walkthrough/shipping.webp differ diff --git a/docs/assets/walkthrough/trace.webp b/docs/assets/walkthrough/trace.webp new file mode 100644 index 0000000..fd2ea5b Binary files /dev/null and b/docs/assets/walkthrough/trace.webp differ diff --git a/docs/basics.md b/docs/basics.md index 11597c7..17a9528 100644 --- a/docs/basics.md +++ b/docs/basics.md @@ -5,8 +5,8 @@ nav_url: basics.html lead: すべての画面に共通する見かたと操作です。最初にここを読んでおくと、以降の説明がスムーズです。 prev_url: getting-started.html prev_title: 導入と初期設定 -next_url: masters.html -next_title: マスタ管理 +next_url: walkthrough.html +next_title: サンプルで見る 製造から出荷まで --- ## 画面の構成 diff --git a/docs/index.md b/docs/index.md index e452ecb..3a8c7f2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -62,6 +62,9 @@ next_title: 導入と初期設定 | 出荷 | 出荷管理 | 物流・倉庫 | [物流・在庫管理](logistics.html) | | 設備・治工具 | 設備保全/治工具管理 | 設備保全 | [設備保全・治工具](maintenance.html) | +この流れをサンプルデータ(ギアポンプ10台の製造から出荷まで)に沿って図と画面写真でたどるページが +[サンプルで見る 製造から出荷まで](walkthrough.html) です。 + ## このバージョンでできること - 生産管理(生産計画の受け取りと予実・製造指図・工程展開・進捗) diff --git a/docs/masters.md b/docs/masters.md index f0f0f5a..3346215 100644 --- a/docs/masters.md +++ b/docs/masters.md @@ -3,8 +3,8 @@ layout: default title: マスタ管理 nav_url: masters.html lead: 業務を始める前に登録が必要な基礎データです。登録の順番に決まりがあるので、この順に進めてください。 -prev_url: basics.html -prev_title: 画面構成と共通操作 +prev_url: walkthrough.html +prev_title: サンプルで見る 製造から出荷まで next_url: production.html next_title: 生産管理 --- diff --git a/docs/walkthrough.md b/docs/walkthrough.md new file mode 100644 index 0000000..b8e0855 --- /dev/null +++ b/docs/walkthrough.md @@ -0,0 +1,522 @@ +--- +layout: default +title: サンプルで見る 製造から出荷まで +nav_url: walkthrough.html +lead: サンプルのマスタと実績(samples/)を題材に、部材の受入からギアポンプ10台を作って出荷するまでの一連の流れを、図と画面写真でたどります。各画面の細かい操作は、章末のリンク先で説明しています。 +prev_url: basics.html +prev_title: 画面構成と共通操作 +next_url: masters.html +next_title: マスタ管理 +--- + +
+

このページの内容は、そのまま手元で再現できます。 +samples/master-csv と samples/actual-csv のCSVをそれぞれZIPにまとめ、 +画面上部の ZIPで一括取込 から、マスタ、実績の順に取り込んでください。 +CSVに含まれない操作(完了承認・出荷など)は、最後の章にまとめてあります。

+
+ +## 1. 全体の流れ {#overview} + +ここで追う題材は、**ギアポンプ FG-1000 を10台作る製造指図 SMP-FG-001** です。 +ギアポンプの外側にあたるハウジングは、前工程の **製造指図 SMP-SF-001** で、鋳造品を削り、表面処理をして作ります。 + +部材の受入から出荷まで、次の10の段階があります。担当するロールを、図の横の帯(レーン)で分けています。 + +
+
+ + + + +生産管理pm001 +物流・倉庫lg001 +現場作業者op001〜003 +品質qc001 + +1受入部材ロット +2製造指図登録・承認 +3工程展開作業指示へ +4差立人と設備 +5段取り点検 +6投入・実績良品・不良 +7完了承認実績の確定 +8検査合否判定 +9出荷判定可・承認 +10出荷在庫引落し + + + + + + +
+
図1 10の段階と、それぞれを担当するロール
+
+
生産管理物流・倉庫現場作業者品質管理・品質保証
+ +| # | 段階 | 使う画面 | このページの例 | +|---|---|---|---| +| 1 | 受入 | 物流・在庫 → 受入 | 鋳造品 R3001-260901 を50個 | +| 2〜3 | 製造指図・工程展開 | 生産・製造実行 → 製造指図 | SMP-FG-001(10台)→ 作業指示3件 | +| 4 | 差立 | 生産・製造実行 → 差立 | SMP-FG-002 の作業指示に作業者と設備を割り当てる | +| 5〜6 | 段取り・実績入力 | 作業指示 → 段取り/実績入力 | 組立で10台、梱包で良品9・不良1 | +| 7 | 完了承認 | 実績入力(製造完了承認) | 3件の作業指示を「承認済」に | +| 8 | 検査 | 品質 → 検査管理 | 完成品検査で吐出量 20.3 L/min、合格 | +| 9 | 出荷判定 | 品質 → 出荷判定 | 「可」と判定して承認 | +| 10 | 出荷 | 物流・在庫 → 出荷管理 | サンプル商事へ5台 | + +--- + +## 2. 工場と人 {#plant} + +サンプルの工場は、**第1工場(PL-1)** の1つです。工場 → ライン → エリア → 作業区の4段で構成され、 +設備・置場(ロケーション)・作業者は、それぞれどこかの段に所属しています。 + +
+
+ +工場ラインエリア作業区 + + + + +第1工場PL-1 +加工ラインLN-MC +組立ラインLN-AS +物流・品質LN-LG +加工エリアAR-MC +組立エリアAR-AS +検査室AR-QC +出荷エリアAR-SH +マシニング加工WC-MC1 +ポンプ組立WC-AS1 +最終検査WC-QC1 +梱包WC-PK1 +設備 EQ-01・EQ-05置場 WIP-01op001(昼勤)・op003(夜勤) +設備 EQ-02置場 WIP-02op002 +設備 EQ-03(三次元測定機)qc001 +設備 EQ-04(真空包装機)置場 SHIP-01(出荷エリア)lg001(出荷エリア) + +置場 WH-M01・WH-M02(部材倉庫) +   WH-S01(保全部品棚)・WH-P01(製品倉庫) +人  pm001 生産管理・mt001 保全 + +
+
図2 作業区の階層(マスタ管理 → 作業区)と、各段に所属する設備・置場・作業者
+
+ +| ユーザー | 氏名 | ロール | このページでの役目 | +|---|---|---|---| +| pm001 | 生産 管理太郎 | 生産管理 | 製造指図の登録・承認・工程展開、差立、完了承認 | +| lg001 | 物流 四郎 | 物流 | 部材の受入、出荷指示と出荷 | +| op001 / op003 | 加工 一郎 / 加工 三平 | 現場作業者 | ハウジングの機械加工(op003 は夜勤) | +| op002 | 組立 二郎 | 現場作業者 | ギアポンプの組立・梱包 | +| qc001 | 品質 三子 | 品質管理・品質保証 | 検査、出荷判定 | + +勤務シフトは **昼勤 D(8:00〜17:00)** と、日をまたぐ **夜勤 N(20:00〜翌5:00)** の2つです。 +実績は開始時刻でどちらの直かが決まります。 +詳しくは [マスタ管理](masters.html) をご覧ください。 + +--- + +## 3. 何を、どう作るか {#product} + +ギアポンプ FG-1000 は、自社で作るハウジング加工品 SF-2000 と、5種類の購入部材を組み立てて作ります。 +品目どうしの親子関係を **MBOM(部品構成)**、工程の並びを **工順** と呼びます。 + +
+
+ + +ハウジング加工品 SF-2000 を作る(製造指図 SMP-SF-001・20個) + +RM-3001ハウジング鋳造品 +PR-10 機械加工WC-MC1・標準25分 +PR-20 表面処理外注(アルマイト) +SF-2000ハウジング加工品 +受入検査 INS-03 +工程内検査 INS-01・02条件 主軸回転数・送り速度 +外注先で処理 + + +ギアポンプ FG-1000 を作る(製造指図 SMP-FG-001・10台) + +MBOM(1台あたり) +SF-2000 ハウジング加工品 ×1 +RM-3002 ギアセット ×1 +RM-3003 シャフト ×1 +RM-3004 Oリング ×2 +└ 代替 RM-3007 Oリング(耐油) +RM-3005 六角ボルト M6x20 ×4 +RM-3006 潤滑油 ×0.05 L + +PR-30 組立WC-AS1・標準30分 +PR-40 最終検査WC-QC1・標準15分 +PR-50 梱包WC-PK1・標準10分 +FG-1000ギアポンプ +条件 締付トルク点検 CL-02 +完成品検査 INS-04・05条件 試験圧力 +点検 CL-03 +入庫 WH-P01 + + + +
+
図3 部品構成(MBOM)と工順。破線の枠は外注工程、紫の文字は検査のタイミング
+
+ +- **Oリングには代替部品があります。** 通常は RM-3004(NBR)を使いますが、同じ代替グループ `ORING-P20` の RM-3007(耐油 FKM)でも代用できます。 +- **工順の各工程に、作業区・候補設備・治工具・必要スキル・チェックリスト・製造条件が結び付いています。** たとえば PR-10 では、マシニングセンタ(EQ-01/EQ-05)、エンドミル TL-01、スキル SK-01「マシニングセンタ操作」、始業前点検 CL-01 が使われます。 +- 最終工程(FG-1000 なら PR-50 梱包)の良品が、製品のロットとして在庫に入ります。 + +MBOMと工順の登録方法は、[マスタ管理の品目・MBOM・工順](masters.html) をご覧ください。 + +--- + +## 4. 部材を受け入れる {#receiving} + +**担当:物流(lg001) 画面:物流・在庫 → 受入** + +仕入先から届いた部材を、**ロット**として倉庫に登録します。以降の在庫・投入・追跡は、すべてこのロット番号でつながります。 + +
+
+ + + +受入lg001 が登録受入画面/CSV + +WH-M01 部材倉庫(棚 A-01-01) +WH-M02 部材倉庫(棚 A-01-02) +WH-S01 保全部品棚(棚 M-01-01) +R3001-260901ハウジング鋳造品 50個 +R3002-260901ギアセット 50セット +R3003-260901シャフト 50本 +受入検査 INS-03R3001 の外観 → 合格巣・欠けなし +R3004-260901Oリング 200個期限 2027-08-31 +R3007-260901Oリング(耐油)40個期限 2028-08-31・代替品 +R3005-260901六角ボルト 500本 +R3006-260901潤滑油 20 L期限 2027-02-28 +MP-9002-(受入日)-001クーラントフィルタ 10個ロット番号を空欄にすると自動採番 + +
+
図4 受入した部材ロットの置き場所。ゴム製品と潤滑油には有効期限がある
+
+ +- **ロット番号は指定しても、空欄で自動採番にしてもかまいません。** サンプルでは、後で投入するロットに番号を指定しています(`R3001-260901` など)。 +- **有効期限**を入れたロットは、期限が近づくと在庫照会の **期限アラート** に表示されます。期限を過ぎたロットは投入も出荷もできません。 +- 鋳造品は **受入検査**(INS-03 目視)で外観を確かめています。検査の流れは [7章](#inspection) で説明します。 + +
+在庫照会画面。部材ロット、半製品ロット SF2000-S001、製品ロット FG1000-S001 がロケーション別に並んでいる +
在庫照会(物流・在庫 → 在庫照会・操作)。この写真は出荷まで終えた後の状態で、鋳造品は50個から20個使って残り30個になっている
+
+ +詳しくは [物流・在庫管理の受入](logistics.html#receiving) をご覧ください。 + +--- + +## 5. 製造指図から作業指示へ {#order} + +**担当:生産管理(pm001) 画面:生産・製造実行 → 製造指図 / 差立** + +「何を・いくつ・いつまでに作るか」を **製造指図** として登録します。承認してから **工程展開** すると、 +工順に沿って工程ごとの **作業指示** が作られます。 + +
+
+ + + +製造指図 SMP-FG-001 +FG-1000 ギアポンプ ×10 +納期 2026-10-16 +pm001 が登録・承認 +(CSVでは Approve・Expand 列) +工程展開 + +SMP-FG-001-10PR-30 組立 10台 +SMP-FG-001-20PR-40 最終検査 10台 +SMP-FG-001-30PR-50 梱包 10台 +産出ロット FG1000-S001最終工程の良品が、このロットで入庫する +予定材料(MBOM×10台で固定) +SF-2000 10・ギアセット 10・シャフト 10 +Oリング 20(代替可)・ボルト 40・潤滑油 0.5 L +予定にない品目は投入できない +製造指図の状態 + +未承認 +承認済 +展開済 +完了 +承認工程展開全工程を承認 + + +作業指示の状態 + +未配布 +配布済 +着手 +完了 +承認済 +差立着手実績入力完了承認 + + +※ 差立をしなくても、未配布のまま着手できます。 + +
+
図5 工程展開で作業指示が3件でき、産出ロットと予定材料が決まる(上)。指図と作業指示の状態(下)
+
+ +
+製造指図 SMP-FG-001 の詳細画面。予定材料7品目と、工程展開でできた作業指示3件が表示されている +
製造指図の詳細。予定材料と、工程展開でできた作業指示が並ぶ。各行から段取り・実績入力・指示書の印刷へ進める
+
+ +**差立**では、作業指示ごとに作業者・設備・着手順を割り当てます。作業者には工順の必要スキルが照合され、 +スキルを持っていない人や資格の期限が切れている人は割り当てられません(例:PR-30 組立はスキル SK-04「組立作業」が必要)。 + +
+差立画面。SMP-FG-002 の作業指示2件が未配布で並び、作業者・設備・着手順を選べる +
差立画面。サンプルでは SMP-FG-002(承認済みで未展開)を画面から展開して試せる。この写真は -10 を op002・EQ-02 に割り当てた後で、残りの2件が「未配布」で並んでいる
+
+ +詳しくは [生産管理](production.html) と [製造実行の差立](execution.html) をご覧ください。 + +--- + +## 6. 現場で作る {#execution} + +**担当:現場作業者(op001〜003) 画面:作業指示 → 段取り/実績入力** + +作業者は作業指示を開き、段取りと点検をしてから着手し、使った部材ロットと出来高を記録します。 +サンプルでは、ハウジングを9/1の夜勤で削って9/2に外注で表面処理し、9/3の昼勤でギアポンプを組み立てています。 + +
+
+ + + +9/1〜9/2 夜勤 N9/2 昼勤 D9/3 昼勤 D + +WC-MC1機械加工 +外注表面処理 +WC-AS1組立 +WC-QC1最終検査 +WC-PK1梱包 + +PR-10 機械加工 良品20 +送り速度 1350 が許容範囲外(逸脱) +PR-20 表面処理 +良品19・不良1(鋳巣) + + +PR-30 組立 +良品10・代替Oリング2個を投入 +PR-40 最終検査 良品10 + +PR-50 梱包 良品9・不良1 +→ FG1000-S001 の9台を WH-P01 へ入庫 +20:000:004:008:0012:008:0012:00 + +
+
図6 3日間の作業の流れ。灰色の小さな枠は段取り。破線の矢印は、表面処理でできた半製品ロット SF2000-S001(19個・WIP-02)が組立に使われたことを表す
+
+
作業(実績)検査工程逸脱・不良
+ +1つの作業指示で記録することは、次のとおりです。いずれも **実績入力画面**(作業指示の一覧 → 実績入力)から入れます。 + +| 記録 | サンプルの例 | 意味 | +|---|---|---| +| 段取り | SMP-SF-001-10 の前段取り 20:30〜20:50 | 段取りにかかった時間と異常 | +| チェックリスト | CL-01 始業前点検(切りくずの除去は任意項目で未チェック) | 必須項目が未チェックだと登録できない | +| 部材投入 | SMP-FG-001-10 に SF2000-S001 を10、R3004 を18、代替の R3007 を2 | どのロットをいくつ使ったか。**予定材料にない品目は投入できない**。代替品には理由が必須 | +| 製造条件データ | 締付トルク 10.2 N・m(範囲内)、送り速度 1350(範囲外) | 工程管理項目の許容範囲と自動で照合する | +| 出来高 | 梱包で良品9・不良1(DR-05)・再作業待ち1 | 最終工程では入庫先(WH-P01)が必須 | + +
+SMP-FG-001-10 の実績入力画面。登録済みの実績、7件の部材投入(代替理由つきのOリングを含む)、作業手順書が表示されている +
実績入力(SMP-FG-001-10 組立)。部材投入の一覧に、代替品の Oリング(耐油)と代替理由が残っている
+
+ +作業指示が「完了」になったら、生産管理(pm001)が実績を確かめて **製造完了承認** を押します。 +3件すべてが承認されると、製造指図 SMP-FG-001 は「完了」になります。 + +
+

このほか、作業時間(直接作業・間接作業)と製造トラブル(梱包機のシール不良、組立エリアの通路の安全)も、サンプルに記録されています。 +詳しくは 製造実行 をご覧ください。

+
+ +--- + +## 7. 検査する {#inspection} + +**担当:品質管理(qc001) 画面:品質 → 検査管理** + +検査指示を発行すると、**検査種別・品目・工程に合う検査項目が自動で選ばれ**、対象のロットは「検査待ち」になります。 +測定値を入れると規格値と照合して合否が自動で決まり、全項目がそろったら総合判定をします。 + +
+
+ + + +検査指示の発行項目は基準から自動選択 +ロットは「検査待ち」投入・出荷を止める +実績を入力測定値は規格と自動照合 +総合判定承認して確定 +合格 → ロット「正常」 +不合格 → 「不良」 + + +不合格なら不適合が自動で起票される + +受入検査 R3001-260901 +INS-03 鋳造品 受入外観目視(規格値なし → 判定を手で選ぶ) +巣・欠けなし → 合格 +判定後、ロットは「正常」に戻り工程へ払い出せるようになる + +工程内検査 SMP-SF-001-10 +INS-01 ハウジング内径(ノギス)規格 49.95〜50.05 mm → 50.01・49.98 + +49.9550.0050.05 +INS-02 ハウジング外観キズなし → 合格 + +完成品検査 FG1000-S001 +INS-04 吐出量(流量計)規格 19〜21 L/min → 20.3 + +192021 +INS-05 気密試験 漏れなし総合判定 合格・グレード A + +
+
図7 検査の流れ(上)と、サンプルの3件の検査(下)。緑の帯は規格の範囲、紫の点は測定値
+
+ +
+検査管理画面。受入・工程内・完成品の3件の検査指示が、承認済・合格で並んでいる +
検査管理。3件とも合格で、承認まで済んでいる。各行の「詳細・実績入力」から測定値と判定を確認できる
+
+ +- 工程内検査は **作業指示**(SMP-SF-001-10)を、受入・完成品検査は **ロット** を対象にします。 +- 検査に使った測定器(DV-01 ノギス、DV-02 流量計)も記録されます。**校正期限が切れた測定器**は検査に使えません(サンプルには期限切れの機器が1台あります)。 + +詳しくは [品質管理](quality.html) をご覧ください。 + +--- + +## 8. 出荷判定と出荷 {#shipping} + +**担当:物流(lg001)と品質保証(qc001) 画面:物流・在庫 → 出荷管理 / 品質 → 出荷判定** + +出荷は、物流が作る **出荷指示** と、品質保証が出す **出荷判定** の2つがそろって初めて実行できます。 + +
+
+ + +① 出荷指示サンプル商事株式会社FG-1000 ×5・予定日 10/16 +② 出荷判定判定「可」対象:出荷指示+FG1000-S001 +③ 判定の承認承認済になる判定書を印刷できる +④ 出荷実行FG1000-S001 から5台出荷伝票を印刷して出荷 + + +出荷実行の前に、自動で確かめること +1. その出荷指示に、承認済みの判定(可 または 特別採用)がある +2. 出荷するロットが使える状態である(状態が正常で、期限切れでない) +WH-P01 の FG1000-S001 +9台 → 4台 +明細の「出荷済」が5になり、指示は完了 + +
+
図8 出荷の4つの手順。判定が「保留」や未承認のままだと、④で止まる
+
+ +
+出荷判定画面。SH20260922-0001 と FG1000-S001 を対象にした判定「可」が承認済で並んでいる +
出荷判定。対象の出荷指示とロットを選び、判定を登録して承認する
+
+ +
+出荷管理画面。サンプル商事株式会社あての出荷指示が完了になり、FG-1000 が指示数5・出荷済5になっている +
出荷管理。出荷を実行すると「出荷済」の数が増え、全明細がそろうと指示が「完了」になる
+
+ +出荷番号・判定書番号は採番した日で決まるので、写真の番号(SH20260922-0001 など)は取り込んだ日によって変わります。 +詳しくは [物流・在庫管理の出荷管理](logistics.html) と [品質保証の出荷判定](assurance.html) をご覧ください。 + +--- + +## 9. あとからたどる {#trace} + +**担当:品質保証(qc001) 画面:品質 → トレーサビリティ** + +記録はすべてロット番号でつながっているので、製品のロットからは使った部材を、部材のロットからは使われた先の製品と出荷をたどれます。 + +
+
+ + +R3001-260901鋳造品(受入)20個を投入 +SF2000-S001ハウジング加工品(生産)10個を投入 +R3002-260901 ギアセット 10 +R3003-260901 シャフト 10 +R3004-260901 Oリング 18 +R3007-260901 耐油Oリング 2 +R3005-260901 ボルト 40 +R3006-260901 潤滑油 0.5 L +FG1000-S001ギアポンプ 9台完成品検査 合格・グレード A +出荷 5台サンプル商事残り4台は WH-P01 + + + + + + +◀ トレースバック:製品から、使った部材へさかのぼるトレースフォワード:部材から製品・出荷へ ▶ + +
+
図9 FG1000-S001 のつながり。鋳造品のロットまで2段さかのぼれる
+
+ +
+トレーサビリティ画面。FG1000-S001 のトレースバックに、SF2000-S001 とその下の R3001-260901、ほか6件の部材ロットがツリーで並んでいる +
トレーサビリティで FG1000-S001 を追跡したところ。トレースバックのツリーに、図9と同じつながりが表示される
+
+ +たとえば「鋳造品 R3001-260901 に鋳巣が多い」と分かったときは、R3001-260901 のトレースフォワードで、 +影響するのが SF2000-S001 とギアポンプ FG1000-S001 であることがすぐに分かります。 +FG1000-S001 の履歴タブ(製造・検査・在庫の記録)を開けば、サンプル商事へ出荷した5台も確かめられます。 + +詳しくは [品質保証のトレーサビリティ](assurance.html) をご覧ください。 + +--- + +## 10. 手元で試すには {#try} + +サンプルのCSVで入る記録と、画面から操作する記録は次のとおりです。 + +| 段階 | サンプルCSVで入るもの | 画面から操作すること | +|---|---|---| +| マスタ | `samples/master-csv` の19ファイル(作業区〜ユーザーのスキル) | ― | +| 受入 | `01_receiving.csv`(部材7ロット・保全部品1ロット) | ― | +| 製造指図 | `02_manufacturing-orders.csv`(SMP-SF-001・SMP-FG-001 は展開済み、SMP-FG-002 は承認済み、SMP-FG-003 は未承認) | SMP-FG-002 の **工程展開** と **差立** | +| 実行 | `03`〜`09`(段取り・点検・投入・出来高・製造条件) | 各作業指示の **製造完了承認**(pm001) | +| 検査 | `10_inspections.csv`(3件。判定まで) | 各検査の **検査承認** | +| 出荷 | ― | **出荷指示**(サンプル商事株式会社・FG-1000 ×5)→ **出荷判定**(可)→ **承認** → **出荷実行**(FG1000-S001 から5台) | +| 追跡 | ― | トレーサビリティで `FG1000-S001` や `R3001-260901` を追跡 | + +
+

日付について:CSVの作業時刻(9/1〜9/3)はファイルに書いたとおりに記録されますが、 +受入日・製造日・採番される番号の日付は、取り込んだ日になります。 +取込の決まりは samples/actual-csv/README.md をご覧ください。

+
+ +
+ マスタ管理作業区・品目・MBOM・工順などの登録とCSV入出力 + 生産管理生産計画・製造指図・承認・工程展開 + 製造実行差立・段取り・実績入力・完了承認 + 物流・在庫管理受入・在庫操作・出荷・棚卸 + 品質管理検査指示・実績・判定・不適合 + 品質保証出荷判定・トレーサビリティ +
diff --git a/samples/actual-csv/03_setup-records.csv b/samples/actual-csv/03_setup-records.csv index 6be653e..5f699cb 100644 --- a/samples/actual-csv/03_setup-records.csv +++ b/samples/actual-csv/03_setup-records.csv @@ -1,4 +1,4 @@ OrderNo,Sequence,Type,StartedAt,EndedAt,AbnormalityNote SMP-SF-001,10,Pre,2026-09-01 20:30,2026-09-01 20:50, -SMP-FG-001,10,Pre,2026-09-02 08:00,2026-09-02 08:10, -SMP-FG-001,30,Post,2026-09-02 14:00,2026-09-02 14:20,シールヒーターの温度上昇が遅い +SMP-FG-001,10,Pre,2026-09-03 08:00,2026-09-03 08:10, +SMP-FG-001,30,Post,2026-09-03 14:00,2026-09-03 14:20,シールヒーターの温度上昇が遅い diff --git a/samples/actual-csv/08_production-records.csv b/samples/actual-csv/08_production-records.csv index 4394214..0939145 100644 --- a/samples/actual-csv/08_production-records.csv +++ b/samples/actual-csv/08_production-records.csv @@ -1,4 +1,4 @@ OrderNo,Sequence,GoodQuantity,DefectQuantity,ScrapQuantity,ReworkQuantity,StartedAt,EndedAt,OutputLocationCode,Backflush,Defects -SMP-FG-001,10,10,0,,,2026-09-02 08:30,2026-09-02 11:30,,false, -SMP-FG-001,20,10,0,,,2026-09-02 12:30,2026-09-02 13:00,,false, -SMP-FG-001,30,9,1,,1,2026-09-02 13:30,2026-09-02 14:00,WH-P01,false,DR-05=1 +SMP-FG-001,10,10,0,,,2026-09-03 08:30,2026-09-03 11:30,,false, +SMP-FG-001,20,10,0,,,2026-09-03 12:30,2026-09-03 13:00,,false, +SMP-FG-001,30,9,1,,1,2026-09-03 13:30,2026-09-03 14:00,WH-P01,false,DR-05=1 diff --git a/samples/actual-csv/11_work-time-records.csv b/samples/actual-csv/11_work-time-records.csv index 3a4dc9c..e042779 100644 --- a/samples/actual-csv/11_work-time-records.csv +++ b/samples/actual-csv/11_work-time-records.csv @@ -1,5 +1,5 @@ Type,IndirectCategory,OrderNo,Sequence,StartedAt,EndedAt,Note Direct,,SMP-SF-001,10,2026-09-01 21:00,2026-09-02 03:00,夜勤 -Indirect,部材準備,,,2026-09-02 07:30,2026-09-02 08:00, -Direct,,SMP-FG-001,10,2026-09-02 08:30,2026-09-02 11:30, -Direct,,SMP-FG-001,30,2026-09-02 13:30,2026-09-02 14:00, +Indirect,部材準備,,,2026-09-03 07:30,2026-09-03 08:00, +Direct,,SMP-FG-001,10,2026-09-03 08:30,2026-09-03 11:30, +Direct,,SMP-FG-001,30,2026-09-03 13:30,2026-09-03 14:00, diff --git a/samples/actual-csv/12_trouble-reports.csv b/samples/actual-csv/12_trouble-reports.csv index d6cd2d6..97ff478 100644 --- a/samples/actual-csv/12_trouble-reports.csv +++ b/samples/actual-csv/12_trouble-reports.csv @@ -1,3 +1,3 @@ OccurredAt,Category,OrderNo,Sequence,EquipmentAssetNo,Content -2026-09-02 14:05,Quality,SMP-FG-001,30,EQ-04,シールヒーターの温度上昇が遅く、1台のシール不良(再作業待ち) -2026-09-02 10:40,Safety,,,,組立エリアの通路に部材箱が置かれていた +2026-09-03 14:05,Quality,SMP-FG-001,30,EQ-04,シールヒーターの温度上昇が遅く、1台のシール不良(再作業待ち) +2026-09-03 10:40,Safety,,,,組立エリアの通路に部材箱が置かれていた diff --git a/src/MesApp.Client.Web/Pages/ManufacturingOrderDetail.razor b/src/MesApp.Client.Web/Pages/ManufacturingOrderDetail.razor index 8ed53f8..0d22415 100644 --- a/src/MesApp.Client.Web/Pages/ManufacturingOrderDetail.razor +++ b/src/MesApp.Client.Web/Pages/ManufacturingOrderDetail.razor @@ -32,7 +32,7 @@ else @L["納期"]@(order.DueDate?.ToString("yyyy-MM-dd") ?? "-") - @L["区分"]@order.OrderType + @L["区分"]@EnumLabels.Of(order.OrderType) @L["状態"]