许鹏程
2024-08-29 a442684c5dab265ecd8f5d9de3276ed8e88eda7c
src/main/java/com/product/file/service/DocumentDirectoryService.java
@@ -40,9 +40,10 @@
   public BaseDao baseDao;
   @Autowired
   public DocumentDirectoryService documentDirectoryService;
   /**
    *    单位文件夹树
    * 单位文件夹树
    *
    * @return
    */
   public DataTableEntity allDirectoryTree() {
@@ -54,7 +55,8 @@
   }
   /**
    *    文档目录保存
    * 文档目录保存
    *
    * @param fse
    * @return
    */
@@ -63,11 +65,11 @@
      BaseUtil.createCreatorAndCreationTime(fse);
      String tricode = null;
      String tricodeParent = BaseUtil.strIsNull(fse.getString(CmnConst.TRICODE_PARENT)) ? "" : fse.getString(CmnConst.TRICODE_PARENT);
      if(BaseUtil.strIsNull(fse.getUUID())) {
      if (BaseUtil.strIsNull(fse.getUUID())) {
         tricode = CodeUtil.getNewCodeByTemp(CmnConst.PRODUCT_OA_DIRECTORY, CmnConst.TRICODE, tricodeParent);
      } else {
         FieldSetEntity fseOrigin = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DIRECTORY, fse.getUUID(), false);
         if(fseOrigin == null) {
         if (fseOrigin == null) {
            fse.remove(CoreConst.UUID);
         }
         String originParent = BaseUtil.strIsNull(fseOrigin.getString(CmnConst.TRICODE_PARENT)) ? "" : fseOrigin.getString(CmnConst.TRICODE_PARENT);
@@ -79,8 +81,8 @@
            sql.append("set tricode=concat(replace(substring(tricode,1,locate(?,tricode)+length(?)),?,?),substring(tricode,locate(?,tricode)+length(?)+1)), ");
            sql.append("tricode_parent=concat(replace(substring(tricode_parent,1,locate(?,tricode_parent)+length(?)),?,?),substring(tricode_parent,locate(?,tricode_parent)+length(?)+1)) ");
            sql.append("where tricode like ? ");
            baseDao.executeUpdate(sql.toString(), new Object[] {originTricode,originTricode,originTricode,tricode,originTricode,originTricode,
                  originTricode,originTricode,originTricode,tricode,originTricode,originTricode,originTricode+"-%"});
            baseDao.executeUpdate(sql.toString(), new Object[]{originTricode, originTricode, originTricode, tricode, originTricode, originTricode,
                  originTricode, originTricode, originTricode, tricode, originTricode, originTricode, originTricode + "-%"});
         }else {
            tricode = fseOrigin.getString(CmnConst.TRICODE);
         }
@@ -89,7 +91,7 @@
      fse.setValue(CmnConst.DIRECTORY_TIER, tricode.split(",").length);
      return baseDao.saveFieldSetEntity(fse);
   }
   @Override
   @Transactional
