guoshilong
2024-03-22 4ff6d97866376703a4349df9566a062a500444ea
普查柱状图接口调整,表格接口
14 files modified
1 files added
783 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResGeneralInvestigationController.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java 4 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.xml 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.xml 119 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml 472 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResGeneralInvestigationService.java 6 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResGeneralInvestigationServiceImpl.java 70 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsBar.java 10 ●●●● 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/statisticsVO/StatisticsTable.java 29 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbResGeneralInvestigationController.java
@@ -9,6 +9,7 @@
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.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.vo.AttResBaseGeneralInvestigationVO;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import cn.gistack.sm.sjztmd.wrapper.AttResBaseWrapper;
@@ -142,9 +143,16 @@
    }
    @GetMapping("/statisticsBar")
    public R statisticsBar(StatisticsParams statisticsParams){
    public R statisticsBarProvince(StatisticsParams statisticsParams){
        List<StatisticsBar> list = tbResGeneralInvestigationService.statisticsBar(statisticsParams);
        return R.data(list);
    }
    @GetMapping("/statisticsTable")
    public R statisticsTable(StatisticsParams statisticsParams){
        List<StatisticsTable> list = tbResGeneralInvestigationService.statisticsTable(statisticsParams);
        return R.data(list);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.java
@@ -20,6 +20,8 @@
    List<AttAdBaseVO> lazyTree(String parentCode, Map<String, Object> param);
    List<AttAdBaseVO> lazyTreeYwxt(String parentCode, Map<String, Object> param);
    List<AttAdBaseVO> lazyTreeAll(String parentCode, Map<String, Object> param);
    /**
@@ -43,4 +45,6 @@
    boolean customizeSave(@Param("attAdBase") AttAdBase attAdBase);
    String getAdGradByAdCode(@Param("adCode") String adCode);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttAdBaseMapper.xml
@@ -46,6 +46,36 @@
        ORDER BY region."order_id"
    </select>
    <select id="lazyTreeYwxt" resultMap="treeNodeResultMap">
        SELECT
        region."ad_code" AS "id",
        region."p_ad_code" AS "parent_id",
        region."ad_name" AS "title",
        region."ad_code" AS "value",
        region."ad_grad" AS "adGrad",
        region."ad_code" AS "key",
        ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM YWXT."att_ad_base" WHERE "p_ad_code" = region."ad_code" ) AS "has_children"
        FROM
        YWXT."att_ad_base" region
        <where>
            <if test="param1!=null">
                and region."p_ad_code" = #{param1}
            </if>
            <if test="param2.code!=null and param2.code!=''">
                and region."ad_code" like concat(#{param2.code},'%')
            </if>
            <if test="param2.name!=null and param2.name!=''">
                and region."ad_name" like concat('%',#{param2.name},'%')
            </if>
            <if test="param2.showFour !=null and param2.showFour !=''">
                and  IF(#{param2.showFour} = 'true',region."ad_grad" != 5,region."ad_grad" != 4)
            </if>
        </where>
        ORDER BY region."order_id"
    </select>
    <select id="selectAttAdBaseTree" resultType="cn.gistack.common.node.TreeNode">
        SELECT
        region."ad_code" AS "id",
@@ -138,4 +168,5 @@
        select "ad_grad" from SJZT_MD."att_ad_base" where "guid" = #{adCode}
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/AttResBaseMapper.xml
@@ -26,10 +26,10 @@
        tmp.termiteNum,
        tmp.otherNum
        from sjzt_md."att_res_base" a
        left join "SJZT_MD"."att_ad_base" aab on aab."guid" = a."interior_ad_guid"
        left join "SJZT_MD"."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
        left join "SJZT_MD"."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
        left join "SJZT_MD"."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
        left join ywxt."att_ad_base" aab on aab."guid" = a."interior_ad_guid"
        left join ywxt."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
        left join ywxt."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
        left join ywxt."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
        left join "SJZT_MD"."tb_res_general_investigation_state" b on a."code" = b."res_guid"
        left join
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.java
@@ -26,4 +26,6 @@
    List<StatisticsBar> getCityStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getProvinceStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getStatisticsBar(@Param("params") StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbDykeInvestigationMapper.xml
@@ -11,10 +11,10 @@
        SELECT
        COUNT(*) totalNum,
        SUM(CASE WHEN tdis."check_state" = 2 THEN 1 ELSE 0 END) as finishNum
        SUM(CASE WHEN  (tdis."check_state" = 1 or tdis."check_state" = 2) THEN 1 ELSE 0 END) as finishNum
        from
        SJZT_MD."tb_res_dyke" trd
        LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid"
        LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
        <if test="params.tbYear != null and params.tbYear !=''">
            AND tdis."tb_year" = #{params.tbYear}
        </if>
@@ -29,35 +29,89 @@
    </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" AND (tdis."check_state" = 1 or tdis."check_state" = 2)-->
<!--                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
            trd."guid" as code,
            trd."name" as name,
            trd."dyke_length",
            CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
        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
            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"
        (
        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" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
        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.adCode != null and params.adCode != ''">
                AND trd."ad_code" LIKE #{params.adCode}
            </if>
        <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"  = #{params.adCode}
        </if>
        )tmp group by tmp.adCode
        ) dyke ON dyke.adCode = aab."guid"
        where 1=1
        <if test="params.adCode != null and params.adCode !=''">
            AND aab."guid"  = #{params.adCode}
        </if>
    </select>
    <select id="getCityStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
@@ -80,7 +134,7 @@
                                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 SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
                                    LEFT JOIN (
                                        SELECT
                                            TEMP1.*,
@@ -136,7 +190,7 @@
                         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 SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
                             LEFT JOIN (
                             SELECT
                                 TEMP1.*,
@@ -170,4 +224,9 @@
        </if>
    </select>
    <select id="getStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.java
@@ -5,6 +5,7 @@
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.statisticsVO.StatisticsTable;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@@ -26,4 +27,12 @@
    List<StatisticsBar> getCityStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getProvinceStatisticsBar(@Param("params")StatisticsParams statisticsParams);
    List<StatisticsTable> getCityStatisticsTable(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsTable> getProvinceStatisticsTable(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsBar> getStatisticsBar(@Param("params") StatisticsParams statisticsParams);
    List<StatisticsTable> getStatisticsTable(@Param("params") StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
@@ -2,6 +2,90 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.gistack.sm.sjztmd.mapper.TbResGeneralInvestigationMapper">
    <!--namespace根据自己需要创建的的mapper的路径和名称填写-->
    <sql id="resBase">
        (
        SELECT arb."code",
                arb."name",
                case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
                case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
                case
                    when town."ad_grad" = 3 THEN town."ad_code"
                    when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
                case
                    when town."ad_grad" = 3 THEN town."ad_name"
                    when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
                case
                    when town."ad_grad" = 2 THEN town."ad_code"
                    when county."ad_grad" = 2 THEN county."ad_code"
                    ELSE city."ad_code" END                                    AS cityCode,
                case
                    when town."ad_grad" = 2 THEN town."ad_name"
                    when county."ad_grad" = 2 THEN county."ad_name"
                    ELSE city."ad_name" END                                    AS cityName,
                case
                    when town."ad_grad" = 1 THEN town."ad_code"
                    when county."ad_grad" = 1 THEN county."ad_code"
                    when city."ad_grad" = 1 THEN city."ad_code"
                    ELSE province."ad_code" END                                AS provinceCode,
                case
                    when town."ad_grad" = 1 THEN town."ad_name"
                    when county."ad_grad" = 1 THEN county."ad_name"
                    when city."ad_grad" = 1 THEN city."ad_name"
                    ELSE province."ad_name" END                                AS provinceName
         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"
         ) arb
    </sql>
    <sql id="selectResByRegion">
        SELECT arb."code",
               arb."name",
               case when town."ad_grad" = 4 THEN town."ad_code" ELSE NULL END AS townCode,
               case when town."ad_grad" = 4 THEN town."ad_name" ELSE NULL END AS townName,
               case
                   when town."ad_grad" = 3 THEN town."ad_code"
                   when county."ad_grad" = 3 THEN county."ad_code" END        AS countyCode,
               case
                   when town."ad_grad" = 3 THEN town."ad_name"
                   when county."ad_grad" = 3 THEN county."ad_name" END        AS countyName,
               case
                   when town."ad_grad" = 2 THEN town."ad_code"
                   when county."ad_grad" = 2 THEN county."ad_code"
                   ELSE city."ad_code" END                                    AS cityCode,
               case
                   when town."ad_grad" = 2 THEN town."ad_name"
                   when county."ad_grad" = 2 THEN county."ad_name"
                   ELSE city."ad_name" END                                    AS cityName,
               case
                   when town."ad_grad" = 1 THEN town."ad_code"
                   when county."ad_grad" = 1 THEN county."ad_code"
                   when city."ad_grad" = 1 THEN city."ad_code"
                   ELSE province."ad_code" END                                AS provinceCode,
               case
                   when town."ad_grad" = 1 THEN town."ad_name"
                   when county."ad_grad" = 1 THEN county."ad_name"
                   when city."ad_grad" = 1 THEN city."ad_name"
                   ELSE province."ad_name" END                                AS provinceName
        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"
    </sql>
    <select id="statisticsPie" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie">
        SELECT
@@ -9,45 +93,79 @@
            tempNum.finishNum,
            tempNum.totalNum-tempNum.finishNum as unFinishNum
        FROM(
                SELECT
                    COUNT(*) totalNum,
                    SUM(CASE WHEN trgis."check_state" = 2 THEN 1 ELSE 0 END) as finishNum
                    SUM(CASE WHEN (trgis."check_state" = 1 or trgis."check_state" = 2) THEN 1 ELSE 0 END) as finishNum
                from
                    SJZT_MD."att_res_base" arb
                LEFT JOIN SJZT_MD."tb_res_general_investigation_state" trgis ON trgis."res_guid" = arb."guid"
                    <include refid="resBase"/>
                LEFT JOIN SJZT_MD."tb_res_general_investigation_state" trgis ON trgis."res_guid" = arb."code" AND (trgis."check_state" = 1 or trgis."check_state" = 2)
                    <if test="params.tbYear != null and params.tbYear !=''">
                        AND trgis."tb_year" = #{params.tbYear}
                    </if>
                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"
                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},'%')
                    AND CONCAT(arb.provinceCode,arb.cityCode,arb.countyCode,arb.townCode) LIKE CONCAT('%',#{params.adCode},'%')
                </if>
            ) tempNum
    </select>
    <select id="getStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        select
                "ad_code" code,
               "ad_name" name,
               (
                   SELECT COUNT(*)FROM
                       (
                           <include refid="selectResByRegion"/>
                           where (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
                       )res
               ) AS resNum,
               (
                   SELECT COUNT(*) FROM (
                        SELECT trgis."res_guid",tmp.totalDangerNum FROM
                            SJZT_MD."tb_res_general_investigation_state" trgis
                                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"
                                LEFT JOIN SJZT_MD."att_res_base" arb on arb."code" = trgis."res_guid"
                                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"
                        where (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
                          <!--控制只有待审核和已审核数据才显示-->
                        and (trgis."check_state" = 1 or trgis."check_state" = 2)
                    )
               ) dangerNum
        FROM YWXT."att_ad_base" aab
        where
        <if test="params.adCode != null and params.adCode !=''">
            "p_ad_code" = #{params.adCode}
        </if>
    </select>
    <select id="getCountyStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
    <select id="getCountyStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
        SELECT
                arb."guid" as code,
                arb."code" 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"
        FROM <include refid="resBase"/>
                 left join "SJZT_MD"."tb_res_general_investigation_state" trgis on   trgis."res_guid" = arb."code" and (trgis."check_state" =1 or trgis."check_state" =2)
                 left join
                 (
                     SELECT TRGI."tb_state_id",TRGI."res_guid",
@@ -62,7 +180,7 @@
                 ) 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},'%')
            AND CONCAT(arb.provinceCode,arb.cityCode,arb.countyCode,arb.townCode) LIKE CONCAT('%',#{params.adCode},'%')
        </if>
    </select>
    <select id="getCityStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
@@ -75,15 +193,11 @@
             LEFT JOIN (
                    SELECT
                        COUNT(*) resNum,
                        county."guid" adCode,
                        county."ad_name" adName,
                         arb.countyCode adCode,
                         arb.countyName 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"
                    FROM <include refid="resBase"/>
                             left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_guid" and (trgis."check_state" =1 or trgis."check_state" =2)
                             LEFT JOIN
                                 (
                                     SELECT TRGI."tb_state_id",TRGI."res_guid",
@@ -97,17 +211,18 @@
                                 ) 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"
                <if test="params.adCode != null and params.adCode !=''">
                    AND CONCAT(arb.provinceCode,arb.cityCode,arb.countyCode,arb.townCode) LIKE CONCAT('%',#{params.adCode},'%')
                </if>
                    group by     arb.countyCode,arb.countyName
                ) 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,
@@ -116,40 +231,271 @@
            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"
                SELECT
                COUNT(*) resNum,
                arb.cityCode adCode,
                arb.cityName adName,
                SUM( CASE WHEN tmp.totalDangerNum THEN 1 ELSE 0 END ) dangerNum
                FROM <include refid="resBase"/>
            ) 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"
                left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_guid" and (trgis."check_state" =1 or trgis."check_state" =2)
                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(arb.provinceCode,arb.cityCode,arb.countyCode,arb.townCode) LIKE CONCAT('%',#{params.adCode},'%')
                </if>
                group by     arb.cityCode ,arb.cityName
            ) 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>
        order by aab."guid" asc
    </select>
    <select id="getCityStatisticsTable" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable">
        SELECT
            aab."guid" as adCode,
            aab."ad_name" as adName,
            ifNull(res.resNum,0 )as resNum,
            ifNull(res.investigationResNum,0) as investigationResNum,
            ifNull(res.resNum - res.investigationResNum,0)as unInvestigationResNum,
            ifNull(res.checkResNum,0) as checkResNum,
            ifNull(dyke.dykeNum,0 )as dykeNum,
            ifNull(dyke.investigationDykeNum,0) as investigationDykeNum,
            ifNull(dyke.dykeNum - dyke.investigationDykeNum,0)as unInvestigationDykeNum,
            ifNull(dyke.checkDykeNum,0) as checkDykeNum
        from
            ywxt."att_ad_base" aab
                LEFT JOIN
            (
                SELECT
                    arb.countyCode adCode,
                    arb.countyName adName,
                    COUNT(*) AS resNum,
                    SUM(CASE WHEN trgis."check_state" = 1 THEN 1 ELSE 0 END) investigationResNum,
                    SUM(CASE WHEN trgis."check_state" = 2 THEN 1 ELSE 0 END) checkResNum
                FROM
                        <include refid="resBase"/>
                         left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_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>
                <if test="params.tbYear != null and params.tbYear !=''">
                    and trgis."tb_year"  = #{params.tbYear}
                </if>
                group by  arb.countyCode,arb.countyName
            )res on res.adCode = aab."guid"
                LEFT JOIN
            (
                SELECT
                    trd."ad_code" adCode,
                    trd."ad_name" adNmae,
                    COUNT(*) AS dykeNum,
                    SUM(CASE WHEN tdis."check_state" = 1 THEN 1 ELSE 0 END) investigationDykeNum,
                    SUM(CASE WHEN tdis."check_state" = 2 THEN 1 ELSE 0 END) checkDykeNum
                FROM SJZT_MD."tb_res_dyke" trd
                         left join SJZT_MD."tb_dyke_investigation_state" tdis on trd."guid" = tdis."dyke_guid"
                WHERE  1=1
                    <if test="params.adGuid != null and params.adGuid !=''">
                       and trd."ad_code" LIKE #{params.adGuid}
                    </if>
                    <if test="params.tbYear != null and params.tbYear !=''">
                        and tdis."tb_year"  = #{params.tbYear}
                    </if>
                GROUP BY trd."ad_code",trd."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>
        order by aab."guid" asc
    </select>
    <select id="getProvinceStatisticsTable" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable">
        SELECT
            aab."guid" as adCode,
            aab."ad_name" as adName,
            ifNull(res.resNum,0 )as resNum,
            ifNull(res.investigationResNum,0) as investigationResNum,
            ifNull(res.resNum - res.investigationResNum,0)as unInvestigationResNum,
            ifNull(res.checkResNum,0) as checkResNum,
            ifNull(dyke.dykeNum,0 )as dykeNum,
            ifNull(dyke.investigationDykeNum,0) as investigationDykeNum,
            ifNull(dyke.dykeNum - dyke.investigationDykeNum,0)as unInvestigationDykeNum,
            ifNull(dyke.checkDykeNum,0) as checkDykeNum
        from
            ywxt."att_ad_base" aab
        LEFT JOIN
        (
            SELECT
            arb.cityCode adCode,
            arb.cityName adName,
            COUNT(*) AS resNum,
            SUM(CASE WHEN trgis."check_state" = 1 THEN 1 ELSE 0 END) investigationResNum,
            SUM(CASE WHEN trgis."check_state" = 2 THEN 1 ELSE 0 END) checkResNum
            FROM
            <include refid="resBase"/>
            left join "SJZT_MD"."tb_res_general_investigation_state" trgis on arb."code" = trgis."res_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>
            <if test="params.tbYear != null and params.tbYear !=''">
                and trgis."tb_year"  = #{params.tbYear}
            </if>
            group by  arb.cityCode, arb.cityName
        )res on res.adCode = aab."guid"
        LEFT JOIN
        (
        SELECT
        trd."ad_code" adCode,
        trd."ad_name" adNmae,
        COUNT(*) AS dykeNum,
        SUM(CASE WHEN tdis."check_state" = 1 THEN 1 ELSE 0 END) investigationDykeNum,
        SUM(CASE WHEN tdis."check_state" = 2 THEN 1 ELSE 0 END) checkDykeNum
        FROM SJZT_MD."tb_res_dyke" trd
        left join SJZT_MD."tb_dyke_investigation_state" tdis on trd."guid" = tdis."dyke_guid"
        WHERE  1=1
        <if test="params.adGuid != null and params.adGuid !=''">
            and trd."ad_code" LIKE #{params.adGuid}
        </if>
        <if test="params.tbYear != null and params.tbYear !=''">
            and tdis."tb_year"  = #{params.tbYear}
        </if>
        GROUP BY trd."ad_code",trd."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>
        order by aab."guid" asc
    </select>
    <select id="getStatisticsTable" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable">
        SELECT
        aab."guid" adCode,
        aab."ad_name" adName,
        (
        SELECT COUNT(*)
        from(
        <include refid="selectResByRegion"/>
        where
        (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        )
        ) resNum,
        (
        SELECT COUNT(*) FROM
        SJZT_MD."tb_res_general_investigation_state" trgis
        LEFT JOIN sjzt_MD."att_res_base" ARB ON ARB."code" = trgis."res_guid"
        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"
        where 1=1
        and (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        <if test="params.tbYear != null and params.tbYear !=''">
            and trgis."tb_year" = 2024
        </if>
        and trgis."check_state" = 1
        )investigationResNum,
        (
        SELECT COUNT(*) FROM
        SJZT_MD."tb_res_general_investigation_state" trgis
        LEFT JOIN sjzt_MD."att_res_base" ARB ON ARB."code" = trgis."res_guid"
        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"
        where 1=1
        and (town."ad_code" = aab."guid" or county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        <if test="params.tbYear != null and params.tbYear !=''">
            and trgis."tb_year" = 2024
        </if>
        and trgis."check_state" = 2
        )checkResNum,
        (
        SELECT COUNT(*)
        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 1=1
        and ( county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        )dykeNum,
        (
        SELECT COUNT(*) FROM
        SJZT_MD."tb_dyke_investigation_state" tdis
        LEFT JOIN SJZT_MD."tb_res_dyke" trd on trd."guid" = tdis."dyke_guid"
        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 1=1
        and (county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        <if test="params.tbYear != null and params.tbYear !=''">
            and tdis."tb_year" = #{params.tbYear}
        </if>
        and tdis."check_state" = 1
        )investigationDykeNum,
        (
        SELECT COUNT(*) FROM
        SJZT_MD."tb_dyke_investigation_state" tdis
        LEFT JOIN SJZT_MD."tb_res_dyke" trd on trd."guid" = tdis."dyke_guid"
        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 1=1
        and (county."ad_code" = aab."guid" or city."ad_code" = aab."guid" or province."ad_code" = aab."guid")
        <if test="params.tbYear != null and params.tbYear !=''">
            and tdis."tb_year" = #{params.tbYear}
        </if>
        and tdis."check_state" = 2
        )checkDykeNum
        FROM YWXT."att_ad_base" aab
        where
        <if test="params.adCode != null and params.adCode != null">
            aab."p_ad_code" = #{params.adCode}
        </if>
        order by aab."guid"
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbResGeneralInvestigationService.java
@@ -4,6 +4,7 @@
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.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.tool.api.R;
@@ -27,8 +28,6 @@
    /**
     * web端批量新增修改填报
     * @param list
     * @param state
     * @return
     */
    R saveOrUpdateByBatch(TbResGeneralInvestigationParam tbResGeneralInvestigationParam);
@@ -41,4 +40,7 @@
    StatisticsPie statisticsPie(StatisticsParams statisticsParams);
    List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams);
    List<StatisticsTable> statisticsTable(StatisticsParams statisticsParams);
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttAdBaseServiceImpl.java
@@ -9,6 +9,7 @@
import cn.gistack.sm.sjztmd.vo.PersonVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.stereotype.Service;
import java.util.Comparator;
@@ -28,6 +29,13 @@
public class AttAdBaseServiceImpl extends ServiceImpl<AttAdBaseMapper, AttAdBase> implements IAttAdBaseService {
    @Override
    public List<AttAdBaseVO> lazyTree(String parentCode, Map<String, Object> param) {
        Object isYwxt = param.get("isYwxt");
        if (ObjectUtil.isNotEmpty(isYwxt)){
            List<AttAdBaseVO> attAdBaseVOS = baseMapper.lazyTreeYwxt(parentCode,param);
            return attAdBaseVOS;
        }
        List<AttAdBaseVO> attAdBaseVOS = baseMapper.lazyTree(parentCode, param);
        return attAdBaseVOS;
    }
@@ -90,6 +98,7 @@
        return baseMapper.getAdGradByAdCode(adCode);
    }
    @Override
    public boolean save(AttAdBase entity) {
        return baseMapper.customizeSave(entity);
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbDykeInvestigationServiceImpl.java
@@ -181,7 +181,7 @@
        List<StatisticsBar> list = new ArrayList<>();
        if (adGrad.equals("3")){
            //区级需要展示堤防
            //区级展示自己
            list =  baseMapper.getCountyStatisticsBar(statisticsParams);
        }else if (adGrad.equals("2")){
            //市级展示区
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbResGeneralInvestigationServiceImpl.java
@@ -8,6 +8,7 @@
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.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.util.CalculateUtils;
import cn.gistack.sm.sjztmd.vo.TbResGeneralInvestigationParam;
import com.baomidou.dynamic.datasource.annotation.DS;
@@ -44,8 +45,8 @@
    public R saveOrUpdateBy(TbResGeneralInvestigation entity) {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("\"res_guid\"",entity.getResGuid());
        queryWrapper.eq("\"tb_year\"",entity.getTbYear());
        queryWrapper.eq("\"res_guid\"", entity.getResGuid());
        queryWrapper.eq("\"tb_year\"", entity.getTbYear());
//        queryWrapper.eq("\"tb_quarter\"",entity.getTbQuarter());
        TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
        if (null == state) {
@@ -64,7 +65,7 @@
        // 是否普查完成 1是 0否
        if (entity.getCheckState() != 0) {
            state.setCheckState(entity.getIsInvCom());
        }else{
        } else {
            state.setCheckState(0);
        }
@@ -82,8 +83,8 @@
        //查询该水库本年度是否有填报状态记录
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("\"res_guid\"",entity.getResGuid());
        queryWrapper.eq("\"tb_year\"",entity.getTbYear());
        queryWrapper.eq("\"res_guid\"", entity.getResGuid());
        queryWrapper.eq("\"tb_year\"", entity.getTbYear());
        TbResGeneralInvestigationState state = tbResGeneralInvestigationStateService.getOne(queryWrapper);
        if (null == state) {
            //无填报状态记录则新建
@@ -116,11 +117,11 @@
            //id清空方便批量新增
//            tbResGeneralInvestigation.setGuid("");
            if (tbResGeneralInvestigation.getCreateTime() == null){
            if (tbResGeneralInvestigation.getCreateTime() == null) {
                tbResGeneralInvestigation.setCreateTime(DateUtil.now());
            }
            if (tbResGeneralInvestigation.getCreateUser() == null){
            if (tbResGeneralInvestigation.getCreateUser() == null) {
                tbResGeneralInvestigation.setCreateUser(AuthUtil.getUserId().toString());
            }
@@ -136,56 +137,21 @@
    }
    @Override
    public List<StatisticsBar> statisticsBar(StatisticsParams statisticsParams) {
        String adCode = statisticsParams.getAdCode();
        //默认省
        String adGrad = "1";
        List<StatisticsBar> list = baseMapper.getStatisticsBar(statisticsParams);
        return list;
    }
        //若行政区划不为空
        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<>();
    @Override
    public List<StatisticsTable> statisticsTable(StatisticsParams statisticsParams) {
        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);
        }
        List<StatisticsTable> list = baseMapper.getStatisticsTable(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);
//
//                }
//            });
//        }
        list.forEach(statisticsTable -> {
            statisticsTable.setUnInvestigationResNum(statisticsTable.getResNum() - statisticsTable.getInvestigationResNum());
            statisticsTable.setUnInvestigationDykeNum(statisticsTable.getDykeNum() - statisticsTable.getInvestigationDykeNum());
        });
        return list;
    }
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsBar.java
@@ -24,11 +24,11 @@
//    private String dangerRate;
    //白蚁危害处数
    private int termiteNum;
    //其他危害处数
    private int otherNum;
//    //白蚁危害处数
//    private int termiteNum;
//
//    //其他危害处数
//    private int otherNum;
    //堤防总公里数
    private double dykeLength;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsParams.java
@@ -15,5 +15,7 @@
    //填报年份
    private Integer tbYear;
    private String isCounty;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTable.java
New file
@@ -0,0 +1,29 @@
package cn.gistack.sm.sjztmd.statisticsVO;
import lombok.Data;
@Data
public class StatisticsTable {
        private String adCode;
        private String adName;
        //水库座数
        private int resNum;
        //已填报座数
        private int investigationResNum;
        //未填报座数
        private int unInvestigationResNum;
        //已校核座数
        private int checkResNum;
        //堤防座数
        private int dykeNum;
        //已填报座数
        private int investigationDykeNum;
        //未填报座数
        private int unInvestigationDykeNum;
        //已校核座数
        private int checkDykeNum;
}