From d538a62999e202ce4c5a10429402a82d95494755 Mon Sep 17 00:00:00 2001
From: zm <2369059705qq.com>
Date: 星期三, 04 九月 2024 17:16:37 +0800
Subject: [PATCH] 文件归档定时任务

---
 src/main/java/com/product/file/service/DocumentService.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/product/file/service/DocumentService.java b/src/main/java/com/product/file/service/DocumentService.java
index 37d16c9..d3baa3a 100644
--- a/src/main/java/com/product/file/service/DocumentService.java
+++ b/src/main/java/com/product/file/service/DocumentService.java
@@ -337,13 +337,14 @@
 			String directory_uuid = fieldSetEntity.getString(CmnConst.DIRECTORY_UUID);
 			//String key = "%,140,%";
 			DataTableEntity dataTableEntity = new DataTableEntity();
-			FieldSetEntity org = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY_RIGHTS, "directory_uuid=?", new String[]{directory_uuid}, false);
+
+			FieldSetEntity org = recursionRole(directory_uuid);
 			if (verifyOrgExist(org.getString("storage_uuid"))) {
 				StringBuffer sql = new StringBuffer();
 				sql.append(" SELECT  substring_index(substring_index(a.rigths,',',b.help_topic_id+1),',',-1) fun FROM  PRODUCT_OA_directory_rights a ")
 						.append(" INNER join   mysql.help_topic b on b.help_topic_id < (length(a.rigths) - length(replace(a.rigths,',',''))+1) ")
 						.append(" WHERE a.directory_uuid = ? ");
-				dataTableEntity = baseDao.listTable(sql.toString(), new String[]{directory_uuid});
+				dataTableEntity = baseDao.listTable(sql.toString(), new String[]{org.getString("directory_uuid")});
 			}
 			StringBuffer button = new StringBuffer();
 			if (!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
@@ -391,6 +392,21 @@
 		fse.setSubData(dataMap);
 
 		return fse;
+	}
+
+	/**
+	 * 閫掑綊鑾峰彇鏉冮檺濡傛灉褰撳墠鏂囨。鏈厤缃潈闄愬氨鍘婚�掑綊鏌ヨ鐖剁骇鏉冮檺
+	 * @param directory_uuid
+	 * @return
+	 */
+	private FieldSetEntity recursionRole(String directory_uuid){
+		FieldSetEntity org = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY_RIGHTS, "directory_uuid=?", new String[]{directory_uuid}, false);
+		if (FieldSetEntity.isEmpty(org)){
+			FieldSetEntity directoryFs = baseDao.getFieldSet(CmnConst.PRODUCT_OA_DIRECTORY, directory_uuid,false);
+			FieldSetEntity parentFs = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY, "tricode=?",new String[]{directoryFs.getString("tricode_parent")},false);
+			org=recursionRole(parentFs.getUUID());
+		}
+		return org;
 	}
 
 	@Override
@@ -709,13 +725,13 @@
 		StringBuilder sb = new StringBuilder();
 		List<String> param = new ArrayList<>();
 		sb.append(" SELECT b.* FROM (");
-		sb.append(" SELECT t.uuid,t.file_name,t.file_size,s.show_name,t.created_utc_datetime,count(t.uuid) as applyCount");
+		sb.append(" SELECT t.uuid,t.file_name,t.attachment_size as file_size,s.show_name,t.created_utc_datetime,count(t.uuid) as applyCount");
 		sb.append(" FROM product_oa_document_borrow_sub b");
-		sb.append(" JOIN product_oa_document t");
+		sb.append(" JOIN product_sys_attachments t");
 		sb.append(" on b.sub_uuid=t.uuid");
 		sb.append(" JOIN product_sys_staffs s ");
 		sb.append(" on t.created_by=s.user_id");
-		sb.append(" group by t.file_name,t.uuid,s.show_name,t.created_utc_datetime,t.file_size");
+		sb.append(" group by t.file_name,t.uuid,s.show_name,t.created_utc_datetime,t.attachment_size");
 		sb.append(" )b order by  b.applyCount asc");
 		DataTableEntity dataTableEntity = baseDao.listTable(sb.toString(), param.toArray());
 		return dataTableEntity;
@@ -740,7 +756,7 @@
 		sb.append(" FROM product_oa_document_borrow  w ");
 		sb.append(" left JOIN product_oa_document_borrow_sub b");
 		sb.append(" on b.borrow_uuid=w.uuid");
-		sb.append(" left JOIN product_oa_document t");
+		sb.append(" left JOIN product_sys_attachments t");
 		sb.append(" on b.sub_uuid=t.uuid");
 		sb.append(" left JOIN product_sys_staffs s");
 		sb.append(" on w.borrower=s.user_id");

--
Gitblit v1.9.2