From 02aefe4bc6808cce80964fcd939762e43828a312 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期五, 12 十二月 2025 16:12:14 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  105 +++++++++++++++++++++++++++-------------------------
 1 files changed, 54 insertions(+), 51 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_TaskInfoService/TaskService.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_TaskInfoService/TaskService.cs"
index b65d4c3..07c7c45 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_TaskInfoService/TaskService.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_TaskInfoService/TaskService.cs"
@@ -1135,34 +1135,36 @@
 
 
                                 allocatefeedmodel.Details.Add(detailModel);
-                            }
-                            var groupedResult = allocatefeedmodel.Details.GroupBy(item => new
-                            {
-                                item.WarehouseCode,
-                                item.MaterialCode,
-                                item.Unit,
-                                item.LineNo
-                            }).Select(group => new AllocateDtoDetail
-                            {
-                                 WarehouseCode = group.Key.WarehouseCode,
-                                 MaterialCode = group.Key.MaterialCode,
-                                 LineNo = group.Key.LineNo,                              
-                                 Qty = group.Sum(x => x.Qty),  
-                                 Unit = group.Key.Unit, 
-                                 Barcodes = group.SelectMany(x => x.Barcodes) 
-                                                       .GroupBy(b => b.Barcode) 
-                                                       .Select(b => new BarcodeInfo
-                                                       {
-                                                           Barcode = b.Key,
-                                                           BatchNo = b.First().BatchNo,
-                                                           SupplyCode = b.First().SupplyCode,
-                                                           Qty = b.Max(x => x.Qty), 
-                                                           Unit = b.First().Unit
-                                                       }) .ToList()
-                             }) .ToList();
-                            allocatefeedmodel.Details = groupedResult;
+                            }                            
+                            var groupedResult = allocatefeedmodel.Details
+                                .GroupBy(item => new { item.WarehouseCode, item.MaterialCode, item.Unit, item.LineNo })
+                                .Select(group =>  {
+                               
+                                    var deduplicatedBarcodes = group.SelectMany(x => x.Barcodes)
+                                                                   .GroupBy(b => b.Barcode)
+                                                                   .Select(b => new BarcodeInfo
+                                                                   {
+                                                                       Barcode = b.Key,
+                                                                       BatchNo = b.First().BatchNo,
+                                                                       SupplyCode = b.First().SupplyCode,
+                                                                       Qty = b.Max(x => x.Qty),
+                                                                       Unit = b.First().Unit
+                                                                   }).ToList(); 
+                                    return new AllocateDtoDetail
+                                    {
+                                        WarehouseCode = group.Key.WarehouseCode,
+                                        MaterialCode = group.Key.MaterialCode,
+                                        LineNo = group.Key.LineNo,
+                                        Qty = deduplicatedBarcodes.Sum(b => b.Qty),  
+                                        Unit = group.Key.Unit,
+                                        Barcodes = deduplicatedBarcodes
+                                    };
+                                }).ToList();
 
-                          var result = await _invokeMESService.FeedbackAllocate(allocatefeedmodel);
+                            allocatefeedmodel.Details = groupedResult;
+                  
+
+                            var result = await _invokeMESService.FeedbackAllocate(allocatefeedmodel);
                             if (result != null && result.code == 200)
                             {
                                 await _outboundOrderDetailService.Db.Updateable<Dt_OutboundOrderDetail>()
@@ -1247,30 +1249,31 @@
                                 }
                                 feedmodel.details.Add(detailModel);
                             }
-                            var groupedResult = feedmodel.details.GroupBy(item => new
-                            {
-                                item.warehouseCode,
-                                item.materialCode,
-                                item.unit,
-                                item.lineNo
-                            }).Select(group => new FeedbackOutboundDetailsModel
-                            {
-                                warehouseCode = group.Key.warehouseCode,
-                                materialCode = group.Key.materialCode,
-                                lineNo = group.Key.lineNo,
-                                qty = group.Sum(x => x.qty),
-                                unit = group.Key.unit,
-                                barcodes = group.SelectMany(x => x.barcodes)
-                                                       .GroupBy(b => b.barcode)
-                                                       .Select(b => new WIDESEA_DTO.Outbound.BarcodesModel
-                                                       {
-                                                           barcode = b.Key,
-                                                           batchNo = b.First().batchNo,
-                                                           supplyCode = b.First().supplyCode,
-                                                           qty = b.Max(x => x.qty),
-                                                           unit = b.First().unit
-                                                       }).ToList()
-                            }).ToList();
+                           
+                            var groupedResult = feedmodel.details
+                               .GroupBy(item => new { item.warehouseCode, item.materialCode, item.unit, item.lineNo })
+                               .Select(group => {
+                                   var deduplicatedBarcodes = group.SelectMany(x => x.barcodes)
+                                                                  .GroupBy(b => b.barcode)
+                                                                  .Select(b =>new WIDESEA_DTO.Outbound.BarcodesModel
+                                                                  {
+                                                                      barcode = b.Key,
+                                                                      batchNo = b.First().batchNo,
+                                                                      supplyCode = b.First().supplyCode,
+                                                                      qty = b.Max(x => x.qty),
+                                                                      unit = b.First().unit
+                                                                  }).ToList();
+                                   return new FeedbackOutboundDetailsModel
+                                   {
+                                       warehouseCode = group.Key.warehouseCode,
+                                       materialCode = group.Key.materialCode,
+                                       lineNo = group.Key.lineNo,
+                                       qty = deduplicatedBarcodes.Sum(b => b.qty),
+                                       unit = group.Key.unit,
+                                       barcodes = deduplicatedBarcodes
+                                   };
+                               }).ToList();
+
                             feedmodel.details = groupedResult;
 
                             var result = await _invokeMESService.FeedbackOutbound(feedmodel);

--
Gitblit v1.9.3