From 715cf4c8b9e097aae6c4bcaf00bdd67a763529c4 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 30 三月 2026 13:58:09 +0800
Subject: [PATCH] feat(stockChat): 集成 SignalR 实现实时库存更新

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
index 8f98594..c253b80 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
@@ -232,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("鎹㈢洏鎴愬姛");
                 });
             }
@@ -279,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