wanshenmean
2026-03-30 0a297d2989e7bf8c23f7495a1465e85749213ae5
docs: 添加任务库存历史记录实现计划
已添加1个文件
273 ■■■■■ 文件已修改
Code/WMS/docs/superpowers/plans/2026-03-30-任务库存历史记录实现计划.md 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WMS/docs/superpowers/plans/2026-03-30-ÈÎÎñ¿â´æÀúÊ·¼Ç¼ʵÏּƻ®.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,273 @@
# ä»»åŠ¡åº“å­˜åŽ†å²è®°å½•å®žçŽ°è®¡åˆ’
> **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 (`- [ ]`) syntax for tracking.
**Goal:** åœ¨ TaskService çš„任务完成方法中添加任务历史和库存历史保存。
**Architecture:** æ³¨å…¥ `ITask_HtyService` å’Œ `IStockInfo_HtyService`,修改 `CompleteTaskAsync` æ·»åŠ åŽ†å²ä¿å­˜ï¼Œä¸¤ä¸ªç©ºæ‰˜ç›˜æ–¹æ³•å†…è”æ·»åŠ åŽ†å²ä¿å­˜ã€‚
**Tech Stack:** ASP.NET Core 6.0, MapsterMapper, SqlSugar
---
## ä»»åŠ¡æ€»è§ˆ
| ä»»åŠ¡ | å†…容 |
|------|------|
| Task 1 | æ³¨å…¥æœåŠ¡ï¼ˆITask_HtyService, IStockInfo_HtyService) |
| Task 2 | ä¿®æ”¹ CompleteTaskAsync æ·»åŠ ä»»åŠ¡åŽ†å²ä¿å­˜ |
| Task 3 | ä¿®æ”¹ 3 ä¸ªè°ƒç”¨æ–¹ä¼ å…¥ operateType |
| Task 4 | InboundFinishTaskTrayAsync æ·»åŠ åŽ†å²ä¿å­˜ |
| Task 5 | OutboundFinishTaskTrayAsync æ·»åŠ åŽ†å²ä¿å­˜ |
---
## Task 1: æ³¨å…¥åŽ†å²æœåŠ¡
**Files:**
- Modify: `WIDESEA_TaskInfoService/TaskService.cs`
- [ ] **Step 1: æ·»åŠ å­—æ®µ**
在 `_mesService` å­—段后添加:
```csharp
private readonly ITask_HtyService _task_HtyService;
private readonly IStockInfo_HtyService _stockInfo_HtyService;
```
- [ ] **Step 2: ä¿®æ”¹æž„造函数**
在构造函数参数中添加:
```csharp
ITask_HtyService task_HtyService,
IStockInfo_HtyService stockInfo_HtyService,
```
在构造函数体内添加:
```csharp
_task_HtyService = task_HtyService;
_stockInfo_HtyService = stockInfo_HtyService;
```
- [ ] **Step 3: æž„建验证**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
```
- [ ] **Step 4: æäº¤**
```bash
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): æ³¨å…¥ITask_HtyService和IStockInfo_HtyService"
```
---
## Task 2: ä¿®æ”¹ CompleteTaskAsync æ·»åŠ ä»»åŠ¡åŽ†å²ä¿å­˜
**Files:**
- Modify: `WIDESEA_TaskInfoService/TaskService.cs`(`CompleteTaskAsync` æ–¹æ³•)
- [ ] **Step 1: ä¿®æ”¹æ–¹æ³•签名**
将:
```csharp
private async Task<WebResponseContent> CompleteTaskAsync(Dt_Task task)
```
修改为:
```csharp
private async Task<WebResponseContent> CompleteTaskAsync(Dt_Task task, string operateType)
```
- [ ] **Step 2: ä¿®æ”¹åŽ†å²ä¿å­˜é€»è¾‘**
将:
```csharp
var historyTask = _mapper.Map<Dt_Task_Hty>(task);
historyTask.InsertTime = DateTime.Now;
```
修改为:
```csharp
var historyTask = _mapper.Map<Dt_Task_Hty>(task);
historyTask.InsertTime = DateTime.Now;
historyTask.OperateType = operateType;
var saveResult = await _task_HtyService.Repository.AddDataAsync(historyTask) > 0;
if (!saveResult) return WebResponseContent.Instance.Error("任务历史保存失败");
```
- [ ] **Step 3: æž„建验证**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
```
- [ ] **Step 4: æäº¤**
```bash
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): CompleteTaskAsync添加任务历史保存逻辑"
```
---
## Task 3: ä¿®æ”¹ 3 ä¸ªè°ƒç”¨æ–¹ä¼ å…¥ operateType
**Files:**
- Modify: `WIDESEA_TaskInfoService/TaskService.cs`
- [ ] **Step 1: ä¿®æ”¹ InboundFinishTaskAsync çš„ CompleteTaskAsync è°ƒç”¨**
将:
```csharp
return await CompleteTaskAsync(task);
```
修改为:
```csharp
return await CompleteTaskAsync(task, "入库完成");
```
- [ ] **Step 2: ä¿®æ”¹ OutboundFinishTaskAsync çš„ CompleteTaskAsync è°ƒç”¨**
将:
```csharp
return await CompleteTaskAsync(task);
```
修改为:
```csharp
return await CompleteTaskAsync(task, "出库完成");
```
- [ ] **Step 3: ä¿®æ”¹ RelocationFinishTaskAsync çš„ CompleteTaskAsync è°ƒç”¨**
将:
```csharp
return await CompleteTaskAsync(task);
```
修改为:
```csharp
return await CompleteTaskAsync(task, "移库完成");
```
- [ ] **Step 4: æž„建验证**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
```
- [ ] **Step 5: æäº¤**
```bash
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): ä»»åŠ¡å®Œæˆæ–¹æ³•ä¼ å…¥æ­£ç¡®çš„OperateType"
```
---
## Task 4: InboundFinishTaskTrayAsync æ·»åŠ åŽ†å²ä¿å­˜
**Files:**
- Modify: `WIDESEA_TaskInfoService/TaskService.cs`(`InboundFinishTaskTrayAsync` æ–¹æ³•,约第 403 è¡Œï¼‰
- [ ] **Step 1: åœ¨åˆ é™¤ä»»åŠ¡å‰æ·»åŠ ä»»åŠ¡åŽ†å²å’Œåº“å­˜åŽ†å²ä¿å­˜**
在 `var deleteResult = await BaseDal.DeleteDataAsync(task);` ä¹‹å‰æ·»åŠ ï¼š
```csharp
// ä¿å­˜ä»»åŠ¡åŽ†å²
var historyTask = _mapper.Map<Dt_Task_Hty>(task);
historyTask.InsertTime = DateTime.Now;
historyTask.OperateType = "空托盘入库完成";
if (await _task_HtyService.Repository.AddDataAsync(historyTask) <= 0)
    return content.Error("任务历史保存失败");
