| | |
| | | if (isReject==1 && sgProgressReportDO.getStatus().equals(2)){ |
| | | sgReportUserDO = sgReportUserDOS.get(0); |
| | | }else { |
| | | sgReportUserDOS.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | | sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | | } |
| | | Date date = new Date(); |
| | | LambdaUpdateChainWrapper<SgProgressReportDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getId, id); |
| | |
| | | if (approvalDTO.getStatus()==1){ |
| | | Integer approvalOrder = sgReportUserDO.getApprovalOrder(); |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,1).update(); |
| | | if (sgReportUserDO.getId()==sgReportUserDOS.get(0).getId()){ |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update(); |
| | | |
| | | |
| | | //工序审核完成后 进行项目和设备状态的判断 |
| | | |
| | | cachedThreadPool.execute(new Runnable(){ |
| | | @Override |
| | | public void run(){ |
| | | setProgramAndDeviceStatus(sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId()); |
| | | } |
| | | }); |
| | | |
| | | |
| | | |
| | | }else { |
| | | SgReportUserDO nextUser = sgReportUserDOS.stream().filter(s -> s.getApprovalOrder()==approvalOrder+1).findFirst().get(); |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getUserId()).update(); |
| | | } |
| | | Optional<SgReportUserDO> next = sgReportUserDOS.stream().filter(s -> s.getApprovalOrder() == approvalOrder + 1).findFirst(); |
| | | //如果存在下一个审批人,则继续审批 |
| | | if (next.isPresent()){ |
| | | SgReportUserDO nextUser = next.get(); |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getUserId()).update(); |
| | | }else { |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update(); |
| | | //工序审核完成后 进行项目和设备状态的判断 |
| | | cachedThreadPool.execute(new Runnable(){ |
| | | @Override |
| | | public void run(){ |
| | | setProgramAndDeviceStatus(sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId()); |
| | | } |
| | | }); |
| | | } |
| | | }else { |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,3); |
| | | // .stream().distinct() |
| | | // .stream().filter(s->s.getApprovalOrder()!=0 && s.getApprovalOrder()<= sgReportUserDO.getApprovalOrder()).collect(Collectors.toList()) |
| | | ; |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,2); |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,2); |
| | | if (isReject==1){ |
| | | userUpdate.set(SgReportUserDO::getUserId,userId); |
| | | } |