From fe256a7afaa132910875d3dc73783d9ab2d7ace5 Mon Sep 17 00:00:00 2001
From: liulijun <liulijun@hnkhzn.com>
Date: 星期四, 12 三月 2026 18:57:44 +0800
Subject: [PATCH] 老厂排程单页面增加用纸顺序号和是否缺料

---
 项目代码/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs |  144 ++++++++++++++++++-----------------------------
 1 files changed, 55 insertions(+), 89 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs"
index af724d0..8cb574f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs"
@@ -4,6 +4,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEA_Common.CommonEnum;
 using WIDESEA_Common.MaterielEnum;
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.StockEnum;
@@ -48,134 +49,99 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                List<Dt_ReturnBSTOrder> OldreturnBSTOrders = BaseDal.Db.Queryable<Dt_ReturnBSTOrder>().Includes(x => x.Details).ToList();
                 List<Dt_StockInfo> ExiststockInfos = _stockInfoRepository.QueryData(x=>x.WarehouseId==WarehouseEnum.LLDOldCache.ObjToInt());
                 //鏂板
                 List<BSTReturnOrderDTO> bSTReturnOrderDTOsAdd = bSTReturnOrderDTOs.Where(x => x.Way == 1).ToList();
+                List<BSTReturnOrderDTOItem>? bSTReturnOrderDTOItemsAdd = null;
                 //淇敼
                 List<BSTReturnOrderDTO> bSTReturnOrderDTOsUpdate = bSTReturnOrderDTOs.Where(x => x.Way == 2).ToList();
-                //鍒犻櫎
-                List<BSTReturnOrderDTO> bSTReturnOrderDTOsDel = bSTReturnOrderDTOs.Where(x => x.Way == 3).ToList();
+                List<BSTReturnOrderDTOItem>? bSTReturnOrderDTOItemsUp = null;
                 //鑾峰彇鎵�鏈夌墿鏂� 
                 List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0);
-
-                List<Dt_ReturnBSTOrder> returnAddBSTOrders = new List<Dt_ReturnBSTOrder>();
-                List<Dt_ReturnBSTOrder> returnUpdateBSTOrders  = new List<Dt_ReturnBSTOrder>();
-                List<Dt_ReturnBSTOrder> returnDeleteBSTOrders = new List<Dt_ReturnBSTOrder>();
-                List<Dt_ReturnBSTOrderDetail> returnBSTOrderDetailsDel = new List<Dt_ReturnBSTOrderDetail>();
+                if (bSTReturnOrderDTOsAdd!=null && bSTReturnOrderDTOsAdd.Count>0)
+                {
+                    bSTReturnOrderDTOItemsAdd = bSTReturnOrderDTOsAdd.SelectMany(x => x.BstPaperWreturnDetails).ToList();
+                }
+                if (bSTReturnOrderDTOsUpdate != null && bSTReturnOrderDTOsUpdate.Count > 0)
+                {
+                    bSTReturnOrderDTOItemsUp = bSTReturnOrderDTOsUpdate.SelectMany(x => x.BstPaperWreturnDetails).ToList();
+                }
                 List<Dt_StockInfo> stockInfosUpdate = new List<Dt_StockInfo>();
                 //鏂板
-                if (bSTReturnOrderDTOsAdd.Count > 0)
+                if (bSTReturnOrderDTOItemsAdd!=null && bSTReturnOrderDTOItemsAdd.Count > 0)
                 {
-                    //鍒ゆ柇鍗曟嵁
-                    Dt_ReturnBSTOrder? ExistAddReturn = OldreturnBSTOrders.FirstOrDefault(x => bSTReturnOrderDTOsAdd.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId));
-                    if (ExistAddReturn != null)
-                    {
-                        return content.Error($"閫�鏂欏崟{nameof(BSTReturnOrderDTO.PaperWreturnId)}:{ExistAddReturn.PaperWreturnId}宸插瓨鍦�");
-                    }
-                    List<BSTReturnOrderDTOItem> bSTReturnOrderDTOItemsAdd = bSTReturnOrderDTOsAdd.SelectMany(x => x.BstPaperWreturnDetails).ToList();
                     //鍒ゆ柇鏄惁瀛樺湪鐗╂枡
                     BSTReturnOrderDTOItem? bSTReturnOrderDTOItem = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId));
                     if (bSTReturnOrderDTOItem != null)
                     {
                         return content.Error($"閫�鏂檣nameof(bSTReturnOrderDTOItem.Barcode)}:{bSTReturnOrderDTOItem.Barcode}鐗╂枡{nameof(BSTReturnOrderDTOItem.MaterialId)}:{bSTReturnOrderDTOItem.MaterialId}涓嶅瓨鍦�");
                     }
