From 7bfbdcdab10c58ecf96b45543c0d0df948af4ba5 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 12 三月 2024 16:43:18 +0800 Subject: [PATCH] 修改根据类型查询元数据方法 --- src/main/resources/mapper/show/OneMapMapper.xml | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 219 insertions(+), 21 deletions(-) diff --git a/src/main/resources/mapper/show/OneMapMapper.xml b/src/main/resources/mapper/show/OneMapMapper.xml index 9c5621e..c19e372 100644 --- a/src/main/resources/mapper/show/OneMapMapper.xml +++ b/src/main/resources/mapper/show/OneMapMapper.xml @@ -1,34 +1,34 @@ <?xml version="1.0" encoding="UTF-8" ?> -<!DOCTYPE mapper - PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.lf.server.mapper.show.OneMapMapper"> - <resultMap type="com.lf.server.entity.show.OneMapEntity" id="OneMapResult"> - <result property="value" column="value" /> - <result property="key" column="key" /> + <result property="value" column="value" /> + <result property="key" column="key" /> </resultMap> - <!-- 椤圭洰绫诲埆 select * from bs.bs_project; --> <select id="projectCategoryCount" resultType="java.util.Map"> select projtype,count(*) from bs.bs_project group by projtype; </select> - <!-- 椤圭洰浣嶇疆鍒嗗竷 select a.*,st_astext(geom) from bs.bs_project a --> <select id="projectLocationCount" resultType="java.util.Map"> select a.*,st_astext(geom) AS wkt from bs.bs_project a; </select> - <!-- 椤圭洰绫诲埆 鍥藉缁村害-鏁伴噺 --> + <!-- 鍏ㄧ悆 椤圭洰绫诲埆 鍥藉缁村害-鏁伴噺 --> <select id="countryDimensionCount" resultType="java.util.Map"> select country,count(*) from bs.bs_project group by country; </select> - <!-- 椤圭洰绫诲埆 鐪佺淮搴�-鏁伴噺 --> + <!-- 鍏ㄥ浗 椤圭洰绫诲埆 鐪佺淮搴�-鏁伴噺 --> <select id="provinceDimensionCount" resultType="java.util.Map"> select province,count(*) from bs.bs_project where country like '%涓浗%' group by province ; + </select> + + <!-- 鍏ㄥ浗 鎸夌収椤硅嚜绫诲瀷缁熻涓嶅悓椤圭洰涓暟 --> + <select id="countProjectTypeNumber" resultType="java.util.Map"> + select projtype,count(*) from bs.bs_project where country like '%涓浗%' group by projtype ; </select> <!-- 鏁版嵁缁熻 鏁版嵁瀛樺偍 --> @@ -38,12 +38,46 @@ from lf.sys_dir a where id > 1 and pid = 0; </select> - <!-- 鏁版嵁缁熻 鏂囦欢鏍煎紡缁村害-鏂囦欢涓暟 select type,count(*),count(sizes) from lf.sys_meta group by type; --> - <select id="fileFormatCount" resultType="java.util.Map"> - select type,count(type) AS number,count(sizes) AS capacity from lf.sys_meta group by type; + <!-- 鏁版嵁澶х被缁熻 --> + <select id="statisticalDataCategories" resultType="java.util.Map"> + SELECT name, + (SELECT count(b.id) + FROM lf.sys_meta b + WHERE dircode similar to '(' || + (SELECT string_agg(code, + '|') + FROM lf.sys_dir c + WHERE c.name = a.name) || ')%') "count", + (SELECT coalesce(sum(b.sizes), + 0) + FROM lf.sys_meta b + WHERE dircode similar to '(' || + (SELECT string_agg(code, + '|') + FROM lf.sys_dir c + WHERE c.name = a.name) || ')%') "sizes" + FROM lf.sys_dir a + WHERE name IN ('鍩虹娴嬬粯', '鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '娴嬬粯锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') + GROUP BY name + ORDER BY name; </select> - <!-- 鏁版嵁缁熻 鏁版嵁鐢宠 select * from lf.sys_apply a inner join lf.sys_user b on a.userid = b.id; --> + <!-- 缁熻鏁版嵁鏈嶅姟绫诲瀷 --> + <select id="statisticalDataServiceType" resultType="java.util.Map"> + SELECT COUNT(*),TYPE FROM lf.sys_serve_log GROUP BY TYPE; + </select> + + <!-- 鐧诲綍娆℃暟缁熻 --> + <select id="loginNumberStatistics" resultType="java.util.Map"> + select b.uname, count(*) from lf.sys_login a inner join lf.sys_user b on a.userid = b.id group by uname; + </select> + + <!-- 鏁版嵁缁熻 鏂囦欢鏍煎紡缁村害-鏂囦欢涓暟 select type,count(*),count(sizes) from lf.sys_meta group by type; --> + <select id="fileFormatCount" resultType="java.util.Map"> + select type,count(type) AS number,sum(sizes) AS capacity from lf.sys_meta group by type; + </select> + + <!-- 鏁版嵁缁熻 鏁版嵁鐢宠 select * from lf.sys_apply a inner join lf.sys_user b on a.userid = b.id; --> <select id="dataApplyCount" resultType="java.util.Map"> SELECT count(c.name) AS number, @@ -61,7 +95,7 @@ select modular1,count(*) from lf.sys_operate group by modular1 order by modular1; </select> - <!-- 鏁版嵁缁熻 涓嬭浇閲忕粺璁� type绫诲瀷锛�1-Shp鏂囦欢锛�2-涓撻鍥撅紝3-婧愭暟鎹紝4-涓氬姟鏁版嵁锛�5-绠¢亾鍒嗘瀽锛�6-缁熻鎶ュ憡 --> + <!-- 鏁版嵁缁熻 涓嬭浇閲忕粺璁� type绫诲瀷锛�1-Shp鏂囦欢锛�2-涓撻鍥撅紝3-鍏冩暟鎹紝4-涓氬姟鏁版嵁锛�5-绠¢亾鍒嗘瀽锛�6-缁熻鎶ュ憡 --> <!-- 鏁版嵁缁熻 select type,count(*) from lf.sys_download group by type; --> <select id="countDownloads" resultType="java.util.Map"> SELECT type, @@ -69,7 +103,7 @@ case type WHEN '1' THEN 'Shp鏂囦欢' WHEN '2' THEN '涓撻鍥�' - WHEN '3' THEN '婧愭暟鎹�' + WHEN '3' THEN '鍏冩暟鎹�' WHEN '4' THEN '涓氬姟鏁版嵁' WHEN '5' THEN '绠¢亾鍒嗘瀽' WHEN '6' THEN '缁熻鎶ュ憡' @@ -88,7 +122,9 @@ <select id="countProjectTour" resultType="java.util.Map"> SELECT st_astext(geom) AS wkt,* FROM bs.m_pipeline <where> - <if test="pipename != null and pipename != ''"> and pipename = #{pipename}</if> + <if test="pipename != null and pipename != ''"> + pipename = #{pipename} + </if> </where> </select> @@ -97,11 +133,19 @@ SELECT DISTINCT pipename FROM bs.m_pipeline; </select> - <!-- 缁熻椤圭洰绫诲瀷 1 --> + <!-- select (select string_agg(code, ',') from lf.sys_dir where name = a.name) "key", name "value" from lf.sys_dir a + where name in ('娴嬬粯锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') group by name order by name;--> <select id="selectProjectType1" resultMap="OneMapResult"> - select (select string_agg(code, ',') from lf.sys_dir where name = a.name) "key", name "value" from lf.sys_dir a - where name in ('娴嬮噺锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') group by name order by name; + SELECT + (SELECT string_agg(code, + ',') + FROM lf.sys_dir + WHERE name = a.name) "key", name "value" + FROM lf.sys_dir a + WHERE name IN ('鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') + GROUP BY name + ORDER BY key; </select> <!-- 缁熻椤圭洰绫诲瀷 2 --> @@ -113,7 +157,6 @@ <select id="selectProjectType2" resultType="com.lf.server.entity.show.OneMapEntity"> select modular1,count(*) from lf.sys_operate group by modular1 order by modular1; </select> - <!-- 鏌ヨ琛ㄤ俊鎭� --> <select id="queryTableInfo" resultType="java.util.Map"> @@ -130,9 +173,164 @@ AND d.objsubid=a.attnum; </select> + <!-- 缁熻璁$畻鍏ㄧ悆绠¢亾鍥� --> + <select id="countGlobalPipeMap" resultType="java.util.Map"> + SELECT projname,count(*) AS count FROM bs.m_pipesegment group by projname ; + </select> + <!-- 缁熻璁$畻鍏ㄥ浗绠¢亾鍥� --> + <select id="countNationalPipeMap" resultType="java.util.Map"> + SELECT projname,count(*) AS count FROM bs.m_pipesegment group by projname ; + </select> + <!-- 缁熻鍏ㄥ浗绠$綉鍥捐緭閫佷粙璐ㄩ暱搴� --> + <!--select id="countZhPipeMapLenByMed" resultType="java.util.Map"> + SELECT medium AS type,count(*) AS count,sum(length)AS length FROM bs.m_pipesegment GROUP BY medium ; + </select--> + <select id="countZhPipeMapLenByMed" resultType="java.util.Map"> + select case medium when 'CO' then '鍘熸补' when 'RP' then '鎴愬搧娌�' when 'GS' then '澶╃劧姘�' else '鍏跺畠' end "type", + count(*) "count", round(sum(ST_Length(geom)::numeric), 2) "length" + from bs.m_pipeline + group by medium; + </select> + <!-- 缁熻鍏ㄥ浗绔欏満搴ф暟銆侀榾瀹ゃ�佺閬撴暟閲� --> + <select id="countZhPipeStations" resultType="java.util.Map"> + select + case medium when 'CO' then '鍘熸补' when 'RP' then '鎴愬搧娌�' when 'GS' then '澶╃劧姘�' else '鍏跺畠' end "杈撻�佷粙璐�", + round(sum(st_length(geom))::numeric, 2) "鎬婚噷绋�", + count(*) "绠¢亾鏁伴噺", + (select count(*) from bs.m_sitepoint b inner join bs.m_pipeline c on b.pipename = c.pipename where c.medium = a.medium) "绔欏満鏁伴噺", + (select count(*) from bs.m_valvehousepoint d inner join bs.m_pipeline e on d.pipename = e.pipename where e.medium = a.medium) "闃�瀹ゆ暟閲�" + from bs.m_pipeline a + group by medium; + </select> + <!-- 鎸夐」鐩粺璁¢」鐩瓨鍌ㄩ噺 --> + <select id="countStorageByProject" resultType="java.util.Map"> + with rs as ( + select a.dircode, c.dcount, c.sizes + from lf.sys_meta a + inner join lf.sys_meta_down b on a.id = b.metaid + inner join lf.sys_download c on b.downid = c.id + ) + select + d.name "椤圭洰鍚嶇О", + (select count(*) from rs where rs.dircode like d.code || '%') "涓嬭浇涓暟", + (select coalesce(sum(rs.dcount), 0) from rs where rs.dircode like d.code || '%') "涓嬭浇鏁伴噺", + (select round(coalesce(sum(rs.dcount * rs.sizes), 0)::numeric, 3) from rs where rs.dircode like d.code || '%') "鏁伴噺鎬婚噺(MB)" + from lf.sys_dir d + where pid = 0 order by d.code; + </select> + <!-- 鏌ヨ椤圭洰淇℃伅 select PROJNAME,* from bs.bs_project WHERE PROJNAME LIKE '${projectName}%' AND PROJNAME IS NOT NULL ; --> + <select id="selectProjectInfo" resultType="java.util.Map"> + select PROJNAME,* from bs.bs_project WHERE dirid LIKE '${projectCode}%' AND PROJNAME IS NOT NULL ; + </select> + + <select id="selectProjectInfo1" resultType="java.util.Map"> + select PROJNAME,* from bs.bs_project + <where> + <if test="projname != null and projname != ''"> and projname like concat('%', #{projectName}, '%')</if> + </where> + AND PROJNAME IS NOT NULL ; + </select> + + <!-- 鏌ヨ椤圭洰鏂囦欢鍒楄〃 --> + <select id="selectProjectFileList" resultType="java.util.Map"> + select name, code,st_astext(b.geom) AS wkt + from lf.sys_dir a inner join bs.bs_project b on a.code = b.dirid + where pid = 0 and id > 1 order by code; + </select> + + <select id="countProjectStorage" resultType="java.util.Map"> + select name, + (select count(b.id) from lf.sys_meta b where dircode similar to '(' || (select string_agg(code, '|') from lf.sys_dir c where c.name = a.name) || ')%') "count", + (select coalesce(sum(b.sizes), 0) from lf.sys_meta b where dircode similar to '(' || (select string_agg(code, '|') from lf.sys_dir c where c.name = a.name) || ')%') "sizes" + from lf.sys_dir a + where code like '${projectCode}%' and name in ('鍩虹娴嬬粯', '鍩虹鍦扮伨', '鍩虹鍕樺療', '鍚堣鏁版嵁', '绠$悊鏁版嵁', '娴嬬粯锛圗SV锛�', '鍕樺療锛圗GE锛�', '鍦扮伨锛圗GD锛�', '娲炲簱锛圗GD锛�') + group by name + order by name; + </select> + + <!-- 鍗曚釜椤圭洰鏂囦欢鏁伴噺--> + <select id="countProjectType" resultType="java.util.Map"> + SELECT a.type, + count(a.type) AS number, + coalesce( cast(sum(a.sizes) as decimal(12, 2) ), 0) AS capacity + FROM lf.sys_meta a + INNER JOIN lf.sys_dir b ON a.dircode = b.code + WHERE a.dircode LIKE '${projectCode}%' + GROUP BY a.type; + </select> + + <!-- 鍗曚釜椤圭洰鐨勪笅杞戒釜鏁般�佷笅杞芥鏁板拰鏁版嵁閲�--> + <!-- select count(*) "number", sum(c.dcount) "count", sum(c.sizes) "size" + from lf.sys_meta a inner join lf.sys_meta_down b on a.id = b.metaid + inner join lf.sys_download c on b.downid = c.id + where dircode like '${projectCode}%'; --> + <select id="countProjectDown" resultType="java.util.Map"> + select + d.name "椤圭洰鍚嶇О", + (select count(*) "number" + from lf.sys_meta a inner join lf.sys_meta_down b on a.id = b.metaid + inner join lf.sys_download c on b.downid = c.id + where dircode like '${projectCode}%') "涓嬭浇涓暟", + (select sum(c.dcount) "count" + from lf.sys_meta a inner join lf.sys_meta_down b on a.id = b.metaid + inner join lf.sys_download c on b.downid = c.id + where dircode like '${projectCode}%') "涓嬭浇鏁伴噺", + (select sum(c.sizes) "size" + from lf.sys_meta a inner join lf.sys_meta_down b on a.id = b.metaid + inner join lf.sys_download c on b.downid = c.id + where dircode like '${projectCode}%') "鏁伴噺鎬婚噺(MB)" + from lf.sys_dir d + where pid = 0 AND d.code like '${projectCode}%' + </select> + + <!-- 鎸夊ぇ绫荤粺璁� --> + <select id="countByMajor" resultType="com.lf.server.entity.ctrl.CountEntity"> + select '娴嬬粯锛圗SV锛�' "m1", '鏁板瓧绾垮垝鍥�' "m2", '骞虫柟鍗冪背' "m3", coalesce(sum(area), 0) "sizes" from lf.sys_line_buffer + union all + select '娴嬬粯锛圗SV锛�' "m1", '鏁板瓧姝e皠褰卞儚鍥�' "m2", '骞虫柟鍗冪背' "m3", ( + select coalesce(sum(b.area), 0) 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') ) "sizes" + union all + select '娴嬬粯锛圗SV锛�' "m1", '绠$嚎鏁版嵁' "m2", '鍗冪背' "m3", + cast( coalesce(sum( ST_Length( ST_GeographyFromText( ST_AsText(geom) ) ) ) / 1000, 0) as decimal(12, 2) ) "sizes" from bs.m_pipeline + union all + select '鍕樺療锛圗GE锛�' "m1", '鍕樻帰鐐�' "m2", '涓�' "m3", count(*) "sizes" from bs.s_explorationpoint + union all + select '鍕樺療锛圗GE锛�' "m1", '涓夌淮鍦拌川妯″瀷' "m2", '骞虫柟绫�' "m3", ( + select coalesce(sum(b.area), 0) from lf.sys_meta b + inner join lf.sys_dir c on b.dircode = c.code + where b.type in ('fbx', 'ifc') ) "sizes" + union all + select '鍦扮伨锛圗GD锛�' "m1", '鍦扮伨鐐�' "m2", '涓�' "m3", count(*) "sizes" from bd.b_geologic_hazard; + </select> + + <!-- 鏌ヨ涓嚎缂撳啿鍖� --> + <select id="selectLineBuffer" resultType="java.lang.Integer"> + select fn_line_buffer(); + </select> + + <!-- 鏍规嵁绫诲瀷鏌ヨ鍏冩暟鎹紙鐢ㄤ簬璁$畻闈㈢Н锛� --> + <select id="selectMetaByType" resultType="java.util.Map"> + (select a.id, a.path, 'DOM' name from lf.sys_meta a + inner join lf.sys_dir b on a.dircode = b.code + where a.area is null and a.type in ('img', 'tif', 'tiff') and b.name = '鏁板瓧姝e皠褰卞儚鍥�') + union all + (select a.id, a.path, 'DEM' name from lf.sys_meta a + inner join lf.sys_dir b on a.dircode = b.code + where a.area is null and a.type in ('dem', 'tif', 'tiff') and b.name = '鏁板瓧楂樼▼妯″瀷') + union all + (select id, path, 'OSGB' name from lf.sys_meta where area is null and type = 'osgb') + union all + (select id, path, 'LAS' name from lf.sys_meta where area is null and type = 'las' or type = 'laz') + union all + (select id, path, 'IFC' name from lf.sys_meta where area is null and type = 'ifc') + union all + (select id, path, 'FBX' name from lf.sys_meta where area is null and type = 'fbx') + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.3