From c827fe7b0c5b3b444d76ba0d96a2649c764630dd Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 14 十一月 2024 16:36:08 +0800
Subject: [PATCH] 修改WCS、WMS出入库逻辑

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs |   50 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 32 insertions(+), 18 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs"
index faceb44..663a4f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutStockLockInfoService.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -18,29 +19,42 @@
         public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal) : base(BaseDal)
         {
         }
-
+        /// <summary>
+        /// 娣诲姞鍑哄簱璇︽儏
+        /// </summary>
+        /// <param name="outboundOrder"></param>
+        /// <param name="outboundOrderDetail"></param>
+        /// <param name="outStocks"></param>
+        /// <param name="taskNum"></param>
+        /// <returns></returns>
         public List<Dt_OutStockLockInfo> GetOutStockLockInfos(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, List<Dt_StockInfo> outStocks, int? taskNum = null)
         {
             List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
-
+            var OutStockLockInfos = GetByOrderDetailId(outboundOrderDetail.Id);
             foreach (var item in outStocks)
             {
-                Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo()
+                Dt_OutStockLockInfo outStockLockInfo = OutStockLockInfos.FirstOrDefault(x => x.StockId == item.Id && x.OrderDetailId == outboundOrderDetail.Id);
+                if (outStockLockInfo == null)
                 {
-                    PalletCode = item.PalletCode,
-                    AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity),
-                    MaterielCode = outboundOrderDetail.MaterielCode,
-                    BatchNo = outboundOrderDetail.BatchNo,
-                    LocationCode = item.LocationCode,
-                    MaterielName = outboundOrderDetail.MaterielName,
-                    OrderDetailId = outboundOrderDetail.Id,
-                    OrderNo = outboundOrder.OrderNo,
-                    OrderType = outboundOrder.OrderType,
-                    OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity),
-                    Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt(),
-                    StockId = item.Id,
-                    TaskNum = taskNum
-                };
+                    outStockLockInfo = new Dt_OutStockLockInfo()
+                    {
+                        PalletCode = item.PalletCode,
+                        AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity),
+                        MaterielCode = outboundOrderDetail.MaterielCode,
+                        BatchNo = item.Details.Select(x => x.BatchNo).FirstOrDefault(),
+                        //BatchNo = outboundOrderDetail.BatchNo,
+                        LocationCode = item.LocationCode,
+                        MaterielName = outboundOrderDetail.MaterielName,
+                        OrderDetailId = outboundOrderDetail.Id,
+                        OrderNo = outboundOrder.OrderNo,
+                        OrderType = outboundOrder.OrderType,
+                        OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity),
+                        //Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt(),
+                        StockId = item.Id,
+                        TaskNum = taskNum
+                    };
+                }
+                outStockLockInfo.Status = taskNum == null ? OutStockStatus.宸插垎閰�.ObjToInt() : OutStockStatus.鍑哄簱涓�.ObjToInt();
                 outStockLockInfos.Add(outStockLockInfo);
             }
 

--
Gitblit v1.9.3