skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java
@@ -129,4 +129,9 @@ */ private String buildStage; /** * 子类型 */ private List<String> childTypeList; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java
@@ -28,4 +28,6 @@ SgGxDO selectByGxType(@Param("gxType") String gxType); SgGxVO getById(@Param("id") Long id); List<String> childType(@Param("gxType") String gxType); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml
@@ -10,6 +10,12 @@ <if test="dto.gxName != null and dto.gxName != ''"> and gx.gx_name LIKE CONCAT('%', #{dto.gxName}, '%') </if> <if test="dto.childTypeList>0 and dto.childTypeList != null"> and gx.gx_type in <foreach collection="dto.childTypeList" open="(" close=")" separator="," item="id"> #{id} </foreach> </if> </select> <select id="queryStepByIds" resultType="cn.gistack.sm.sg.DO.SgGxStepDO"> select * from YWXT.SG_GX_STEP step where 1=1 @@ -26,4 +32,7 @@ <select id="getById" resultType="cn.gistack.sm.sg.VO.SgGxVO"> select * from YWXT.SG_GX where id = #{id} </select> <select id="childType" resultType="java.lang.String"> select id from "YWXT"."BLADE_DICT_BIZ" where parent_id = (select id from "YWXT"."BLADE_DICT_BIZ" where dict_key = #{gxType}); </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -66,14 +66,27 @@ #{id} </foreach>) </if> <if test="dto.projectSort == null or dto.projectSort ==0"> ORDER BY info.status desc ,info.project_progress desc <if test="dto.projectSort == null"> ORDER BY info.status desc ,info.project_progress desc NULLS LAST </if> <if test="dto.projectSort ==1"> ORDER BY info.project_progress desc NULLS LAST <!-- <if test="dto.projectSort ==1"> ORDER BY info.project_progress desc NULLS LAST </if> <if test="dto.projectSort != null and dto.projectSort ==2"> ORDER BY info.sk_id asc </if>--> <if test="dto.projectSort != null and dto.projectSort ==3"> ORDER BY info.surface_progress desc NULLS LAST </if> <if test="dto.projectSort != null and dto.projectSort ==2"> ORDER BY info.sk_id asc <if test="dto.projectSort != null and dto.projectSort ==4"> ORDER BY info.video_progress desc NULLS LAST </if> <if test="dto.projectSort != null and dto.projectSort ==5"> ORDER BY info.trans_progress desc NULLS LAST </if> <if test="dto.projectSort != null and dto.projectSort ==6"> ORDER BY info.seepage_progress desc NULLS LAST </if> </select> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -12,6 +12,7 @@ import cn.gistack.sm.sg.service.SgGxStepService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.log.exception.ServiceException; @@ -46,7 +47,12 @@ private SgProgressReportMapper sgProgressReportMapper; @Override public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) { if (StringUtils.isNotBlank(searchDTO.getGxType())){ List<String> childType = sgGxMapper.childType(searchDTO.getGxType()); searchDTO.setChildTypeList(childType); } List<SgGxVO> list = sgGxMapper.queryPageList(page,searchDTO); if (CollectionUtils.isNotEmpty(list)){ List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList()); List<Long> userIds = list.stream().map(SgGxDO::getCreateUser).collect(Collectors.toList()); skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -3,10 +3,7 @@ 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; @@ -223,10 +220,10 @@ } catch (InterruptedException e) { throw new RuntimeException(e); } // if (sgGxConfigDO.getSgOrder() == 1) { // sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getUser())); // sgProgressReportMapper.updateById(sgProgressReportDO); // } if (sgGxConfigDO.getSgOrder() == 1) { sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getRoleId())); sgProgressReportMapper.updateById(sgProgressReportDO); } } //加个项目及设备的状态判断 方便统计计算 @@ -303,7 +300,7 @@ 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); @@ -311,12 +308,12 @@ .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(); @@ -435,7 +432,14 @@ 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()); } } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -61,6 +61,7 @@ Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); sgProjectInfoDOS.forEach(s->{ s.setProjectProgress(progressMap.get(s.getId())); setPercentage(s); }); } return page.setRecords(sgProjectInfoDOS); @@ -75,6 +76,7 @@ Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); sgProjectInfoDOS.forEach(s->{ s.setProjectProgress(progressMap.get(s.getId())); setPercentage(s); }); } sgProjectInfoDOS.forEach(s->{ @@ -111,6 +113,17 @@ return sgProjectInfoDOS; } } /** * 设置百分号 * @param s */ private void setPercentage(SgProjectInfoDO s) { s.setSurfaceProgress(s.getSurfaceProgress()==null?null:s.getSurfaceProgress()+"%"); s.setVideoProgress(s.getVideoProgress()==null?null:s.getVideoProgress()+"%"); s.setTransProgress(s.getTransProgress()==null?null:s.getTransProgress()+"%"); s.setSeepageProgress(s.getSeepageProgress()==null?null:s.getSeepageProgress()+"%"); } /** @@ -381,13 +394,13 @@ SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds()); if (Objects.nonNull(sVo)){ vo.setSurfaceNum(sVo.getSurfaceNum()); vo.setSurfaceProgress(sVo.getSurfaceProgress()+"%"); vo.setSurfaceProgress(sVo.getSurfaceProgress()==null?null:sVo.getSurfaceProgress()+"%"); vo.setVideoNum(sVo.getVideoNum()); vo.setVideoProgress(sVo.getVideoProgress()+"%"); vo.setVideoProgress(sVo.getVideoProgress()==null?null:sVo.getVideoProgress()+"%"); vo.setTransNum(sVo.getTransNum()); vo.setTransProgress(sVo.getTransProgress()+"%"); vo.setTransProgress(sVo.getTransProgress()==null?null:sVo.getTransProgress()+"%"); vo.setSeepageNum(sVo.getSeepageNum()); vo.setSeepageProgress(sVo.getSeepageProgress()+"%"); vo.setSeepageProgress(sVo.getSeepageProgress()==null?null:sVo.getSeepageProgress()+"%"); } } } @@ -423,7 +436,7 @@ /** * 统计设备类型开工率 */ private Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) { public Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) { Map<String,SgOperatingRateVO> result = new HashMap<>(); if (CollectionUtils.isNotEmpty(projectIds)){ for (String proIds : projectIds) { @@ -648,6 +661,14 @@ dto.setSgCodeS(sgCodeS); List<SgProjectTreeVO> list = sgProjectInfoMapper.projectTree(dto); if (CollectionUtils.isNotEmpty(list)){ list.forEach(x->{ if (StringUtils.isBlank(x.getCountyNm())){ x.setCountyNm(x.getCityNm()); } if (StringUtils.isBlank(x.getTownNm())){ x.setTownNm(x.getCountyNm()); } }); // 按省、片区、市、县、乡镇分组 Map<String, Map<String, Map<String, Map<String, Map<String, List<SgProjectTreeVO>>>>>> groupedProjects = list.stream() .collect(