zm
2024-09-04 d538a62999e202ce4c5a10429402a82d95494755
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");