From 1272dcd48d710491afcc589f5beb2bb22be5334c Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期三, 15 十月 2025 17:41:06 +0800
Subject: [PATCH] 适配存储到数据库的文件
---
src/main/java/com/product/file/service/DocumentService.java | 62 ++++++++++++++++++++++++------
1 files changed, 49 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/product/file/service/DocumentService.java b/src/main/java/com/product/file/service/DocumentService.java
index be2548c..9b6469d 100644
--- a/src/main/java/com/product/file/service/DocumentService.java
+++ b/src/main/java/com/product/file/service/DocumentService.java
@@ -143,11 +143,12 @@
StringBuffer sql = new StringBuffer();
sql.append("SELECT \n");
- sql.append(" A.*,B.show_name name, \n");
+ sql.append(" E.route_name,A.*,B.show_name name, \n");
sql.append(" CONCAT(CONVERT(a.file_size / 1024, decimal(10,2)), 'KB') file_size_kb, \n");
sql.append(" CASE WHEN D.document_uuid IS NOT NULL THEN '1' ELSE '0' END AS is_collection, \n");
sql.append(" (SELECT case when COUNT(*)=0 then 1 else COUNT(*) end FROM product_oa_document_history where product_oa_document_history.document_uuid=A.uuid) -1 history_count ");
- sql.append("FROM( \n");
+ sql.append(" ,if(A.turn_button is null,'鍚�','鏄�') turn");
+ sql.append(" FROM( \n");
if ("!borrow".equals(directory_uuid)) {
//鍊熼槄鏂囦欢澶规煡璇㈡枃浠剁壒娈婂鐞�
sql.append("SELECT\n");
@@ -183,6 +184,8 @@
sql.append("LEFT JOIN product_sys_staffs B ON B.user_id = A.created_by \n");
sql.append("LEFT JOIN product_sys_attachments C ON C.uuid = B.staff_avatar \n");
sql.append("LEFT JOIN product_oa_document_collection D ON D.document_uuid = A.uuid AND D.created_by = ?");
+ sql.append("LEFT JOIN product_sys_function_buttons E ON E.uuid = A.turn_button ");
+
DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid, SpringMVCContextHolder.getCurrentUserId()},
fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE));
baseDao.listInternationDataTable(documentData, null);
@@ -337,13 +340,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 +395,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)&&!StringUtils.isEmpty(directory_uuid)){
+ 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
@@ -634,9 +653,26 @@
@Override
public DataTableEntity getApplyDocument(FieldSetEntity fse) throws BaseException {
- String sub_uuid = fse.getString("sub_uuid");
- String filter=" uuid in ("+sub_uuid+")";
- DataTableEntity product_sys_attachments = baseDao.listTable("product_sys_attachments", filter, new Object[]{});
+ String sub_uuid = fse.getString("sub_uuid");
+ String sub_uuid_replace = sub_uuid.replace("\"", "");
+ String[] sub_uuid_split = sub_uuid_replace.split(",");
+ String sub_uuids="";
+ for (int i = 0; i < sub_uuid_split.length; i++) {
+
+ if(i==sub_uuid_split.length-1){
+ sub_uuids=sub_uuids+"\""+sub_uuid_split[i]+"\"";
+ }else {
+ sub_uuids=sub_uuids+"\""+sub_uuid_split[i]+"\",";
+ }
+ }
+ List<String> param = new ArrayList<>();
+ StringBuilder sb=new StringBuilder();
+ sb.append(" SELECT a.*,f.show_name");
+ sb.append(" FROM product_sys_attachments a ");
+ sb.append(" LEFT JOIN product_sys_staffs f ");
+ sb.append(" on a.created_by =f.user_id ");
+ sb.append(" where a.uuid in ("+sub_uuids+")");
+ DataTableEntity product_sys_attachments = baseDao.listTable(sb.toString(),param.toArray());
return product_sys_attachments;
}
@@ -692,14 +728,14 @@
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(" )b order by b.applyCount asc");
+ 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 DESC");
DataTableEntity dataTableEntity = baseDao.listTable(sb.toString(), param.toArray());
return dataTableEntity;
}
@@ -723,14 +759,14 @@
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");
sb.append(" GROUP BY w.borrower,s.show_name");
sb.append(" )a )b");
sb.append(" on a.borrower=b.borrower ");
- sb.append(" order by a.applayCount,b.applayFileCount asc");
+ sb.append(" order by a.applayCount,b.applayFileCount DESC");
DataTableEntity dataTableEntity = baseDao.listTable(sb.toString(), param.toArray());
return dataTableEntity;
}
--
Gitblit v1.9.2