| | |
| | | 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, IMaterielInfoService materielInfoService) : base(BaseDal) |
| | | private readonly IRepository<Dt_OutStockLockInfo> _outStockLockInfoRepository; |
| | | public OutboundOrderService(IRepository<Dt_OutboundOrder> BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, ILogger<OutboundOrderService> logger, IMaterialUnitService materialUnitService, IMaterielInfoService materielInfoService, IRepository<Dt_OutStockLockInfo> outStockLockInfoRepository) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _logger = logger; |
| | | _materialUnitService = materialUnitService; |
| | | _materielInfoService = materielInfoService; |
| | | _outStockLockInfoRepository = outStockLockInfoRepository; |
| | | } |
| | | |
| | | private int[] OrderTypes = new int[] { (int)InOrderTypeEnum.AllocatOutbound, (int)InOrderTypeEnum.InternalAllocat, (int)InOrderTypeEnum.ReCheck }; |
| | |
| | | } |
| | | else |
| | | { |
| | | if(item.OrderQuantity > outboundOrderDetail.LockQuantity + outboundOrderDetail.MoveQty) |
| | | if(item.OrderQuantity < outboundOrderDetail.LockQuantity + outboundOrderDetail.MoveQty) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ä¿®æ¹çè¡å·{item.lineNo}æ°éè¶
è¿äºæºä»åºåºé宿°éå 䏿ªææ°éï¼ä¸å
许修æ¹"); |
| | | } |
| | | outboundOrderDetail.lineNo = item.lineNo; |
| | | outboundOrderDetail.MaterielCode = item.MaterielCode; |
| | | outboundOrderDetail.SupplyCode = item.SupplyCode; |
| | | outboundOrderDetail.BatchNo = item.BatchNo; |
| | | outboundOrderDetail.Unit = item.Unit; |
| | | outboundOrderDetail.WarehouseCode = item.WarehouseCode; |
| | | outboundOrderDetail.MoveQty = item.MoveQty; |
| | | outboundOrderDetail.OrderQuantity = item.OrderQuantity; |
| | | outboundOrderDetail.BarcodeMoveQty = item.MoveQty; |
| | | outboundOrderDetail.BarcodeQty = item.OrderQuantity; |
| | | outboundOrderDetail.BarcodeUnit = item.Unit; |
| | | var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty); |
| | | outboundOrderDetail.Unit = issueoStockResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity; |
| | | var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty); |
| | | outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity; |
| | | if(outboundOrderDetail.LockQuantity == 0) |
| | | { |
| | | outboundOrderDetail.lineNo = item.lineNo; |
| | | outboundOrderDetail.MaterielCode = item.MaterielCode; |
| | | outboundOrderDetail.SupplyCode = item.SupplyCode; |
| | | outboundOrderDetail.BatchNo = item.BatchNo; |
| | | outboundOrderDetail.Unit = item.Unit; |
| | | outboundOrderDetail.WarehouseCode = item.WarehouseCode; |
| | | outboundOrderDetail.MoveQty = item.MoveQty; |
| | | outboundOrderDetail.OrderQuantity = item.OrderQuantity; |
| | | outboundOrderDetail.BarcodeMoveQty = item.MoveQty; |
| | | outboundOrderDetail.BarcodeQty = item.OrderQuantity; |
| | | outboundOrderDetail.BarcodeUnit = item.Unit; |
| | | var issueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeQty); |
| | | outboundOrderDetail.Unit = issueoStockResult.Unit; |
| | | outboundOrderDetail.OrderQuantity = issueoStockResult.Quantity; |
| | | var moveissueoStockResult = await _materialUnitService.ConvertFromToStockAsync(item.MaterielCode, item.BarcodeUnit, item.BarcodeMoveQty); |
| | | outboundOrderDetail.MoveQty = moveissueoStockResult.Quantity; |
| | | } |
| | | else |
| | | { |
| | | outboundOrderDetail.OrderQuantity = item.OrderQuantity; |
| | | } |
| | | if (materielInfos.Any()) |
| | | { |
| | | outboundOrderDetail.MaterielName = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode)?.MaterielName ?? ""; |
| | |
| | | return WebResponseContent.Instance.OK(null, order); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·è·ååæ®ç¼å· |
| | | /// </summary> |
| | | public WebResponseContent GetOrderNoByPalletCode(string palletCode) |
| | | { |
| | | var orderNo = _outStockLockInfoRepository.QueryData(x => x.PalletCode == palletCode).Select(x=>x.OrderNo).FirstOrDefault(); |
| | | if(string.IsNullOrWhiteSpace(orderNo)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æç{palletCode}å·²æ£éå®"); |
| | | } |
| | | return WebResponseContent.Instance.OK(data: orderNo); |
| | | } |
| | | |
| | | static object lock_code = new object(); |
| | | public string CreateCodeByRule(string ruleCode) |
| | |
| | | string returnToMESStatus = returnToMESStatusParam.Value.ToString().Trim(); |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.ReturnToMESStatus.Equals(returnToMESStatus)); |
| | | } |
| | | |
| | | var createDateParams = searchParametersList |
| | | .Where(x => x.Name.Equals("createDate", StringComparison.OrdinalIgnoreCase) |
| | | && !string.IsNullOrEmpty(x.Value?.ToString())) |
| | | .ToList(); |
| | | |
| | | DateTime? minCreateDate = null; |
| | | DateTime? maxCreateDate = null; |
| | | |
| | | foreach (var dateParam in createDateParams) |
| | | { |
| | | if (DateTime.TryParse(dateParam.Value.ToString(), out DateTime dateValue)) |
| | | { |
| | | LinqExpressionType expressionType = dateParam.DisplayType.GetLinqCondition(); |
| | | switch (expressionType) |
| | | { |
| | | case LinqExpressionType.ThanOrEqual: |
| | | minCreateDate = dateValue; |
| | | break; |
| | | case LinqExpressionType.LessThanOrEqual: |
| | | maxCreateDate = dateValue; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (minCreateDate.HasValue) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minCreateDate.Value); |
| | | } |
| | | if (maxCreateDate.HasValue) |
| | | { |
| | | sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= maxCreateDate.Value); |
| | | } |
| | | } |
| | | } |
| | | catch { } |