// ä¿å­˜åº“存历史
var historyStock = _mapper.Map<Dt_StockInfo_Hty>(stockInfo);
historyStock.InsertTime = DateTime.Now;
historyStock.OperateType = "空托盘入库完成";
if (await _stockInfo_HtyService.Repository.AddDataAsync(historyStock) <= 0)
    return content.Error("库存历史保存失败");
```
- [ ] **Step 2: æž„建验证**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
```
- [ ] **Step 3: æäº¤**
```bash
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): InboundFinishTaskTrayAsync添加任务和库存历史保存"
```
---
## Task 5: OutboundFinishTaskTrayAsync æ·»åŠ åŽ†å²ä¿å­˜
**Files:**
- Modify: `WIDESEA_TaskInfoService/TaskService.cs`(`OutboundFinishTaskTrayAsync` æ–¹æ³•,约第 487 è¡Œï¼‰
- [ ] **Step 1: åœ¨åˆ é™¤ä»»åŠ¡å‰æ·»åŠ ä»»åŠ¡åŽ†å²å’Œåº“å­˜åŽ†å²ä¿å­˜**
在 `var deleteResult = await BaseDal.DeleteDataAsync(task);` ä¹‹å‰æ·»åŠ ï¼š
```csharp
// ä¿å­˜ä»»åŠ¡åŽ†å²
var historyTask = _mapper.Map<Dt_Task_Hty>(task);
historyTask.InsertTime = DateTime.Now;
historyTask.OperateType = "空托盘出库完成";
if (await _task_HtyService.Repository.AddDataAsync(historyTask) <= 0)
    return content.Error("任务历史保存失败");
// ä¿å­˜åº“存历史
var historyStock = _mapper.Map<Dt_StockInfo_Hty>(stockInfo);
historyStock.InsertTime = DateTime.Now;
historyStock.OperateType = "空托盘出库完成";
if (await _stockInfo_HtyService.Repository.AddDataAsync(historyStock) <= 0)
    return content.Error("库存历史保存失败");
```
- [ ] **Step 2: æž„建验证**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
```
- [ ] **Step 3: æäº¤**
```bash
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): OutboundFinishTaskTrayAsync添加任务和库存历史保存"
```
---
## Task 6: æ•´ä½“构建验证
- [ ] **Step 1: æž„建整个解决方案**
```bash
cd WIDESEA_WMSServer && dotnet build WIDESEA_WMSServer.sln
```
确认无编译错误。
---
## éªŒè¯æ£€æŸ¥æ¸…单
- [ ] `ITask_HtyService` å’Œ `IStockInfo_HtyService` å·²æ³¨å…¥
- [ ] `CompleteTaskAsync` ç­¾åå·²ä¿®æ”¹ä¸ºå¸¦ `operateType` å‚æ•°
- [ ] `InboundFinishTaskAsync` ä¼ å…¥ `"入库完成"`
- [ ] `OutboundFinishTaskAsync` ä¼ å…¥ `"出库完成"`
- [ ] `RelocationFinishTaskAsync` ä¼ å…¥ `"移库完成"`
- [ ] `InboundFinishTaskTrayAsync` æ·»åŠ äº†ä»»åŠ¡åŽ†å²å’Œåº“å­˜åŽ†å²
- [ ] `OutboundFinishTaskTrayAsync` æ·»åŠ äº†ä»»åŠ¡åŽ†å²å’Œåº“å­˜åŽ†å²
- [ ] è§£å†³æ–¹æ¡ˆæž„建无错误