guoshilong
2024-04-03 0513a476797ef78f15a1fabb9c8e045e618b5122
普查统计表格返回总公里数和危害公里数
8 files modified
157 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml 7 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml 60 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java 79 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java 1 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java
@@ -5,6 +5,7 @@
import cn.gistack.sm.sjztmd.excel.TbProjectImporter;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import io.swagger.annotations.Api;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
@@ -219,12 +219,15 @@
                            from sjzt_md."tb_dyke_investigation" tdi
                            where 1=1
                            AND <if test="params.tbYear != null and params.tbYear != ''">
                                tdi."tb_year" = #{params.tbYear}
                             <if test="params.tbYear != null and params.tbYear != ''">
                                 AND  tdi."tb_year" = #{params.tbYear}
                            </if>
                            group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
                        )TEMP1
                    ) tdi on tdi."tb_state_id" = tdis."guid"
                    <!--统计待审核和已审核的-->
                    where (tdis."check_state" = 1 or tdis."check_state" = 2)
                ) trd
                LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = trd."ad_code"
                LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
@@ -480,7 +480,65 @@
            and tdis."tb_year" = #{params.tbYear}
        </if>
        and tdis."check_state" = 2
        )checkDykeNum
        )checkDykeNum,
        IFNULL(
        (
        SELECT
        SUM(CASE WHEN trd."dyke_length" THEN trd."dyke_length" ELSE 0 END)
        FROM SJZT_MD."tb_res_dyke" trd
        LEFT JOIN ywxt."att_ad_base" county on county."ad_code" = trd."ad_code"
        LEFT JOIN ywxt."att_ad_base" city on city."ad_code" = county."p_ad_code"
        LEFT JOIN ywxt."att_ad_base" province on province."ad_code" = city."p_ad_code"
        where (county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        ),0) AS dykeTotalLength,
        IFNULL((
        SELECT
        SUM(CASE WHEN trd.dangerLength THEN trd.dangerLength ELSE 0 END)
        FROM (
        SELECT
        tdis."guid",
        tdis."dyke_guid",
        trd."ad_code",
        trd."dyke_level",
        trd."dyke_length",
        tdi.dangerLength
        FROM SJZT_MD."tb_dyke_investigation_state" tdis
        LEFT JOIN SJZT_MD."tb_res_dyke" trd on trd."guid" = tdis."dyke_guid"
        LEFT JOIN (
        SELECT
        TEMP1."tb_state_id",
        TEMP1."unit",
        TEMP1.dangerLength/temp1.num as dangerLength
        FROM (
        SELECT
        tdi."tb_state_id",
        tdi."dyke_guid",
        tdi."unit",
        count(*) as num,
        SUM(CASE WHEN (tdi."danger_length") THEN tdi."danger_length" ELSE 0 END) AS dangerLength
        from sjzt_md."tb_dyke_investigation" tdi
        where 1=1
        <if test="params.tbYear != null and params.tbYear != ''">
            AND    tdi."tb_year" = #{params.tbYear}
        </if>
        group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
        )TEMP1
        ) tdi on tdi."tb_state_id" = tdis."guid"
        where (tdis."check_state" = 1 or tdis."check_state" = 2)
        ) trd
        LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = trd."ad_code"
        LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
        LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = city."p_ad_code"
        where (county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        ),0)   AS dangerTotalLength
        FROM YWXT."att_ad_base" aab
        LEFT JOIN YWXT."att_ad_base" paab ON paab."guid" = aab."p_ad_code"
        where
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/IAttAdBaseService.java
@@ -46,4 +46,6 @@
    AttAdBaseVO getDetail(AttAdBase attAdBase);
    String getAdGradByAdCode(String adCode);
    AttAdBase getYwxtAdDetail(String adCode);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
@@ -98,6 +98,11 @@
        return baseMapper.getAdGradByAdCode(adCode);
    }
    @Override
    public AttAdBase getYwxtAdDetail(String adCode) {
        return baseMapper.getYwxtAdDetail(adCode);
    }
    @Override
    public boolean save(AttAdBase entity) {
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
@@ -1,9 +1,6 @@
package cn.gistack.sm.sjztmd.service.impl;
import cn.gistack.sm.sjztmd.entity.TbDykeInvestigation;
import cn.gistack.sm.sjztmd.entity.TbDykeInvestigationState;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigationState;
import cn.gistack.sm.sjztmd.entity.*;
import cn.gistack.sm.sjztmd.mapper.TbDykeInvestigationMapper;
import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
import cn.gistack.sm.sjztmd.service.*;
@@ -40,6 +37,9 @@
    @Autowired
    private ITbDykeInvestigationStateService tbDykeInvestigationStateService;
    @Autowired
    private IAttAdBaseService attAdBaseService;
    @Override
    @Transactional
@@ -156,41 +156,46 @@
    @Override
    public List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams) {
        String adCode = statisticsParams.getAdCode();
        String adGuid = "";
        //默认省
        String adGrad = "1";
//        String adCode = statisticsParams.getAdCode();
//        String adGuid = "";
//        //默认省
//        String adGrad = "1";
//
//        //若行政区划不为空
//        if (StringUtil.isNotBlank(adCode)){
//            if (adCode.substring(0,4).indexOf("00") > -1) {
//                //前四位包含00说明是湖北省      4200/00000000
//                adGrad = "1";
//                adGuid =StringUtil.format("%{}%",adCode.substring(0,2));
//                statisticsParams.setAdGuid(adGuid);
//            } else if (adCode.substring(0,6).indexOf("00") > -1) {
//                //前六位包含00说明是市级    420100/000000
//                adGrad = "2";
//                adGuid =StringUtil.format("%{}%",adCode.substring(0,4));
//                statisticsParams.setAdGuid(adGuid);
//            }else if (adCode.substring(0,8).indexOf("00") > -1){
//                //前8位包含00 说明是区级     42011700/0000
//                adGrad = "3";
//            }
//        }
//
//        List<StatisticsBar> list = new ArrayList<>();
//
//        if (adGrad.equals("3")){
//            //区级展示自己
//            list =  baseMapper.getCountyStatisticsBar(statisticsParams);
//        }else if (adGrad.equals("2")){
//            //市级展示区
//            list =  baseMapper.getCityStatisticsBar(statisticsParams);
//        }else  if (adGrad.equals("1")){
//            //省级展示市
//            list =  baseMapper.getProvinceStatisticsBar(statisticsParams);
//        }
        //若行政区划不为空
        if (StringUtil.isNotBlank(adCode)){
            if (adCode.substring(0,4).indexOf("00") > -1) {
                //前四位包含00说明是湖北省      4200/00000000
                adGrad = "1";
                adGuid =StringUtil.format("%{}%",adCode.substring(0,2));
                statisticsParams.setAdGuid(adGuid);
            } else if (adCode.substring(0,6).indexOf("00") > -1) {
                //前六位包含00说明是市级    420100/000000
                adGrad = "2";
                adGuid =StringUtil.format("%{}%",adCode.substring(0,4));
                statisticsParams.setAdGuid(adGuid);
            }else if (adCode.substring(0,8).indexOf("00") > -1){
                //前8位包含00 说明是区级     42011700/0000
                adGrad = "3";
            }
        }
        List<StatisticsBar> list = new ArrayList<>();
        if (adGrad.equals("3")){
            //区级展示自己
            list =  baseMapper.getCountyStatisticsBar(statisticsParams);
        }else if (adGrad.equals("2")){
            //市级展示区
            list =  baseMapper.getCityStatisticsBar(statisticsParams);
        }else  if (adGrad.equals("1")){
            //省级展示市
            list =  baseMapper.getProvinceStatisticsBar(statisticsParams);
        }
        AttAdBase  attAdBase = attAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
        statisticsParams.setAdGrad(attAdBase.getAdGrad());
        List list = baseMapper.getStatisticsBar(statisticsParams);
        return list;
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java
@@ -10,6 +10,7 @@
import cn.gistack.sm.sjztmd.service.ITbProjectScheduleService;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.util.CalculateUtils;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java
@@ -12,6 +12,8 @@
    private String adGuid;
    private String adGrad;
    //填报年份
    private Integer tbYear;