guoshilong
2024-03-21 419ced6843926331fab49683e014eec6097b4375
普查柱状图统计接口
14 files modified
1 files added
439 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbDykeInvestigationController.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResGeneralInvestigationController.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbDykeInvestigation.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.xml 143 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResDykeMapper.xml 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.java 7 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml 118 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbDykeInvestigationService.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResGeneralInvestigationService.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResGeneralInvestigationServiceImpl.java 60 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsBar.java 7 ●●●●● 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/util/CalculateUtils.java 19 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbDykeInvestigationController.java
@@ -5,6 +5,7 @@
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import cn.gistack.sm.sjztmd.service.ITbDykeInvestigationService;
import cn.gistack.sm.sjztmd.service.ITbDykeInvestigationStateService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.vo.AttResBaseGeneralInvestigationVO;
@@ -138,4 +139,10 @@
        return R.data(statisticsPie);
    }
    @GetMapping("/statisticsBar")
    public R statisticsBar(StatisticsParams statisticsParams){
        List<StatisticsBar> list = tbDykeInvestigationService.statisticsBar(statisticsParams);
        return R.data(list);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResGeneralInvestigationController.java
@@ -6,6 +6,7 @@
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationService;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationStateService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.vo.AttResBaseGeneralInvestigationVO;
@@ -140,4 +141,10 @@
        return R.data(statisticsPie);
    }
    @GetMapping("/statisticsBar")
    public R statisticsBar(StatisticsParams statisticsParams){
        List<StatisticsBar> list = tbResGeneralInvestigationService.statisticsBar(statisticsParams);
        return R.data(list);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/entity/TbDykeInvestigation.java
@@ -162,6 +162,13 @@
    /**
     * 危害等级
     */
    @ApiModelProperty(value = "单元")
    @TableField(value = "\"unit\"")
    private String unit;
    /**
     * 危害等级
     */
    @ApiModelProperty(value = "是否致险情况")
    @TableField(value = "\"is_danger\"")
    private String isDanger;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.java
@@ -2,10 +2,13 @@
import cn.gistack.sm.sjztmd.entity.TbDykeInvestigation;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
@@ -17,4 +20,10 @@
    StatisticsPie statisticsPie(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getCountyStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getCityStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getProvinceStatisticsBar(@Param("params") StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.xml
@@ -27,4 +27,147 @@
        ) tempNum
    </select>
    <select id="getCountyStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
            trd."guid" as code,
            trd."name" as name,
            trd."dyke_length",
            CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
        FROM
            sjzt_md."tb_res_dyke" trd
                LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid"
                LEFT JOIN (
                SELECT
                    TEMP1.*,
                    TEMP1.dangerLength/temp1.num as termiteLength
                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>
                           and tdi."investigation_variety" = '白蚁'
                         group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
                     )TEMP1
            ) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
        where 1=1
            <if test="params.adCode != null and params.adCode != ''">
                AND trd."ad_code" LIKE #{params.adCode}
            </if>
    </select>
    <select id="getCityStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
            aab."guid" code,
            aab."ad_name" name,
            CASE WHEN dyke.dykeLength THEN dyke.dykeLength ELSE 0 END AS dykeLength,
            CASE WHEN dyke.termiteLength THEN dyke.termiteLength ELSE 0 END AS termiteLength
        FROM YWXT."att_ad_base" aab
                 left join (
                    SELECT
                        tmp.adCode,
                        SUM(CASE WHEN tmp.dykeLength THEN tmp.dykeLength ELSE 0 END) AS dykeLength,
                        SUM(CASE WHEN tmp.termiteLength THEN tmp.termiteLength ELSE 0 END) AS termiteLength
                    FROM
                        (
                            SELECT
                                trd."dyke_length" dykeLength,
                                trd."ad_code" adCode,
                                CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
                            FROM
                                sjzt_md."tb_res_dyke" trd
                                    LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid"
                                    LEFT JOIN (
                                        SELECT
                                            TEMP1.*,
                                            TEMP1.dangerLength/temp1.num as termiteLength
                                        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" = 2024
                                                   </if>
                                                   and tdi."investigation_variety" = '白蚁'
                                                 group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
                                             )TEMP1
                                    ) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
                            where 1=1
                                      <if test="params.adGuid != null and params.adGuid != ''">
                                          AND trd."ad_code" LIKE #{params.adGuid}
                                      </if>
                        )tmp group by tmp.adCode
                 ) dyke ON dyke.adCode = aab."guid"
        where
            <if test="params.adCode != null and params.adCode !=''">
                aab."p_ad_code" = #{params.adCode}
            </if>
    </select>
    <select id="getProvinceStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
            aab."guid" code,
            aab."ad_name" name,
            CASE WHEN dyke.dykeLength THEN dyke.dykeLength ELSE 0 END AS dykeLength,
            CASE WHEN dyke.termiteLength THEN dyke.termiteLength ELSE 0 END AS termiteLength
        FROM YWXT."att_ad_base" aab
                 left join (
            SELECT
                aab."p_ad_code" adCode,
                aab."p_ad_name" adName,
                SUM(CASE WHEN tmp.dykeLength THEN tmp.dykeLength ELSE 0 END) AS dykeLength,
                SUM(CASE WHEN tmp.termiteLength THEN tmp.termiteLength ELSE 0 END) AS termiteLength
            from (
                     SELECT
                         trd."dyke_length" dykeLength,
                         trd."ad_code" adCode,
                         trd."ad_name" adName,
                         CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
                     FROM
                         sjzt_md."tb_res_dyke" trd
                             LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid"
                             LEFT JOIN (
                             SELECT
                                 TEMP1.*,
                                 TEMP1.dangerLength/temp1.num as termiteLength
                             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" = 2024
                                        </if>
                                        and tdi."investigation_variety" = '白蚁'
                                      group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
                                  )TEMP1
                         ) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
                     where 1=1
                         <if test="params.adGuid != null and params.adGuid !=''">
                             AND trd."ad_code" LIKE #{params.adGuid}
                         </if>
                 )tmp
                     LEFT JOIN YWXT."att_ad_base" aab ON aab."guid" = tmp.adCode
            group by
                aab."p_ad_code",
                aab."p_ad_name"
        ) dyke ON dyke.adCode = aab."guid"
        where 1= 1
        <if test="params.adCode != null and params.adCode !=''">
             AND aab."p_ad_code" = #{params.adCode}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResDykeMapper.xml
