| | |
| | | using WIDESEA_DTO.Stock; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_IInboundService; |
| | | using WIDESEA_IOutboundRepository; |
| | | using WIDESEA_IOutboundService; |
| | |
| | | using WIDESEA_ITaskInfoService; |
| | | using WIDESEA_Model; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEA_Model.Models.Inbound; |
| | | using WIDESEA_TaskInfoRepository; |
| | | using OrderByType = SqlSugar.OrderByType; |
| | | |
| | |
| | | private readonly IOutboundOrderDetail_HtyRepository _outboundOrderDetail_HtyRepository; |
| | | private readonly IOutBoundOrderBYDRepository _outBoundOrderBYDRepository; |
| | | private readonly IOutboundOrderDetailBYDRepository _outboundOrderDetailByDRepository; |
| | | private readonly IMainReturnInventoryRepository _mainReturnInventoryRepository; |
| | | private readonly IReturnInventoryDetailRepository _returnInventoryDetailRepository; |
| | | public ITaskRepository Repository => BaseDal; |
| | | |
| | | private Dictionary<string, OrderByType> _OutLockOrderBy = new Dictionary<string, OrderByType>() |
| | |
| | | |
| | | }; |
| | | |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository) : base(BaseDal) |
| | | public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, ISys_JobService sys_JobService, ILabelMasterRepository labelMasterRepository, IOutStockLockInfoRepository outStockLockInfoRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository, IOutBoundOrderBYDRepository outBoundOrderBYDRepository, IOutboundOrderDetailBYDRepository outboundOrderDetailByDRepository, IOutboundOrderRepository outboundOrderRepository, IOutboundOrder_HtyRepository outboundOrder_HtyRepository, IOutboundOrderDetail_HtyRepository outboundOrderDetail_HtyRepository, IReturnInventoryDetailRepository returnInventoryDetailRepository,IMainReturnInventoryRepository mainReturnInventoryRepository) : base(BaseDal) |
| | | { |
| | | _mapper = mapper; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | |
| | | _outboundOrderRepository = outboundOrderRepository; |
| | | _outboundOrder_HtyRepository = outboundOrder_HtyRepository; |
| | | _outboundOrderDetail_HtyRepository = outboundOrderDetail_HtyRepository; |
| | | _returnInventoryDetailRepository = returnInventoryDetailRepository; |
| | | _mainReturnInventoryRepository = mainReturnInventoryRepository; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | return WebResponseContent.Instance.Error("æªæ¾å°ä»»å¡ä¿¡æ¯"); |
| | | } |
| | | if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt()) |
| | | if (task.TaskStatus == 100 || task.TaskStatus == 200)//å¦ææ¯æ°å»ºä»»å¡ç¶ææ¹ä¸ºæ§è¡ä¸ |
| | | { |
| | | task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt(); |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt()) |
| | | { |
| | | task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt(); |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) |
| | | { |
| | | task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt(); |
| | | if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt()) |
| | | { |
| | | task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt(); |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt()) |
| | | { |
| | | task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt(); |
| | | } |
| | | //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) |
| | | //{ |
| | | // task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt(); |
| | | //} |
| | | else |
| | | { |
| | | throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt()) |
| | | { |
| | | task.TaskStatus = OutTaskStatusEnum.SC_OutFinish.ObjToInt(); |
| | | } |
| | | else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletReturnInbound.ObjToInt()) |
| | | { |
| | | task.TaskStatus = InTaskStatusEnum.SC_InFinish.ObjToInt(); |
| | | } |
| | | //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt()) |
| | | //{ |
| | | // task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt(); |
| | | //} |
| | | else |
| | | { |
| | | throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); |
| | | } |
| | | |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | task.Dispatchertime = DateTime.Now; |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 空æçå
¥åºå®æå¤ç |
| | | /// </summary> |
| | |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 使éåºå®æå¤ç |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½å¯¹è±¡</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent PalletReturnInboundTaskCompleted(Dt_Task task) |
| | | { |
| | | try |
| | | { |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | decimal beforeQuantity = 0; |
| | | Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | CheckCompleted(stockInfo, locationInfo); |
| | | |
| | | stockInfo.LocationCode = locationInfo.LocationCode; |
| | | stockInfo.StockStatus = StockStatusEmun.å·²å
¥åº.ObjToInt(); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | |
| | | beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity); |
| | | |
| | | int beforeStatus = locationInfo.LocationStatus; |
| | | locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); |
| | | |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt(); |
| | | |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.èªå¨å®æ : OperateType.äººå·¥å®æ); |
| | | |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); |
| | | _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound, task.TaskNum); |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | |
| | | //使å
¥åºå®æåï¼éè¦å°ç»çä¿¡æ¯è°ç¨ä¸æ¸¸WMS使éåç»ææ¥å£ |
| | | #region åä¼ é»è¾å¤ç |
| | | try |
| | | { |
| | | PutAwayReturnRequest request = new PutAwayReturnRequest(); |
| | | List<PutAwayReturn> DATA = new List<PutAwayReturn>(); |
| | | request.DATA = DATA; |
| | | request.WERKS = AppSettings.Configuration["WERKS"]; |
| | | request.WH_NUMBER = AppSettings.Configuration["SYSNO"]; |
| | | request.IZLID = task.OrderNo;//è¿ä¸ªå¼ä¼å¨æ¥æ¶ä¸æ¸¸ååºç»çä¿¡æ¯æ¶ï¼åå¨åºå表ä¸ï¼ååå°ä»»å¡è¡¨ä¸ |
| | | Dt_MainReturnInventory mainReturnInventory = _mainReturnInventoryRepository.QueryFirst(x => x.IZLID == task.OrderNo); |
| | | if (mainReturnInventory != null) |
| | | { |
| | | request.RETURN_NO = mainReturnInventory.RETURN_NO; |
| | | request.RETURN_ITEM_NO = mainReturnInventory.RETURN_ITEM_NO; |
| | | request.BUSINESS_NAME = mainReturnInventory.BUSINESS_NAME; |
| | | request.BUSINESS_CODE = mainReturnInventory.BUSINESS_CODE; |
| | | request.TPNUM = mainReturnInventory.TPNUM; |
| | | request.LGORT = mainReturnInventory.LGORT; |
| | | request.MO_NO = mainReturnInventory.MO_NO; |
| | | |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode); |
| | | foreach (Dt_StockInfoDetail detail in stockInfo.Details) |
| | | { |
| | | Dt_ReturnInventoryDetail dt_ReturnInventoryDetail = _returnInventoryDetailRepository.QueryFirst(x => x.LABEL_NO == detail.SerialNumber); |
| | | if (dt_ReturnInventoryDetail != null) |
| | | { |
| | | PutAwayReturn putAwayReturn = new PutAwayReturn(); |
| | | putAwayReturn.LABEL_NO = dt_ReturnInventoryDetail.LABEL_NO; |
| | | putAwayReturn.SOBKZ = dt_ReturnInventoryDetail.SOBKZ; |
| | | putAwayReturn.UNIT = dt_ReturnInventoryDetail.UNIT; |
| | | putAwayReturn.LGORT = dt_ReturnInventoryDetail.LGORT; |
| | | putAwayReturn.TOTAL_RETURN_QTY = dt_ReturnInventoryDetail.QTY; |
| | | putAwayReturn.F_LGORT = dt_ReturnInventoryDetail.F_LGORT; |
| | | putAwayReturn.MO_NO = mainReturnInventory.MO_NO; |
| | | putAwayReturn.LIFNR = dt_ReturnInventoryDetail.LIFNR; |
| | | putAwayReturn.MATNR = dt_ReturnInventoryDetail.MATNR; |
| | | putAwayReturn.BATCH = ""; |
| | | DATA.Add(putAwayReturn); |
| | | } |
| | | } |
| | | if(DATA.Count>0) |
| | | { |
| | | _sys_JobService.CallPutAwayReturn(request);//使éåºåä¼ |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | #endregion |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | PickAndPostRequest request = new PickAndPostRequest(); |
| | | List<PickAndPost> itemData = new List<PickAndPost>(); |
| | | request.ITEMDATA = itemData; |
| | | request.WH_NUMBER = AppSettings.Configuration["WERKS"]; |
| | | request.WH_NUMBER = AppSettings.Configuration["SYSNO"]; |
| | | request.SYSNOD = AppSettings.Configuration["SYSNO"]; |
| | | request.WERKS = AppSettings.Configuration["WERKS"]; |
| | | //ææ¶æ ¹æ®æçå·æ¥åºåºéå®è¡¨ä¸Dt_OutStockLockInfoä¸çç¶æä¸º1çææ°ä¸æ¡,å 为å
éå®ï¼ææä»»å¡ï¼æä»¥æ²¡æå
³èä»»å¡å· |
| | | //Dt_OutStockLockInfo outStockLockInfo= _outStockLockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode && x.Status == 1, _OutLockOrderBy); |
| | | |
| | | |
| | | request.WERKS = AppSettings.Configuration["CallMaterialID"]; |
| | | |
| | | Dt_OutboundOrderDetail_Hty detail = _outboundOrderDetail_HtyRepository.QueryFirst(x => x.SourceId.ToString() == task.Remark);// task.Remarkåéæ±æç»ID |
| | | if (detail != null) |
| | | { |