From 1c285b38777e9f37ee8d112e994443d3640b78c1 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 25 三月 2024 13:47:07 +0800
Subject: [PATCH] 解决查询出错

---
 src/main/resources/mapper/sys/ReportMapper.xml |  383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 382 insertions(+), 1 deletions(-)

diff --git a/src/main/resources/mapper/sys/ReportMapper.xml b/src/main/resources/mapper/sys/ReportMapper.xml
index 6ef778a..5b6dfaa 100644
--- a/src/main/resources/mapper/sys/ReportMapper.xml
+++ b/src/main/resources/mapper/sys/ReportMapper.xml
@@ -80,10 +80,18 @@
 
     <!-- 鏁版嵁閲忕粺璁� -->
     <select id="countSizes" resultType="com.lf.server.entity.ctrl.CountEntity">
-        select fn_get_fullname(depcode, 1) "m1", sum(sizes) "sizes"
+        select fn_get_fullname(depcode, 1) "m1", cast(sum(sizes) as decimal(18, 3)) "sizes", count(*) "count"
         from lf.sys_meta
         group by depcode
         order by depcode;
+    </select>
+
+    <!-- 鎸夋枃浠剁被鍨嬬粺璁� -->
+    <select id="countSizesByType" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select type "m1", cast(sum(sizes) as decimal(18, 3)) "sizes", count(*) "count"
+        from lf.sys_meta
+        group by type
+        order by type;
     </select>
 
     <!-- 鏈嶅姟璋冪敤閲忕粺璁� -->
@@ -101,4 +109,377 @@
         group by modular1,modular2
         order by modular1 desc,modular2;
     </select>
