From f5eb41629045613692873e4738a9503fdf1d7818 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期一, 22 十二月 2025 18:45:15 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs |   48 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 35 insertions(+), 13 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_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 cb1c301..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 ?? "";
@@ -645,15 +650,19 @@
                 {
                     resultDTO.UniqueUnit = "";
                 }
-                var validDetails = _stockDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(s => s.OrderNo == orderNo).ToList();
-                resultDTO.StockSumQuantity = orderDetail.Details.Sum(d => d.OrderQuantity);
-                resultDTO.StockCount = orderDetail.Details.Count;
-                if (validDetails.Any())
-                {
-                    resultDTO.StockSumQuantity -= validDetails.Sum(d => d.StockQuantity);
-                    // 鏄庣粏璁板綍鏁帮細绗﹀悎鏉′欢鐨勬湁鏁堣褰曟潯鏁�
-                    resultDTO.StockCount -= validDetails.Count;
-                }
+                var inbound =_inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo);
+                var inboundDetails = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.OrderId == inbound.First().Id).ToList();
+                resultDTO.StockSumQuantity = inboundDetails.Where(x=>x.ReceiptQuantity==0).Sum(x=>x.OrderQuantity);
+                resultDTO.StockCount = inboundDetails.Where(x => x.ReceiptQuantity == 0).Count();
+                //var validDetails = _stockDetailRepository.Db.Queryable<Dt_StockInfoDetail>().Where(s => s.OrderNo == orderNo).ToList();
+                //resultDTO.StockSumQuantity = orderDetail.Details.Sum(d => d.OrderQuantity);
+                //resultDTO.StockCount = orderDetail.Details.Count;
+                //if (validDetails.Any())
+                //{
+                //    resultDTO.StockSumQuantity -= validDetails.Sum(d => d.StockQuantity);
+                //    // 鏄庣粏璁板綍鏁帮細绗﹀悎鏉′欢鐨勬湁鏁堣褰曟潯鏁�
+                //    resultDTO.StockCount -= validDetails.Count;
+                //}
                 return content.OK("", resultDTO);
             }
             catch (Exception ex)
@@ -881,5 +890,18 @@
         //    return new PageGridData<Dt_InboundOrder>();
         //}
 
+        public WebResponseContent UnPalletGroupBarcode(string orderNo)
+        {
+            WebResponseContent content = new WebResponseContent();
+            var inbound = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo).First();
+            if(inbound == null)
+            {
+                return content.Error();
+            }
+
+            var details = _inboundOrderDetailRepository.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.OrderId == inbound.Id && x.ReceiptQuantity == 0).ToList();
+
+            return content.OK(data:details);
+        }
     }
 }

--
Gitblit v1.9.3