编辑 | blame | 历史 | 原始文档

任务库存历史记录实现计划

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_HtyServiceIStockInfo_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: 构建验证
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
  • [ ] Step 4: 提交
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): 注入ITask_HtyService和IStockInfo_HtyService"

Task 2: 修改 CompleteTaskAsync 添加任务历史保存

Files:
- Modify: WIDESEA_TaskInfoService/TaskService.csCompleteTaskAsync 方法)

  • [ ] 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: 构建验证
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
  • [ ] Step 4: 提交
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: 构建验证
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
  • [ ] Step 5: 提交
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): 任务完成方法传入正确的OperateType"

Task 4: InboundFinishTaskTrayAsync 添加历史保存

Files:
- Modify: WIDESEA_TaskInfoService/TaskService.csInboundFinishTaskTrayAsync 方法,约第 403 行)

  • [ ] Step 1: 在删除任务前添加任务历史和库存历史保存

var deleteResult = await BaseDal.DeleteDataAsync(task); 之前添加:

// 保存任务历史
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: 构建验证
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
  • [ ] Step 3: 提交
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): InboundFinishTaskTrayAsync添加任务和库存历史保存"

Task 5: OutboundFinishTaskTrayAsync 添加历史保存

Files:
- Modify: WIDESEA_TaskInfoService/TaskService.csOutboundFinishTaskTrayAsync 方法,约第 487 行)

  • [ ] Step 1: 在删除任务前添加任务历史和库存历史保存

var deleteResult = await BaseDal.DeleteDataAsync(task); 之前添加:

// 保存任务历史
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: 构建验证
cd WIDESEA_WMSServer && dotnet build WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj
  • [ ] Step 3: 提交
git add WIDESEA_TaskInfoService/TaskService.cs
git commit -m "feat(TaskService): OutboundFinishTaskTrayAsync添加任务和库存历史保存"

Task 6: 整体构建验证

  • [ ] Step 1: 构建整个解决方案
cd WIDESEA_WMSServer && dotnet build WIDESEA_WMSServer.sln

确认无编译错误。


验证检查清单

  • [ ] ITask_HtyServiceIStockInfo_HtyService 已注入
  • [ ] CompleteTaskAsync 签名已修改为带 operateType 参数
  • [ ] InboundFinishTaskAsync 传入 "入库完成"
  • [ ] OutboundFinishTaskAsync 传入 "出库完成"
  • [ ] RelocationFinishTaskAsync 传入 "移库完成"
  • [ ] InboundFinishTaskTrayAsync 添加了任务历史和库存历史
  • [ ] OutboundFinishTaskTrayAsync 添加了任务历史和库存历史
  • [ ] 解决方案构建无错误