Commit 7a791cfff3790294ac3a07949d156c0cfdde3d47

Authored by wangyanxiong
1 parent 430bdfe4

出库完成完善

src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java
@@ -483,7 +483,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @@ -483,7 +483,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
483 } 483 }
484 //修改组盘表状态为20 484 //修改组盘表状态为20
485 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); 485 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
486 - receiptContainerDetail.setStatus(20); 486 + receiptContainerDetail.setStatus(30);
487 receiptContainerDetail.setProcessStamp("0"); 487 receiptContainerDetail.setProcessStamp("0");
488 receiptContainerDetail.setLastUpdated(new Date()); 488 receiptContainerDetail.setLastUpdated(new Date());
489 receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); 489 receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -1015,15 +1015,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @@ -1015,15 +1015,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
1015 throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!"); 1015 throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!");
1016 } 1016 }
1017 BigDecimal orignalQty = inventoryDetail.getQty(); 1017 BigDecimal orignalQty = inventoryDetail.getQty();
1018 - //扣减库存 1018 + //减扣库存单
  1019 + InventoryHeader inventoryHeader = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId());
  1020 + inventoryHeader.setTotalQty(inventoryDetail.getQty().subtract(taskDetail.getQty()).intValue());
  1021 + //扣减库存明细
1019 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty())); 1022 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty()));
1020 inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty())); 1023 inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty()));
1021 if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){ 1024 if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){
1022 //如果库存没有了,就删除这个库存 1025 //如果库存没有了,就删除这个库存
1023 inventoryDetailService.removeById(inventoryDetail.getId()); 1026 inventoryDetailService.removeById(inventoryDetail.getId());
  1027 + inventoryHeaderService.removeById(inventoryHeader.getId());
1024 }else { 1028 }else {
1025 //否则更新这个库存 1029 //否则更新这个库存
1026 inventoryDetailService.updateById(inventoryDetail); 1030 inventoryDetailService.updateById(inventoryDetail);
  1031 + inventoryHeaderService.updateById(inventoryHeader);
1027 } 1032 }
1028 //设置子任务状态为已执行 1033 //设置子任务状态为已执行
1029 taskDetail.setStatus(100); 1034 taskDetail.setStatus(100);
@@ -1092,11 +1097,25 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @@ -1092,11 +1097,25 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
1092 containerService.update(containerLambdaUpdateWrapper); 1097 containerService.update(containerLambdaUpdateWrapper);
1093 } 1098 }
1094 } 1099 }
1095 -// //设置出库货箱状态为拣货任务完成  
1096 -// shipmentContainerHeaderService.resetStatusShipmentContainer(task.getAllocationHeadId(),(short)20);  
1097 - // 最后更新单据状态  
1098 - shipmentHeadIds.stream().distinct().forEach(t->shipmentHeaderService.updateShipmentStatus(t));  
1099 - 1100 + //设置出库货箱状态为拣货任务完成
  1101 + ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
  1102 + receiptContainerDetail.setStatus(30);
  1103 + receiptContainerDetail.setLastUpdated(new Date());
  1104 + receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
  1105 + LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
  1106 + receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getId,task.getAllocationHeadId());
  1107 + if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){
  1108 + throw new ServiceException("更新组盘明细状态失败");
  1109 + }
  1110 + //设置出库货箱表头状态为拣货任务完成
  1111 + ReceiptContainerHeader ContainerHeader = new ReceiptContainerHeader();
  1112 + ContainerHeader.setStatus((short)30);
  1113 + ContainerHeader.setLastUpdated(new Date());
  1114 + ContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
  1115 + LambdaUpdateWrapper<ReceiptContainerHeader> receiptContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
  1116 + receiptContainerHeaderLambdaUpdateWrapper.eq(ReceiptContainerHeader::getId,task.getAllocationHeadId());
  1117 + if (! receiptContainerHeaderService.update(ContainerHeader, receiptContainerHeaderLambdaUpdateWrapper))
  1118 + throw new ServiceException("更新组盘头状态失败");
1100 } 1119 }
1101 1120
1102 1121