From 96c9142944da3b9f6ebfc63e17451b9b330e5a72 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 31 三月 2026 09:28:35 +0800
Subject: [PATCH] docs: 添加 TaskService 重构设计文档
---
Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs | 86 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 83 insertions(+), 3 deletions(-)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
index 8e3c669..c253b80 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
@@ -1,7 +1,9 @@
锘縰sing SqlSugar;
using WIDESEA_Common.StockEnum;
using WIDESEA_Core;
+using WIDESEA_DTO.MES;
using WIDESEA_DTO.Stock;
+using WIDESEA_IBasicService;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
@@ -33,6 +35,11 @@
public IStockInfo_HtyService StockInfo_HtyService { get; }
/// <summary>
+ /// Mes鎺ュ彛鏈嶅姟
+ /// </summary>
+ public IMesService _mesService { get; }
+
+ /// <summary>
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="stockInfoDetailService">搴撳瓨鏄庣粏鏈嶅姟</param>
@@ -43,12 +50,14 @@
IStockInfoDetailService stockInfoDetailService,
IStockInfoService stockInfoService,
IStockInfoDetail_HtyService stockInfoDetail_HtyService,
- IStockInfo_HtyService stockInfo_HtyService)
+ IStockInfo_HtyService stockInfo_HtyService,
+ IMesService mesService)
{
StockInfoDetailService = stockInfoDetailService;
StockInfoService = stockInfoService;
StockInfoDetail_HtyService = stockInfoDetail_HtyService;
StockInfo_HtyService = stockInfo_HtyService;
+ _mesService = mesService;
}
/// <summary>
@@ -120,6 +129,20 @@
Status = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
}).ToList();
+ var bindRequest = new BindContainerRequest
+ {
+ ContainerCode = stock?.TargetPalletNo,
+ EquipmentCode = "STK-GROUP-001",
+ ResourceCode = "STK-GROUP-001",
+ LocalTime = now,
+ OperationType = 0, // 0浠h〃缁勭洏
+ ContainerSfcList = details.Select(d => new ContainerSfcItem
+ {
+ Sfc = d.SerialNumber,
+ Location = d.InboundOrderRowNo.ToString(),
+ }).ToList()
+ };
+
return await ExecuteWithinTransactionAsync(async () =>
{
var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
@@ -140,9 +163,15 @@
Creater = "system",
Details = details
};
-
result = StockInfoService.Repository.AddData(entity, x => x.Details);
- return result ? content.OK("缁勭洏鎴愬姛") : content.Error("缁勭洏澶辫触");
+ if (!result) return content.Error("缁勭洏澶辫触");
+
+ var mesResult = _mesService.BindContainer(bindRequest);
+ if (mesResult == null || mesResult.Data == null || !mesResult.Data.IsSuccess)
+ {
+ return content.Error($"缁勭洏鎴愬姛锛屼絾MES缁戝畾澶辫触: {mesResult?.Data?.Msg ?? mesResult?.ErrorMessage ?? "鏈煡閿欒"}");
+ }
+ return content.OK("缁勭洏鎴愬姛");
});
}
catch (Exception ex)
@@ -203,9 +232,45 @@
if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock, targetStock }, "鎹㈢洏")) <= 0)
return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+ // 璋冪敤MES瑙g粦婧愭墭鐩樼數鑺�
+ var unbindRequest = new UnBindContainerRequest
+ {
+ EquipmentCode = "STK-GROUP-001",
+ ResourceCode = "STK-GROUP-001",
+ LocalTime = DateTime.Now,
+ ContainCode = stock.SourcePalletNo,
+ SfcList = detailEntities.Select(d => d.SerialNumber).ToList()
+ };
+ var unbindResult = _mesService.UnBindContainer(unbindRequest);
+ if (unbindResult == null || unbindResult.Data == null || !unbindResult.Data.IsSuccess)
+ {
+ return content.Error($"鎹㈢洏鎴愬姛锛屼絾MES瑙g粦澶辫触: {unbindResult?.Data?.Msg ?? unbindResult?.ErrorMessage ?? "鏈煡閿欒"}");
+ }
+
detailEntities.ForEach(d => d.StockId = targetStock.Id);
var result = await StockInfoDetailService.Repository.UpdateDataAsync(detailEntities);
if (!result) return content.Error("鎹㈢洏澶辫触");
+
+ // 璋冪敤MES缁戝畾鐩爣鎵樼洏鐢佃姱
+ var bindRequest = new BindContainerRequest
+ {
+ ContainerCode = stock.TargetPalletNo,
+ EquipmentCode = "STK-GROUP-001",
+ ResourceCode = "STK-GROUP-001",
+ LocalTime = DateTime.Now,
+ OperationType = 0,
+ ContainerSfcList = detailEntities.Select(d => new ContainerSfcItem
+ {
+ Sfc = d.SerialNumber,
+ Location = d.InboundOrderRowNo.ToString()
+ }).ToList()
+ };
+ var bindResult = _mesService.BindContainer(bindRequest);
+ if (bindResult == null || bindResult.Data == null || !bindResult.Data.IsSuccess)
+ {
+ return content.Error($"鎹㈢洏鎴愬姛锛屼絾MES缁戝畾澶辫触: {bindResult?.Data?.Msg ?? bindResult?.ErrorMessage ?? "鏈煡閿欒"}");
+ }
+
return content.OK("鎹㈢洏鎴愬姛");
});
}
@@ -250,6 +315,21 @@
if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock }, "鎷嗙洏")) <= 0)
return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+ // 璋冪敤MES瑙g粦鐢佃姱
+ var unbindRequest = new UnBindContainerRequest
+ {
+ EquipmentCode = "STK-GROUP-001",
+ ResourceCode = "STK-GROUP-001",
+ LocalTime = DateTime.Now,
+ ContainCode = stock.SourcePalletNo,
+ SfcList = detailEntities.Select(d => d.SerialNumber).ToList()
+ };
+ var unbindResult = _mesService.UnBindContainer(unbindRequest);
+ if (unbindResult == null || unbindResult.Data == null || !unbindResult.Data.IsSuccess)
+ {
+ return content.Error($"鎷嗙洏鎴愬姛锛屼絾MES瑙g粦澶辫触: {unbindResult?.Data?.Msg ?? unbindResult?.ErrorMessage ?? "鏈煡閿欒"}");
+ }
+
var result = await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities);
if (!result) return content.Error("鎷嗙洏澶辫触");
return content.OK("鎷嗙洏鎴愬姛");
--
Gitblit v1.9.3