From 83cc589740899a441685a9350b85925fa8fd0a3b Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 18 二月 2023 14:03:27 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/mapper/data/DirMapper.java         |    8 ++++
 src/main/resources/mapper/data/DirMapper.xml                   |    9 ++++
 data/update.sql                                                |   65 ++++++++++++++------------------
 src/main/java/com/lf/server/service/all/BaseUploadService.java |    8 ++-
 src/main/java/com/lf/server/service/data/DirService.java       |    5 ++
 5 files changed, 55 insertions(+), 40 deletions(-)

diff --git a/data/update.sql b/data/update.sql
index ef543a9..87b9655 100644
--- a/data/update.sql
+++ b/data/update.sql
@@ -204,7 +204,34 @@
 order by c.id limit 1;
 
 select * from lf.sys_role;
---------------------------------------------------------- 09 淇敼琛ㄧ粨鏋�
+--------------------------------------------------------- 09
+select * from lf.sys_dir
+select * from lf.sys_meta order by id desc; --1062,1398
+
+
+
+
+
+--------------------------------------------------------- 
+-- 0100000000,02000000,030000,040100,0100000002,02000002,040102,0100000003,02000003,0100000001,02000001,040101,030001,01,02,02000001
+select * from lf.sys_meta where dircode like '01%' or dircode like '02%' or dircode like '030000%'
+  or dircode like '030001%' or dircode like '040100%' or dircode like '040101%' or dircode like '040102%';
+
+select code "key", name "value" from lf.sys_dir where pid = 0 and id > 1;
+select code "key", name "value" from lf.sys_dir where pid = 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 count(*) from bd.dlg_25w_aanp where 1 = 1
+
+select a.*, fn_tab_count(a.ns, a.tab, '1=1') "rows" from
+(select distinct ns,tab,fn_get_entity(tab) entity,tab_desc,tableType from lf.sys_dict
+order by tab
+limit 10 offset 0) a
+
+select dirid,depid from bd.dlg_25w_resa group by dirid,depid
+select * from lf.sys_dict where tab='dlg_25w_resa'
+--------------------------------------------------------- A0 淇敼琛ㄧ粨鏋�
 -- drop function fn_alter_tab_fields();
 create or replace function fn_alter_tab_fields()
 returns integer as $$
@@ -251,39 +278,3 @@
 select gid,depid,dirid from bd.dlg_25w_resa limit 10;
 select gid,depid,dirid from bd.dlg_25w_boul limit 10;
 --------------------------------------------------------- 
-select count(*) from bd.b_borehole;
-
-select gid,depid,dirid,verid from bd.b_borehole; -- 357824
-select * from lf.sys_dir where id=0;
-select * from lf.sys_dep where id=0;
---------------------------------------------------------- 
--- 0100000000,02000000,030000,040100,0100000002,02000002,040102,0100000003,02000003,0100000001,02000001,040101,030001,01,02,02000001
-select * from lf.sys_meta where dircode like '01%' or dircode like '02%' or dircode like '030000%'
-  or dircode like '030001%' or dircode like '040100%' or dircode like '040101%' or dircode like '040102%';
-
-select code "key", name "value" from lf.sys_dir where pid = 0 and id > 1;
-select code "key", name "value" from lf.sys_dir where pid = 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 count(*) from bd.dlg_25w_aanp where 1 = 1
-
-select a.*, fn_tab_count(a.ns, a.tab, '1=1') "rows" from
-(select distinct ns,tab,fn_get_entity(tab) entity,tab_desc,tableType from lf.sys_dict
-order by tab
-limit 10 offset 0) a
-
-select dirid,depid from bd.dlg_25w_resa group by dirid,depid
-select * from lf.sys_dict where tab='dlg_25w_resa'
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/main/java/com/lf/server/mapper/data/DirMapper.java b/src/main/java/com/lf/server/mapper/data/DirMapper.java
index 255e6d5..2e08807 100644
--- a/src/main/java/com/lf/server/mapper/data/DirMapper.java
+++ b/src/main/java/com/lf/server/mapper/data/DirMapper.java
@@ -99,4 +99,12 @@
      * @return
      */
     public List<DirEntity> selectDirRecursive(String name);
+
+    /**
+     * 閫掑綊鏌ヨ
+     *
+     * @param id
+     * @return
+     */
+    public List<DirEntity> selectRecursiveById(Integer id);
 }
diff --git a/src/main/java/com/lf/server/service/all/BaseUploadService.java b/src/main/java/com/lf/server/service/all/BaseUploadService.java
index 2d88ea8..414654a 100644
--- a/src/main/java/com/lf/server/service/all/BaseUploadService.java
+++ b/src/main/java/com/lf/server/service/all/BaseUploadService.java
@@ -196,7 +196,7 @@
         }
 
         List<MetaFileEntity> list = new ArrayList<>();
-        List<DirEntity> dirs = dirService.selectDirRecursive(dir.getName());
+        List<DirEntity> dirs = dirService.selectRecursiveById(dir.getId());
         for (MetaFileEntity meta : metas) {
             meta.setEventid(StringHelper.getGuid());
             meta.setDircode(dir.getCode());
@@ -353,8 +353,10 @@
             filePath = filePath.replace("/", "\\");
         }
 
+        fileName = fileName.toLowerCase();
+        filePath = filePath.toLowerCase();
         for (DirEntity entity : dirs) {
-            if (filePath.contains(entity.getFullName() + "\\" + fileName)) {
+            if (filePath.contains(entity.getFullName().toLowerCase() + "\\" + fileName)) {
                 return entity.getCode();
             }
         }
@@ -514,7 +516,7 @@
      * Enumeration<String> attributes = req.getAttributeNames();
      */
     public Map<String, String> getParams(StandardMultipartHttpServletRequest req) {
-        Map<String, String> map = new HashMap<String, String>(3);
+        Map<String, String> map = new HashMap<>(3);
 
         Enumeration<String> enumeration = req.getParameterNames();
         while (enumeration.hasMoreElements()) {
diff --git a/src/main/java/com/lf/server/service/data/DirService.java b/src/main/java/com/lf/server/service/data/DirService.java
index 37686af..e09e139 100644
--- a/src/main/java/com/lf/server/service/data/DirService.java
+++ b/src/main/java/com/lf/server/service/data/DirService.java
@@ -72,4 +72,9 @@
     public List<DirEntity> selectDirRecursive(String name) {
         return dirMapper.selectDirRecursive(name);
     }
+
+    @Override
+    public List<DirEntity> selectRecursiveById(Integer id) {
+        return dirMapper.selectRecursiveById(id);
+    }
 }
diff --git a/src/main/resources/mapper/data/DirMapper.xml b/src/main/resources/mapper/data/DirMapper.xml
index 5de7d96..bbfa9e2 100644
--- a/src/main/resources/mapper/data/DirMapper.xml
+++ b/src/main/resources/mapper/data/DirMapper.xml
@@ -25,6 +25,15 @@
         )
         select * from rs order by order_num;
     </select>
+
+    <select id="selectRecursiveById" resultType="com.lf.server.entity.data.DirEntity">
+        with recursive rs as(
+        select a.*, fn_get_fullname(a.code, 2) fullName from lf.sys_dir a where id = #{id}
+        union
+            select b.*, fn_get_fullname(b.code, 2) fullName from lf.sys_dir b, rs c where b.pid = c.id
+        )
+        select * from rs order by order_num;
+    </select>
     <!-- 鎻掑叆涓�鏉� -->
     <insert id="insert" parameterType="com.lf.server.entity.data.DirEntity">
         <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">

--
Gitblit v1.9.3