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