| 5 天以前 | heshaofeng | ![]() |
| 5 天以前 | heshaofeng | ![]() |
| 5 天以前 | 647556386 | ![]() |
| 5 天以前 | 647556386 | ![]() |
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs
@@ -92,6 +92,9 @@ [Description("æºä»å ¥æºä»ç»çæå")] æºä»å ¥æºä»ç»çæå = 15, [Description("çç¹åºåºéå®")] çç¹åºåºéå® = 16, [Description("鿣åºå宿")] 鿣åºå宿 = 19, ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -30,7 +30,8 @@ private readonly IRepository<Dt_OutboundOrderDetail> _outboundOrderDetailRepository; private readonly IMaterialUnitService _materialUnitService; 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) private readonly IFeedbackMesService _feedbackMesService; 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, IFeedbackMesService feedbackMesService) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -39,6 +40,7 @@ _materialUnitService = materialUnitService; _materielInfoService = materielInfoService; _outStockLockInfoRepository = outStockLockInfoRepository; _feedbackMesService = feedbackMesService; } private int[] OrderTypes = new int[] { (int)InOrderTypeEnum.AllocatOutbound, (int)InOrderTypeEnum.InternalAllocat, (int)InOrderTypeEnum.ReCheck }; @@ -240,12 +242,14 @@ _outboundOrderDetailRepository.UpdateData(updateoutboundOrderDetails); _outboundOrderDetailRepository.AddData(outboundOrderDetails); if (outboundOrder.Details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty)) var realLatestDetails = Db.Queryable<Dt_OutboundOrderDetail>().Where(x => x.OrderId == outboundOrder.Id).ToList(); if (realLatestDetails.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty)) { outboundOrder.OrderStatus = (int)OutOrderStatusEnum.åºåºå®æ; outboundOrder.ReturnToMESStatus = 1; BaseDal.UpdateData(outboundOrder); _feedbackMesService.OutboundFeedback(outboundOrder.OrderNo); } BaseDal.UpdateData(outboundOrder); _unitOfWorkManage.CommitTran(); ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -358,7 +358,7 @@ _detailRepository.UpdateData(outboundOrderDetails); if (pickedDetails.Any()) { UpdateStockStatus(pickedDetails.Select(x => x.PalletCode).ToList(), StockStatusEmun.åºåºéå®.ObjToInt()); UpdateStockStatus(pickedDetails.Select(x => x.PalletCode).ToList(), StockStatusEmun.åºåºéå®.ObjToInt(),outboundOrder); UpdateLocationStatus(pickedDetails.Select(x => x.LocationCode).ToList(), LocationStatusEnum.Lock.ObjToInt()); } //鿣å䏿£éï¼å»æéå®è®°å½ååºï¼å次ç»çæ¶æ£é¤åæ¡ç @@ -984,11 +984,16 @@ } } public bool UpdateStockStatus(List<string> palletCodes, int status) public bool UpdateStockStatus(List<string> palletCodes, int status,Dt_OutboundOrder outOrder) { try { List<Dt_StockInfo> stockInfos = _stockInfoRepository.QueryData(x => palletCodes.Contains(x.PalletCode)); ///æºä»è°æºä»åæ®è®°å½ if(outOrder.OrderType == 117) { stockInfos.ForEach(stockInfo => stockInfo.Remark = outOrder.OrderNo); } stockInfos.ForEach(stockInfo => stockInfo.StockStatus = status); _stockInfoRepository.UpdateData(stockInfos); return true; @@ -2251,6 +2256,48 @@ return content.Error($"æªæ¾å°æç{palletCode}åºåä¿¡æ¯ä¸å 许ååº"); } var task = await _taskRepository.Db.Queryable<Dt_Task>() .Where(x => x.PalletCode == palletCode) .FirstAsync(); if (task != null) { return content.Error($"æç{palletCode}åå¨ä»»å¡ååºå¤±è´¥!"); } // åé æ°è´§ä½ var newLocation = _locationInfoService.AssignLocation(stock.LocationType); if (newLocation == null) { return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); } if(stock.Remark !=null && stock.Remark != "") { Dt_OutboundOrder outboundOrder = _outboundRepository.QueryFirst(x => x.OrderNo == stock.Remark && x.OrderType == 117 && x.OrderStatus == OutOrderStatusEnum.åºåºä¸.ObjToInt()); if (outboundOrder != null) { // 1. æ ¹æ®è®¢åå·æ¥è¯¢è°æ¨ç©æä¿¡æ¯ List<Dt_AllocateMaterialInfo> allocateMaterialInfos = _allocateMaterialInfoRepository.QueryData(x => x.OrderNo == outboundOrder.OrderNo); // 2. 夿æ¯å¦åå¨è°æ¨ç©æï¼æ²¡æåç´æ¥è·³è¿æ ¡éª if (allocateMaterialInfos != null && allocateMaterialInfos.Any()) { // 3. æåææ Barcode éå List<string> barcodes = allocateMaterialInfos.Select(x => x.Barcode).ToList(); // 4. æ ¹æ® Barcode æ¹éæ¥è¯¢åºåæç» List<Dt_StockInfoDetail> stockInfoDetails = _stockDetailRepository.QueryData(x => barcodes.Contains(x.Barcode) && x.OrderNo == outboundOrder.OrderNo); // 5. æ°é对æ¯ï¼ä¸ç¸ç â æªå ¨é¨ç»ç宿 if (barcodes.Count != stockInfoDetails.Count) { return WebResponseContent.Instance.Error($"æºä»è°æºä»åæ®{outboundOrder.OrderNo}å°æªå ¨é¨ç»ç宿ï¼è¯·å è¿è¡ç»çåååºåæ®ç¸å ³æç®±"); } } } } if (stock.Details.Count <= 0) { stock.PalletType = (int)PalletTypeEnum.Empty; @@ -2354,23 +2401,6 @@ stock.StockStatus = (int)StockStatusEmun.å ¥åºç¡®è®¤; stock.LocationCode = ""; } var task = await _taskRepository.Db.Queryable<Dt_Task>() .Where(x => x.PalletCode == palletCode) .FirstAsync(); if (task != null) { return content.Error($"æç{palletCode}åå¨ä»»å¡ååºå¤±è´¥!"); } // åé æ°è´§ä½ var newLocation = _locationInfoService.AssignLocation(stock.LocationType); if(newLocation == null) { return WebResponseContent.Instance.Error("没æç©ºé²åºä½å¯ååº"); } var newTask = new Dt_Task() ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -1091,6 +1091,7 @@ stockInfo.LocationCode = locationInfo.LocationCode; stockInfo.PalletCode = task.PalletCode; stockInfo.LocationCode = task.TargetAddress; stockInfo.Remark =""; stockInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); _stockRepository.UpdateData(stockInfo); @@ -1346,6 +1347,7 @@ // æ´æ°åºåä¿¡æ¯ stockInfo.LocationCode = task.TargetAddress; stockInfo.StockStatus = StockStatusEmun.å ¥åºå®æ.ObjToInt(); stockInfo.Remark = ""; // æ´æ°åºåæç»ç¶æ if (stockInfo.Details != null && stockInfo.Details.Any()) @@ -2259,7 +2261,7 @@ { return content.Error($"çç¹å{task.OrderNo}çç¹å·²å®æææªå¼å§"); } if (stockInfo.StockStatus != StockStatusEmun.åºåºéå®.ObjToInt()) if (stockInfo.StockStatus != StockStatusEmun.çç¹åºåºéå®.ObjToInt()) { return content.Error($"{stockInfo.PalletCode}åºåç¶æä¸æ£ç¡®"); } @@ -2351,7 +2353,7 @@ { _logger.LogInformation($"InEmptyTaskCompleted AddLocationStatusChangeRecord : {ex.Message} "); } return content; return content.OK(); } catch (Exception ex) { ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -1181,7 +1181,7 @@ } stockInfos.ForEach(x => { x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); x.StockStatus = StockStatusEmun.çç¹åºåºéå®.ObjToInt(); }); tasks.ForEach(x => {