From 62b5e514154820ed41f0093c29e35b07224a2ba9 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期二, 02 十二月 2025 09:11:55 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/InvokeMESService.cs |   84 +++++++++++++++++++++---------------------
 1 files changed, 42 insertions(+), 42 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_BasicService/InvokeMESService.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_BasicService/InvokeMESService.cs"
index d6d8cc2..a4a8d8d 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_BasicService/InvokeMESService.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_BasicService/InvokeMESService.cs"
@@ -269,7 +269,7 @@
 
                                         };
 
-                                        var groupedData = lists.GroupBy(item => new { item.MaterielCode, item.SupplyCode, item.BatchNo, item.InboundOrderRowNo, item.BarcodeUnit, item.WarehouseCode })
+                                        var groupedData = lists.GroupBy(item => new { item.MaterielCode, item.InboundOrderRowNo, item.BarcodeUnit, item.WarehouseCode })
                                            .Select(group => new AllocateDtoDetail
                                            {
                                                MaterialCode = group.Key.MaterielCode,
@@ -428,7 +428,7 @@
                 {
                     // 鑾峰彇璇ユ槑缁嗗搴旂殑鏉$爜淇℃伅锛堜粠閿佸畾璁板綍锛�
                     var detailLocks = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
-                        .Where(x => x.OrderNo == orderNo && detailids.Contains(x.OrderDetailId) &&
+                        .Where(x => x.OrderNo == orderNo && detail.Id == x.OrderDetailId &&
                                    x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴�)
                         .ToListAsync();
                     var detailModel = new FeedbackOutboundDetailsModel
@@ -439,32 +439,30 @@
                         qty = detail.BarcodeQty, // 浣跨敤璁㈠崟鏄庣粏鐨勫凡鍑哄簱鏁伴噺
                         currentDeliveryQty = detail.BarcodeQty,
                         unit = detail.BarcodeUnit,
-                        barcodes =  new List<WIDESEA_DTO.Outbound.BarcodesModel> ()
+                        barcodes = new List<WIDESEA_DTO.Outbound.BarcodesModel>()
                     };
 
-                    if (detailLocks.Any(x => x.BarcodeUnit != x.Unit))
+                    foreach (var item in detailLocks)
                     {
-                        foreach (var item in detailLocks)
+                        var barmodel = new WIDESEA_DTO.Outbound.BarcodesModel
                         {
-                            var barmodel = new WIDESEA_DTO.Outbound.BarcodesModel
-                            {
-                                barcode = item.CurrentBarcode,
-                                supplyCode = item.SupplyCode,
-                                batchNo = item.BatchNo,
-                                unit = item.BarcodeUnit,
-                                qty = item.BarcodeQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
-                            };
-                            if (item.BarcodeUnit != item.Unit)
-                            {
-                                var issueoStockResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.BarcodeQty, item.Unit,item.BarcodeUnit);
-                                barmodel.unit = issueoStockResult.Unit;
-                                barmodel.qty = issueoStockResult.Quantity;
-                            }
-                            detailModel.qty = barmodel.qty;
-                            detailModel.currentDeliveryQty = barmodel.qty;
-                            detailModel.barcodes.Add(barmodel); 
+                            barcode = item.CurrentBarcode,
+                            supplyCode = item.SupplyCode,
+                            batchNo = item.BatchNo,
+                            unit = item.BarcodeUnit,
+                            qty = item.BarcodeQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
+                        };
+                        if (item.BarcodeUnit != item.Unit)
+                        {
+                            var issueoStockResult = await _materialUnitService.ConvertAsync(item.MaterielCode, item.BarcodeQty, item.Unit, item.BarcodeUnit);
+                            barmodel.unit = issueoStockResult.Unit;
+                            barmodel.qty = issueoStockResult.Quantity;
                         }
-                    }             
+                        detailModel.qty += barmodel.qty;
+                        detailModel.currentDeliveryQty += barmodel.qty;
+                        detailModel.barcodes.Add(barmodel);
+                    }
+
                     feedmodel.details.Add(detailModel);
                 }
 
@@ -494,7 +492,7 @@
                               .LeftJoin<Dt_OutboundOrder>((o, item) => o.OrderId == item.Id)
                               .Where((o, item) => item.OrderNo == orderNo && item.ReturnToMESStatus != 1)
                               .Select((o, item) => o)
-                              .ToListAsync();                
+                              .ToListAsync();
                         var secallCompleted = true;
                         foreach (var detail in orderDetails.Where(x => x.ReturnToMESStatus == 0).ToList())
                         {
@@ -598,25 +596,27 @@
                                        x.Status == (int)OutLockStockStatusEnum.鎷i�夊畬鎴�)
                             .ToListAsync();
 
-                        var detailModel = new FeedbackOutboundDetailsModel
-                        {
-                            materialCode = detail.MaterielCode,
-                            lineNo = detail.lineNo, // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕佽皟鏁村瓧娈靛悕
-                            warehouseCode = detail.WarehouseCode,
-                            qty = detail.BarcodeQty,  
-                            currentDeliveryQty = detail.BarcodeQty,
-                            unit = detail.BarcodeUnit,
-                            barcodes = detailLocks.Select(lockInfo => new WIDESEA_DTO.Outbound.BarcodesModel
-                            {
-                                barcode = lockInfo.CurrentBarcode,
-                                supplyCode = lockInfo.SupplyCode,
-                                batchNo = lockInfo.BatchNo,
-                                unit = lockInfo.BarcodeUnit,
-                                qty = lockInfo.BarcodeQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
-                            }).ToList()
-                        };
 
-                        feedmodel.details.Add(detailModel);
+                        var groupdata = detailLocks.GroupBy(item => new { item.MaterielCode,item.lineNo, item.BarcodeUnit, item.WarehouseCode })
+                                 .Select(group =>new FeedbackOutboundDetailsModel
+                                  {
+                                     
+                                      materialCode = group.Key.MaterielCode,
+                                      lineNo = group.Key.lineNo, // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕佽皟鏁村瓧娈靛悕
+                                      warehouseCode = group.Key.WarehouseCode,
+                                      qty = group.Sum(x => x.BarcodeQty),
+                                      currentDeliveryQty = group.Sum(x => x.BarcodeQty),
+                                      unit = group.Key.BarcodeUnit,
+                                      barcodes = group.Select(lockInfo => new WIDESEA_DTO.Outbound.BarcodesModel
+                                      {
+                                          barcode = lockInfo.CurrentBarcode,
+                                          supplyCode = lockInfo.SupplyCode,
+                                          batchNo = lockInfo.BatchNo,
+                                          unit = lockInfo.BarcodeUnit,
+                                          qty = lockInfo.BarcodeQty // 鏉$爜绾у埆鐨勬暟閲忎粛鐢ㄩ攣瀹氳褰�
+                                      }).ToList()
+                                  }).ToList();
+                        feedmodel.details.AddRange(groupdata);
                     }
 
                     var result = await FeedbackOutbound(feedmodel);

--
Gitblit v1.9.3