Commit e8e59ce9e23b969ac88472fc3eca722d9aad187f

Authored by wangyanxiong
1 parent 621875c5

批量取消,执行任务完善

src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/domain/ReceiptContainerHeader.java
... ... @@ -269,8 +269,8 @@ public class ReceiptContainerHeader implements Serializable {
269 269 *
270 270 * @return id - ID
271 271 */
272   - public Integer getId() {
273   - return id;
  272 + public Integer getId() {
  273 + return this.id;
274 274 }
275 275  
276 276 /**
... ...
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
... ... @@ -35,5 +35,7 @@ public interface TaskHeaderService extends IService<TaskHeader>{
35 35  
36 36 Integer UncompleteCount(String containerCode);
37 37  
  38 + AjaxResult cancelTask(Integer[] taskIds) ;
  39 +
38 40  
39 41 }
... ...
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&lt;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&lt;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&lt;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 }
... ...