From b0442e9b2f9e19bd6b1be1a9eb876d6f4b90a729 Mon Sep 17 00:00:00 2001 From: wanshenmean <cathay_xy@163.com> Date: 星期二, 21 四月 2026 00:40:05 +0800 Subject: [PATCH] docs: 更新MES上传状态实现计划,补充Tasks 11-16 --- Code/docs/superpowers/plans/2026-04-20-MES上传状态与异步上传实现计划.md | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 206 insertions(+), 0 deletions(-) diff --git "a/Code/docs/superpowers/plans/2026-04-20-MES\344\270\212\344\274\240\347\212\266\346\200\201\344\270\216\345\274\202\346\255\245\344\270\212\344\274\240\345\256\236\347\216\260\350\256\241\345\210\222.md" "b/Code/docs/superpowers/plans/2026-04-20-MES\344\270\212\344\274\240\347\212\266\346\200\201\344\270\216\345\274\202\346\255\245\344\270\212\344\274\240\345\256\236\347\216\260\350\256\241\345\210\222.md" new file mode 100644 index 0000000..a89be0f --- /dev/null +++ "b/Code/docs/superpowers/plans/2026-04-20-MES\344\270\212\344\274\240\347\212\266\346\200\201\344\270\216\345\274\202\346\255\245\344\270\212\344\274\240\345\256\236\347\216\260\350\256\241\345\210\222.md" @@ -0,0 +1,206 @@ +# MES 涓婁紶鐘舵�佽窡韪笌寮傛涓婁紶瀹炵幇璁″垝 + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [x]`) syntax for tracking. + +**Goal:** 鍦ㄥ簱瀛樿〃娣诲姞 MES 涓婁紶鐘舵�佸瓧娈碉紝閫氳繃 `Task.Run` 寮傛鏂瑰紡涓婁紶 MES 鏁版嵁涓嶅共鎵颁富閫昏緫锛屾墍鏈� MES 璋冪敤璁板綍璇︾粏鏃ュ織锛屽墠绔樉绀虹姸鎬佸苟鎻愪緵缁勭洏/鎷嗙洏鎸夐挳锛屾墍鏈� MES 鍑瘉鏀逛负鍔ㄦ�佽幏鍙栥�� + +**Architecture:** +- `Dt_StockInfo.MesUploadStatus` 鍗曞瓧娈佃褰曟渶杩戜竴娆� MES 鎿嶄綔缁撴灉鐘舵�� +- 鎵�鏈� MES 璋冪敤缁熶竴閫氳繃 `Task.Run` 寮傛鎵ц锛屼笉闃诲涓婚�昏緫 +- 涓婁紶瀹屾垚鍚庢洿鏂� `MesUploadStatus`锛屽苟閫氳繃 `IMesLogService.LogAsync` 璁板綍璇︾粏鏃ュ織 +- 鎵�鏈� MES 鍑瘉锛圗quipmentCode銆丷esourceCode銆乀oken锛夋敼涓轰粠 `Dt_MESDeviceConfig` 琛ㄥ姩鎬佽幏鍙� +- 鍓嶇 `stockInfo.vue` 鏂板鐘舵�佸垪锛宍stock.jsx` 鏂板缁勭洏/鎷嗙洏鎸夐挳 + +**Tech Stack:** .NET 6/8, C#, SqlSugar ORM, ASP.NET Core WebAPI, Vue 3, Element Plus + +--- + +## 鏂囦欢鍙樻洿姒傝 + +| 鎿嶄綔 | 鏂囦欢 | +|------|------| +| 鏂板 | `WIDESEA_Common/StockEnum/MesUploadStatusEnum.cs` | +| 淇敼 | `WIDESEA_Model/Models/Stock/Dt_StockInfo.cs` - 鏂板 `MesUploadStatus` 瀛楁 | +| 淇敼 | `WIDESEA_IStockService/IStockInfoService.cs` - 鏂板 `UpdateMesUploadStatusAsync` | +| 淇敼 | `WIDESEA_StockService/StockInfoService.cs` - 瀹炵幇 `UpdateMesUploadStatusAsync` | +| 淇敼 | `WIDESEA_DTO/MES/MesApiLogDto.cs` - 鏂板 `PalletCode` 瀛楁 | +| 淇敼 | `WIDESEA_TaskInfoService/TaskService.cs` - 鏂板 `MesUploadAsync` + `LogMesCallAsync` | +| 淇敼 | `WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs` - 鍑虹珯 MES 鏀逛负寮傛 | +| 淇敼 | `WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs` - 杩涚珯 MES 鏀逛负寮傛 | +| 淇敼 | `WIDESEA_StockService/StockSerivce.cs` - 缁勭洏/鎷嗙洏 MES 鏀逛负寮傛 | +| 淇敼 | `WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs` - 杩涚珯/鍑虹珯 MES 鏀逛负寮傛 + 鍔ㄦ�佸嚟璇� | +| 淇敼 | `WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs` - 缁戝畾/瑙g粦/NG MES 鏀逛负寮傛 + 鍔ㄦ�佸嚟璇� | +| 淇敼 | `WIDESEA_WMSClient/src/views/stock/stockInfo.vue` - 鏂板 `mesUploadStatus` 鍒� | +| 淇敼 | `WIDESEA_WMSClient/src/extension/stock/stock.jsx` - 鏂板缁勭洏/鎷嗙洏鎸夐挳 | +| 鏂板 | 鏁版嵁搴撳彉鏇磋剼鏈� | + +--- + +## Phase 1: 鍩虹璁炬柦 + +### Task 1: 鏂板 MesUploadStatusEnum 鏋氫妇 鉁� + +**Files:** Create `WIDESEA_Common/StockEnum/MesUploadStatusEnum.cs` + +- [x] 鍒涘缓鏋氫妇绫伙紙11涓�硷細0=鏈笂浼�, 1/2=缁勭洏, 3/4=鎷嗙洏, 5/6=杩涚珯, 7/8=鍑虹珯, 9/10=NG涓婃姤锛� +- [x] Commit: `b21d0f2` + +### Task 2: 淇敼 Dt_StockInfo 瀹炰綋 鉁� + +**Files:** Modify `WIDESEA_Model/Models/Stock/Dt_StockInfo.cs` + +- [x] 鍦� `Remark` 鍜� `OutboundDate` 涔嬮棿鏂板 `MesUploadStatus` 瀛楁锛坕nt, 榛樿0锛� +- [x] Commit: `58759d4` + +### Task 3: 淇敼 IStockInfoService 鎺ュ彛 鉁� + +**Files:** Modify `WIDESEA_IStockService/IStockInfoService.cs` + +- [x] 鏂板 `UpdateMesUploadStatusAsync(string palletCode, int status)` 鏂规硶澹版槑 +- [x] Commit: `18e0765` + +### Task 4: 淇敼 StockInfoService 瀹炵幇 鉁� + +**Files:** Modify `WIDESEA_StockService/StockInfoService.cs` + +- [x] 瀹炵幇 `UpdateMesUploadStatusAsync`锛氭寜鎵樼洏鍙锋煡璇� 鈫� 鏇存柊 MesUploadStatus +- [x] Commit: `25a246f`锛堝悗淇缂哄け闂悎鎷彿 鈫� `c329a05`锛� + +### Task 5: 淇敼 TaskService 鏂板寮傛鏂规硶 鉁� + +**Files:** Modify `WIDESEA_TaskInfoService/TaskService.cs` + +- [x] 娣诲姞 using: `WIDESEA_Common.StockEnum`, `System.Diagnostics`, `Newtonsoft.Json` +- [x] 鏂板 `MesUploadAsync` 绉佹湁寮傛鏂规硶锛圱ask.Run 璋冪敤 MES + 鏇存柊鐘舵�� + 鏃ュ織锛� +- [x] 鏂板 `LogMesCallAsync` 绉佹湁鏃ュ織鏂规硶 +- [x] Commit: `1330eff` + +### Task 9: 鏁版嵁搴撳彉鏇磋剼鏈� 鉁� + +**Files:** Create `Database/Scripts/20260420_Dt_StockInfo_MesUploadStatus.sql` + +- [x] ALTER TABLE 鏂板 MesUploadStatus TINYINT NOT NULL DEFAULT 0 +- [x] Commit: `eec94e8` + +### 闄勫姞淇: MesApiLogDto 鏂板 PalletCode 鉁� + +**Files:** Modify `WIDESEA_DTO/MES/MesApiLogDto.cs` + +- [x] 鏂板 `PalletCode` 灞炴�ф敮鎸佹寜鎵樼洏鍙锋煡璇㈡棩蹇� +- [x] Commit: `32ece02` + +--- + +## Phase 2: 鍚庣 MES 璋冪敤鏀归�� + +### Task 6: TaskService_Outbound 鍑虹珯 MES 寮傛 鉁� + +**Files:** Modify `WIDESEA_TaskInfoService/WCS/TaskService_Outbound.cs` + +- [x] `OutboundInContainer` 鏀逛负 `Task.Run` 寮傛鎵ц +- [x] 浣跨敤 `MesUploadStatusEnum.鍑虹珯涓婁紶鎴愬姛`锛�7锛�/ `鍑虹珯涓婁紶澶辫触`锛�8锛� +- [x] Commit: `91e3264` + +### Task 11: StockService 缁勭洏/鎷嗙洏 MES 寮傛 鉁� + +**Files:** Modify `WIDESEA_StockService/StockSerivce.cs` + +- [x] `GroupPalletConfirmAsync` 鈫� `BindContainer` 鏀逛负 `Task.Run` 寮傛 + - 鎴愬姛: `MesUploadStatusEnum.缁勭洏涓婁紶鎴愬姛`锛�1锛� + - 澶辫触: `MesUploadStatusEnum.缁勭洏涓婁紶澶辫触`锛�2锛� +- [x] `SplitPalletConfirmAsync` 鈫� `UnBindContainer` 鏀逛负 `Task.Run` 寮傛 + - 鎴愬姛: `MesUploadStatusEnum.鎷嗙洏涓婁紶鎴愬姛`锛�3锛� + - 澶辫触: `MesUploadStatusEnum.鎷嗙洏涓婁紶澶辫触`锛�4锛� +- [x] 淇濈暀鍔ㄦ�� Token 鑾峰彇閫昏緫锛坄ResolveMesConfig`锛� +- [x] Commit: `4506a1e` + +### Task 12: StockInfoDetailController MES 寮傛 + 鍔ㄦ�佸嚟璇� 鉁� + +**Files:** Modify `WIDESEA_WMSServer/Controllers/Stock/StockInfoDetailController.cs` + +- [x] `BindContainer` 鏀逛负 `Task.Run` 寮傛 鈫� `MesUploadStatusEnum.缁勭洏涓婁紶鎴愬姛/澶辫触` +- [x] `UnbindContainer` 鏀逛负 `Task.Run` 寮傛 鈫� `MesUploadStatusEnum.鎷嗙洏涓婁紶鎴愬姛/澶辫触` +- [x] `ContainerNgReport` 鏀逛负 `Task.Run` 寮傛 鈫� `MesUploadStatusEnum.NG涓婃姤鎴愬姛/澶辫触` +- [x] 纭紪鐮� `"STK-GROUP-001"` 鏀逛负 `_mesDeviceConfigService.GetByDeviceName()` 鍔ㄦ�佽幏鍙� +- [x] 娉ㄥ叆 `IMESDeviceConfigService` +- [x] Commit: `57feefd` 鈫� `c36c5c6` + +### Task 13: StockInfoController MES 寮傛 + 鍔ㄦ�佸嚟璇� 鉁� + +**Files:** Modify `WIDESEA_WMSServer/Controllers/Stock/StockInfoController.cs` + +- [x] `InboundInContainer` 鏀逛负 `Task.Run` 寮傛 鈫� `MesUploadStatusEnum.杩涚珯涓婁紶鎴愬姛/澶辫触` +- [x] `OutboundInContainer` 鏀逛负 `Task.Run` 寮傛 鈫� `MesUploadStatusEnum.鍑虹珯涓婁紶鎴愬姛/澶辫触` +- [x] 纭紪鐮� `"STK-GROUP-001"` 鏀逛负鍩轰簬 `stockInfo.Remark` 鍔ㄦ�侀�夋嫨璁惧鍚嶆煡璇� MES 鍑瘉 +- [x] 娉ㄥ叆 `IMESDeviceConfigService` 鍜� `IStockInfoService` +- [x] Commit: `343d512` 鈫� `fba665e` + +### Task 14: TaskService_Inbound 杩涚珯 MES 寮傛 鉁� + +**Files:** Modify `WIDESEA_TaskInfoService/WCS/TaskService_Inbound.cs` + +- [x] `InboundInContainer` 鏀逛负 `Task.Run` 寮傛鎵ц +- [x] 浣跨敤 `MesUploadStatusEnum.杩涚珯涓婁紶鎴愬姛`锛�5锛�/ `杩涚珯涓婁紶澶辫触`锛�6锛� +- [x] 淇濈暀鍔ㄦ�� MES 鍑瘉鑾峰彇閫昏緫锛坄_mesDeviceConfigService.GetByDeviceName`锛� +- [x] `CompleteTaskAsync` 绔嬪嵆杩斿洖锛屼笉绛夊緟 MES 缁撴灉 +- [x] Commit: `63ca4ac` + +--- + +## Phase 3: 鍓嶇 + +### Task 7: stockInfo.vue 鏂板 MES 鐘舵�佸垪 鉁� + +**Files:** Modify `WIDESEA_WMSClient/src/views/stock/stockInfo.vue` + +- [x] columns 涓� `stockStatus` 涔嬪悗鏂板 `mesUploadStatus` 鍒楋紙bind: mesUploadStatusEnum锛� +- [x] `loadStockStatusOptions` 鏀逛负鍚屾椂鍔犺浇 `stockStatusEmun` + `mesUploadStatusEnum` +- [x] Commit: `9a1c82a` + +### Task 8: stock.jsx 鏂板缁勭洏/鎷嗙洏鎸夐挳 鉁� + +**Files:** Modify `WIDESEA_WMSClient/src/extension/stock/stock.jsx` + +- [x] `onInited` 涓敞鍏� `editTableButtons`锛氱粍鐩� + 鎷嗙洏 +- [x] `onGroupPallet` 鈫� POST `/Stock/GroupPalletConfirm` +- [x] `onSplitPallet` 鈫� POST `/Stock/SplitPalletConfirm` +- [x] Commit: `0be9278` + +--- + +## Phase 4: 鏋勫缓楠岃瘉 + +### Task 10: 鏋勫缓楠岃瘉 鉁� + +- [x] 鍚庣 `dotnet build WIDESEA_WMSServer.sln` 鈫� 0 閿欒 +- [x] 鍓嶇 `npm run build` 鈫� 0 閿欒 + +--- + +## MES 璋冪敤鐐瑰叏瑕嗙洊 + +| 浣嶇疆 | 鏂规硶 | MES鎺ュ彛 | 鐘舵�佹灇涓� | 鍔ㄦ�佸嚟璇� | 寮傛 | +|------|------|---------|---------|---------|------| +| `StockSerivce.cs` | `GroupPalletConfirmAsync` | `BindContainer` | 1鎴愬姛/2澶辫触 | 鉁� ResolveMesConfig | 鉁� | +| `StockSerivce.cs` | `SplitPalletConfirmAsync` | `UnBindContainer` | 3鎴愬姛/4澶辫触 | 鉁� ResolveMesConfig | 鉁� | +| `TaskService_Inbound.cs` | `InboundFinishTaskAsync` | `InboundInContainer` | 5鎴愬姛/6澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `TaskService_Outbound.cs` | `OutboundFinishTaskAsync` | `OutboundInContainer` | 7鎴愬姛/8澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `StockInfoController.cs` | `InboundInContainer` | `InboundInContainer` | 5鎴愬姛/6澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `StockInfoController.cs` | `OutboundInContainer` | `OutboundInContainer` | 7鎴愬姛/8澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `StockInfoDetailController.cs` | `BindContainer` | `BindContainer` | 1鎴愬姛/2澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `StockInfoDetailController.cs` | `UnbindContainer` | `UnBindContainer` | 3鎴愬姛/4澶辫触 | 鉁� MESDeviceConfigService | 鉁� | +| `StockInfoDetailController.cs` | `ContainerNgReport` | `ContainerNgReport` | 9鎴愬姛/10澶辫触 | 鉁� MESDeviceConfigService | 鉁� | + +--- + +## 鑷娓呭崟 + +- [x] `MesUploadStatusEnum` 鏋氫妇鍊煎鏁颁负鎴愬姛锛屽伓鏁颁负澶辫触 +- [x] 鎵�鏈� MES 璋冪敤閫氳繃 `Task.Run` 寮傛鎵ц锛屼笉闃诲涓婚�昏緫 +- [x] 鎵�鏈� MES 璋冪敤璁板綍璇︾粏鏃ュ織锛堟墭鐩樺彿銆佹帴鍙g被鍨嬨�佽姹侸SON銆佸搷搴擩SON銆佽�楁椂銆佺姸鎬併�侀敊璇師鍥狅級 +- [x] 鎵�鏈� MES 鍑瘉鍔ㄦ�佽幏鍙栵紝涓嶅啀纭紪鐮� `"STK-GROUP-001"` +- [x] 鍓嶇缁勭洏/鎷嗙洏鎸夐挳姝g‘璋冪敤 `GroupPalletConfirmAsync` / `SplitPalletConfirmAsync` +- [x] `stockInfo.vue` 姝g‘鏄剧ず `mesUploadStatus` 瀛楁 +- [x] 鎵�鏈� public 鏂规硶鍧囨湁 XML 鏂囨。娉ㄩ噴 +- [x] 鏁版嵁搴撹剼鏈惈 IF NOT EXISTS 闃叉閲嶅娣诲姞 +- [x] 鍚庣鍜屽墠绔潎鍙甯哥紪璇戞瀯寤猴紙0 閿欒锛� \ No newline at end of file -- Gitblit v1.9.3