From a83781bc4e66b8b3bf19fb371d7da7bede0a5b25 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期一, 01 十二月 2025 13:55:45 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 19 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
index fd2dbf8..08aaba5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs"
@@ -2024,16 +2024,16 @@
                            materialCode = group.Key.MaterielCode,
                            lineNo = group.Key.lineNo,
                            warehouseCode = group.Key.WarehouseCode,
-                           qty = group.Sum(x => x.PickedQty),
-                           currentDeliveryQty = group.Sum(x => x.PickedQty),
+                           qty = group.Sum(x => x.BarcodeQty),
+                           currentDeliveryQty = group.Sum(x => x.BarcodeQty),
                            unit = group.Key.Unit,
                            barcodes = group.Select(row => new WIDESEA_DTO.Outbound.BarcodesModel
                            {
                                barcode = row.CurrentBarcode,
                                supplyCode = row.SupplyCode,
                                batchNo = row.BatchNo,
-                               unit = row.Unit,
-                               qty = row.PickedQty
+                               unit = row.BarcodeUnit,
+                               qty = row.BarcodeQty
                            }).ToList()
                        }).ToList();
 
@@ -2681,7 +2681,7 @@
             }
         }
 
-        public async  Task<WebResponseContent> NoStockOutSubmit(NoStockOutSubmit noStockOutSubmit)
+        public async Task<WebResponseContent> NoStockOutSubmit(NoStockOutSubmit noStockOutSubmit)
         {
             try
             {
@@ -2828,7 +2828,7 @@
                         var detailModel = new FeedbackOutboundDetailsModel
                         {
                             materialCode = detail.MaterielCode,
-                            lineNo = detail.lineNo, // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕佽皟鏁村瓧娈靛悕
+                            lineNo = detail.lineNo,  
                             warehouseCode = detail.WarehouseCode,
                             qty = detail.OverOutQuantity, // 浣跨敤璁㈠崟鏄庣粏鐨勫凡鍑哄簱鏁伴噺
                             currentDeliveryQty = detail.OverOutQuantity,
@@ -2838,8 +2838,8 @@
                                 barcode = lockInfo.CurrentBarcode,
                                 supplyCode = lockInfo.SupplyCode,
                                 batchNo = lockInfo.BatchNo,
-                                unit = lockInfo.Unit,
-                                qty = lockInfo.PickedQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
+                                unit = lockInfo.BarcodeUnit,
+                                qty = lockInfo.BarcodeQty //  
                             }).ToList()
                         };
 
@@ -2935,9 +2935,9 @@
                 }
 
 
-              //  Dt_InboundOrder inboundOrder = GetInboundOrder(materielGroupDTO.OrderNo);
+                //  Dt_InboundOrder inboundOrder = GetInboundOrder(materielGroupDTO.OrderNo);
 
-                var dbinboundOrderDetails = Db.Queryable<Dt_PickingRecord>().Where(x=>x.OrderNo== materielGroupDTO.OrderNo && !x.IsCancelled && x.Barcode==materielGroupDTO.Barcodes).ToList();
+                var dbinboundOrderDetails = Db.Queryable<Dt_PickingRecord>().Where(x => x.OrderNo == materielGroupDTO.OrderNo && !x.IsCancelled && x.Barcode == materielGroupDTO.Barcodes).ToList();
 
                 if (dbinboundOrderDetails != null && !dbinboundOrderDetails.Any())
                 {
@@ -2950,13 +2950,38 @@
 
 
 
-                (bool, string, object?) result = CheckMaterielGroupParam(materielGroupDTO, materielCodes,  stockInfo);
+                (bool, string, object?) result = CheckMaterielGroupParam(materielGroupDTO, materielCodes, stockInfo);
                 if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
 
                 if (stockInfo == null)
                 {
                     stockInfo = new Dt_StockInfo() { PalletType = (int)PalletTypeEnum.None, LocationType = materielGroupDTO.locationType.ObjToInt() };
                     stockInfo.Details = new List<Dt_StockInfoDetail>();
+                }
+                var inboindId = 0; Dt_InboundOrder dt_InboundOrder = null;
+                var dbinbound = _inboundOrderRepository.QueryData(x => x.InboundOrderNo == dbinboundOrderDetails.First().OrderNo).First();
+                if (dbinbound == null)
+                {
+                    dt_InboundOrder = new Dt_InboundOrder
+                    {
+                        WarehouseId = 0,
+                        InboundOrderNo = dbinboundOrderDetails.First()?.OrderNo,
+                        UpperOrderNo = dbinboundOrderDetails.First()?.OrderNo,
+                        SupplierId = dbinboundOrderDetails.First()?.SupplyCode,
+                        OrderType = materielGroupDTO.orderTypes,
+
+                        BusinessType = materielGroupDTO.orderTypes.ToString(),
+
+                        FactoryArea = dbinboundOrderDetails.First()?.FactoryArea,
+                        Remark = "",
+                        Details = new List<Dt_InboundOrderDetail>()
+                    };
+                    inboindId = _inboundOrderRepository.AddData(dt_InboundOrder);
+                }
+                else
+                {
+                    dt_InboundOrder = new Dt_InboundOrder { Details = new List<Dt_InboundOrderDetail>() };        
+                    inboindId = dbinbound.Id;
                 }
 
                 foreach (var item in dbinboundOrderDetails)
@@ -2976,12 +3001,34 @@
                         BarcodeUnit = item.BarcodeUnit,
                         FactoryArea = item.FactoryArea,
                         Status = 0,
-                        OrderNo = item.OrderNo,               
+                        OrderNo = item.OrderNo,
+                        BusinessType = InOrderTypeEnum.InternalAllocat.ObjToInt().ToString()
 
-                    });                
+                    });
                     item.WarehouseCode = item.WarehouseCode;
