| | |
| | | { |
| | | throw new Exception("未找到库存信息"); |
| | | } |
| | | if (stockInfos == null || stockInfos.Count == 0) |
| | | { |
| | | throw new Exception("未找到库存信息"); |
| | | } |
| | | var Newtasks = GetTasks(stockInfos, TaskTypeEnum.OutProduct); |
| | | List<Dt_StockInfoDetail> stockInfoDetails = _stockService.StockInfoDetailService.Repository.QueryData(x => stockInfos.Select(x => x.Id).Contains(x.StockId)); |
| | | foreach (var item in outboundOrderDetails) |
| | |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | //合托出库 |
| | | public WebResponseContent WMSGenerateSTOutboundTask(int[] keys) |
| | | { |
| | | try |
| | | { |
| | | List<Dt_Task> tasks = new List<Dt_Task>(); |
| | | List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); |
| | | List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); |
| | | |
| | | List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.Repository.QueryData(x => keys.Contains(x.Id) && x.StockStatus == StockStatusEmun.入库完成.ObjToInt()); |
| | | if (stockInfos == null || stockInfos.Count == 0) |
| | | { |
| | | throw new Exception("未找到库存信息,或库存状态不为入库完成"); |
| | | } |
| | | var Newtasks = GetTasks(stockInfos, TaskTypeEnum.OutSyncretism); |
| | | List<Dt_StockInfoDetail> stockInfoDetails = _stockService.StockInfoDetailService.Repository.QueryData(x => stockInfos.Select(x => x.Id).Contains(x.StockId)); |
| | | foreach (var item in stockInfos) |
| | | { |
| | | Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.PalletCode == item.PalletCode); |
| | | if (stockInfo == null) continue; |
| | | |
| | | stockInfo.StockStatus = StockStatusEmun.出库锁定.ObjToInt(); |
| | | var task = Newtasks.FirstOrDefault(x => x.PalletCode == item.PalletCode); |
| | | tasks.Add(task); |
| | | } |
| | | locationInfos.AddRange(_basicService.LocationInfoService.Repository.GetLocationInfos(stockInfos.Select(x => x.LocationCode).ToList())); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | BaseDal.AddData(tasks); |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfos); |
| | | _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetails); |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock.ObjToInt(), StockChangeType.Outbound.ObjToInt(), "", tasks?.Select(x => x.TaskNum).ToList()); |
| | | _basicService.LocationInfoService.Repository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | //将任务推送到WCS |
| | | return PushTasksWCS(tasks); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | } |