From 70ddec6cf736c0174bafaef0a9bfe4c9412af133 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 25 三月 2023 16:37:32 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/mapper/sys/AttachMapper.java    |   16 ++++
 src/main/java/com/lf/server/service/sys/AttachService.java  |   11 ++
 data/db_fn.sql                                              |   89 ++++++++++-----------
 data/db_tab.sql                                             |    6 +
 src/main/java/com/lf/server/service/data/UploadService.java |    9 -
 src/main/resources/mapper/sys/AttachMapper.xml              |   10 ++
 src/main/java/com/lf/server/entity/data/FmeLogEntity.java   |   21 +++++
 data/db_cx.sql                                              |   35 +-------
 8 files changed, 112 insertions(+), 85 deletions(-)

diff --git a/data/db_cx.sql b/data/db_cx.sql
index 521d5f3..1207dfd 100644
--- a/data/db_cx.sql
+++ b/data/db_cx.sql
@@ -4,41 +4,16 @@
 select * from lf.sys_layer where url is not null and serve_type='WMS' and data_type in ('宸ョ▼椤圭洰','宸ョ▼椤圭洰-鍦扮伨绫�','宸ョ▼椤圭洰-娴嬮噺绫�','宸ョ▼椤圭洰-娲炲簱绫�','宸ョ▼椤圭洰-鍕樺療绫�') order by id;
 insert into lf.sys_layer (pid,cn_name,en_name,url,type,level,order_num,is_show,create_user,serve_type,data_type,elev) values
   (423, '鍦伴潰灞�', 'fushun_site', 'tileset/o/39HBFG/tileset.json', 2, 3, 5, 0, 1, 'Tileset', '宸ョ▼娴嬮噺妯″瀷', 1200);
-update lf.sys_layer set elev=118,cn_name='鍦伴潰灞�' where id=427;
-
 select concat(gb, '_', name) from bd.dlg_agnp limit 10;
-select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName from lf.sys_dict a limit 10
-select * from lf.sys_download where position('绠¢亾鍩虹澶ф暟鎹钩鍙�' in descr)>0 order by id desc;
 select ST_AsText(geom) "geom", a.*, fn_get_fullname(a.depid, 1) depName, fn_get_fullname(a.dirid, 2) dirName, fn_uname(create_user) createName, fn_uname(update_user) updateName from lf.sys_publish a
 
--- 娣诲姞鑺傜偣
-alter table lf.sys_layer add column pubid integer;
-insert into lf.sys_layer (pid,cn_name,en_name,type,level,order_num,is_show,create_user,data_type) values (0,'褰卞儚','img',1,1,3,0,1,'褰卞儚鏁版嵁');
-insert into lf.sys_layer (pid,cn_name,en_name,type,level,order_num,is_show,create_user,data_type) values (430,'鑷姩鍙戝竷妯″瀷','auto_model',1,2,25,0,1,'鑷姩鍙戝竷妯″瀷');
-select * from lf.sys_layer order by id desc limit 20;
-
-select * from lf.sys_attach where tab = 'bs.s_explorationpoint' and tab_guid in (select eventid from bs.s_explorationpoint where exppointid = '001')
-select * from lf.sys_meta where id in (1523,1525)
-
--- update lf.sys_meta set path = '1\' || guid || '.' || type where id in (1523, 1525);
-select * from lf.sys_publish;      -- delete from lf.sys_publish
-select * from lf.sys_meta_pub;     -- delete from lf.sys_meta_pub
-select * from lf.sys_layer order by id desc limit 20;     -- delete from lf.sys_layer where id > 441;
-
-select coalesce(max(order_num), 0) + 1 from lf.sys_layer where pid = (select id from lf.sys_layer where cn_name = '鑷姩鍙戝竷妯″瀷' limit 1);
-select * from lf.sys_meta where id in (1523,1529,1525);
-
-select * from lf.sys_publish order by id desc
-select * from lf.sys_meta_pub order by id desc
-select * from lf.sys_layer order by id desc limit 10
-select * from lf.sys_meta where name='鍕樻帰鐐硅〃.xlsx'
+select * from lf.sys_fme_log order by id desc limit 10; -- 236
+select * from lf.sys_meta order by id desc limit 10; -- 1686 > 1696
 
 select * from lf.sys_fme_log
---where tcdm='u_sectionline'
-order by id desc;
-
-
-
+where count > 0 and update_time is null and
+position(tcdm in 'bd.b_pac_hydrogeology,bd.b_pac_frozensoil,bd.b_pac_geologic_hazard,bd.b_pac_marine_meteorological,bd.b_pac_meteorological,bs.m_equipment_nameplate,bs.m_hydraulic_protection,bs.m_marker,bs.s_explorationpoint,bs.u_sectionline') > 0
+ --and create_time > now()::timestamp + '-1 min'
 
 
 