-                    //楠岃瘉閫�鏂欐潯鐮佹槸鍚﹀湪搴撳瓨涓�
-                    var ExiststockInfo = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !ExiststockInfos.Select(x => x.PalletCode).Contains(x.Barcode));
-                    if (ExiststockInfo != null)
+                    foreach (var item in bSTReturnOrderDTOItemsAdd)
                     {
-                        return content.Error($"閫�鏂欐潯鐮亄nameof(ExiststockInfo.Barcode)}:{ExiststockInfo.Barcode}鐗╂枡鏈湪鑰佸巶鏆傚瓨鍖�");
-                    }
-                    //鑾峰彇瀵瑰簲搴撳瓨淇搴撳瓨鏁伴噺
-                    List<Dt_StockInfo> returnStockinfos = ExiststockInfos.Where(x => bSTReturnOrderDTOItemsAdd.Select(x => x.Barcode).Contains(x.PalletCode)).ToList();
-                    foreach (var item in bSTReturnOrderDTOsAdd)
-                    {
-                        if (bSTReturnOrderDTOsUpdate.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId) != null)
+                        //灏嗕笉瀛樺湪鐨勫簱瀛樿烦杩�
+                        Dt_StockInfo? stockReturn = ExiststockInfos.FirstOrDefault(x => x.PalletCode == item.Barcode);
+                        if (stockReturn == null)
                         {
                             continue;
                         }
-                        List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
-                        Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item);
-                        returnBSTOrder.Details = bSTOrderDetails;
-                        foreach (var detail in bSTOrderDetails)
+                        if (bSTReturnOrderDTOItemsUp!=null && bSTReturnOrderDTOItemsUp.FirstOrDefault(x => x.Barcode == item.Barcode) != null)
                         {
-                            Dt_StockInfo stockReturn = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == detail.Barcode);
-                            stockReturn.MaterielId = detail.MaterialId;
-                            stockReturn.MaterielCode = detail.MaterialNo;
-                            stockReturn.MaterielWide=detail.MaterialWide;
-                            stockReturn.MaterielThickness = detail.MaterialThick;
-                            stockReturn.MaterielWeight = detail.Qty;
-                            stockReturn.StockLength = detail.ProcurementLength;
-                            stockReturn.StockStatus = StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt();
-                            stockInfosUpdate.Add(stockReturn);
+                            continue;
                         }
-                        returnAddBSTOrders.Add(returnBSTOrder);
+                        stockReturn.MaterielId = item.MaterialId;
+                        stockReturn.MaterielCode = item.MaterialNo;
+                        stockReturn.MaterielWide = item.W;
+                        stockReturn.MaterielThickness = item.Thick;
+                        stockReturn.MaterielWeight = item.Qty;
+                        stockReturn.StockLength = item.ProcurementLength;
+                        stockReturn.StockOutLength = 0;
+                        stockReturn.IsPick = WhetherEnum.False.ObjToInt();
+                        stockReturn.IsFull = WhetherEnum.True.ObjToInt();
+                        stockReturn.StockStatus = StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt();
+                        stockInfosUpdate.Add(stockReturn);
                     }
                 }
                 //鏇存柊
