zm
2024-09-06 51065db2a119ddde88c7e1a7c4b37d9ef622921e
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)) {
@@ -393,6 +397,21 @@
      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
   public JSONObject popBoxGetFileDirectory(FieldSetEntity fse) throws BaseException {
      //文件目录uuid