diff --git a/data/db_fn.sql b/data/db_fn.sql
index 628101f..27afa70 100644
--- a/data/db_fn.sql
+++ b/data/db_fn.sql
@@ -320,14 +320,11 @@
   begin
     update lf.sys_meta set tab = new.pg_ns || '.' || new.tcdm, layer = new.tcmc, rows = new.count where eventid = new.parentid;
 	
-	if new.count > 0 and position(new.tcdm in 'b_pac_hydrogeology,b_pac_frozensoil,b_pac_geologic_hazard,b_pac_marine_meteorological,b_pac_meteorological,m_equipment_nameplate,m_hydraulic_protection,m_marker,s_explorationpoint,u_sectionline') > 0 then
-		select fn_auto_attach(new.id);
-	end if;
-	
 	return new;
   end;
 $$ language plpgsql;
 
+-- select id, pg_ns || '.' || tcdm, parentid from lf.sys_fme_log;
 ----------------------------------------------------------------------------------------------------- 15.鍗曚綅琛ㄨЕ鍙戝櫒鍑芥暟
 -- drop function fn_dep_insert();
 create or replace function fn_dep_insert() returns trigger as $$
@@ -359,49 +356,6 @@
 	return new;
   end;
 $$ language plpgsql;
------------------------------------------------------------------------------------------------------ 18.鍚屾闄勪欢鍑芥暟
--- drop function fn_auto_attach(integer);
-create or replace function fn_auto_attach(sid integer) returns void as $$
-  declare
-	rec record;
-	str varchar;
-    tab varchar;
-    pid varchar;
-	field varchar := 'materiname';
-  begin
-	select pg_ns || '.' || tcdm, parentid into tab, pid from lf.sys_fme_log a where a.id = sid limit 1;
-	
-	if position('bs.' in tab) > 0 then field := 'photono'; end if;
-	
-	execute format('select count(*) from %s where parentid = ''%s'' and %s is not null', tab, pid, field) into sid;
-	raise notice 'tab = %, pid = %, field = %, rows = %', tab, pid, field, sid;
-	
-	if sid = 0 then return; end if;
-	
-	for rec in execute format('select eventid "eid",%s "ns" from %s where parentid=''%s'' and %s is not null', field, tab, pid, field) loop
-	  foreach str in array (select string_to_array(replace(replace(replace(rec.ns, '锛�', ','), '锛�', ','), ';', ','), ',')) loop
-	  	raise notice 'eventid = %, photono = %', rec.eid, str;
-		
-	    execute format('insert into lf.sys_attach (name, guid, path, sizes, create_user, tab, tab_guid) ' ||
-		  'select name, guid, path, sizes, create_user, ''%s'', ''%s'' from lf.sys_meta ' ||
-		  'where name = ''%s'' and create_time > now()::timestamp + ''-1 hour'' order by id desc limit 1', tab, rec.eid, str);
-	  end loop;
-	end loop;
-  end;
-$$ language plpgsql;
-
-select fn_auto_attach(142); select fn_auto_attach(143);
-select * from lf.sys_attach where tab = 'bs.m_marker';
-
-select position('s_pac_hydrogeology' in 'b_pac_hydrogeology,bd.b_pac_frozensoil,bd.b_pac_geologic_hazard')
-select parentid, pg_ns || '.' || tcdm from lf.sys_fme_log where id = 143;
-select * from lf.sys_meta where eventid = '1caa28e2-b911-40e1-bfc5-4959a927cdd1';
-select * from bs.m_marker where parentid = '1caa28e2-b911-40e1-bfc5-4959a927cdd1';
-select * from lf.sys_fme_log
-select * from lf.sys_meta a inner join lf.sys_fme_log b on a.eventid= b.parentid
-select * from lf.sys_attach where tab='bs.m_marker';
-
-select * from lf.sys_meta where name in ('璀︾ず鐗�10002.jpg','璀︾ず鐗�10004.jpg') order by id desc
 ----------------------------------------------------------------------------------------------------- 19.璺緞鍒嗘瀽
 -- 鍒犻櫎宸插瓨鍦ㄧ殑鍑芥暟
 -- drop function pgr_fromAtoB(varchar, double precision, double precision, double precision, double precision);
@@ -693,4 +647,45 @@
     SELECT SUBSTR(S, 2), (POWER(62, LENGTH(S)::NUMERIC - 1) * (strpos('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', SUBSTR(S, 1, 1)) - 1) + N) FROM T WHERE LENGTH(S) > 0
 )
 SELECT N::NUMERIC(30, 0) FROM T WHERE LENGTH(S) < 1;
