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 | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 42 insertions(+), 9 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..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 @@ -634,9 +650,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,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; @@ -723,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