@@ -98,7 +98,7 @@
        TEMP1.*,
        TEMP1.dangerLength/temp1.num
        FROM (
        SELECT tdi."tb_state_id",tdi."dyke_guid",tdi."stake_mark",
        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,
        SUM(CASE WHEN (tdi."hazard_rating" != '无危害') THEN 1 ELSE 0 END) AS totalDangerNum,
@@ -109,7 +109,7 @@
        <if test="vo.tbYear !=null and vo.tbYear !=''">
            AND tdi."tb_year" = #{vo.tbYear}
        </if>
        group by tdi."tb_state_id",tdi."dyke_guid",tdi."stake_mark"
        group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
        )TEMP1
        )temp2 group by
        temp2."tb_state_id",
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.java
@@ -2,6 +2,7 @@
import cn.gistack.sm.sjztmd.entity.TbAttResBase;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -19,4 +20,10 @@
    StatisticsPie statisticsPie(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getCountyStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getCityStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getProvinceStatisticsBar(@Param("params")StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
@@ -34,4 +34,122 @@
    </select>
    <select id="getCountyStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
                arb."guid" as code,
                arb."name" as name,
               CASE WHEN tmp.termiteNum THEN tmp.termiteNum ELSE 0 END as termiteNum,
               CASE WHEN tmp.otherNum THEN tmp.otherNum ELSE 0 END as otherNum
        FROM SJZT_MD."att_res_base" arb
                 LEFT JOIN YWXT."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
                 LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = town."p_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"
                 left join "SJZT_MD"."tb_res_general_investigation_state" trgis on   trgis."res_guid" = arb."code"
                 left join
                 (
                     SELECT TRGI."tb_state_id",TRGI."res_guid",
                            SUM(CASE WHEN (trgi."investigation_variety" = '白蚁' and trgi."hazard_rating" != '无危害') THEN 1 ELSE 0 END) AS termiteNum,
                            SUM(CASE WHEN (trgi."investigation_variety" != '白蚁' and trgi."hazard_rating" != '无危害') THEN 1 ELSE 0 END) AS otherNum
                     from sjzt_md."tb_res_general_investigation" trgi
                     where 1=1
                    <if test="params.tbYear != null and params.tbYear !=''">
                        AND trgi."tb_year" = #{params.tbYear}
                    </if>
                     group by TRGI."tb_state_id",TRGI."res_guid"
                 ) tmp on tmp."tb_state_id" = trgis."guid"
        where 1=1
        <if test="params.adCode != null and params.adCode !=''">
            AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{params.adCode},'%')
        </if>
    </select>
    <select id="getCityStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
            aab."guid" code,
            aab."ad_name" name,
            CASE WHEN resTmp.resNum THEN resTmp.resNum ELSE 0 END AS resNum,
            CASE WHEN resTmp.dangerNum THEN resTmp.dangerNum ELSE 0 END AS dangerNum
        FROM YWXT."att_ad_base" aab
             LEFT JOIN (
                    SELECT
                        COUNT(*) resNum,
                        county."guid" adCode,
                        county."ad_name" adName,
                        SUM( CASE WHEN tmp.totalDangerNum THEN 1 ELSE 0 END ) dangerNum
                    FROM sjzt_MD."att_res_base" ARB
                             LEFT JOIN YWXT."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
                             LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = town."p_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"
                             left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_guid"
                             LEFT JOIN
                                 (
                                     SELECT TRGI."tb_state_id",TRGI."res_guid",
                                            SUM(CASE WHEN (trgi."hazard_rating" != '无危害') THEN 1 ELSE 0 END) AS totalDangerNum
                                     from sjzt_md."tb_res_general_investigation" trgi
                                     where 1=1
                                       <if test="params.tbYear != null and params.tbYear != ''">
                                           AND TRGI."tb_year" = #{params.tbYear}
                                       </if>
                                     group by TRGI."tb_state_id",TRGI."res_guid"
                                 ) tmp on tmp."tb_state_id" = trgis."guid"
                    WHERE 1=1
                    <if test="params.adCode != null and params.adCode !=''">
                        AND CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{params.adCode},'%')
                    </if>
                    group by     county."guid" ,county."ad_name"
                ) resTmp ON resTmp.adCode = aab."guid"
        where 1=1
        <if test="params.adCode != null and params.adCode !=''">
          and aab."p_ad_code" = #{params.adCode}
        </if>
    </select>
    <select id="getProvinceStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
            aab."guid" code,
            aab."ad_name" name,
            CASE WHEN resTmp.resNum THEN resTmp.resNum ELSE 0 END AS resNum,
            CASE WHEN resTmp.dangerNum THEN resTmp.dangerNum ELSE 0 END AS dangerNum
        FROM YWXT."att_ad_base" aab
            LEFT JOIN (
            SELECT
            COUNT(*) resNum,
            city."guid" adCode,
            city."ad_name" adName,
            SUM( CASE WHEN tmp.totalDangerNum THEN 1 ELSE 0 END ) dangerNum
            FROM sjzt_MD."att_res_base" ARB
            LEFT JOIN YWXT."att_ad_base" town ON town."ad_code" = arb."interior_ad_guid"
            LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = town."p_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"
            left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_guid"
            LEFT JOIN
            (
            SELECT TRGI."tb_state_id",TRGI."res_guid",
            SUM(CASE WHEN (trgi."hazard_rating" != '无危害') THEN 1 ELSE 0 END) AS totalDangerNum
            from sjzt_md."tb_res_general_investigation" trgi
            where 1=1
            <if test="params.tbYear != null and params.tbYear != ''">
                AND TRGI."tb_year" = #{params.tbYear}
            </if>
            group by TRGI."tb_state_id",TRGI."res_guid"
            ) tmp on tmp."tb_state_id" = trgis."guid"
            WHERE 1=1
            <if test="params.adCode != null and params.adCode !=''">
               and CONCAT(province."ad_code",city."ad_code",county."ad_code",town."ad_code") LIKE CONCAT('%',#{params.adCode},'%')
            </if>
            group by     city."guid" ,city."ad_name"
            ) resTmp ON resTmp.adCode = aab."guid"
        where 1=1
        <if test="params.adCode != null and params.adCode !=''">
           and  aab."p_ad_code" = #{params.adCode}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbDykeInvestigationService.java
@@ -2,6 +2,7 @@
import cn.gistack.sm.sjztmd.entity.TbDykeInvestigation;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.vo.TbDykeInvestigationParam;
@@ -40,4 +41,6 @@
     * @return
     */
    StatisticsPie statisticsPie(StatisticsParams statisticsParams);
    List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResGeneralInvestigationService.java
@@ -1,6 +1,7 @@
package cn.gistack.sm.sjztmd.service;
import cn.gistack.sm.sjztmd.entity.TbResGeneralInvestigation;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
@@ -38,4 +39,6 @@
     * @return
     */
    StatisticsPie statisticsPie(StatisticsParams statisticsParams);
    List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
@@ -7,6 +7,7 @@
import cn.gistack.sm.sjztmd.mapper.TbDykeInvestigationMapper;
import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
import cn.gistack.sm.sjztmd.service.*;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.vo.TbDykeInvestigationParam;
@@ -22,6 +23,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
/**
@@ -151,4 +154,44 @@
        return baseMapper.statisticsPie(statisticsParams);
    }
    @Override
    public List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams) {
        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);
        }
        return list;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResGeneralInvestigationServiceImpl.java
@@ -5,8 +5,10 @@
import cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationService;
import cn.gistack.sm.sjztmd.service.ITbResGeneralInvestigationStateService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.util.CalculateUtils;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -14,10 +16,13 @@
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
/**
@@ -129,4 +134,59 @@
    public StatisticsPie statisticsPie(StatisticsParams statisticsParams) {
        return baseMapper.statisticsPie(statisticsParams);
    }
    @Override
    public List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams) {
        String adCode = statisticsParams.getAdCode();
        //默认省
        String adGrad = "1";
        //若行政区划不为空
        if (StringUtil.isNotBlank(adCode)){
            if (adCode.substring(0,4).indexOf("00") > -1) {
                //前四位包含00说明是湖北省      4200/00000000
                adGrad = "1";
            } else if (adCode.substring(0,6).indexOf("00") > -1) {
                //前六位包含00说明是市级    420100/000000
                adGrad = "2";
            }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")){
            statisticsParams.setAdCode("420000000000");
            list =  baseMapper.getProvinceStatisticsBar(statisticsParams);
        }
//        if (!adGrad.equals("3")){
//            //计算有蚁率
//            DecimalFormat df = new DecimalFormat("0.00");
//            list.forEach(statisticsBar -> {
//
//                //有蚁率 = 危害座数/水库总数   =》dangerRate = dangerNum / resNum
//                if (statisticsBar.getResNum() == 0){
//                    //如果水库数量为0,有蚁率为0
//                    statisticsBar.setDangerRate("0");
//                }else{
//                    String percent = CalculateUtils.calculatePercent(statisticsBar.getDangerNum(), statisticsBar.getResNum());
//
//                    statisticsBar.setDangerRate(percent);
//
//                }
//            });
//        }
        return list;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsBar.java
@@ -17,6 +17,13 @@
    //水库总数
    private int resNum;
    //危害座数
    private int dangerNum;
    //有蚁率
//    private String dangerRate;
    //白蚁危害处数
    private int termiteNum;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java
@@ -10,6 +10,8 @@
    //行政区划code
    private String adCode;
    private String adGuid;
    //填报年份
    private Integer tbYear;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/util/CalculateUtils.java
New file
@@ -0,0 +1,19 @@
package cn.gistack.sm.sjztmd.util;
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class CalculateUtils {
    public static String calculatePercent(int x, int y) {
        BigDecimal fenzi = new BigDecimal(x);
        BigDecimal fenmu = new BigDecimal(y);
        BigDecimal divide = fenzi.divide(fenmu,BigDecimal.ROUND_UP);
        DecimalFormat df=new DecimalFormat("0.00");
        String format = df.format(divide);
        return format;
    }
}