heshaofeng
2025-12-19 6596bfe28c27171718a84ec3a5394db2415f83f3
Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215
已修改6个文件
154 ■■■■ 文件已修改
项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/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
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.db
Binary files differ
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.db
Binary files differ
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/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 ?? "";
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/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>();
        }
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/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)
                        {