shenyijian
2024-09-13 f8c80586bfc419db594673b8ea0524a246d596ca
湖北水库:审核流修改
7 files modified
106 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml 25 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java 28 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java 31 ●●●● patch | view | raw | blame | history
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(