| | |
| | | import cn.gistack.sm.sg.DO.*; |
| | | import cn.gistack.sm.sg.DTO.ApprovalDTO; |
| | | import cn.gistack.sm.sg.DTO.ProjectSearchDTO; |
| | | import cn.gistack.sm.sg.VO.SgProgressReportVO; |
| | | import cn.gistack.sm.sg.VO.SgProjectInfoVO; |
| | | import cn.gistack.sm.sg.VO.SgReportVO; |
| | | import cn.gistack.sm.sg.VO.SgStepReportVO; |
| | | import cn.gistack.sm.sg.VO.*; |
| | | import cn.gistack.sm.sg.mapper.*; |
| | | import cn.gistack.sm.sg.service.SgProgressReportService; |
| | | import cn.gistack.sm.sg.service.SgProjectInfoService; |
| | |
| | | @Autowired |
| | | private SgProjectInfoServiceImpl sgProjectInfoService; |
| | | |
| | | |
| | | |
| | | ExecutorService cachedThreadPool = Executors.newCachedThreadPool(); |
| | | @Override |
| | | public IPage<SgProgressReportVO> queryPageList(IPage<SgProgressReportVO> page, ProjectSearchDTO searchDTO) { |
| | | List<SgProgressReportVO> list = sgProgressReportMapper.queryPageList(page,searchDTO); |
| | | if(list != null){ |
| | | list.forEach(s ->{ |
| | | Long proframId = s.getProframId(); |
| | | SgProjectInfoDO sgProjectInfoDO = sgProjectInfoMapper.selectById(proframId); |
| | | String controlUnit = sgProjectInfoDO.getControlUnit(); |
| | | List<String> users=sgProjectInfoMapper.getUserS(controlUnit); |
| | | s.setUserIDs(users); |
| | | }); |
| | | |
| | | } |
| | | return page.setRecords(list); |
| | | } |
| | | @Override |
| | | public IPage<SgProgressReportVO> queryPageListAll(IPage<SgProgressReportVO> page, ProjectSearchDTO searchDTO) { |
| | | List<SgProgressReportVO> list = sgProgressReportMapper.queryPageListAll(page,searchDTO); |
| | | if(list != null){ |
| | | list.forEach(s ->{ |
| | | Long proframId = s.getProframId(); |
| | | SgProjectInfoDO sgProjectInfoDO = sgProjectInfoMapper.selectById(proframId); |
| | | String controlUnit = sgProjectInfoDO.getControlUnit(); |
| | | List<String> users=sgProjectInfoMapper.getUserS(controlUnit); |
| | | s.setUserIDs(users); |
| | | }); |
| | | |
| | | } |
| | | return page.setRecords(list); |
| | | } |
| | | @Override |
| | |
| | | // throw new ServiceException("请完成项目审批人员配置!"); |
| | | // } |
| | | //Map<Long, Long> userMap = personConfigDOS.stream().collect(Collectors.toMap(SgProjectPersonConfigDO::getRoldId, SgProjectPersonConfigDO::getUserId)); |
| | | // sgReportUserMapper.insert(SgReportUserDO.builder().reportId(sgProgressReportDO.getId()).userId(sgProgressReportDO.getReportUser()).approvalContent("提交审批").approvalStatus(0).approvalOrder(0).approvalTime(now).build()); |
| | | // for (SgGxConfigDO sgGxConfigDO : sgGxConfigDOS) { |
| | | // sgGxConfigDO.setUser(userMap.get(Long.parseLong(sgGxConfigDO.getRoleId()))); |
| | | // sgReportUserMapper.insert(SgReportUserDO.builder().reportId(sgProgressReportDO.getId()).userId(sgGxConfigDO.getUser()).approvalStatus(0).approvalOrder(sgGxConfigDO.getSgOrder()).build()); |
| | | // try { |
| | | // Thread.sleep(100); |
| | | // } catch (InterruptedException e) { |
| | | // throw new RuntimeException(e); |
| | | // } |
| | | // if (sgGxConfigDO.getSgOrder() == 1) { |
| | | // sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getUser())); |
| | | // sgProgressReportMapper.updateById(sgProgressReportDO); |
| | | // } |
| | | // } |
| | | //新增审批记录 |
| | | sgReportUserMapper.insert(SgReportUserDO.builder().reportId(sgProgressReportDO.getId()).userId(sgProgressReportDO.getReportUser()).approvalContent("提交审批").roleId(Long.parseLong(AuthUtil.getUser().getRoleId())).approvalStatus(0).approvalOrder(0).approvalTime(now).build()); |
| | | for (SgGxConfigDO sgGxConfigDO : sgGxConfigDOS) { |
| | | //sgGxConfigDO.setUser(userMap.get(Long.parseLong(sgGxConfigDO.getRoleId()))); |
| | | sgReportUserMapper.insert(SgReportUserDO.builder().reportId(sgProgressReportDO.getId()).roleId(Long.parseLong(sgGxConfigDO.getRoleId())).approvalStatus(0).approvalOrder(sgGxConfigDO.getSgOrder()).build()); |
| | | try { |
| | | Thread.sleep(100); |
| | | } catch (InterruptedException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | if (sgGxConfigDO.getSgOrder() == 1) { |
| | | sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getRoleId())); |
| | | sgProgressReportMapper.updateById(sgProgressReportDO); |
| | | } |
| | | } |
| | | |
| | | //加个项目及设备的状态判断 方便统计计算 |
| | | if(gxStepId != 25 && gxStepId != 26 ) { |
| | |
| | | Integer isReject = approvalDTO.getIsReject(); |
| | | Long userId = approvalDTO.getUserId(); |
| | | Long id = approvalDTO.getId(); |
| | | String roleId = AuthUtil.getUser().getRoleId(); |
| | | QueryWrapper<SgProgressReportDO> wrappers = new QueryWrapper<>(); |
| | | wrappers.eq("id", id); |
| | | SgProgressReportDO sgProgressReportDOS1 = sgProgressReportMapper.selectOne(wrappers); |
| | | |
| | | //判断当前用户的角色是不是 工序配置的审核的角色 |
| | | |
| | | List<SgGxConfigDO> sgGxConfigDOS = new LambdaQueryChainWrapper<>(sgGxConfigMapper) |
| | | .eq(SgGxConfigDO::getGxDeviceType, sgProgressReportDOS1.getDeviceType()).eq(SgGxConfigDO::getGxStepId, sgProgressReportDOS1.getGxStepId()).orderByAsc(SgGxConfigDO::getSgOrder).list(); |
| | | List<String> roIds = sgGxConfigDOS.stream().map(SgGxConfigDO::getRoleId).collect(Collectors.toList()); |
| | | if (CollectionUtils.isEmpty(roIds)){ |
| | | throw new ServiceException("请完成工序角色配置!"); |
| | | } |
| | | SgProgressReportDO sgProgressReportDO = sgProgressReportMapper.selectById(id); |
| | | List<SgReportUserDO> sgReportUserDOS = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).ne(SgReportUserDO::getApprovalOrder,0).eq(SgReportUserDO::getIsHis,0) |
| | | .orderByAsc(SgReportUserDO::getApprovalOrder).list(); |
| | | |
| | | //审批者 |
| | | SgReportUserDO sgReportUserDO = new SgReportUserDO(); |
| | | if (isReject==1){ |
| | | sgReportUserDO = sgReportUserDOS.get(0); |
| | | }else { |
| | | sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | | sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getRoleId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | | } |
| | | Date date = new Date(); |
| | | LambdaUpdateChainWrapper<SgProgressReportDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getId, id); |
| | |
| | | .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(); |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,1).set(SgReportUserDO::getUserId,userId).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(); |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getRoleId()).update(); |
| | | }else { |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update(); |
| | | Long proframId = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId(); |
| | |
| | | sgProjectInfoMapper.updateById(project); |
| | | } |
| | | } |
| | | |
| | | Map<String, SgOperatingRateVO> deviceTypes = sgProjectInfoService.getDeviceTypes(Arrays.asList(projectId.toString())); |
| | | SgOperatingRateVO vo = deviceTypes.get(projectId.toString()); |
| | | if (Objects.nonNull(vo)){ |
| | | project.setSurfaceProgress(vo.getSurfaceProgress()); |
| | | project.setVideoProgress(vo.getVideoProgress()); |
| | | project.setTransProgress(vo.getTransProgress()); |
| | | project.setSeepageProgress(vo.getSeepageProgress()); |
| | | } |
| | | } |
| | | } |
| | | |