+
+                    dt_InboundOrder.Details.Add(new Dt_InboundOrderDetail
+                    {
+                        OrderId = inboindId,
+                        MaterielCode = item.MaterielCode,
+                        MaterielName = "",
+                        BatchNo = item.BatchNo,
+                        OrderQuantity = item.PickQuantity,
+                        ReceiptQuantity = 0,
+                        OverInQuantity = 0,
+                        Unit = item.BarcodeUnit,
+                        RowNo = 0,
+                        lineNo = item.lineNo,
+                        SupplyCode = item.SupplyCode,
+                        WarehouseCode = item.WarehouseCode,
+                        Barcode = item.Barcode,
+                        OutBoxbarcodes = "",
+                        BarcodeQty = (decimal)item.BarcodeQty,
+                        BarcodeUnit = item.BarcodeUnit
+                    });
                 }
 
+                _inboundOrderDetailService.Db.Insertable<Dt_InboundOrderDetail>(dt_InboundOrder.Details);
                 if (stockInfo.Id == 0)
                 {
                     stockInfo.PalletCode = materielGroupDTO.PalletCode;
@@ -2994,7 +3041,7 @@
                 try
                 {
                     _unitOfWorkManage.BeginTran();
-        
+
                     _stockService.StockInfoService.AddMaterielGroup(stockInfo);
                     _unitOfWorkManage.CommitTran();
                     return WebResponseContent.Instance.OK();
@@ -3003,7 +3050,7 @@
                 {
                     _unitOfWorkManage.RollbackTran();
                     return WebResponseContent.Instance.Error(ex.Message);
-                }             
+                }
             }
             catch (Exception ex)
             {
@@ -3016,9 +3063,9 @@
             return content;
 
         }
-     
 
-        public (bool, string, object?) CheckMaterielGroupParam(BarcodeMaterielGroupDTO materielGroupDTO, List<string> barcodeCodes,   Dt_StockInfo stockInfo)
+
+        public (bool, string, object?) CheckMaterielGroupParam(BarcodeMaterielGroupDTO materielGroupDTO, List<string> barcodeCodes, Dt_StockInfo stockInfo)
         {
             (bool, string, object?) result = ModelValidate.ValidateModelData(materielGroupDTO);
             if (!result.Item1) return result;
@@ -3037,8 +3084,8 @@
             {
                 return (false, $"{barcodeCodes[0]} 鏉$爜鍦ㄥ簱瀛樹腑宸插瓨鍦�", materielGroupDTO);
             }
-    
- 
+
+
 
             return (true, "鎴愬姛", materielGroupDTO);
         }
@@ -3112,12 +3159,20 @@
         public bool HasSplitRecords { get; set; }
         public decimal RemainingLocksReturnQty { get; set; }
         public decimal PalletStockReturnQty { get; set; }
+
         public decimal SplitReturnQty { get; set; }
         public decimal TotalReturnQty { get; set; }
+
+        // 鏈垎閰嶇殑閿佸畾璁板綍锛堝鑷姩鎷嗗寘浜х敓鐨勶級
+        public bool HasUnallocatedLocks { get; set; }
+        public List<Dt_OutStockLockInfo> UnallocatedLocks { get; set; } = new List<Dt_OutStockLockInfo>();
+        public decimal UnallocatedLocksReturnQty { get; set; }
+
         public List<Dt_OutStockLockInfo> RemainingLocks { get; set; } = new List<Dt_OutStockLockInfo>();
         public List<Dt_StockInfoDetail> PalletStockGoods { get; set; } = new List<Dt_StockInfoDetail>();
         public List<Dt_SplitPackageRecord> SplitRecords { get; set; } = new List<Dt_SplitPackageRecord>();
 
+        public List<string> AllBarcodes { get; set; } = new List<string>();
         // 绌烘墭鐩樼浉鍏冲睘鎬�
         public bool IsEmptyPallet { get; set; }
         public bool HasActiveTasks { get; set; }

--
Gitblit v1.9.3