shenyijian
2024-09-11 2a29572ab5b4fcd6f49d258a6dedd8cf2394daed
湖北水库:项目进度排序
2 files modified
41 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java 29 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -70,7 +70,7 @@
            ORDER BY info.status desc ,info.project_progress desc
        </if>
        <if test="dto.projectSort ==1">
            ORDER BY info.project_progress desc
            ORDER BY info.project_progress desc NULLS LAST
        </if>
        <if test="dto.projectSort != null and dto.projectSort ==2">
            ORDER BY info.sk_id asc
@@ -167,6 +167,7 @@
     <if test="dto.buildStage != null and dto.buildStage != ''">
         and pro.build_stage like CONCAT(CONCAT('%',#{dto.buildStage}),'%')
     </if>
        ORDER BY pro.project_progress desc NULLS LAST
    </select>
    <select id="getSgstatiss" resultType="cn.gistack.sm.sg.VO.SgStatisticsVO">
        SELECT
@@ -323,10 +324,11 @@
        select DISTINCT  "bas_guid"  from SJZT_DW."dim_res_info_a" where "bas_name" = #{code}
    </select>
    <select id="progressList1" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
        select pro.id,
        select DISTINCT pro.id,
        pro.project_name,
        pro.lon_lat,
        pro.status
        pro.status,
        pro.project_progress
        from
        (SELECT
        pro.id,
@@ -337,7 +339,8 @@
        pro.build_stage,
        dria."county_cd" AS countyCode,
        att."guid" AS cityCode,
        ad."ad_code" AS provinceCode
        ad."ad_code" AS provinceCode,
        pro.project_progress
        FROM
        ywxt.sg_project_info pro
        LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = pro.sk_id
@@ -361,6 +364,7 @@
        <if test="dto.buildStage != null and dto.buildStage != ''">
            and pro.build_stage like CONCAT(CONCAT('%',#{dto.buildStage}),'%')
        </if>
        order by pro.project_progress desc NULLS LAST
    </select>
    <select id="queryStepByProject1" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
    select
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -295,20 +295,25 @@
                list = sgProjectInfoMapper.progressList(page, searchDTO);
            }
        List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList());
        searchDTO.setProjectIds(ids);
        List<SgProjectInfoDO> projectProgress = new ArrayList<>();
        if(StringUtils.isNotBlank(searchDTO.getAdCode())){
            projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO));
        }else {
            projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
        }
//        List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList());
//        searchDTO.setProjectIds(ids);
//        List<SgProjectInfoDO> projectProgress = new ArrayList<>();
//        if(StringUtils.isNotBlank(searchDTO.getAdCode())){
//            projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO));
//        }else {
//            projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
//        }
        if (CollectionUtils.isNotEmpty(projectProgress)){
        Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
//        if (CollectionUtils.isNotEmpty(projectProgress)){
        //Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
        list.forEach(s->{
            s.setProjectProgress(progressMap.get(s.getId()));
        });}
            if (StringUtils.isNotBlank(s.getProjectProgress())){
                s.setProjectProgress(s.getProjectProgress()+"%");
            }else {
                s.setProjectProgress("0%");
            }
        });
//        }
        return page.setRecords(list);
    }