+----------------------------------------------------------------------------------------------------- e.FME鏃ュ織琛ㄨЕ鍙戝櫒鍑芥暟 *
+-- drop function fn_meta_insert();
+create or replace function fn_meta_insert() returns trigger as $$
+  begin
+    update lf.sys_meta set tab = new.pg_ns || '.' || new.tcdm, layer = new.tcmc, rows = new.count where eventid = new.parentid;
+	
+	--if new.count > 0 and position(new.tcdm in 'b_pac_hydrogeology,b_pac_frozensoil,b_pac_geologic_hazard,b_pac_marine_meteorological,b_pac_meteorological,m_equipment_nameplate,m_hydraulic_protection,m_marker,s_explorationpoint,u_sectionline') > 0 then
+	--  select fn_auto_attach(new.id, new.pg_ns || '.' || new.tcdm, new.parentid);
+	--end if;
+	
+	return new;
+  end;
+$$ language plpgsql;
+----------------------------------------------------------------------------------------------------- f.鍚屾闄勪欢鍑芥暟 *
+-- drop function fn_auto_attach(integer, varchar, varchar);
+create or replace function fn_auto_attach(sid integer, tab varchar, pid varchar) returns void as $$
+  declare
+	rec record;
+	str varchar;
+	field varchar := 'materiname';
+  begin
+	if position('bs.' in tab) > 0 then field := 'photono'; end if;
+	
+	execute format('select count(*) from %s where parentid = ''%s'' and %s is not null', tab, pid, field) into sid;
+	--raise notice 'tab = %, pid = %, field = %, rows = %', tab, pid, field, sid;
+	
+	if sid = 0 then return; end if;
+	
+	for rec in execute format('select eventid "eid",%s "ns" from %s where parentid=''%s'' and %s is not null', field, tab, pid, field) loop
+	  foreach str in array (select string_to_array(replace(replace(replace(rec.ns, '锛�', ','), '锛�', ','), ';', ','), ',')) loop
+	  	--raise notice 'eventid = %, photono = %', rec.eid, str;
+		
+	    execute format('insert into lf.sys_attach (name, guid, path, sizes, create_user, tab, tab_guid) ' ||
+		  'select name, guid, path, sizes, create_user, ''%s'', ''%s'' from lf.sys_meta ' ||
+		  'where name = ''%s'' and create_time > now()::timestamp + ''-1 hour'' order by id desc limit 1', tab, rec.eid, str);
+	  end loop;
+	end loop;
+  end;
+$$ language plpgsql;
+
+-- select fn_auto_attach(142); select fn_auto_attach(143);
 ----------------------------------------------------------------------------------------------------- 
diff --git a/data/db_tab.sql b/data/db_tab.sql
index 7ba6609..1b3d5fe 100644
--- a/data/db_tab.sql
+++ b/data/db_tab.sql
@@ -1072,7 +1072,8 @@
   tcmc varchar(150),
   tcdm varchar(50),
   count integer default 0,
-  create_time timestamp(6) without time zone default now()
+  create_time timestamp(6) without time zone default now(),
+  update_time timestamp(6) without time zone
 );
 comment on table lf.sys_fme_log is 'FME鏃ュ織琛�';
 comment on column lf.sys_fme_log.id is '涓婚敭ID';
@@ -1083,8 +1084,9 @@
 comment on column lf.sys_fme_log.tcdm is '琛ㄥ悕';
 comment on column lf.sys_fme_log.count is '琛屾暟';
 comment on column lf.sys_fme_log.create_time is '鍒涘缓鏃堕棿';
+comment on column lf.sys_fme_log.update_time is '鏇存柊鏃堕棿';
 
