杜洪波
2024-09-02 c24294ce1c78119eced850687119879f03a88e1d
src/main/java/com/product/file/service/DocumentDirectoryService.java
@@ -76,6 +76,7 @@
         if (!originParent.equals(tricodeParent)) {
            String originTricode = BaseUtil.strIsNull(fseOrigin.getString(CmnConst.TRICODE)) ? "" : fseOrigin.getString(CmnConst.TRICODE);
            tricode = CodeUtil.getNewCodeByTemp(CmnConst.PRODUCT_OA_DIRECTORY, CmnConst.TRICODE, tricodeParent);
            // 刷新code
            StringBuilder sql = new StringBuilder();
            sql.append("update product_oa_directory ");
            sql.append("set tricode=concat(replace(substring(tricode,1,locate(?,tricode)+length(?)),?,?),substring(tricode,locate(?,tricode)+length(?)+1)), ");
@@ -83,12 +84,20 @@
            sql.append("where tricode like ? ");
            baseDao.executeUpdate(sql.toString(), new Object[]{originTricode, originTricode, originTricode, tricode, originTricode, originTricode,
                  originTricode, originTricode, originTricode, tricode, originTricode, originTricode, originTricode + "-%"});
            // 刷新层级
            StringBuilder sb = new StringBuilder();
            sb.append("UPDATE product_oa_directory \n");
            sb.append("SET directory_tier = ( \n");
            sb.append("    (LENGTH(tricode) - LENGTH(REPLACE(tricode, '-', '')) + 1) \n");
            sb.append(") \n");
            sb.append("WHERE tricode LIKE ? \n");
            baseDao.executeUpdate(sb.toString(), new Object[] {tricode + "%"});
         }else {
            tricode = fseOrigin.getString(CmnConst.TRICODE);
         }
      }
      fse.setValue(CmnConst.TRICODE, tricode);
      fse.setValue(CmnConst.DIRECTORY_TIER, tricode.split(",").length);
      fse.setValue(CmnConst.DIRECTORY_TIER, tricode.split("-").length);
      return baseDao.saveFieldSetEntity(fse);
   }