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 483 }
484 484 //修改组盘表状态为20
485 485 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
486   - receiptContainerDetail.setStatus(20);
  486 + receiptContainerDetail.setStatus(30);
487 487 receiptContainerDetail.setProcessStamp("0");
488 488 receiptContainerDetail.setLastUpdated(new Date());
489 489 receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
... ... @@ -1015,15 +1015,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
1015 1015 throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!");
1016 1016 }
1017 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 1022 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty()));
1020 1023 inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty()));
1021 1024 if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){
1022 1025 //如果库存没有了,就删除这个库存
1023 1026 inventoryDetailService.removeById(inventoryDetail.getId());
  1027 + inventoryHeaderService.removeById(inventoryHeader.getId());
1024 1028 }else {
1025 1029 //否则更新这个库存
1026 1030 inventoryDetailService.updateById(inventoryDetail);
  1031 + inventoryHeaderService.updateById(inventoryHeader);
1027 1032 }
1028 1033 //设置子任务状态为已执行
1029 1034 taskDetail.setStatus(100);
... ... @@ -1092,11 +1097,25 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
1092 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  
... ...