| | |
| | | @Override |
| | | @Transactional |
| | | public void add(SgProgressReportDO sgProgressReportDO) { |
| | | String resubmitId = sgProgressReportDO.getResubmitId(); |
| | | if (StringUtils.isNotBlank(resubmitId)){ |
| | | new LambdaUpdateChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getId,resubmitId).set(SgProgressReportDO::getResubmit,1).update(); |
| | | } |
| | | Long userId = AuthUtil.getUserId(); |
| | | sgProgressReportDO.setReportUser(userId); |
| | | Date now = DateUtil.now(); |
| | |
| | | |
| | | if (sgProgressReportDOS1!= null && sgProgressReportDOS1.size() > 0) { |
| | | for (SgProgressReportDO sgProgressReportDO1 : sgProgressReportDOS1) { |
| | | if (sgProgressReportDO1.getStatus()!= 2) { |
| | | if (sgProgressReportDO1.getStatus()!= 2 && sgProgressReportDO1.getStatus()!= 3) { |
| | | throw new ServiceException("请先完成施工准备的审批!"); |
| | | } |
| | | } |
| | |
| | | SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId); |
| | | List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId()); |
| | | QueryWrapper<SgProgressReportDO> wrapper = new QueryWrapper<>(); |
| | | wrapper.in("status",Arrays.asList(0,1,2)); |
| | | wrapper.in("status",Arrays.asList(0,1,2,3)); |
| | | if(sgProgressReportDO.getGxDeviceId()==998 || sgProgressReportDO.getGxDeviceId()==999){ |
| | | wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId).ne("status",4).eq("profram_id",sgProgressReportDO.getProframId()); |
| | | }else { |
| | | wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId).ne("status",4); |
| | | } |
| | | List<SgProgressReportDO> sgProgressReportDOS = sgProgressReportMapper.selectList(wrapper); |
| | | if ( sgProgressReportDOS!=null && sgProgressReportDOS.size()>0){ |
| | | |
| | | if (CollectionUtils.isNotEmpty(sgProgressReportDOS)){ |
| | | for (SgProgressReportDO reportDO : sgProgressReportDOS) { |
| | | if (reportDO.getStatus()==3 && reportDO.getResubmit()!=null && reportDO.getResubmit()==0){ |
| | | throw new ServiceException("此工序已存在审批!"); |
| | | } |
| | | } |
| | | } |
| | | List<SgProgressReportDO> reportDOS = sgProgressReportDOS.stream().filter(s -> s.getStatus() != 3).collect(Collectors.toList()); |
| | | if ( reportDOS!=null && reportDOS.size()>0){ |
| | | throw new ServiceException("此工序已存在审批!"); |
| | | } |
| | | for (SgGxStepDO gxStepDO : list) { |
| | |
| | | if (CollectionUtils.isEmpty(roIds)){ |
| | | throw new ServiceException("请完成工序角色配置!"); |
| | | } |
| | | List<SgProjectPersonConfigDO> personConfigDOS = new LambdaQueryChainWrapper<>(sgProjectPersonConfigMapper).eq(SgProjectPersonConfigDO::getProgramId,sgProgressReportDO.getProframId()).in(SgProjectPersonConfigDO::getRoldId, roIds).list(); |
| | | if (CollectionUtils.isEmpty(personConfigDOS)){ |
| | | 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); |
| | | } |
| | | } |
| | | // List<SgProjectPersonConfigDO> personConfigDOS = new LambdaQueryChainWrapper<>(sgProjectPersonConfigMapper).eq(SgProjectPersonConfigDO::getProgramId,sgProgressReportDO.getProframId()).in(SgProjectPersonConfigDO::getRoldId, roIds).list(); |
| | | // if (CollectionUtils.isEmpty(personConfigDOS)){ |
| | | // 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); |
| | | // } |
| | | // } |
| | | |
| | | //加个项目及设备的状态判断 方便统计计算 |
| | | if(gxStepId != 25 && gxStepId != 26 ) { |
| | |
| | | } |
| | | sgProgressReportVO.setSgReportUserDOS(list); |
| | | List<SgStepReportVO> sgStepReportVOS = sgProgressReportMapper.selectByDeviceId(sgProgressReportVO.getGxDeviceId()); |
| | | sgStepReportVOS = sgStepReportVOS.stream().filter(s -> s.getApprovalStatus() == null || (s.getApprovalStatus() != 4 && !(s.getApprovalStatus() == 3 && s.getResubmit() != 0))).collect(Collectors.toList()); |
| | | sgProgressReportVO.setSgStepReportVOS(sgStepReportVOS); |
| | | return sgProgressReportVO; |
| | | } |
| | |
| | | .orderByAsc(SgReportUserDO::getApprovalOrder).list(); |
| | | //审批者 |
| | | SgReportUserDO sgReportUserDO = new SgReportUserDO(); |
| | | if (isReject==1 && sgProgressReportDO.getStatus().equals(2)){ |
| | | if (isReject==1){ |
| | | sgReportUserDO = sgReportUserDOS.get(0); |
| | | }else { |
| | | sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get(); |
| | |
| | | |
| | | } |
| | | }); |
| | | cachedThreadPool.execute(new Runnable(){ |
| | | @Override |
| | | public void run(){ |
| | | Long proframId = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId(); |
| | | setProgramProgress(proframId); |
| | | } |
| | | }); |
| | | Long projectID = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId(); |
| | | setProgramProgress(projectID); |
| | | } |
| | | }else { |
| | | updateChainWrapper.set(SgProgressReportDO::getStatus,3); |
| | | updateChainWrapper.set(SgProgressReportDO::getResubmit,0); |
| | | userUpdate.set(SgReportUserDO::getApprovalStatus,2); |
| | | /*if (isReject==1){ |
| | | if (isReject==1){ |
| | | userUpdate.set(SgReportUserDO::getUserId,userId); |
| | | }*/ |
| | | } |
| | | userUpdate.update(); |
| | | /*for (SgReportUserDO reportUserDO : sgReportUserDOS) { |
| | | if (reportUserDO.getApprovalOrder()<=sgReportUserDO.getApprovalOrder()&&reportUserDO.getApprovalOrder()!=0){ |
| | |
| | | * @param proframId |
| | | */ |
| | | public void setProgramProgress(Long proframId) { |
| | | SgProjectInfoVO sgProjectInfoVO = sgProjectInfoMapper.selectVOById(proframId); |
| | | List<SgProjectInfoDO> progress = sgProjectInfoService.getProjectProgress(Collections.singletonList(sgProjectInfoVO)); |
| | | ProjectSearchDTO searchDTO = new ProjectSearchDTO(); |
| | | searchDTO.setProjectId(String.valueOf(proframId)); |
| | | List<SgProjectInfoVO> list = sgProjectInfoMapper.queryStepByProject(searchDTO); |
| | | List<SgProjectInfoDO> progress = sgProjectInfoService.getProjectProgress(list); |
| | | String projectProgress = progress.get(0).getProjectProgress(); |
| | | if (StringUtils.isNotBlank(projectProgress)){ |
| | | String s = projectProgress.substring(0, projectProgress.length() - 1); |
| | | new LambdaUpdateChainWrapper<>(sgProjectInfoMapper).set(SgProjectInfoDO::getProjectProgress,s).update() ; |
| | | new LambdaUpdateChainWrapper<>(sgProjectInfoMapper).set(SgProjectInfoDO::getProjectProgress,s).eq(SgProjectInfoDO::getId,proframId).update() ; |
| | | } |
| | | } |
| | | private void setReportUser(Date date, SgReportUserDO reportUserDO) { |
| | |
| | | public IPage<SgProgressReportVO> progressPage(IPage<SgProgressReportVO> page, ProjectSearchDTO searchDTO) { |
| | | Long userId = AuthUtil.getUserId(); |
| | | searchDTO.setUserId(userId); |
| | | if (searchDTO.getApprovalStatus()!=null && searchDTO.getApprovalStatus() ==0){ |
| | | searchDTO.setAuditPerson(String.valueOf(userId)); |
| | | } |
| | | List<SgProgressReportVO> list = sgProgressReportMapper.queryList(page, searchDTO); |
| | | return page.setRecords(list); |
| | | } |