From 9925bc571e1234d96a66063134ab9a9ddfd7c031 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期一, 03 十一月 2025 15:53:06 +0800
Subject: [PATCH] Merge branch 'dev' of http://nonxin.cn:8090/r/product/product-server-file/V2.0.0 into dev
---
src/main/java/com/product/file/service/DocumentService.java | 108 +++++++++++++++++++++++++++++------------------------
1 files changed, 59 insertions(+), 49 deletions(-)
diff --git a/src/main/java/com/product/file/service/DocumentService.java b/src/main/java/com/product/file/service/DocumentService.java
index 5649627..0c118fc 100644
--- a/src/main/java/com/product/file/service/DocumentService.java
+++ b/src/main/java/com/product/file/service/DocumentService.java
@@ -25,6 +25,7 @@
import org.springframework.stereotype.Component;
import java.util.*;
+import java.util.stream.Collectors;
/**
* Copyright lx
@@ -143,27 +144,24 @@
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");
- sql.append("doc.*\n");
- sql.append(" FROM\n");
- sql.append("product_oa_directory dir\n");
- sql.append("JOIN product_oa_document doc ON dir.uuid = doc.uuid\n");
- sql.append("WHERE\n");
- sql.append("dir.directory_type = 1\n");
- sql.append("AND doc.attachments_uuid IN (\n");
- sql.append(" SELECT\n");
- sql.append(" sub_uuid\n");
- sql.append(" FROM\n");
- sql.append(" product_oa_document_borrow_sub\n");
- sql.append(" WHERE\n");
- sql.append(" borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? AND flow_flag=2))\n");
+ sql.append(" SELECT\n");
+ sql.append(" doc.*\n");
+ sql.append(" FROM product_oa_document doc \n");
+ sql.append(" JOIN product_oa_directory dir ON dir.uuid = doc.directory_uuid \n");
+ sql.append(" WHERE dir.directory_type = 1\n");
+ sql.append(" AND doc.attachments_uuid IN (\n");
+ sql.append(" SELECT sub_uuid\n");
+ sql.append(" FROM product_oa_document_borrow_sub\n");
+ sql.append(" WHERE borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? AND flow_flag=2)\n");
+ sql.append(" )\n");
directory_uuid = SpringMVCContextHolder.getCurrentUserId();
} else if ("!favorite".equals(directory_uuid)) {
sql.append("SELECT\n");
@@ -182,7 +180,9 @@
sql.append(")A \n");
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_oa_document_collection D ON D.document_uuid = A.uuid AND D.created_by = ? \n");
+ 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);
@@ -321,51 +321,46 @@
@Override
public FieldSetEntity getButtonPermissions(FieldSetEntity fieldSetEntity) throws BaseException {
- String butt = "";
+ String finalButtonPermissions = "";
DataTableEntity dataTable = null;
FieldSetEntity fse = new FieldSetEntity();
fse.setTableName(CmnConst.PRODUCT_OA_DOCUMENT);
if (StringUtils.equalsAny(fieldSetEntity.getString(CmnConst.DIRECTORY_UUID), "!borrow", "!favorite")) {
// 鏀惰棌澶瑰拰鍊熼槄鏂囦欢澶圭壒娈婂鐞�
-
dataTable = this.documentAll(fieldSetEntity);
- butt = "1,2";
+ finalButtonPermissions = "1,2";
} else if ("1".equals(fieldSetEntity.getString(CmnConst.DIRECTORY_TYPE))) {
- //鑾峰彇鐨剈ser_id
- Integer user_id = SpringMVCContextHolder.getCurrentUser().getUser_id();
- String key = "%," + user_id + ",%";
+ //鑾峰彇褰撳墠鐐瑰嚮鏂囦欢澶筓UID
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);
- 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});
- }
- StringBuffer button = new StringBuffer();
- if (!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
- for (int i = 0, length = dataTableEntity.getRows(); i < length; i++) {
- FieldSetEntity field = dataTableEntity.getFieldSetEntity(i);
- String fun = field.getString("fun");
- //鏉冮檺1(鏌ョ湅),2(涓嬭浇),3(鏂板涓婁紶),4(淇敼,閲嶅懡鍚�),5(鍒犻櫎),6(绉诲姩)
- button.append(fun).append(",");
- if ("1".equals(fun)) {
- //鏈夋煡鐪嬫潈闄愬氨鍔犺浇鍒楄〃
- dataTable = this.documentAll(fieldSetEntity);
+ // 鑾峰彇鐐瑰嚮鏂囦欢澶圭殑鎿嶄綔鏉冮檺锛堝鏋滃綋鍓嶆枃浠跺す娌℃湁閰嶇疆鏉冮檺锛屽垯閫掑綊涓婄骇鐩綍鏉冮檺锛�
+ DataTableEntity dtOperationPermissions = recursionRole(directory_uuid);
+ if (!BaseUtil.dataTableIsEmpty(dtOperationPermissions)) {
+ String buttonPermissions = ",";
+ for (int i = 0; i < dtOperationPermissions.getRows(); i++) {
+ // 鑾峰彇鍗曟潯鎿嶄綔鏉冮檺鏁版嵁
+ FieldSetEntity fseOperationPermissions = dtOperationPermissions.getFieldSetEntity(i);
+ // 楠岃瘉鎿嶄綔鏉冮檺鏄惁涓庡綋鍓嶆搷浣滀汉鍖归厤鎴愬姛
+ if (verifyOrgExist(fseOperationPermissions.getString("storage_uuid"))) {
+ // 鎸夐挳鏉冮檺鎷兼帴
+ buttonPermissions += fseOperationPermissions.getString("rigths") + ",";
}
}
- }
- if (!BaseUtil.strIsNull(button.toString())) {
- butt = button.substring(0, button.length() - 1);
+ if (!BaseUtil.strIsNull(buttonPermissions)) {
+ // 鍒ゆ柇鏄惁鍖呭惈鏌ョ湅鏉冮檺锛屽寘鍚煡鐪嬫潈闄愬垯鑾峰彇鏂囦欢鍒楄〃
+// if (buttonPermissions.contains(",1,")) {
+ dataTable = this.documentAll(fieldSetEntity);
+// }
+ finalButtonPermissions = Arrays.stream(buttonPermissions.split(","))
+ .filter(s -> !s.isEmpty())
+ .distinct()
+ .collect(Collectors.joining(","));
+ }
}
} else {
dataTable = this.documentAll(fieldSetEntity);
}
Map<String, DataTableEntity> dataMap = MapUtils.newHashMap();
- fse.setValue("button", butt);
+ fse.setValue("button", finalButtonPermissions);
//鍔犺浇鏂囦欢璺緞
DataTableEntity file_list;
if (StringUtils.equalsAny(fieldSetEntity.getString(CmnConst.DIRECTORY_UUID), "!borrow", "!favorite")) {
@@ -391,6 +386,21 @@
fse.setSubData(dataMap);
return fse;
+ }
+
+ /**
+ * 閫掑綊鑾峰彇鏉冮檺濡傛灉褰撳墠鏂囨。鏈厤缃潈闄愬氨鍘婚�掑綊鏌ヨ鐖剁骇鏉冮檺
+ * @param directory_uuid
+ * @return
+ */
+ private DataTableEntity recursionRole(String directory_uuid){
+ DataTableEntity dtOperationPermissions = baseDao.listTable(CmnConst.PRODUCT_OA_DIRECTORY_RIGHTS, "directory_uuid = ?", new Object[] {directory_uuid});
+ if (BaseUtil.dataTableIsEmpty(dtOperationPermissions)) {
+ FieldSetEntity fseDirectory = baseDao.getFieldSet(CmnConst.PRODUCT_OA_DIRECTORY, directory_uuid,false);
+ FieldSetEntity fseDirectoryParent = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY, "tricode=?",new String[]{fseDirectory.getString("tricode_parent")},false);
+ dtOperationPermissions = recursionRole(fseDirectoryParent.getUUID());
+ }
+ return dtOperationPermissions;
}
@Override
@@ -716,7 +726,7 @@
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.attachment_size");
- sb.append(" )b order by b.applyCount asc");
+ sb.append(" )b order by b.applyCount DESC");
DataTableEntity dataTableEntity = baseDao.listTable(sb.toString(), param.toArray());
return dataTableEntity;
}
@@ -747,7 +757,7 @@
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