@@ -103,10 +105,10 @@
      DataTableEntity dataTableEntity = baseDao.listTable(
            "SELECT * FROM PRODUCT_OA_directory WHERE directory_type = ? AND tricode_parent = (SELECT tricode FROM PRODUCT_OA_directory where uuid = ?)"
                  + filter,
            new String[] { directory_type, uuid });
            new String[]{directory_type, uuid});
      if (BaseUtil.dataTableIsEmpty(dataTableEntity)) {
         baseDao.delete(CmnConst.PRODUCT_OA_DOCUMENT, "directory_uuid = ?", new String[] { uuid });
         return baseDao.delete(CmnConst.PRODUCT_OA_DIRECTORY, new String[] { uuid });
         baseDao.delete(CmnConst.PRODUCT_OA_DOCUMENT, "directory_uuid = ?", new String[]{uuid});
         return baseDao.delete(CmnConst.PRODUCT_OA_DIRECTORY, new String[]{uuid});
      } else {
         throw new BaseException(DocumentCode.DOCUMENT_CATALOG_DELETE_FAIL.getValue(),
               DocumentCode.DOCUMENT_CATALOG_DELETE_FAIL.getText(), this.getClass(),
@@ -116,7 +118,7 @@
   /**
    * 获取当前文件路径
    *
    *
    * @param fieldSetEntity
    * @return
    * @throws BaseException
@@ -174,13 +176,13 @@
      if ("1".equals(directory_type)) {
         String org_level_uuid = user.getOrg_level_uuid();
         sql.append("where directory_type = 1 AND org_level_uuid = ? ");
         data = baseDao.listTable(sql.toString(), new Object[] { org_level_uuid });
         data = baseDao.listTable(sql.toString(), new Object[]{org_level_uuid});
//      data = baseDao.listTable(CmnConst.PRODUCT_OA_DIRECTORY, " directory_type = 1 AND org_level_uuid = ?", new String[]{org_level_uuid}, "tricode");
         // 个人文件夹
      } else {
         Integer userId = user.getUser_id();
         sql.append("where directory_type = 2 AND created_by = ? ");
         data = baseDao.listTable(sql.toString(), new Object[] { userId });
         data = baseDao.listTable(sql.toString(), new Object[]{userId});
//      data = baseDao.listTable(CmnConst.PRODUCT_OA_DIRECTORY, " directory_type = 2 AND created_by = ?", new Object[]{userId}, "tricode");
      }
@@ -193,13 +195,40 @@
      orgLevelInfo.put("org_level_uuid", user.getOrg_level_uuid());
      orgLevelInfo.put("children", menus);
      JSONArray array = new JSONArray();
      if (!"1".equals(directory_type)) {
//      查询数量
         sql.setLength(0);
         sql.append(" SELECT\n");
         sql.append("      ( SELECT count(*) FROM product_oa_document_collection WHERE document_collector = ? ) collection_count,\n");
         sql.append("      ( SELECT count( sub_uuid ) FROM product_oa_document_borrow_sub WHERE borrow_uuid IN ( SELECT uuid FROM product_oa_document_borrow WHERE borrower = ? ) GROUP BY sub_uuid ) borrow_count\n");
         sql.append("      FROM\n");
         sql.append("DUAL\n");
         FieldSetEntity fieldSetBySQL = baseDao.getFieldSetBySQL(sql.toString(), new Object[]{user.getUser_id(), user.getUser_id()}, false);
         int collectionCount = 0;
         int borrowCount = 0;
         if (fieldSetBySQL != null) {
            collectionCount = BaseUtil.ifNull(fieldSetBySQL.getInteger("collection_count"), 0);
            borrowCount = BaseUtil.ifNull(fieldSetBySQL.getInteger("borrow_count"), 0);
         }
         //添加收藏夹和借阅文件夹
         JSONObject favorite = new JSONObject();
         favorite.put("directory_name", "收藏夹");
         favorite.put("uuid", "!favorite");
         favorite.put("number", collectionCount);
         menus.add(0, favorite);
         JSONObject borrow = new JSONObject();
         borrow.put("directory_name", "借阅文件");
         borrow.put("uuid", "!borrow");
         borrow.put("number", borrowCount);
         menus.add(1, borrow);
      }
      array.add(orgLevelInfo);
      return array;
   }
   /**
    * 封装树方法
    *
    *
    * @param
    * @return
    * @throws BaseException
@@ -241,7 +270,7 @@
   /**
    * 移动到目录列表(根据当前用户过滤展示目录列表) 获取用户有新增(上传)权限的列表
    *
    *
    * @param
    * @return
    * @throws BaseException
@@ -263,7 +292,7 @@
         param.append(userId);
         sql.append("SELECT * FROM PRODUCT_OA_directory ").append(" WHERE directory_type = 2 AND created_by = ? ");
      }
      DataTableEntity dataTableEntity = baseDao.listTable(sql.toString(), new String[] { param.toString() });
      DataTableEntity dataTableEntity = baseDao.listTable(sql.toString(), new String[]{param.toString()});
      baseDao.listInternationDataTable(dataTableEntity, null);
      return dataTableEntity;
   }