From 419ced6843926331fab49683e014eec6097b4375 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 21 Mar 2024 15:44:34 +0800
Subject: [PATCH] 普查柱状图统计接口

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
index 2223c3d..50228f1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml
+++ b/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>

--
Gitblit v1.9.3