From 0513a476797ef78f15a1fabb9c8e045e618b5122 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 03 Apr 2024 10:21:49 +0800
Subject: [PATCH] 普查统计表格返回总公里数和危害公里数

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbResGeneralInvestigationMapper.xml |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 1 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 f1bc63a..42ee2a0 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
@@ -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

--
Gitblit v1.9.3