From 6596bfe28c27171718a84ec3a5394db2415f83f3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期五, 19 十二月 2025 14:44:18 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db |    0 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db      |    0 
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs                            |   13 +++-
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue                                 |    6 -
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs                               |    5 -
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs                    |  130 +++++++++++++++++++++---------------------
 6 files changed, 78 insertions(+), 76 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
index 7b5ee4a..81830f9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
@@ -346,13 +346,11 @@
       if (this.selection.length === 0) {
         return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
       }
-      if (this.selection.length > 1) {
-        return this.$message.error("鍙兘閫夋嫨涓�鏉″崟鎹槑缁嗚繘琛屽垎鎵瑰嚭搴�");
-      }
+      
       const keys = this.selection.map((item) => item.id);
       const requestParams = {
         detailIds: keys,
-        outboundQuantity: this.selection[0].orderQuantity,
+        outboundQuantity: this.selection.length>1?1: this.selection[0].orderQuantity,
         operator: "",
         orderNo: this.row.orderNo,
         isBatch: this.isBatch
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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db" "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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
index 46e0efb..b5576cd 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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
+++ "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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db"
Binary files differ
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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db" "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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
index 44d476c..f7a3397 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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
+++ "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/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db"
Binary files differ
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_InboundService/InboundOrderService.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_InboundService/InboundOrderService.cs"
index 9d1cce9..fe908d7 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_InboundService/InboundOrderService.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_InboundService/InboundOrderService.cs"
@@ -15,6 +15,7 @@
 using WIDESEA_Core.Helper;
 using WIDESEA_Core.Seed;
 using WIDESEA_Core.Utilities;
+using WIDESEA_DTO.Base;
 using WIDESEA_DTO.Inbound;
 using WIDESEA_IBasicService;
 using WIDESEA_IInboundService;
@@ -42,9 +43,10 @@
         private readonly IRepository<Dt_WarehouseArea> _warehouseAreaRepository;
         private readonly IRepository<Dt_LocationType> _locationTypeRepository;
         private readonly IRepository<Dt_StockInfo> _stockRepository;
+        private readonly IBasicService _basicService;
         public IRepository<Dt_InboundOrder> Repository => BaseDal;
 
-        public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService) : base(BaseDal)
+        public InboundOrderService(IRepository<Dt_InboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_Task> taskRepository, IStockService stockService, IInboundOrderDetailService inboundOrderDetailService, IMaterialUnitService materialUnitService, IRepository<Dt_StockInfoDetail> stockDetailRepository, IRepository<Dt_InboundOrder> inboundOrderRepository, IRepository<Dt_WarehouseArea> warehouseAreaRepository, IRepository<Dt_StockInfo> stockRepository, IRepository<Dt_LocationType> locationTypeRepository, IMaterielInfoService materielInfoService, IBasicService basicService) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -59,6 +61,7 @@
             _stockRepository = stockRepository;
             _locationTypeRepository = locationTypeRepository;
             _materielInfoService = materielInfoService;
+            _basicService = basicService;
         }
 
         public async Task<WebResponseContent> ReceiveInboundOrder(List<Dt_InboundOrder> models, int operateType)
