From 9a6140574003ec25e95e0248785843c3598168c4 Mon Sep 17 00:00:00 2001 From: 杜洪波 <1074825718@qq.com> Date: 星期五, 23 八月 2024 16:17:42 +0800 Subject: [PATCH] Merge branch 'master' of http://nonxin.cn:8090/r/product/product-server-file/V2.0.0 --- src/main/java/com/product/file/service/DocumentService.java | 285 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 225 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/product/file/service/DocumentService.java b/src/main/java/com/product/file/service/DocumentService.java index 0ccf57f..8effcfd 100644 --- a/src/main/java/com/product/file/service/DocumentService.java +++ b/src/main/java/com/product/file/service/DocumentService.java @@ -1,5 +1,7 @@ package com.product.file.service; +import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.product.common.collect.ListUtils; import com.product.common.collect.MapUtils; @@ -21,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -50,35 +54,42 @@ @Override @Transactional - public String addDocument(FieldSetEntity fieldSetEntity) throws BaseException { - //鏂囦欢闄勪欢琛╱uid - String uuIds = fieldSetEntity.getString(CmnConst.ATTACHMENTS_UUID); - String directory_uuid = fieldSetEntity.getString(CmnConst.DIRECTORY_UUID); - String[] uuid = uuIds.split(","); + public String addDocument(FieldSetEntity fse) throws BaseException { + //鑾峰彇闄勪欢鐩綍鍜岄檮浠秛uid + String directory_uuid = fse.getString(CmnConst.DIRECTORY_UUID); + String fileUUIDs = fse.getString(CmnConst.ATTACHMENTS_UUID); + String[] fileUUIDArray = fileUUIDs.split(","); //鑾峰彇闄勪欢淇℃伅 - DataTableEntity attachments = baseDao.listTable(CmnConst.PRODUCT_SYS_ATTACHMENTS, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuid.length, true), uuid); + DataTableEntity attachments = baseDao.listTable(CmnConst.PRODUCT_SYS_ATTACHMENTS, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, fileUUIDArray, true)); List<String> uuidList = ListUtils.newArrayList(); List<String> fileNameList = ListUtils.newArrayList(); + //寰幆闄勪欢淇℃伅锛岀敓鎴愭枃妗d俊鎭� for (int i = 0, length = attachments.getRows(); i < length; i++) { - FieldSetEntity fieldSet = new FieldSetEntity(); - fieldSet.setTableName(CmnConst.product_oa_DOCUMENT); - FieldSetEntity fse = attachments.getFieldSetEntity(i); - //鏂囦欢鐩綍uuid - fieldSet.setValue(CmnConst.DIRECTORY_UUID, directory_uuid); - //鏂囦欢澶у皬 - fieldSet.setValue(CmnConst.FILE_SIZE, fse.getString(CmnConst.ATTACHMENT_SIZE)); + FieldSetEntity attachment = attachments.getFieldSetEntity(i); + //鍒涘缓鏂囨。鏁版嵁瀹瑰櫒 + FieldSetEntity fseDocument = new FieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT); + fseDocument.setValue(CmnConst.ATTACHMENTS_UUID, attachment.getUUID()); + fseDocument.setValue(CmnConst.DIRECTORY_UUID, directory_uuid); + fseDocument.setValue(CmnConst.FILE_SIZE, attachment.getString(CmnConst.ATTACHMENT_SIZE)); + fseDocument.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id()); + fseDocument.setValue(CmnConst.CREATED_UTC_DATETIME, DateUtils.getDateTime()); //鏂囦欢鍚嶇О - String file_name = fse.getString(CmnConst.FILE_NAME); - fieldSet.setValue(CmnConst.FILE_NAME, file_name); + String file_name = attachment.getString(CmnConst.FILE_NAME); + fseDocument.setValue(CmnConst.FILE_NAME, file_name); //鏂囦欢绫诲瀷 String file_type = file_name.substring(file_name.lastIndexOf(".") + 1); - fieldSet.setValue(CmnConst.FILE_TYPE, file_type); - //闄勪欢uuid - fieldSet.setValue(CmnConst.ATTACHMENTS_UUID, fse.getString(CmnConst.UUID)); - fieldSet.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());// 鍒涘缓浜� - fieldSet.setValue(CmnConst.CREATED_UTC_DATETIME, DateUtils.getDateTime());// 鍒涘缓鏃堕棿 - String file_uuid = baseDao.add(fieldSet); - uuidList.add(file_uuid); + fseDocument.setValue(CmnConst.FILE_TYPE, file_type); + //淇濆瓨鏁版嵁 + String documentUUID = baseDao.add(fseDocument); + + //鍒涘缓鏂囨。鐗堟湰鏁版嵁瀹瑰櫒 + FieldSetEntity fseDocumentHistory = new FieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT_HISTORY); + BaseUtil.createCreatorAndCreationTime(fseDocumentHistory); + fseDocument.setValue("document_uuid", documentUUID); + fseDocument.setValue("attachment_uuid", attachment.getUUID()); + baseDao.add(fseDocumentHistory); + + uuidList.add(documentUUID); fileNameList.add(file_name); } this.documentation(uuidList.toArray(), "鏂板", fileNameList.toArray(), null); @@ -92,7 +103,7 @@ String file_name = fieldSetEntity.getString(CmnConst.FILE_NAME); fieldSetEntity.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());// 淇敼浜� fieldSetEntity.setValue(CmnConst.UPDATED_UTC_DATETIME, DateUtils.getDateTime());// 淇敼鏃堕棿 - FieldSetEntity fie = baseDao.getFieldSetEntity(CmnConst.product_oa_DOCUMENT, uuid, false); + FieldSetEntity fie = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT, uuid, false); String name = fie.getString(CmnConst.FILE_NAME); //姣忔淇敼閮戒翰绌哄凡璇讳汉鍛� fieldSetEntity.setValue(CmnConst.READ_NUM, ""); @@ -115,7 +126,7 @@ String file_names = fieldSetEntity.getString(CmnConst.FILE_NAME); String[] file_name = file_names.split(","); String[] uuid = uuids.split(","); - boolean flag = baseDao.delete(CmnConst.product_oa_DOCUMENT, uuid); + boolean flag = baseDao.delete(CmnConst.PRODUCT_OA_DOCUMENT, uuid); this.documentation(uuid, "鍒犻櫎", file_name, null); return flag; } @@ -129,16 +140,20 @@ queryFilter = " AND " + queryFilter; } StringBuffer sql = new StringBuffer(); - sql.append(" SELECT ") - .append(" a.*,CONCAT(CONVERT(a.file_size / 1024, decimal(10,2)), 'KB') file_size_kb,b.show_name name") - // .append(" concat(c.attachment_domain,'/',c.attachment_container,'/',c.module_uuid,'/',c.attachment_title,?) path ") - .append(" FROM ") - .append(" (SELECT * FROM product_oa_document WHERE directory_uuid = ? ") - .append(queryFilter) - .append(" ) a LEFT JOIN product_sys_staffs b ON a.created_by = b.user_id ") - .append(" LEFT JOIN product_sys_attachments c ON b.staff_avatar=c.uuid "); - String sostoken = Global.getSystemConfig("upload.key", ""); - DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid}, fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE)); + sql.append("SELECT \n"); + sql.append(" 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("FROM( \n"); + sql.append(" SELECT * FROM product_oa_document \n"); + sql.append(" WHERE directory_uuid = ? \n"); + sql.append(queryFilter); + 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 = ?"); + DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid, SpringMVCContextHolder.getCurrentUserId()}, + fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE)); baseDao.listInternationDataTable(documentData, null); return documentData; } @@ -146,7 +161,7 @@ @Override public FieldSetEntity documentInfo(FieldSetEntity fieldSetEntity) throws BaseException { String uuid = fieldSetEntity.getString(CmnConst.UUID); - FieldSetEntity fieldSet = baseDao.getFieldSetEntity(CmnConst.product_oa_DOCUMENT, uuid, true); + FieldSetEntity fieldSet = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT, uuid, true); String file_name = fieldSet.getString(CmnConst.FILE_NAME); String user_ids = fieldSetEntity.getString(CmnConst.USER_IDS); String read = fieldSetEntity.getString(CmnConst.READ_NUM); @@ -164,11 +179,11 @@ SystemUser user = SpringMVCContextHolder.getCurrentUser(); DataTableEntity dataTableEntity = new DataTableEntity(); FieldMetaEntity fieldMeta = new FieldMetaEntity(); - fieldMeta.setTableName(new String[]{CmnConst.product_oa_DOCUMENT_LOG}); + fieldMeta.setTableName(new String[]{CmnConst.PRODUCT_OA_DOCUMENT_LOG}); dataTableEntity.setMeta(fieldMeta); for (int i = 0; i < uuid.length; i++) { FieldSetEntity fieldSetEntity = new FieldSetEntity(); - fieldSetEntity.setTableName(CmnConst.product_oa_DOCUMENT_LOG); + fieldSetEntity.setTableName(CmnConst.PRODUCT_OA_DOCUMENT_LOG); fieldSetEntity.setMeta(fieldMeta); fieldSetEntity.setValue(CmnConst.DOCUMENT_UUID, uuid[i]); //fieldSetEntity.setValue(CmnConst.RECORD,record); @@ -196,11 +211,11 @@ SystemUser user = SpringMVCContextHolder.getCurrentUser(); DataTableEntity dataTableEntity = new DataTableEntity(); FieldMetaEntity fieldMeta = new FieldMetaEntity(); - fieldMeta.setTableName(new String[]{CmnConst.product_oa_DOCUMENT_LOG}); + fieldMeta.setTableName(new String[]{CmnConst.PRODUCT_OA_DOCUMENT_LOG}); dataTableEntity.setMeta(fieldMeta); for (int i = 0; i < uuid.length; i++) { FieldSetEntity fieldSetEntity = new FieldSetEntity(); - fieldSetEntity.setTableName(CmnConst.product_oa_DOCUMENT_LOG); + fieldSetEntity.setTableName(CmnConst.PRODUCT_OA_DOCUMENT_LOG); fieldSetEntity.setMeta(fieldMeta); fieldSetEntity.setValue(CmnConst.DOCUMENT_UUID, uuid[i]); //fieldSetEntity.setValue(CmnConst.RECORD,record); @@ -222,8 +237,16 @@ baseDao.add(dataTableEntity); } - public boolean verifyOrgExist(String org, Integer user_id) { + public boolean verifyOrgExist(String org) { + Integer user_id = SpringMVCContextHolder.getCurrentUser().getUser_id(); + String code = SpringMVCContextHolder.getCurrentUser().getCurrentStaff().getString("tricode"); + //鑾峰彇鎵�鏈変笂绾х紪鐮� + String[] superior_code = new String[code.split("-").length - 1]; + for (int i = 0; i < code.split("-").length - 1; i++) { + superior_code[i] = code.substring(0, code.length() - ((i + 1) * 4)); + } String this_user = String.valueOf(user_id); + SpringMVCContextHolder.getCurrentUser().getLanguageCode(); String[][] orgArr = BaseUtil.decomposesMultipleTypeValues(org); String[] user = orgArr[3]; if (null != user) { @@ -235,14 +258,28 @@ } String[] level = orgArr[0]; String[] dept = orgArr[1]; - String[] post = orgArr[2]; + // List<String> list = Arrays.asList(a); --OK + // List<String> list = Arrays.asList("A","B","C"); --OK + // list.add("F"); --UnsupportedOperationException + // list.remove("A"); --UnsupportedOperationException + // list.set(1,"javaee");--OK (鍥犱负鏄妸鏁扮粍杞负闆嗗悎锛屽叾鏈川杩樻槸鏁扮粍锛屾暟缁勯暱搴﹀浐瀹氫笉鍙橈紝浣嗗唴瀹瑰彲浠ユ敼鍙�) + // 缁撹锛氳櫧鐒跺彲浠ユ妸鏁扮粍杞负闆嗗悎锛屼絾鏄泦鍚堥暱搴︿笉鑳芥敼鍙� + List list = new ArrayList(); + ; if (null != level) { - DataTableEntity org_level_uuid = baseDao.listTable(CmnConst.PRODUCT_SYS_STAFFS, BaseUtil.buildQuestionMarkFilter("org_level_uuid", level, true) + " and user_id=?", new String[]{this_user}); - if (org_level_uuid.getRows() > 0) return true; + list.addAll(Arrays.asList(level)); } if (null != dept) { - DataTableEntity dept_uuid = baseDao.listTable(CmnConst.PRODUCT_SYS_STAFFS, BaseUtil.buildQuestionMarkFilter("dept_uuid", dept, true) + " and user_id=?", new String[]{this_user}); - if (dept_uuid.getRows() > 0) return true; + list.addAll(Arrays.asList(dept)); + } + String[] level_dept = new String[list.size()]; + list.toArray(level_dept); + + + String[] post = orgArr[2]; + if (level_dept.length != 0) { + DataTableEntity org_level_uuid = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_ORG_LEVELS, BaseUtil.buildQuestionMarkFilter("uuid", level_dept, true) + " and " + BaseUtil.buildQuestionMarkFilter("org_level_code", superior_code, true), new String[]{}); + if (org_level_uuid.getRows() > 0) return true; } if (null != post) { DataTableEntity post_uuid = baseDao.listTable(CmnConst.PRODUCT_SYS_STAFFS, BaseUtil.buildQuestionMarkFilter("job_post_uuid", post, true) + " and user_id=?", new String[]{this_user}); @@ -256,7 +293,7 @@ String butt = ""; DataTableEntity dataTable = null; FieldSetEntity fse = new FieldSetEntity(); - fse.setTableName(CmnConst.product_oa_DOCUMENT); + fse.setTableName(CmnConst.PRODUCT_OA_DOCUMENT); if ("1".equals(fieldSetEntity.getString(CmnConst.DIRECTORY_TYPE))) { //鑾峰彇鐨剈ser_id Integer user_id = SpringMVCContextHolder.getCurrentUser().getUser_id(); @@ -264,10 +301,10 @@ 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"), user_id)) { + 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 ") + 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}); @@ -322,8 +359,8 @@ //1涓哄叕鍙告枃浠剁洰褰� if ("1".equals(type)) { //String staffId = user.getCurrentStaff().getString("staff_id"); - sql.append(" select a.* from product_oa_directory a ") - .append(" LEFT JOIN ( SELECT a.directory_uuid FROM product_oa_directory_rights a LEFT JOIN product_sys_organizational_structure_storage b ") + sql.append(" select a.* from PRODUCT_OA_directory a ") + .append(" LEFT JOIN ( SELECT a.directory_uuid FROM PRODUCT_OA_directory_rights a LEFT JOIN product_sys_organizational_structure_storage b ") .append(" on a.storage_uuid = b.uuid WHERE a.rigths like '%3%' AND CONCAT(',',b.staff_ids,',') like ? GROUP BY ") .append(" a.directory_uuid) b ON a.uuid = b.directory_uuid where a.directory_type = 1 and a.org_level_uuid = ? "); String staffId = "%" + user.getCurrentStaff().getString("staff_id") + "%"; @@ -331,7 +368,7 @@ param.add(user.getOrg_level_uuid()); //param.add("%,140,%"); } else { - sql.append(" select * from product_oa_directory where directory_type = 2 AND created_by = ? "); + sql.append(" select * from PRODUCT_OA_directory where directory_type = 2 AND created_by = ? "); param.add(user.getUser_id()); } JSONObject object = new JSONObject(); @@ -345,12 +382,12 @@ sql.append(" and tricode_parent = ? "); //鍔犺浇鏂囦欢璺緞 DataTableEntity dataTableEntity = documentDirectoryService.getDirectoryStructure(fse); - object.put("product_oa_directory_path", BaseUtil.dataTableEntityToJson(dataTableEntity)); + object.put("PRODUCT_OA_directory_path", BaseUtil.dataTableEntityToJson(dataTableEntity)); } //sql.append(" GROUP BY tricode,tricode_parent,directory_name"); DataTableEntity data = baseDao.listTable(sql.toString(), param.toArray()); - object.put("product_oa_directory_sub", BaseUtil.dataTableEntityToJson(data)); + object.put("PRODUCT_OA_directory_sub", BaseUtil.dataTableEntityToJson(data)); baseDao.listInternationDataTable(data, null); return object; @@ -360,7 +397,7 @@ @Transactional public void downloadFile(FieldSetEntity fieldSetEntity) throws BaseException { String uuid = fieldSetEntity.getString(CmnConst.UUID); - FieldSetEntity fieldSet = baseDao.getFieldSetEntity(CmnConst.product_oa_DOCUMENT, uuid, false); + FieldSetEntity fieldSet = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT, uuid, false); String file_name = fieldSet.getString(CmnConst.FILE_NAME); this.documentation(new String[]{uuid}, "涓嬭浇", new String[]{file_name}, null); this.markRead(fieldSet); @@ -405,7 +442,7 @@ //1涓哄叕鍙告枃浠跺す if (directory_type == 1) { StringBuffer sql = new StringBuffer(); - sql.append(" SELECT * FROM product_oa_directory_rights ") + sql.append(" SELECT * FROM PRODUCT_OA_directory_rights ") .append(" WHERE directory_uuid = ? ") .append(" AND rigths like '%3%' AND concat(',',storage_uuid,',') like ? ");//3涓烘柊澧� String user_id = String.valueOf(SpringMVCContextHolder.getCurrentUser().getUser_id()); @@ -415,12 +452,12 @@ } //1涓轰釜浜烘枃浠跺す if (directory_type == 2 || row > 0) { - FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntity(CmnConst.product_oa_DIRECTORY, directory_uuid, false); + FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DIRECTORY, directory_uuid, false); //鑾峰彇绉诲姩鍒扮殑鐩綍鍚� String directory_name = fieldSetEntity.getString(CmnConst.DIRECTORY_NAME); String uuids = fse.getString(CmnConst.UUID); String[] uuid = uuids.split(","); - DataTableEntity dataTable = baseDao.listTable(CmnConst.product_oa_DOCUMENT, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuid.length, true), uuid); + DataTableEntity dataTable = baseDao.listTable(CmnConst.PRODUCT_OA_DOCUMENT, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuid.length, true), uuid); List<String> uuidList = ListUtils.newArrayList(); List<String> fileNameList = ListUtils.newArrayList(); for (int i = 0, length = dataTable.getRows(); i < length; i++) { @@ -430,7 +467,7 @@ String params = directory_uuid + "," + uuids; String[] param = params.split(","); - boolean flag = baseDao.executeUpdate("UPDATE product_oa_document SET directory_uuid = ? WHERE " + BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuid.length, true), param); + boolean flag = baseDao.executeUpdate("UPDATE PRODUCT_OA_document SET directory_uuid = ? WHERE " + BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuid.length, true), param); this.documentation(uuidList.toArray(), "绉诲姩", fileNameList.toArray(), directory_name); return flag; } else { @@ -440,7 +477,135 @@ @Override public DataTableEntity getDocumentLog(FieldSetEntity fieldSetEntity) throws BaseException { - return baseDao.listTable("SELECT CONCAT(b.show_name, a.state) log,a.created_utc_datetime FROM product_oa_document_log a LEFT JOIN product_sys_staffs b on a.created_by = b.user_id WHERE document_uuid = ? ORDER BY a.created_utc_datetime DESC", + return baseDao.listTable("SELECT CONCAT(b.show_name, a.state) log,a.created_utc_datetime FROM PRODUCT_OA_document_log a LEFT JOIN product_sys_staffs b on a.created_by = b.user_id WHERE document_uuid = ? ORDER BY a.created_utc_datetime DESC", new String[]{fieldSetEntity.getString(CmnConst.DOCUMENT_UUID)}, fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE)); } + + /** + * 鏂囨。鏀惰棌 + * @param fse + * @return + */ + public String documentCollection(FieldSetEntity fse) { + BaseUtil.createCreatorAndCreationTime(fse); + fse.setValue("document_collector", SpringMVCContextHolder.getCurrentUserId()); + return baseDao.add(fse); + } + + /** + * 鏂囨。鍙栨秷鏀惰棌 + * @param documentUUID + * @return + */ + public boolean documentCancelCollection(String documentUUID) { + return baseDao.delete(CmnConst.PRODUCT_OA_DOCUMENT_COLLECTION, "document_uuid = ? AND document_collector = ?", new Object[] {documentUUID, SpringMVCContextHolder.getCurrentUserId()}); + } + + @Override + public DataTableEntity getApplyDocument(FieldSetEntity fse) throws BaseException { + + DataTableEntity product_oa_document; + if(ObjectUtil.isNotEmpty(fse.getString("document_name"))){ + String document_name = fse.getString("document_name"); + String filter="file_name like '%"+document_name+"'%"; + product_oa_document = baseDao.listTable("product_oa_document",filter); + }else { + product_oa_document = baseDao.listTable("product_oa_document"); + } + + + return product_oa_document; + } + + @Override + public void addOrUpdateApplyDocument(FieldSetEntity fse) throws BaseException { + + String[] attachment = new String[0]; + if(ObjectUtil.isNotEmpty(fse.getString("uuid"))){ + UUID uuid = UUID.randomUUID(); + fse.setValue("uuid",uuid); + baseDao.add(fse); + + if(ObjectUtil.isNotEmpty(fse.getString("attachment_uuid"))){ + String attachment_uuid = fse.getString("attachment_uuid"); + attachment= attachment_uuid.split(","); + } + for (int i = 0; i < attachment.length; i++) { + FieldSetEntity fieldSetEntity = new FieldSetEntity(); + fieldSetEntity.setTableName("product_oa_document_borrow_sub"); + fieldSetEntity.setValue("borrow_uuid",uuid); + fieldSetEntity.setValue("sub_uuid",attachment[i]); + + } + + }else { + String uuid = fse.getString("uuid"); + String filter="borrow_uuid='"+uuid+"'"; + //鍒犻櫎鍘熸潵闄勪欢淇℃伅 + baseDao.delete("product_oa_document_borrow_sub",filter,new Object[]{}); + baseDao.update(fse); + if(ObjectUtil.isNotEmpty(fse.getString("attachment_uuid"))){ + String attachment_uuid = fse.getString("attachment_uuid"); + attachment= attachment_uuid.split(","); + } + + //閲嶆柊璺熸柊闄勪欢淇℃伅 + for (int i = 0; i < attachment.length; i++) { + FieldSetEntity fieldSetEntity = new FieldSetEntity(); + fieldSetEntity.setTableName("product_oa_document_borrow_sub"); + fieldSetEntity.setValue("borrow_uuid",uuid); + fieldSetEntity.setValue("sub_uuid",attachment[i]); + baseDao.add(fieldSetEntity); + + } + + + } + + } + + @Override + public DataTableEntity getApplayFileSort() throws BaseException { + StringBuilder sb=new StringBuilder(); + sb.append(" SELECT b.* FROM ("); + sb.append(" SELECT t.uuid,t.file_name,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(" 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"); + sb.append(" )b order by b.applyCount asc"); + DataTableEntity dataTableEntity = baseDao.listTable(sb.toString()); + return dataTableEntity; + } + + @Override + public DataTableEntity getApplayUserSort() throws BaseException { + StringBuilder sb=new StringBuilder(); + sb.append(" SELECT a.borrower,a.show_name,a.applayCount,a.applayFileCount "); + sb.append(" FROM ("); + sb.append(" SELECT w.borrower,"); + sb.append(" (select count(borrower) from product_oa_document_borrow group by borrower ) as applayCount,"); + sb.append(" count(sub_uuid) as applayFileCount "); + sb.append(" FROM product_oa_document_borrow w "); + sb.append(" JOIN product_oa_document_borrow_sub b"); + sb.append(" on b.borrow_uuid=w.uuid"); + sb.append(" JOIN product_oa_document t"); + sb.append(" on b.sub_uuid=t.uuid"); + sb.append(" 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"); + sb.append(" order by a.applayCount,a.applayFileCount asc"); + DataTableEntity dataTableEntity = baseDao.listTable(sb.toString()); + return dataTableEntity; + } + + @Override + public FieldSetEntity getApplayInfo(FieldSetEntity fes) throws BaseException { + String uuid = fes.getString("uuid"); + FieldSetEntity product_oa_document_borrow = baseDao.getFieldSetEntity("product_oa_document_borrow", uuid, false); + return product_oa_document_borrow; + } } -- Gitblit v1.9.2