From 4d610081d9d2da1a4db118ce260d5afeea312d9f Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期三, 28 八月 2024 10:09:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/product/file/service/DocumentDirectoryService.java | 90 ++++++++++++++++----------------------------- 1 files changed, 32 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/product/file/service/DocumentDirectoryService.java b/src/main/java/com/product/file/service/DocumentDirectoryService.java index 7d9dd21..99e1cc3 100644 --- a/src/main/java/com/product/file/service/DocumentDirectoryService.java +++ b/src/main/java/com/product/file/service/DocumentDirectoryService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.product.common.collect.ListUtils; import com.product.common.lang.DateUtils; +import com.product.core.config.CoreConst; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; @@ -52,68 +53,41 @@ return dtTree; } - @Override + /** + * 鏂囨。鐩綍淇濆瓨 + * @param fse + * @return + */ @Transactional - public String addDocumentDirectory(FieldSetEntity fieldSetEntity) throws BaseException { - - String triCode = CodeUtil.getNewCodeByTemp(CmnConst.PRODUCT_OA_DIRECTORY, CmnConst.TRICODE, - !StringUtils.isEmpty(fieldSetEntity.getString(CmnConst.TRICODE_PARENT)) - ? fieldSetEntity.getString(CmnConst.TRICODE_PARENT) - : ""); - fieldSetEntity.setValue(CmnConst.TRICODE, triCode); - String[] codes = triCode.split("-"); - String org_level_uuid = SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid(); - fieldSetEntity.setValue(CmnConst.ORG_LEVEL_UUID, org_level_uuid); - fieldSetEntity.setValue(CmnConst.DIRECTORY_TIER, codes.length); - fieldSetEntity.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());// 鑾峰彇鐧诲綍甯愬彿 - fieldSetEntity.setValue(CmnConst.CREATED_UTC_DATETIME, DateUtils.getDateTime());// 鍒涘缓鏃堕棿 - return baseDao.add(fieldSetEntity); - } - - @Override - @Transactional - public boolean upDocumentDirectory(FieldSetEntity fieldSetEntity) throws BaseException { - String uuid = fieldSetEntity.getString(CmnConst.UUID); - FieldSetEntity fieldSet = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DIRECTORY, uuid, false); - String tricode_parent1 = fieldSetEntity.getString(CmnConst.TRICODE_PARENT); - String tricode_parent2 = fieldSet.getString(CmnConst.TRICODE_PARENT); - boolean flag; - // 涓婄骇鐩綍tricode濡傛灉涓嶇浉绛� - if (!StringUtils.isEmpty(tricode_parent1) || !StringUtils.isEmpty(tricode_parent2)) { - if (!StringUtils.isEmpty(tricode_parent1) && !StringUtils.isEmpty(tricode_parent2) - && !tricode_parent1.equals(tricode_parent2)) { - flag = true; - } else if (!StringUtils.isEmpty(tricode_parent1) && !StringUtils.isEmpty(tricode_parent2) - && tricode_parent1.equals(tricode_parent2)) { - flag = false; - } else if (!StringUtils.isEmpty(tricode_parent1) && StringUtils.isEmpty(tricode_parent2)) { - tricode_parent2 = ""; - flag = true; - } else if (!StringUtils.isEmpty(tricode_parent2) && StringUtils.isEmpty(tricode_parent1)) { - tricode_parent1 = ""; - flag = true; - } else { - flag = false; - } + public boolean saveDocumentDireactory(FieldSetEntity fse) { + 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())) { + tricode = CodeUtil.getNewCodeByTemp(CmnConst.PRODUCT_OA_DIRECTORY, CmnConst.TRICODE, tricodeParent); } else { - flag = false; + FieldSetEntity fseOrigin = baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_DIRECTORY, fse.getUUID(), false); + if(fseOrigin == null) { + fse.remove(CoreConst.UUID); + } + String originParent = BaseUtil.strIsNull(fseOrigin.getString(CmnConst.TRICODE_PARENT)) ? "" : fseOrigin.getString(CmnConst.TRICODE_PARENT); + 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); + 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)), "); + 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+"-%"}); + } } - - if (flag) { - StringBuffer sql = new StringBuffer(); - sql.append(" update PRODUCT_OA_directory set tricode=replace("); - sql.append(" tricode,concat(?,'-'),concat(?,'-')),"); - sql.append(" tricode_parent=(case when tricode_parent=? then replace(tricode_parent,?,?) else "); - sql.append(" replace (tricode_parent,concat(?,'-'),concat(?,'-')) end )"); - sql.append(" where tricode like ?"); - baseDao.executeUpdate(sql.toString(), new String[] { tricode_parent1, tricode_parent2, tricode_parent1, - tricode_parent1, tricode_parent2, tricode_parent1, tricode_parent2, tricode_parent1 + "-%", }); - } - - fieldSetEntity.setValue(CmnConst.UPDATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());// 鑾峰彇鐧诲綍甯愬彿 - fieldSetEntity.setValue(CmnConst.UPDATED_UTC_DATETIME, DateUtils.getDateTime());// 鍒涘缓鏃堕棿 - return baseDao.update(fieldSetEntity); + fse.setValue(CmnConst.TRICODE, tricode); + fse.setValue(CmnConst.DIRECTORY_TIER, tricode.split(",").length); + return baseDao.saveFieldSetEntity(fse); } + @Override @Transactional -- Gitblit v1.9.2