From a4d27567652c7cd81eeb0d4628cc55ffb07f8167 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期三, 17 九月 2025 09:29:01 +0800
Subject: [PATCH] 代码提交

---
 src/main/java/com/product/file/service/DocumentDirectoryService.java |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/product/file/service/DocumentDirectoryService.java b/src/main/java/com/product/file/service/DocumentDirectoryService.java
index 500400f..ff3fd4d 100644
--- a/src/main/java/com/product/file/service/DocumentDirectoryService.java
+++ b/src/main/java/com/product/file/service/DocumentDirectoryService.java
@@ -8,6 +8,7 @@
 import com.product.common.collect.ListUtils;
 import com.product.core.cache.DataPoolCacheImpl;
 import com.product.core.config.CoreConst;
+import com.product.core.connection.ConnectionManager;
 import com.product.core.dao.BaseDao;
 import com.product.core.entity.DataTableEntity;
 import com.product.core.entity.FieldSetEntity;
@@ -25,6 +26,8 @@
 import com.product.tool.table.enums.FieldType;
 import com.product.util.BaseUtil;
 import com.product.util.SystemParamReplace;
+import com.product.util.UnifySQLFunction;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -549,19 +552,23 @@
         DataTableEntity data;
         SystemUser user = SpringMVCContextHolder.getCurrentUser();
         StringBuffer sql = new StringBuffer();
-        sql.append("SELECT a.*,ifnull(b.number,0) number FROM PRODUCT_OA_directory a LEFT JOIN ");
-        sql.append(
-                "(SELECT COUNT(*) number,directory_uuid FROM PRODUCT_OA_document GROUP BY directory_uuid)  b on a.uuid=b.directory_uuid ");
+        sql.append("\nSELECT a.*,").append(UnifySQLFunction.ifnull("B.number", "0")).append(" AS number");
+        sql.append("\nFROM product_oa_directory a");
+        sql.append("\nLEFT JOIN (");
+        sql.append("\n  SELECT COUNT(*) AS number,directory_uuid");
+        sql.append("\n  FROM PRODUCT_OA_document");
+        sql.append("\n  GROUP BY directory_uuid");
+        sql.append("\n) b ON a.uuid = b.directory_uuid ");
 
         if ("1".equals(directory_type)) {
             String org_level_uuid = user.getOrg_level_uuid();
-            sql.append("where directory_type = 1 AND org_level_uuid = ? ");
+            sql.append("WHERE directory_type = 1 AND org_level_uuid = ? ");
             data = baseDao.listTable(sql.toString(), new Object[]{org_level_uuid});
 //      data = baseDao.listTable(CmnConst.PRODUCT_OA_DIRECTORY, " directory_type = 1 AND org_level_uuid = ?", new String[]{org_level_uuid}, "tricode");
             // 涓汉鏂囦欢澶�
         } else {
             Integer userId = user.getUser_id();
-            sql.append("where directory_type = 2 AND created_by = ? ");
+            sql.append("WHERE directory_type = 2 AND created_by = ? ");
             data = baseDao.listTable(sql.toString(), new Object[]{userId});
 
 //      data = baseDao.listTable(CmnConst.PRODUCT_OA_DIRECTORY, " directory_type = 2 AND created_by = ?", new Object[]{userId}, "tricode");
@@ -582,11 +589,12 @@
         if (!"1".equals(directory_type)) {
 //		鏌ヨ鏁伴噺
             sql.setLength(0);
-            sql.append(" SELECT\n");
-            sql.append("		( SELECT count(*) FROM product_oa_document_collection WHERE document_collector = ? ) collection_count,\n");
-            sql.append("		( SELECT count(distinct sub_uuid ) FROM product_oa_document_borrow_sub WHERE borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? and flow_flag=2) ) borrow_count\n");
-            sql.append("		FROM\n");
-            sql.append("DUAL\n");
+            sql.append("\nSELECT");
+            sql.append("\n  (SELECT count(*) FROM product_oa_document_collection WHERE document_collector = ? ) collection_count,");
+            sql.append("\n  (SELECT count(distinct sub_uuid ) FROM product_oa_document_borrow_sub WHERE borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? and flow_flag=2) ) borrow_count");
+            if(ConnectionManager.DATABASE_TYPE_ORACLE.equals(ConnectionManager.getDatabaseType())) {
+            	sql.append("\nFROM DUAL");
+            }
             FieldSetEntity fieldSetBySQL = baseDao.getFieldSetBySQL(sql.toString(), new Object[]{user.getUser_id(), user.getUser_id()}, false);
             int collectionCount = 0;
             int borrowCount = 0;

--
Gitblit v1.9.2