+
+    <!-- 鎸夐」鐩粺璁℃暟鎹� -->
+    <select id="countSizesByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+		  (select cast( coalesce(sum(sizes), 0) as decimal(18, 3) ) from lf.sys_meta b where b.dircode like a.code || '%') as  "sizes",
+	      (select count(*) from lf.sys_meta b where b.dircode like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by a.code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁¢捇瀛旀暟鎹� -->
+    <select id="countExplorationPoints" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select
+            name "m1", a.code "m3", 0.0 "area",
+            (select count(*) from bs.s_explorationpoint b where dirid like a.code || '%') "count",
+            (select coalesce(round(sum(sizes)::numeric, 3), 0)
+                from bs.s_explorationpoint b
+                inner join lf.sys_meta c
+                on b.parentid = c.eventid
+                where b.dirid like a.code || '%') "sizes"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鏍规嵁椤圭洰缂栫爜鏌ヨ閽诲瓟鏁版嵁鍧愭爣鐐� -->
+    <select id="selectExplorationPoints" resultType="com.lf.server.entity.ctrl.CoordinateEntity">
+        select ST_X(geom) "x", ST_Y(geom) "y"
+        from bs.s_explorationpoint b
+        <where>
+            dirid like #{code} and geom is not null
+        </where>
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃暟瀛楅珮绋嬫ā鍨嬮潰绉� -->
+    <select id="countDemAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) from lf.sys_meta b
+		   inner join lf.sys_dir c on b.dircode = c.code
+		   where c.name = '鏁板瓧楂樼▼妯″瀷' and b.type in ('dem', 'tif', 'tiff') and b.dircode like a.code || '%') "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁′笁缁村湴褰㈡ā鍨嬮潰绉�:mpt -->
+    <select id="countMptAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1", 0.0 "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″�炬枩鎽勫奖妯″瀷闈㈢Н:osgb -->
+    <select id="countOsgbAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select cast( coalesce(sum(area), 0) as decimal(20, 2) ) from lf.sys_meta b
+           where b.type = 'osgb' and b.dircode like a.code || '%') "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃縺鍏夌偣浜戞ā鍨嬮潰绉�:las,laz -->
+    <select id="countLasAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select cast( coalesce(sum(area), 0) as decimal(20, 2) ) from lf.sys_meta b
+           where b.type in ('las', 'laz') and b.dircode like a.code || '%') "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″嫎瀵熷伐鐐逛釜鏁� -->
+    <select id="countSurveyWorksiteByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.s_surveyworksite b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″嫎瀵熸姤鍛婁釜鏁� -->
+    <select id="countExplorationReportByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.s_explorationpoint b
+           inner join lf.sys_attach c on b.eventid = c.tab_guid
+           where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″穿濉屼釜鏁� -->
+    <select id="countCollapseByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_collapse b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃偿鐭虫祦涓暟 -->
+    <select id="countDebrisFlowByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_debrisflow b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″湴闈㈠闄蜂釜鏁� -->
+    <select id="countGroundCollapseByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_ground_collapse b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁¢珮闄¤竟鍧′釜鏁� -->
+    <select id="countHighSteepSlopeByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_highandsteep_slope b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃粦鍧′釜鏁� -->
+    <select id="countLandSlideByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_landslide b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁′笉绋冲畾鏂滃潯涓暟 -->
+    <select id="countUnstableSlopeByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_unstable_slope b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃按姣佷釜鏁� -->
+    <select id="countWaterDamageByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.g_water_damage b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 缁熻鏁板瓧绾垮垝鍥鹃潰绉� -->
+    <select id="countDlgAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select dir "m1", cast( coalesce(sum(area), 0) as decimal(20, 2) ) "area"
+        from lf.sys_line_buffer
+        group by code, dir
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁℃暟瀛楁灏勫奖鍍忓浘闈㈢Н -->
+    <select id="countDomAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) from lf.sys_meta b
+		   inner join lf.sys_dir c on b.dircode = c.code
+		   where c.name = '鏁板瓧姝e皠褰卞儚鍥�' and b.type in ('img', 'tif', 'tiff') and b.dircode like a.code || '%') "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁$绾块暱搴� -->
+    <select id="countLineLength" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+		  (select cast( coalesce(sum( ST_Length( ST_GeographyFromText( ST_AsText(geom) ) ) ) / 1000, 0) as decimal(20, 2) )
+		   from bs.m_pipeline b where b.dirid like a.code || '%') as  "len"
+        from lf.sys_dir a
+        where pid = 0
+        order by a.code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″嫎鎺㈢偣涓暟 -->
+    <select id="countExplorationPointByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bs.s_explorationpoint b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁′笁缁村湴璐ㄦā鍨嬮潰绉� -->
+    <select id="countGeoModelAreaByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select cast( coalesce(sum(b.area), 0) as decimal(20, 2) )
+           from lf.sys_meta b where b.type in ('fbx', 'ifc') and b.dircode like a.code || '%') "area"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 鎸夐」鐩粺璁″湴鐏剧偣涓暟 -->
+    <select id="countGeologicHazardByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        select name "m1",
+          (select count(*) from bd.b_geologic_hazard b where b.dirid like a.code || '%') "count"
+        from lf.sys_dir a
+        where pid = 0
+        order by code;
+    </select>
+
+    <!-- 椤圭洰鏁版嵁鍒嗙被缁熻 -->
+    <select id="countVariousDataByPrj" resultType="com.lf.server.entity.ctrl.CountEntity">
+        (select '鏁板瓧绾垮垝鍥�' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_line_buffer
+            <where>
+                <if test="null != code">
+                    code like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鏁板瓧楂樼▼妯″瀷' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b inner join lf.sys_dir c on b.dircode = c.code
+            <where>
+                c.name = '鏁板瓧楂樼▼妯″瀷' and b.type in ('dem', 'tif', 'tiff')
+                <if test="null != code">
+                    and b.dircode like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鏁板瓧姝e皠褰卞儚鍥�' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b inner join lf.sys_dir c on b.dircode = c.code
+            <where>
+                c.name = '鏁板瓧姝e皠褰卞儚鍥�' and b.type in ('img', 'tif', 'tiff')
+                <if test="null != code">
+                    and b.dircode like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍊炬枩鎽勫奖妯″瀷' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b
+            <where>
+                b.type = 'osgb'
+                <if test="null != code">
+                    and b.dircode like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '婵�鍏夌偣浜戞ā鍨�' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len"
+            from lf.sys_meta b
+            <where>
+                b.type in ('las', 'laz')
+                <if test="null != code">
+                    and b.dircode like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '绠$嚎闀垮害' "m1", 'len' "m2", 0 "count", 0 "area",
+                cast( coalesce(sum( ST_Length( ST_GeographyFromText( ST_AsText(geom) ) ) ) / 1000, 0) as decimal(20, 2) ) "len"
+            from bs.m_pipeline b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍕樻帰鐐�' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.s_explorationpoint b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍕樺療宸ョ偣' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.s_surveyworksite b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍕樺療鎶ュ憡' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.s_explorationpoint b
+            inner join lf.sys_attach c on b.eventid = c.tab_guid
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '涓夌淮鍦拌川妯″瀷' "m1", 'area' "m2", 0 "count", cast( coalesce(sum(b.area), 0) as decimal(20, 2) ) "area", 0 "len" from lf.sys_meta b
+            <where>
+                b.type in ('fbx', 'ifc')
+                <if test="null != code">
+                    and b.dircode like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍦扮伨鐐�' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bd.b_geologic_hazard b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '宕╁' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_collapse b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '娉ョ煶娴�' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_debrisflow b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '鍦伴潰濉岄櫡' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_ground_collapse b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '楂橀櫋杈瑰潯' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_highandsteep_slope b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '婊戝潯' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_landslide b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '涓嶇ǔ瀹氭枩鍧�' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_unstable_slope b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        )
+        union all
+        (select '姘存瘉' "m1", 'count' "m2", count(*), 0 "area", 0 "len" from bs.g_water_damage b
+            <where>
+                <if test="null != code">
+                    b.dirid like #{code}
+                </if>
+            </where>
+        );
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3