From 18d1f45193e34e00fc1b6f65b8596ddb29c5267d Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 24 十二月 2024 15:32:43 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService_Pick.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 45 insertions(+), 6 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService_Pick.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService_Pick.cs"
index d682cdc..e5e22ed 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService_Pick.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService_Pick.cs"
@@ -9,15 +9,20 @@
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
 using WIDESEA_IOutboundRepository;
+using WIDESEA_IRecordService;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_IOutboundService
 {
-    public partial class OutStockLockInfoService : ServiceBase<Dt_OutStockLockInfo, IOutStockLockInfoRepository>, IOutStockLockInfoService
+    public partial class OutStockLockInfoService
     {
-        IStockService _stockService;
 
+        /// <summary>
+        /// 鍒嗘嫞
+        /// </summary>
+        /// <param name="palletCode">鎵樼洏鍙�</param>
+        /// <returns></returns>
         public WebResponseContent MaterialPick(string palletCode)
         {
             try
@@ -27,16 +32,50 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鎵樼洏搴撳瓨淇℃伅");
                 }
+                if (stockInfo.StockStatus != StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt())
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樿繕鏈嚭搴撳畬鎴�");
+                }
                 List<Dt_OutStockLockInfo> outStockLockInfos = Repository.QueryData(x => x.PalletCode == palletCode);
                 for (int i = 0; i < outStockLockInfos.Count; i++)
                 {
-                    float assignQuantity = outStockLockInfos[i].AssignQuantity;
-                    List<Dt_StockInfoDetail> stockInfoDetails = stockInfo.Details.Where(x => x.MaterielCode == outStockLockInfos[i].MaterielCode).ToList();
-                    for (int j = 0; j < stockInfoDetails.Count; j++)
+                    outStockLockInfos[i].Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+                }
+                List<Dt_StockInfoDetail> beforeDetaile = stockInfo.Details.GroupBy(x => x.MaterielCode).Select(x => new Dt_StockInfoDetail { MaterielCode = x.Key, StockQuantity = x.Sum(v => v.StockQuantity) }).ToList();
+
+                List<Dt_StockInfoDetail> updateDetailList = new List<Dt_StockInfoDetail>();
+                List<Dt_StockInfoDetail> deleteDetailList = new List<Dt_StockInfoDetail>();
+                for (int i = 0; i < stockInfo.Details.Count; i++)
+                {
+                    if (stockInfo.Details[i].OutboundQuantity > 0)
                     {
-                       // if(assignQuantity > stockInfoDetails[j])
+                        if (stockInfo.Details[i].StockQuantity > stockInfo.Details[i].OutboundQuantity)
+                        {
+                            stockInfo.Details[i].StockQuantity -= stockInfo.Details[i].OutboundQuantity;
+                            updateDetailList.Add(stockInfo.Details[i]);
+                        }
+                        else
+                        {
+                            deleteDetailList.Add(stockInfo.Details[i]);
+                        }
                     }
                 }
+
+                List<string> mCodes = stockInfo.Details.GroupBy(x => x.MaterielCode).Select(x => x.Key).ToList();
+                foreach (string code in mCodes)
+                {
+                    _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, updateDetailList, deleteDetailList, StockChangeTypeEnum.Outbound);
+                }
+
+                updateDetailList.ForEach(x =>
+                {
+                    x.OutboundQuantity = 0;
+                });
+
+                //_stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(deleteDetailList, OperateTypeEnum.鑷姩瀹屾垚);
+                _stockService.StockInfoDetailService.Repository.UpdateData(updateDetailList);
+                BaseDal.UpdateData(outStockLockInfos);
+
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)

--
Gitblit v1.9.3