-select * from lf.sys_fme_log; -- delete from lf.sys_fme_log;
+select * from lf.sys_fme_log order by id desc; -- delete from lf.sys_fme_log;
 ----------------------------------------------------------------------------------------------------- 32.鍥惧眰琛�
 -- DROP TABLE IF EXISTS lf.sys_layer;
 create table lf.sys_layer(
diff --git a/src/main/java/com/lf/server/entity/data/FmeLogEntity.java b/src/main/java/com/lf/server/entity/data/FmeLogEntity.java
index 1a708e5..5d87ed0 100644
--- a/src/main/java/com/lf/server/entity/data/FmeLogEntity.java
+++ b/src/main/java/com/lf/server/entity/data/FmeLogEntity.java
@@ -1,6 +1,7 @@
 package com.lf.server.entity.data;
 
 import java.io.Serializable;
+import java.sql.Timestamp;
 
 /**
  * FME鏃ュ織琛�
@@ -25,6 +26,10 @@
     private String tcdm;
 
     private Integer count;
+
+    private Timestamp createTime;
+
+    private Timestamp updateTime;
 
     public Integer getId() {
         return id;
@@ -81,4 +86,20 @@
     public void setCount(Integer count) {
         this.count = count;
     }
+
+    public Timestamp getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Timestamp createTime) {
+        this.createTime = createTime;
+    }
+
+    public Timestamp getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Timestamp updateTime) {
+        this.updateTime = updateTime;
+    }
 }
diff --git a/src/main/java/com/lf/server/mapper/sys/AttachMapper.java b/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
index c8598fb..2a0563a 100644
--- a/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
+++ b/src/main/java/com/lf/server/mapper/sys/AttachMapper.java
@@ -1,5 +1,6 @@
 package com.lf.server.mapper.sys;
 
+import com.lf.server.entity.data.FmeLogEntity;
 import com.lf.server.entity.sys.AttachEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
@@ -137,4 +138,19 @@
      * @return
      */
     public Integer updates(List<AttachEntity> list);
+
+    /**
+     * 鏌ヨFME鏃ュ織
+     *
+     * @return
+     */
+    public List<FmeLogEntity> selectFmeLogs();
+
+    /**
+     * 鏇存柊FME鏃ュ織
+     *
+     * @param id ID
+     * @return
+     */
+    public Integer updateFmeLog(Integer id);
 }
diff --git a/src/main/java/com/lf/server/service/data/UploadService.java b/src/main/java/com/lf/server/service/data/UploadService.java
index 5c05c6b..27829af 100644
--- a/src/main/java/com/lf/server/service/data/UploadService.java
+++ b/src/main/java/com/lf/server/service/data/UploadService.java
@@ -101,21 +101,18 @@
     /**
      * Excel鍏ュ簱
      */
-    private String excelLoader(List<MetaFileEntity> list, HttpServletRequest req) {
+    private void excelLoader(List<MetaFileEntity> list, HttpServletRequest req) {
         List<MetaFileEntity> xlsList = getExcelFiles(list);
         if (xlsList.isEmpty()) {
-            return "";
+            return;
         }
 
-        String guid = null;
         try {
             MetaFileEntity meta = getExcelMeta(xlsList);
-            guid = fmeService.excelLoader(meta, req);
+            String guid = fmeService.excelLoader(meta, req);
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
         }
-
-        return guid;
     }
 
     /**
diff --git a/src/main/java/com/lf/server/service/sys/AttachService.java b/src/main/java/com/lf/server/service/sys/AttachService.java
index 5d08250..205fd6f 100644
--- a/src/main/java/com/lf/server/service/sys/AttachService.java
+++ b/src/main/java/com/lf/server/service/sys/AttachService.java
@@ -1,5 +1,6 @@
 package com.lf.server.service.sys;
 
+import com.lf.server.entity.data.FmeLogEntity;
 import com.lf.server.entity.sys.AttachEntity;
 import com.lf.server.helper.StringHelper;
 import com.lf.server.mapper.sys.AttachMapper;
@@ -95,4 +96,14 @@
     public Integer updates(List<AttachEntity> list) {
         return attachMapper.updates(list);
     }
+
+    @Override
+    public List<FmeLogEntity> selectFmeLogs() {
+        return attachMapper.selectFmeLogs();
+    }
+
+    @Override
+    public Integer updateFmeLog(Integer id) {
+        return attachMapper.updateFmeLog(id);
+    }
 }
diff --git a/src/main/resources/mapper/sys/AttachMapper.xml b/src/main/resources/mapper/sys/AttachMapper.xml
index d38fb6d..3f3c070 100644
--- a/src/main/resources/mapper/sys/AttachMapper.xml
+++ b/src/main/resources/mapper/sys/AttachMapper.xml
@@ -103,4 +103,14 @@
             where id = #{item.id}
         </foreach>
     </update>
+
+    <select id="selectFmeLogs" resultType="com.lf.server.entity.data.FmeLogEntity">
+        select * from lf.sys_fme_log
+        where count > 0 and update_time is null and create_time > now()::timestamp + '-1 min'
+            position(tcdm in 'bd.b_pac_hydrogeology,bd.b_pac_frozensoil,bd.b_pac_geologic_hazard,bd.b_pac_marine_meteorological,bd.b_pac_meteorological,bs.m_equipment_nameplate,bs.m_hydraulic_protection,bs.m_marker,bs.s_explorationpoint,bs.u_sectionline') > 0;
+    </select>
+
+    <update id="updateFmeLog">
+        update lf.sys_fme_log set update_time = now() where id = #{id};
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3