@@ -99,9 +102,11 @@
 
                     foreach (var item in model.Details)
                     {
-                        var purchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync(item.MaterielCode, item.BarcodeQty);
-                        item.Unit = purchaseToStockResult.Unit;
-                        item.OrderQuantity = purchaseToStockResult.Quantity;
+                        //var purchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync(item.MaterielCode, item.BarcodeQty);
+
+                        UnitConvertResultDTO totalResult = _basicService.UnitQuantityConvert(item.MaterielCode, item.Unit, item.BarcodeUnit, item.OrderQuantity);
+                        item.Unit = totalResult.ToUnit;
+                        item.OrderQuantity = totalResult.ToQuantity;
                         if (materielInfos.Any())
                         {
                             item.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
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/OutboundOrderDetailService.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/OutboundOrderDetailService.cs"
index 250becf..848271c 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/OutboundOrderDetailService.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/OutboundOrderDetailService.cs"
@@ -577,73 +577,73 @@
 
         public override PageGridData<Dt_OutboundOrderDetail> GetPageData(PageDataOptions options)
         {
-            //var  pageGridData = base.GetPageData(options);
+            return base.GetPageData(options);
 
-            ISugarQueryable<Dt_OutboundOrderDetail> sugarQueryable1 = BaseDal.Db.Queryable<Dt_OutboundOrderDetail>();
-            if (!string.IsNullOrEmpty(options.Wheres))
-            {
+            //ISugarQueryable<Dt_OutboundOrderDetail> sugarQueryable1 = BaseDal.Db.Queryable<Dt_OutboundOrderDetail>();
+            //if (!string.IsNullOrEmpty(options.Wheres))
+            //{
 
-                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
-                int totalCount = 0;
-                if (searchParametersList.Count > 0)
-                {
-                    {
-                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_InboundOrderDetail.OrderId).FirstLetterToLower());
-                        if (searchParameters != null)
-                        {
-                            Dt_OutboundOrder outboundOrder = _outboundOrderService.Repository.QueryFirst(x => x.Id == searchParameters.Value.ObjToInt());
-                            if (outboundOrder != null)
-                            {
-                                if (outboundOrder.IsBatch == 0)
-                                {
-                                    sugarQueryable1 = sugarQueryable1.Where(x => x.OrderId == searchParameters.Value.ObjToInt());
-                                    var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
-                                    return new PageGridData<Dt_OutboundOrderDetail>(totalCount, dataList);
-                                }
-                                else
-                                {
-                                    sugarQueryable1 = sugarQueryable1.Where(x => x.OrderId == searchParameters.Value.ObjToInt());
-                                    sugarQueryable1.GroupBy(x => new { x.MaterielCode, x.MaterielName, x.BatchNo, x.SupplyCode, x.WarehouseCode }).Select(s => new Dt_OutboundOrderDetail
-                                    {
-                                        WarehouseCode = s.WarehouseCode,
-                                        SupplyCode = s.SupplyCode,
-                                        BatchNo = s.BatchNo,
-                                        MaterielName = s.MaterielName,
-                                        MaterielCode = s.MaterielCode,
-                                        AllocatedQuantity = SqlFunc.AggregateSum(s.AllocatedQuantity),
-                                        OrderQuantity = SqlFunc.AggregateSum(s.OrderQuantity),
-                                        PickedQty = SqlFunc.AggregateSum(s.PickedQty),
-                                        OverOutQuantity = SqlFunc.AggregateSum(s.OverOutQuantity),
-                                        MoveQty = SqlFunc.AggregateSum(s.MoveQty),
-                                        NoStockOutQty = SqlFunc.AggregateSum(s.NoStockOutQty),
-                                        LockQuantity = SqlFunc.AggregateSum(s.LockQuantity),
-                                        BarcodeMoveQty = SqlFunc.AggregateSum(s.BarcodeMoveQty),
-                                        BarcodeQty =SqlFunc.AggregateMin( s.BarcodeQty),
-                                        BarcodeUnit = SqlFunc.AggregateMin(s.BarcodeUnit),
-                                        BatchAllocateStatus = SqlFunc.AggregateMin(s.BatchAllocateStatus),
-                                        CreateDate = SqlFunc.AggregateMin(s.CreateDate),
-                                        Creater = SqlFunc.AggregateMin(s.Creater),
-                                        documentsNO = SqlFunc.AggregateMin(s.documentsNO),
-                                        Id = SqlFunc.AggregateMin(s.Id),
-                                        lineNo = SqlFunc.AggregateMin(s.lineNo),
-                                        Modifier = SqlFunc.AggregateMin(s.Modifier),
-                                        ModifyDate = SqlFunc.AggregateMin(s.ModifyDate),
-                                        OrderDetailStatus = SqlFunc.AggregateMin(s.OrderDetailStatus),
-                                        OrderId = SqlFunc.AggregateMin(s.OrderId),
-                                        Remark = SqlFunc.AggregateMin(s.Remark),
-                                        ReturnJsonData = SqlFunc.AggregateMin(s.ReturnJsonData),
-                                        ReturnToMESStatus = SqlFunc.AggregateMin(s.ReturnToMESStatus),
-                                        RowNo = SqlFunc.AggregateMin(s.RowNo),
-                                        Unit = SqlFunc.AggregateMin(s.Unit)
-                                    });
-                                    var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
-                                    return new PageGridData<Dt_OutboundOrderDetail>(totalCount, dataList);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
+            //    List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+            //    int totalCount = 0;
+            //    if (searchParametersList.Count > 0)
+            //    {
+            //        {
+            //            SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_InboundOrderDetail.OrderId).FirstLetterToLower());
+            //            if (searchParameters != null)
+            //            {
+            //                Dt_OutboundOrder outboundOrder = _outboundOrderService.Repository.QueryFirst(x => x.Id == searchParameters.Value.ObjToInt());
+            //                if (outboundOrder != null)
+            //                {
+            //                    if (outboundOrder.IsBatch == 0)
+            //                    {
+            //                        sugarQueryable1 = sugarQueryable1.Where(x => x.OrderId == searchParameters.Value.ObjToInt());
+            //                        var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
+            //                        return new PageGridData<Dt_OutboundOrderDetail>(totalCount, dataList);
+            //                    }
+            //                    else
+            //                    {
+            //                        sugarQueryable1 = sugarQueryable1.Where(x => x.OrderId == searchParameters.Value.ObjToInt());
+            //                        sugarQueryable1.GroupBy(x => new { x.MaterielCode, x.MaterielName, x.BatchNo, x.SupplyCode, x.WarehouseCode }).Select(s => new Dt_OutboundOrderDetail
+            //                        {
+            //                            WarehouseCode = s.WarehouseCode,
+            //                            SupplyCode = s.SupplyCode,
+            //                            BatchNo = s.BatchNo,
+            //                            MaterielName = s.MaterielName,
+            //                            MaterielCode = s.MaterielCode,
+            //                            AllocatedQuantity = SqlFunc.AggregateSum(s.AllocatedQuantity),
+            //                            OrderQuantity = SqlFunc.AggregateSum(s.OrderQuantity),
+            //                            PickedQty = SqlFunc.AggregateSum(s.PickedQty),
+            //                            OverOutQuantity = SqlFunc.AggregateSum(s.OverOutQuantity),
+            //                            MoveQty = SqlFunc.AggregateSum(s.MoveQty),
+            //                            NoStockOutQty = SqlFunc.AggregateSum(s.NoStockOutQty),
+            //                            LockQuantity = SqlFunc.AggregateSum(s.LockQuantity),
+            //                            BarcodeMoveQty = SqlFunc.AggregateSum(s.BarcodeMoveQty),
+            //                            BarcodeQty =SqlFunc.AggregateMin( s.BarcodeQty),
+            //                            BarcodeUnit = SqlFunc.AggregateMin(s.BarcodeUnit),
+            //                            BatchAllocateStatus = SqlFunc.AggregateMin(s.BatchAllocateStatus),
+            //                            CreateDate = SqlFunc.AggregateMin(s.CreateDate),
+            //                            Creater = SqlFunc.AggregateMin(s.Creater),
+            //                            documentsNO = SqlFunc.AggregateMin(s.documentsNO),
+            //                            Id = SqlFunc.AggregateMin(s.Id),
+            //                            lineNo = SqlFunc.AggregateMin(s.lineNo),
+            //                            Modifier = SqlFunc.AggregateMin(s.Modifier),
+            //                            ModifyDate = SqlFunc.AggregateMin(s.ModifyDate),
+            //                            OrderDetailStatus = SqlFunc.AggregateMin(s.OrderDetailStatus),
+            //                            OrderId = SqlFunc.AggregateMin(s.OrderId),
+            //                            Remark = SqlFunc.AggregateMin(s.Remark),
+            //                            ReturnJsonData = SqlFunc.AggregateMin(s.ReturnJsonData),
+            //                            ReturnToMESStatus = SqlFunc.AggregateMin(s.ReturnToMESStatus),
+            //                            RowNo = SqlFunc.AggregateMin(s.RowNo),
+            //                            Unit = SqlFunc.AggregateMin(s.Unit)
+            //                        });
+            //                        var dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
+            //                        return new PageGridData<Dt_OutboundOrderDetail>(totalCount, dataList);
+            //                    }
+            //                }
+            //            }
+            //        }
+            //    }
+            //}
             return new PageGridData<Dt_OutboundOrderDetail>();
         }
 
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/OutboundService.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/OutboundService.cs"
index 2638f86..bc60b3e 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/OutboundService.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/OutboundService.cs"
@@ -253,7 +253,7 @@
                 // 鑾峰彇閫夋嫨鐨勫嚭搴撴槑缁�
                 List<Dt_OutboundOrderDetail> selectedDetails = _detailRepository.QueryData(x => x.OrderId == outboundOrder.Id && request.DetailIds.Contains(x.Id));
 
-                if (outboundOrder.IsBatch == 1)
+                if (outboundOrder.IsBatch == 1 && request.DetailIds.Count == 1)
                 {
                     selectedDetails = _detailRepository.QueryData(x => x.OrderId == selectedDetails.First().OrderId && x.WarehouseCode == selectedDetails.First().WarehouseCode && x.MaterielCode == selectedDetails.First().MaterielCode && x.BatchNo == selectedDetails.First().BatchNo && x.SupplyCode == selectedDetails.First().SupplyCode);
                 }
@@ -277,7 +277,7 @@
                 result.OutboundOrder = outboundOrder;
                 result.SelectedDetails = selectedDetails;
 
-                if (outboundOrder.IsBatch == 0)
+                if (outboundOrder.IsBatch == 0 && request.DetailIds.Count > 1)
                 {
                     // 澶氭槑缁嗗嚭搴擄細鎸夌墿鏂欏垎缁勫鐞�
                     result.MaterielCalculations = CalcMaterielOutboundQuantities(outboundOrder, selectedDetails.ToList());
@@ -962,7 +962,6 @@
 
                     if (outboundOrder.OrderType != 0)
                     {
-
                         Dt_AllocateOrder allocateOrder = _allocateOrderRepository.QueryFirst(x => x.OrderNo == outboundOrder.OrderNo);
                         if (allocateOrder != null)
                         {

--
Gitblit v1.9.3