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.cs |   94 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 1 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs"
index 2c0c087..5f7d14d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutStockLockInfoService.cs"
@@ -4,20 +4,112 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.StockEnum;
+using WIDESEA_Core;
 using WIDESEA_Core.BaseServices;
 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
     {
+
+        private readonly IStockService _stockService;
+        private readonly IRecordService _recordService;
+
         public IOutStockLockInfoRepository Repository => BaseDal;
 
-        public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal) : base(BaseDal)
+
+        public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal, IStockService stockService, IRecordService recordService) : base(BaseDal)
         {
+            _recordService = recordService;
+            _stockService = stockService;
+        }
+
+        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>();
+
+            foreach (var item in outStocks)
+            {
+                Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo()
+                {
+                    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 ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(),
+                    StockId = item.Id,
+                    TaskNum = taskNum
+                };
+                outStockLockInfos.Add(outStockLockInfo);
+            }
+
+            return outStockLockInfos;
+        }
+
+        public Dt_OutStockLockInfo GetOutStockLockInfo(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, Dt_StockInfo outStock, float assignQuantity, int? taskNum = null)
+        {
+
+            Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo()
+            {
+                PalletCode = outStock.PalletCode,
+                AssignQuantity = assignQuantity,
+                MaterielCode = outboundOrderDetail.MaterielCode,
+                BatchNo = outboundOrderDetail.BatchNo,
+                LocationCode = outStock.LocationCode,
+                MaterielName = outboundOrderDetail.MaterielName,
+                OrderDetailId = outboundOrderDetail.Id,
+                OrderNo = outboundOrder.OrderNo,
+                OrderType = outboundOrder.OrderType,
+                OriginalQuantity = outStock.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity),
+                Status = taskNum == null ? OutLockStockStatusEnum.宸插垎閰�.ObjToInt() : OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(),
+                StockId = outStock.Id,
+                TaskNum = taskNum,
+                OrderQuantity = outboundOrderDetail.OrderQuantity
+            };
+
+            return outStockLockInfo;
+        }
+
+        public List<Dt_OutStockLockInfo> GetByOrderDetailId(int orderDetailId, OutLockStockStatusEnum outStockStatus)
+        {
+            return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId && x.Status == outStockStatus.ObjToInt());
+        }
+
+        public List<Dt_OutStockLockInfo> GetStockOutboundOrder(SaveModel saveModel)
+        {
+            try
+            {
+                var palletCode = saveModel.MainData["barcode"].ToString();
+                var warehouseId = saveModel.MainData["warehouseId"].ObjToInt();
+                Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode && x.WarehouseId == warehouseId).Includes(x => x.Details).First();
+                if (stockInfo == null)
+                {
+                    throw new Exception($"鏈壘鍒板簱瀛樹俊鎭�");
+                }
+                Dt_StockInfoDetail stockInfoDetail = stockInfo.Details.FirstOrDefault();
+                if (stockInfoDetail == null)
+                {
+                    throw new Exception($"鏈壘鍒板簱瀛樿鎯�");
+                }
+                List<Dt_OutStockLockInfo> stockLockInfos = BaseDal.QueryData(x => x.StockId == stockInfo.Id&&x.Status< OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt());
+                return stockLockInfos;
+            }
+            catch (Exception ex)
+            {
+                return null;
+            }
         }
     }
 }

--
Gitblit v1.9.3