From db5338c2246acbc0826a9b683392512cf00eba04 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 26 三月 2023 09:11:32 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/config/ScheduleConfig.java    |    9 +++-
 src/main/java/com/lf/server/service/data/MetaService.java |   33 +++++++++++++++-
 data/db_cx.sql                                            |   20 +++-------
 src/main/resources/application.yml                        |    8 ++--
 4 files changed, 47 insertions(+), 23 deletions(-)

diff --git a/data/db_cx.sql b/data/db_cx.sql
index 418a8ba..371299b 100644
--- a/data/db_cx.sql
+++ b/data/db_cx.sql
@@ -7,23 +7,15 @@
 select concat(gb, '_', name) from bd.dlg_agnp limit 10;
 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
 
-select * from lf.sys_fme_log order by id desc limit 10; -- 255 > 
-select * from lf.sys_meta order by id desc limit 10; -- 1723 > 
+-- 鍒犻櫎鍐椾綑鏁版嵁锛屼慨澶峵ab_guid鍊�
+select id,name,path,tab,tab_guid from lf.sys_attach where tab != 'bd.b_borehole' order by id desc limit 200; 
 
-select * from lf.sys_fme_log
-where count > 0 and update_time is null and create_time > now()::timestamp + '-1 min'
-select * from bs.s_explorationpoint where parentid='df3ee967-3eb8-4685-b49c-d0ae06918069'
-select * from lf.sys_dir where pid=0 order by id
+select * from lf.sys_fme_log order by id desc limit 15; -- 255 > 
+select * from lf.sys_meta order by id desc limit 15; -- 1723 > 
+select * from lf.sys_attach where tab != 'bd.b_borehole' order by id desc limit 50; -- 358042
+select * from lf.sys_meta where tab is not null order by id desc
 
-select * from bs.s_explorationpoint
-select * from lf.sys_attach order by id desc limit 100; -- 358042
 
-insert into lf.sys_attach (name, guid, path, sizes, create_user, tab, tab_guid)
-select name, guid, path, sizes, create_user, 'bs.s_explorationpoint', '8de99768-1da3-4784-9423-bb026411fa48'
-from lf.sys_meta
-where name = 'PH02T01-CR004-C04#EGE-DW-0105.pdf' and create_time > now()::timestamp + '-10 min'
-order by id desc
-limit 1;
 
 
 
diff --git a/src/main/java/com/lf/server/config/ScheduleConfig.java b/src/main/java/com/lf/server/config/ScheduleConfig.java
index 5b937f1..d818805 100644
--- a/src/main/java/com/lf/server/config/ScheduleConfig.java
+++ b/src/main/java/com/lf/server/config/ScheduleConfig.java
@@ -28,6 +28,8 @@
     @Autowired
     ScheduleService scheduleService;
 
+    private static boolean isBusy = false;
+
     private static final Log log = LogFactory.getLog(ScheduleConfig.class);
 
     @Scheduled(fixedRate = 15 * 1000)
@@ -98,15 +100,18 @@
     public void syncAttaches() {
         try {
             List<FmeLogEntity> list = attachService.selectFmeLogs();
-            if (null == list || list.isEmpty()) {
+            if (isBusy || null == list || list.isEmpty()) {
                 return;
             }
 
+            isBusy = true;
             for (FmeLogEntity entity : list) {
-                attachService.updateFmeLog(entity.getId());
                 attachService.syncAttaches(entity);
+                attachService.updateFmeLog(entity.getId());
             }
+            isBusy = false;
         } catch (Exception ex) {
+            isBusy = false;
             log.error(ex.getMessage(), ex);
         }
     }
diff --git a/src/main/java/com/lf/server/service/data/MetaService.java b/src/main/java/com/lf/server/service/data/MetaService.java
index 414c283..4fa9325 100644
--- a/src/main/java/com/lf/server/service/data/MetaService.java
+++ b/src/main/java/com/lf/server/service/data/MetaService.java
@@ -161,8 +161,15 @@
      * 鑾峰彇鍒犻櫎琛ㄨ褰昐QL
      */
     public String getDelTabsSql(List<MetaEntity> metas) {
+        List<String> list = getTabDeletes(metas, metas.get(0).getTab());
+        addCascadDeletes(list);
+        addAttachDeletes(list);
+
+        return StringHelper.join(list, ";");
+    }
+
+    private List<String> getTabDeletes(List<MetaEntity> metas, String tab) {
         List<String> list = new ArrayList<>();
-        String tab = metas.get(0).getTab();
 
         List<String> pids = new ArrayList<>();
         for (MetaEntity me : metas) {
@@ -180,7 +187,13 @@
             list.add(String.format("delete from %s where parentid in (%s)", tab, StringHelper.join(pids, ",")));
         }
 
-        // 鍏宠仈鍒犻櫎
+        return list;
+    }
+
+    /**
+     * 娣诲姞绾ц仈鍒犻櫎
+     */
+    private void addCascadDeletes(List<String> list) {
         int i = 0, c = list.size();
         while (i < c) {
             String str = list.get(i);
@@ -194,8 +207,22 @@
 
             i++;
         }
+    }
 
-        return StringHelper.join(list, ";");
+    /**
+     * 娣诲姞闄勪欢鍒犻櫎
+     */
+    private void addAttachDeletes(List<String> list) {
+        int i = 0, c = list.size();
+        while (i < c) {
+            String str = list.get(i);
+            String tab = str.substring("delete from ".length(), str.indexOf(" where "));
+            String select = str.replace("delete ", "select eventid ");
+
+            list.add(String.format("delete from lf.sys_attach where tab='%s' and tab_guid in (%s)", tab, select));
+
+            i++;
+        }
     }
 
     /**
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3238bb1..ff70519 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -41,12 +41,12 @@
   datasource:
     name: prod
     # JDBC 鍩烘湰閰嶇疆 &currentSchema=public
-    url: jdbc:postgresql://103.85.165.99:5433/langfang?useAffectedRows=true
+    #url: jdbc:postgresql://103.85.165.99:5433/langfang?useAffectedRows=true
     #url: jdbc:postgresql://192.168.20.205:5433/langfang?useAffectedRows=true
-    #url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
+    url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
     username : postgres
-    password: Postgres!_14_Lf
-    #password: postgres
+    #password: Postgres!_14_Lf
+    password: postgres
     driver-class-name: org.postgresql.Driver
     paltform: POSTGRESQL
     type: com.alibaba.druid.pool.DruidDataSource

--
Gitblit v1.9.3