Commit e8e59ce9e23b969ac88472fc3eca722d9aad187f
1 parent
621875c5
批量取消,执行任务完善
Showing
4 changed files
with
153 additions
and
31 deletions
src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java
src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java
... | ... | @@ -119,5 +119,21 @@ public class TaskHeaderController extends BaseController { |
119 | 119 | } |
120 | 120 | |
121 | 121 | |
122 | + /** | |
123 | + * 删除立库任务 | |
124 | + */ | |
125 | + @RequiresPermissions("task:taskHeader:remove") | |
126 | + @Log(title = "任务-任务管理", operating = "删除立库任务", action = BusinessType.DELETE) | |
127 | + @PostMapping( "/remove") | |
128 | + @ResponseBody | |
129 | + public AjaxResult remove(String ids) | |
130 | + { | |
131 | + if (StringUtils.isEmpty(ids)) | |
132 | + return AjaxResult.error("taskId不能为空"); | |
133 | + AjaxResult ajaxResult = taskHeaderService.cancelTask(Convert.toIntArray(ids)); | |
134 | + return ajaxResult; | |
135 | + } | |
136 | + | |
137 | + | |
122 | 138 | |
123 | 139 | } |
... | ... |
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java
src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
... | ... | @@ -12,6 +12,7 @@ import com.huaheng.pc.config.container.domain.Container; |
12 | 12 | import com.huaheng.pc.config.container.service.ContainerService; |
13 | 13 | import com.huaheng.pc.config.location.domain.Location; |
14 | 14 | import com.huaheng.pc.config.location.service.LocationService; |
15 | +import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader; | |
15 | 16 | import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; |
16 | 17 | import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; |
17 | 18 | import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; |
... | ... | @@ -88,7 +89,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
88 | 89 | private ShipmentDetailService shipmentDetailService; |
89 | 90 | |
90 | 91 | |
91 | - | |
92 | 92 | @Resource |
93 | 93 | private ReceiptContainerHeaderService receiptContainerHeaderService; |
94 | 94 | @Resource |
... | ... | @@ -96,9 +96,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
96 | 96 | |
97 | 97 | |
98 | 98 | |
99 | - | |
100 | - | |
101 | - | |
102 | 99 | /** |
103 | 100 | * 查询容器有无任务 |
104 | 101 | */ |
... | ... | @@ -107,6 +104,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
107 | 104 | return taskHeaderMapper.UncompleteCount(ContainerCode, ShiroUtils.getWarehouseCode()); |
108 | 105 | } |
109 | 106 | |
107 | + | |
108 | + /** | |
109 | + * 取消任务 | |
110 | + * */ | |
111 | + | |
112 | + @Override | |
113 | + public AjaxResult cancelTask(Integer[] taskIds) { | |
114 | + for(int taskId : taskIds){ | |
115 | + TaskHeader taskHeader = taskHeaderService.getById(taskId); | |
116 | + if(taskHeader==null){ | |
117 | + return AjaxResult.error("任务"+taskId+"未找到,操作中止"); | |
118 | + } | |
119 | + if(taskHeader.getStatus() > 9){ | |
120 | + return AjaxResult.error("存在任务"+taskHeader.getId()+"已下发或执行,操作中止"); | |
121 | + } | |
122 | + //删除子任务 | |
123 | + LambdaQueryWrapper<TaskDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); | |
124 | + lambdaQueryWrapper.eq(TaskDetail::getTaskId,taskHeader.getId()); | |
125 | + taskDetailService.remove(lambdaQueryWrapper); | |
126 | + //删除主任务 | |
127 | + taskHeaderService.removeById(taskHeader.getId()); | |
128 | + // 更改库位状态(整盘入库任务除外) | |
129 | + if(taskHeader.getInternalTaskType() == 100 ) | |
130 | + { | |
131 | + ReceiptContainerHeader record =new ReceiptContainerHeader(); | |
132 | + record.setStatus((short)0); | |
133 | + record.setId(taskHeader.getAllocationHeadId()); | |
134 | + receiptContainerHeaderService.updateById(record); | |
135 | + } | |
136 | + //根据任务类型来更新货箱状态 | |
137 | + //修改关联的货箱状态 | |
138 | + if(taskHeader.getInternalTaskType() == 200) { | |
139 | + ShipmentContainerHeader shipmentContainerHeader = new ShipmentContainerHeader(); | |
140 | + shipmentContainerHeader.setId(taskHeader.getAllocationHeadId()); | |
141 | + shipmentContainerHeader.setStatus(0); | |
142 | + shipmentContainerHeaderService.updateById(shipmentContainerHeader); | |
143 | + } | |
144 | +// if(taskHeader.getInternalTaskType() == 700) { | |
145 | +// CycleCountHeader cycleCountHeader = new CycleCountHeader(); | |
146 | +// cycleCountHeader.setId(task.getAllocationHeadId()); | |
147 | +// cycleCountHeader.setLastUpdated(new Date()); | |
148 | +// cycleCountHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
149 | +// cyclecountDetailService.updateByModel(cyclecountDetail); | |
150 | +// } | |
151 | + if(taskHeader.getInternalTaskType()==100||taskHeader.getInternalTaskType()==200){ | |
152 | + if(taskHeader.getToLocation()!=null){ | |
153 | + //更新托盘、库位状态 | |
154 | + locationService.updateStatus(taskHeader.getToLocation(), "empty"); | |
155 | + } | |
156 | + } | |
157 | +// if(task.getType()==900){ | |
158 | +// //出库查看任务没有关联的货箱,不做处理 | |
159 | +// } | |
160 | + } | |
161 | + | |
162 | + return AjaxResult.success("取消任务成功!"); | |
163 | + } | |
164 | + | |
110 | 165 | /** |
111 | 166 | * 生成出库任务 |
112 | 167 | * |
... | ... | @@ -215,7 +270,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
215 | 270 | ShipmentContainerHeader record = new ShipmentContainerHeader(); |
216 | 271 | record.setId(shipmentContainerHeaderId); |
217 | 272 | record.setStatus(10); |
218 | - record.setStatus(task.getTaskType());//实际出库类型 | |
219 | 273 | shipmentContainerHeaderService.saveOrUpdate(record); |
220 | 274 | return AjaxResult.success(task.getId()); |
221 | 275 | |
... | ... | @@ -238,39 +292,64 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
238 | 292 | return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止"); |
239 | 293 | } |
240 | 294 | //修改任务头表 |
295 | + task.setId(taskId); | |
241 | 296 | task.setStatus(10); |
242 | 297 | task.setStartPickDateTime(new Date()); //生成时间 |
243 | 298 | task.setLastUpdated(new Date()); |
244 | 299 | task.setLastUpdatedBy(ShiroUtils.getLoginName()); |
245 | - LambdaUpdateWrapper<TaskHeader> HeaderUpdateWrapper = Wrappers.lambdaUpdate(); | |
246 | - HeaderUpdateWrapper.eq(TaskHeader::getId, taskId); | |
247 | - if (!taskHeaderService.update(task, HeaderUpdateWrapper)) | |
248 | - throw new ServiceException("更新任务头失败"); | |
300 | + taskHeaderService.saveOrUpdate(task); | |
249 | 301 | //修改任务明细状态 |
250 | 302 | TaskDetail record = new TaskDetail(); |
251 | 303 | record.setStatus(10); |
252 | 304 | record.setLastUpdated(new Date()); |
253 | 305 | record.setLastUpdatedBy(ShiroUtils.getLoginName()); |
306 | + record.setProcessStamp("100"); | |
307 | + taskDetailService.updateById(record); | |
254 | 308 | LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); |
255 | 309 | lambdaUpdateWrapper.eq(TaskDetail::getTaskId, task.getId()); |
256 | 310 | if (!taskDetailService.update(record, lambdaUpdateWrapper)){ |
257 | 311 | throw new ServiceException("更新任务明细失败"); |
258 | 312 | } |
259 | - //修改入库明细 | |
260 | - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId())); | |
261 | - if (!receiptDetailService.updateById(receiptDetail)){ | |
262 | - throw new ServiceException("更新状态失败"); | |
263 | - } | |
264 | - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | |
265 | - //修改组盘表状态为20 | |
266 | - ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); | |
267 | - receiptContainerDetail.setStatus(20); | |
268 | - receiptContainerDetail.setLastUpdated(new Date()); | |
269 | - receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
270 | - LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); | |
271 | - receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId()); | |
272 | - if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) | |
273 | - throw new ServiceException("更新组盘状态失败"); | |
313 | +// //修改入库明细 | |
314 | +// if (task.getInternalTaskType()==100){ | |
315 | +// ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(record.getId())); | |
316 | +// if (!receiptDetailService.updateById(receiptDetail)){ | |
317 | +// throw new ServiceException("更新状态失败"); | |
318 | +// } | |
319 | +// receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | |
320 | +// | |
321 | +// //修改组盘表状态为20 | |
322 | +// ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); | |
323 | +// receiptContainerDetail.setStatus(20); | |
324 | +// receiptContainerDetail.setLastUpdated(new Date()); | |
325 | +// receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
326 | +// LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); | |
327 | +// receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId,receiptDetail.getReceiptId()); | |
328 | +// if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) | |
329 | +// throw new ServiceException("更新组盘状态失败"); | |
330 | +// } | |
331 | +// | |
332 | +// //修改出库单状态 | |
333 | +// if (task.getInternalTaskType()==200){ | |
334 | +// LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
335 | +// taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId()); | |
336 | +// List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper); | |
337 | +// | |
338 | +// for (TaskDetail taskDeatails: taskDetailList) { | |
339 | +// LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
340 | +// shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId()); | |
341 | +// | |
342 | +// ShipmentHeader shipmentHeader =new ShipmentHeader(); | |
343 | +// shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId()); | |
344 | +// shipmentHeader.setFirstStatus(100); | |
345 | +// shipmentHeader.setLastStatus(100); | |
346 | +// shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
347 | +// shipmentHeader.setLastUpdated(new Date()); | |
348 | +// shipmentHeaderService.updateById(shipmentHeader); | |
349 | +// } | |
350 | +// } | |
351 | + | |
352 | + | |
274 | 353 | } |
275 | 354 | return AjaxResult.success("下发任务成功", task); |
276 | 355 | } |
... | ... | @@ -491,12 +570,37 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea |
491 | 570 | receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(map.get("receiptId"))); |
492 | 571 | if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)) |
493 | 572 | throw new ServiceException("更新组盘状态失败"); |
494 | - //修改入库明细 | |
495 | - ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId")))); | |
496 | - if (!receiptDetailService.updateById(receiptDetail)){ | |
497 | - throw new ServiceException("更新状态失败"); | |
573 | + | |
574 | + if (task.getInternalTaskType()==100){ | |
575 | + //修改入库明细 | |
576 | + ReceiptDetail receiptDetail = receiptDetailService.queryflow(receiptDetailService.getById(DataUtils.getInteger(map.get("receiptDetailId")))); | |
577 | + if (!receiptDetailService.updateById(receiptDetail)){ | |
578 | + throw new ServiceException("更新状态失败"); | |
579 | + } | |
580 | + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | |
581 | + } | |
582 | + | |
583 | + //修改出库单明细 | |
584 | + if (task.getInternalTaskType()==200){ | |
585 | + LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
586 | + taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId,task.getId()); | |
587 | + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper); | |
588 | + | |
589 | + for (TaskDetail taskDeatails: taskDetailList) { | |
590 | + LambdaQueryWrapper<ShipmentDetail> shipmentDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
591 | + shipmentDetailLambdaQueryWrapper.eq(ShipmentDetail::getId,taskDeatails.getBillDetailId()); | |
592 | + | |
593 | + ShipmentHeader shipmentHeader =new ShipmentHeader(); | |
594 | + shipmentHeader.setId(shipmentDetailService.getOne(shipmentDetailLambdaQueryWrapper).getShipmentId()); | |
595 | + shipmentHeader.setFirstStatus(100); | |
596 | + shipmentHeader.setLastStatus(100); | |
597 | + shipmentHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); | |
598 | + shipmentHeader.setLastUpdated(new Date()); | |
599 | + shipmentHeaderService.updateById(shipmentHeader); | |
600 | + } | |
498 | 601 | } |
499 | - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); | |
602 | + | |
603 | + | |
500 | 604 | } |
501 | 605 | |
502 | 606 | } |
... | ... |