| | |
| | | Long userId = approvalDTO.getUserId(); |
| | | Long id = approvalDTO.getId(); |
| | | SgProgressReportDO sgProgressReportDO = sgProgressReportMapper.selectById(id); |
| | | List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).eq(SgReportUserDO::getIsHis,0) |
| | | .eq(SgReportUserDO::getApprovalStatus, 0).orderByDesc(SgReportUserDO::getApprovalOrder).list(); |
| | | List<SgReportUserDO> sgReportUserDOS = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).ne(SgReportUserDO::getApprovalOrder,0).eq(SgReportUserDO::getIsHis,0) |
| | | .orderByAsc(SgReportUserDO::getApprovalOrder).list(); |
| | | //审批者 |
| | | SgReportUserDO sgReportUserDO = list.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | | SgReportUserDO sgReportUserDO = new SgReportUserDO(); |
| | | 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(); |
| | | } |
| | | Date date = new Date(); |
| | | LambdaUpdateChainWrapper<SgProgressReportDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getId, id); |
| | | LambdaUpdateChainWrapper<SgReportUserDO> userUpdate = new LambdaUpdateChainWrapper<>(sgReportUserMapper) |
| | | .eq(SgReportUserDO::getId, sgReportUserDO.getId()).set(SgReportUserDO::getApprovalContent,approvalDTO.getApprovalContent()).set(SgReportUserDO::getApprovalTime,date); |
| | | if (approvalDTO.getStatus()==1){ |
| | | Integer approvalOrder = sgReportUserDO.getApprovalOrder(); |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,1).update(); |
| | | if (sgReportUserDO.getId()==list.get(0).getId()){ |
| | | if (sgReportUserDO.getId()==sgReportUserDOS.get(0).getId()){ |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update(); |
| | | |
| | | |
| | |
| | | |
| | | |
| | | }else { |
| | | SgReportUserDO nextUser = list.stream().filter(s -> s.getApprovalOrder()==sgReportUserDO.getApprovalOrder()+1).findFirst().get(); |
| | | SgReportUserDO nextUser = sgReportUserDOS.stream().filter(s -> s.getApprovalOrder()==approvalOrder+1).findFirst().get(); |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getUserId()).update(); |
| | | } |
| | | }else { |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,3); |
| | | List<SgReportUserDO> sgReportUserDOS = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).eq(SgReportUserDO::getIsHis,0) |
| | | .orderByAsc(SgReportUserDO::getApprovalOrder).list() |
| | | // .stream().distinct() |
| | | // .stream().filter(s->s.getApprovalOrder()!=0 && s.getApprovalOrder()<= sgReportUserDO.getApprovalOrder()).collect(Collectors.toList()) |
| | | ; |
| | |
| | | if (reportUserDO.getApprovalOrder()<=sgReportUserDO.getApprovalOrder()&&reportUserDO.getApprovalOrder()!=0){ |
| | | //更新为历史数据 |
| | | new LambdaUpdateChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getId,reportUserDO.getId()).set(SgReportUserDO::getIsHis,1).update(); |
| | | reportUserDO.setId(null); |
| | | reportUserDO.setApprovalStatus(0); |
| | | reportUserDO.setIsHis(0); |
| | | reportUserDO.setApprovalTime(date); |
| | | setReportUser(date, reportUserDO); |
| | | sgReportUserMapper.insert(reportUserDO); |
| | | try { |
| | | Thread.sleep(100); |
| | |
| | | } |
| | | }else if (reportUserDO.getApprovalOrder()>sgReportUserDO.getApprovalOrder()){ |
| | | sgReportUserMapper.deleteById(reportUserDO.getId()); |
| | | reportUserDO.setId(null); |
| | | reportUserDO.setApprovalStatus(0); |
| | | reportUserDO.setIsHis(0); |
| | | reportUserDO.setApprovalTime(date); |
| | | setReportUser(date, reportUserDO); |
| | | sgReportUserMapper.insert(reportUserDO); |
| | | try { |
| | | Thread.sleep(100); |
| | |
| | | |
| | | } |
| | | |
| | | private void setReportUser(Date date, SgReportUserDO reportUserDO) { |
| | | reportUserDO.setId(null); |
| | | reportUserDO.setApprovalStatus(0); |
| | | reportUserDO.setIsHis(0); |
| | | reportUserDO.setApprovalTime(date); |
| | | reportUserDO.setApprovalContent(null); |
| | | } |
| | | |
| | | |
| | | public void setProgramAndDeviceStatus(Long projectId){ |
| | | //查询所有的项目 |