pan
5 天以前 7d3d385f0bdcf40b0c42d14ab526df318e04a433
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -3,7 +3,8 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SqlSugar;
using SqlSugar.Extensions;
using WIDESEA_BasicService;
using WIDESEA_Common.AllocateEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
@@ -23,17 +24,19 @@
    {
        private readonly IMapper _mapper;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IMaterielInfoService _materielInfoService;
        public IRepository<Dt_OutboundOrder> Repository => BaseDal;
        private readonly ILogger<OutboundOrderService> _logger;
        private readonly IRepository<Dt_OutboundOrderDetail> _outboundOrderDetailRepository;
        private readonly IMaterialUnitService _materialUnitService;
        public OutboundOrderService(IRepository<Dt_OutboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, ILogger<OutboundOrderService> logger, IMaterialUnitService materialUnitService) : base(BaseDal)
        public OutboundOrderService(IRepository<Dt_OutboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, ILogger<OutboundOrderService> logger, IMaterialUnitService materialUnitService, IMaterielInfoService materielInfoService) : base(BaseDal)
        {
            _mapper = mapper;
            _unitOfWorkManage = unitOfWorkManage;
            _outboundOrderDetailRepository = outboundOrderDetailRepository;
            _logger = logger;
            _materialUnitService = materialUnitService;
            _materielInfoService = materielInfoService;
        }
        private int[] OrderTypes = new int[] { (int)InOrderTypeEnum.AllocatOutbound, (int)InOrderTypeEnum.InternalAllocat, (int)InOrderTypeEnum.ReCheck };
@@ -63,8 +66,12 @@
                if (BaseDal.QueryFirst(x => x.UpperOrderNo == model.UpperOrderNo) != null)
                {
                    return WebResponseContent.Instance.Error($"鍑哄簱鍗曞彿閲嶅");
                    return WebResponseContent.Instance.Error($"{model.UpperOrderNo}鍑哄簱鍗曞彿閲嶅");
                }
                var materielCodes = model.Details.Select(x => x.MaterielCode).Distinct().ToList();
                var materielInfos = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().Where(x => materielCodes.Contains(x.MaterielCode)).ToList();
                foreach (var item in model.Details)
                {
                    var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty);
@@ -72,6 +79,11 @@
                    item.OrderQuantity = issueoStockResult.Quantity;
                    var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
                    item.MoveQty = moveissueoStockResult.Quantity;
                    if (materielInfos.Any())
                    {
                        item.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
                    }
                }
                if (!OrderTypes.Contains(model.OrderType))
                {
@@ -108,6 +120,11 @@
                List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>();
                List<Dt_OutboundOrderDetail> updateoutboundOrderDetails = new List<Dt_OutboundOrderDetail>();
                List<int> detailIds = new List<int>();
                var materielCodes = model.Details.Select(x => x.MaterielCode).Distinct().ToList();
                var materielInfos = _materielInfoService.Db.Queryable<Dt_MaterielInfo>().Where(x => materielCodes.Contains(x.MaterielCode)).ToList();
                foreach (var item in model.Details)
                {
@@ -135,6 +152,11 @@
                        var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
                        item.MoveQty = moveissueoStockResult.Quantity;
                        if (materielInfos.Any())
                        {
                            outboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
                        }
                        outboundOrderDetails.Add(outboundOrderDetail);
                    }
                    else
@@ -155,7 +177,10 @@
                        outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity;
                        var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty);
                        outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity;
                        if (materielInfos.Any())
                        {
                            outboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? "";
                        }
                        updateoutboundOrderDetails.Add(outboundOrderDetail);
                        detailIds.Add(outboundOrderDetail.Id);
@@ -334,6 +359,7 @@
            }
            var data = BaseDal.Db.Queryable<Dt_OutboundOrder>()
                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
                .Where(x => x.OrderType == 0)
                .OrderBy(orderByModels)
                .ToPageList(options.Page, options.Rows, ref totalCount);