-                if (bSTReturnOrderDTOsUpdate.Count > 0)
+                if (bSTReturnOrderDTOItemsUp != null && bSTReturnOrderDTOItemsUp.Count > 0)
                 {
-                    //瀛樺湪鐨勯噰璐崟
-                    List<Dt_ReturnBSTOrder>? ExistreturnBSTOrders = OldreturnBSTOrders.Where(x => bSTReturnOrderDTOsUpdate.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId)).Distinct().ToList();
-
-                    foreach (var item in bSTReturnOrderDTOsUpdate)
+                    //鑾峰彇瀵瑰簲搴撳瓨淇搴撳瓨鏁伴噺
+                    List<Dt_StockInfo> returnStockinfos = ExiststockInfos.Where(x => bSTReturnOrderDTOItemsUp.Select(x => x.Barcode).Contains(x.PalletCode)).ToList();
+                    foreach (var item in bSTReturnOrderDTOItemsUp)
                     {
-                        Dt_ReturnBSTOrder? returnBSTOrderUpdate = ExistreturnBSTOrders.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId);
-                        //濡傛灉璁㈠崟宸插瓨鍦ㄥ垯杩涜鏇存敼
-                        if (returnBSTOrderUpdate != null)
+                        Dt_StockInfo? returnUpdate = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == item.Barcode);
+                        //濡傛灉淇敼宸插瓨鍦紝鍦ㄥ師鍩虹涓婃洿鏂�
+                        if (returnUpdate != null)
                         {
-                            if (returnBSTOrderUpdate.ReturnOrderStatus != InOrderStatusEnum.鏈紑濮�.ObjToInt())
-                            {
-                                return content.Error($"閫�鏂檣nameof(returnBSTOrderUpdate.PaperWreturnId)}:{returnBSTOrderUpdate.PaperWreturnId}璁㈠崟閫�鏂欏叆搴撲腑锛屼笉鍙洿鏀�");
-                            }
-                            returnBSTOrderDetailsDel.AddRange(returnBSTOrderUpdate.Details);
-
                             //鏇存柊
-                            List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
-                            bSTOrderDetails.ForEach(x =>
-                            {
-                                x.ReturnBSTOrderId = returnBSTOrderUpdate.Id;
-                            });
-                            returnBSTOrderUpdate.Details = bSTOrderDetails;
-                            returnBSTOrderUpdate.PaperWreturnId = item.PaperWreturnId;
-                            returnBSTOrderUpdate.PaperWreturnNo = item.PaperWreturnNo;
-                            returnBSTOrderUpdate.EmployeeName = item.EmployeeName;
-                            returnBSTOrderUpdate.WreturnDate = DateTimeOffset.FromUnixTimeMilliseconds(item.WreturnDate).DateTime;
-                            returnUpdateBSTOrders.Add(returnBSTOrderUpdate);
+                            returnUpdate.MaterielThickness = item.Thick;
+                            returnUpdate.MaterielWeight = item.Qty;
+                            returnUpdate.StockLength = item.ProcurementLength;
                         }
-                        else //濡傛灉涓嶅瓨鍦ㄥ垯杩涜鏂板
+                        else 
                         {
-                            List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList();
-                            Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item);
-                            returnBSTOrder.Details = bSTOrderDetails;
-                            foreach (var detail in bSTOrderDetails)
+                            //灏嗕笉瀛樺湪鐨勫簱瀛樿烦杩�
+                            Dt_StockInfo? stockReturn = ExiststockInfos.FirstOrDefault(x => x.PalletCode == item.Barcode);
+                            if (stockReturn == null)
                             {
-                                Dt_StockInfo stockReturn = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == detail.Barcode);
-                                stockReturn.MaterielId = detail.MaterialId;
-                                stockReturn.MaterielCode = detail.MaterialNo;
-                                stockReturn.MaterielWide = detail.MaterialWide;
-                                stockReturn.MaterielThickness = detail.MaterialThick;
-                                stockReturn.MaterielWeight = detail.Qty;
-                                stockReturn.StockLength = detail.ProcurementLength;
-                                stockReturn.StockStatus = StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt();
-                                stockInfosUpdate.Add(stockReturn);
+                                continue;
                             }
-                            returnAddBSTOrders.Add(returnBSTOrder);
+                            stockReturn.MaterielId = item.MaterialId;
+                            stockReturn.MaterielCode = item.MaterialNo;
+                            stockReturn.MaterielWide = item.W;
+                            stockReturn.MaterielThickness = item.Thick;
+                            stockReturn.MaterielWeight = item.Qty;
+                            stockReturn.StockLength = item.ProcurementLength;
+                            stockReturn.StockOutLength = 0;
+                            stockReturn.IsPick = WhetherEnum.False.ObjToInt();
+                            stockReturn.IsFull = WhetherEnum.True.ObjToInt();
+                            stockReturn.StockStatus = StockStatusEmun.鑰佸巶閫�鏂欐殏瀛�.ObjToInt();
+                            stockInfosUpdate.Add(stockReturn);
                         }
                     }
-
-                }
-                //鍒犻櫎
-                if (bSTReturnOrderDTOsDel.Count > 0)
-                {
-                    
                 }
                 //鏇存柊鏁版嵁
                 _unitOfWorkManage.BeginTran();
-                BaseDal.Db.InsertNav(returnAddBSTOrders).Include(x => x.Details).ExecuteCommand();
                 _stockInfoRepository.UpdateData(stockInfosUpdate);
-                _returnBSTOrderDetailRepository.DeleteData(returnBSTOrderDetailsDel);
-                BaseDal.Db.UpdateNav(returnUpdateBSTOrders).Include(x => x.Details).ExecuteCommand();
                 _unitOfWorkManage.CommitTran();
                 content.OK("鎺ユ敹鎴愬姛");
             }

--
Gitblit v1.9.3