From 2c889b38311883ceb703c4e0034c798fdaa2e21c Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 12 八月 2025 23:11:57 +0800
Subject: [PATCH] 更新代码,货位分配优化等

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
index ffd078d..4c88553 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -100,10 +100,12 @@
                     };
                     string MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                     float Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
-                    if (MaterielCode != null && Quantity != null)
+                    string BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
+                    if (MaterielCode != null && Quantity != null && BatchNo != null)
                     {
                         taskOut.MaterielCode = MaterielCode;
                         taskOut.Quantity = Quantity;
+                        taskOut.BatchNo = BatchNo;
                     }
                     stockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾;
                     LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus;
@@ -181,10 +183,12 @@
                     };
                     string MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                     float Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
-                    if (MaterielCode != null && Quantity != null)
+                    string BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
+                    if (MaterielCode != null && Quantity != null && BatchNo != null)
                     {
                         taskOut.MaterielCode = MaterielCode;
                         taskOut.Quantity = Quantity;
+                        taskOut.BatchNo = BatchNo;
                     }
                     stockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾;
                     LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus;
@@ -264,10 +268,12 @@
                     };
                     string MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                     float Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
-                    if (MaterielCode != null && Quantity != null)
+                    string BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
+                    if (MaterielCode != null && Quantity != null && BatchNo != null)
                     {
                         taskOut.MaterielCode = MaterielCode;
                         taskOut.Quantity = Quantity;
+                        taskOut.BatchNo = BatchNo;
                     }
                     stockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾;
                     LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus;
@@ -333,10 +339,12 @@
                 };
                 string MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                 float Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
-                if (MaterielCode != null && Quantity != null)
+                string BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
+                if (MaterielCode != null && Quantity != null && BatchNo != null)
                 {
                     taskIn.MaterielCode = MaterielCode;
                     taskIn.Quantity = Quantity;
+                    taskIn.BatchNo = BatchNo;
                 }
                 //鏇存敼搴撳瓨鐘舵��
                 stockInfo.StockStatus = StockStatusEmun.閫�搴�.ObjToInt();
@@ -517,6 +525,7 @@
         /// <returns></returns>
         public MesResponseContent SubstrateOut(SubstrateOutModel model)
         {
+            MesResponseContent content = new MesResponseContent();
             try
             {
                 string line = string.Empty;
@@ -531,15 +540,15 @@
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == line);
                 if (warehouse == null)
                 {
-                    return MesResponseContent.Instance.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�");
+                    return content.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�");
                 }
 
                 Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterialCode);
                 if (materielInfo == null)
                 {
-                    return MesResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡淇℃伅");
+                    return content.Error($"鏈壘鍒拌鐗╂枡淇℃伅");
                 }
-
+                //鐢熸垚MES鏉挎枡鍑哄簱鍗曟嵁
                 Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder()
                 {
                     CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
@@ -555,7 +564,6 @@
                 };
 
                 List<Dt_Task> tasks = new List<Dt_Task>();
-
                 List<Dt_StockInfo>? stockInfos = null;
                 List<Dt_OutStockLockInfo>? outStockLockInfos = null;
                 List<Dt_LocationInfo>? locationInfos = null;
@@ -598,23 +606,26 @@
                 _outboundService.MesOutboundOrderService.Repository.AddData(mesOutboundOrder);
                 if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
                 {
-                    WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks);
+                    WebResponseContent contentResponse = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks);
 
-                    if (!content.Status)
+                    if (!contentResponse.Status)
                     {
                         _unitOfWorkManage.RollbackTran();
-                        return MesResponseContent.Instance.Error(content.Message);
+                        return content.Error(contentResponse.Message);
                     }
                 }
                 _unitOfWorkManage.CommitTran();
                 PushTasksToWCS(tasks);
-
-
-                return MesResponseContent.Instance.OK();
+                //灏嗗紑鏂欏垎閰嶇殑搴撳瓨鎵樼洏杩斿洖缁橫ES
+                content.Content = new
+                {
+                    VehicleCode = stockInfos?.Select(x => x.PalletCode).ToList()
+                };
+                return content.OK();
             }
             catch (Exception ex)
             {
-                return MesResponseContent.Instance.Error(ex.Message);
+                return content.Error(ex.Message);
             }
         }
 
@@ -1059,10 +1070,12 @@
                 };
                 string MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
                 float Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
-                if (MaterielCode != null && Quantity != null)
+                string BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo;
+                if (MaterielCode != null && Quantity != null && BatchNo != null)
                 {
                     newTask.MaterielCode = MaterielCode;
                     newTask.Quantity = Quantity;
+                    newTask.BatchNo = BatchNo;
                 }
                 LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                 _unitOfWorkManage.BeginTran();

--
Gitblit v1.9.3