From 1157e8e97e24ec7938deea2e3345a502644fc256 Mon Sep 17 00:00:00 2001
From: wang1 <844966816@qq.com>
Date: 星期三, 05 七月 2023 16:44:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
index cc39322..eb74293 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -35,6 +35,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -64,13 +65,15 @@
 	/**
 	 * ddl鏁版嵁鎿嶄綔鏈嶅姟
 	 */
-	private final DdlMapperProcessor ddlMapper = DdlMapperProcessStrategy.getProcessor();
+	@Autowired
+	private DdlMapperProcessor ddlMapper;
 
 
 	/**
 	 * dll鏁版嵁鎿嶄綔鏈嶅姟
 	 */
-	private final DllMapperProcessor dllMapper = DllMapperProcessorStrategy.getProcessor();
+	@Autowired
+	private DllMapperProcessor dllMapper;
 
 	private static final String YES = "Y";
 
@@ -80,25 +83,25 @@
 
 	private final Map<String, LinkTypeVO> idLinkMap = new ConcurrentHashMap<>();
 
-	private void putBtm(@NotNull BtmTypeVO... voList) throws ServiceException {
+	private void putBtm(@NotNull BtmTypeVO... voList) throws Throwable {
 		String collect = Arrays.stream(voList).map(BtmTypeVO::getId).filter(idBtmMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idBtmMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new ServiceException("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new Throwable("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
-	private void putLink(@NotNull LinkTypeVO... voList) throws ServiceException {
+	private void putLink(@NotNull LinkTypeVO... voList) throws Throwable {
 		String collect = Arrays.stream(voList).map(LinkTypeVO::getId).filter(idLinkMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idLinkMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new ServiceException("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new Throwable("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
@@ -975,7 +978,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@Override
-	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) {
+	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable {
 		try {
 			List<ModifyAttributeInfo> changedList = new ArrayList<>();
 			if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
@@ -993,8 +996,19 @@
 			R<List<ModifyAttributeInfo>> result = R.success("鏁版嵁搴撴搷浣滄垚鍔�");
 			result.setData(changedList);
 			return result;
-		} catch (ServiceException e) {
-			throw new RuntimeException(e.getMessage());
+		} catch (Exception e) {
+			try {
+				// 寤鸿〃澶辫触鏈夊紓甯革紝鎹曡幏鍚庤繑鍥烇紝骞堕噴鏀剧嚎绋嬩腑鐨勫唴瀹�
+				if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
+					removeBtm(ddlDTO.getBtmTypeList().toArray(new BtmTypeVO[0]));
+				}
+				if (!CollectionUtils.isEmpty(ddlDTO.getLinkTypeList())) {
+					removeLink(ddlDTO.getLinkTypeList().toArray(new LinkTypeVO[0]));
+				}
+				return R.fail(e.getMessage());
+			}catch (ServiceException e2){
+				throw new RuntimeException(e2.getMessage());
+			}
 		}
 	}
 
@@ -1056,7 +1070,7 @@
 					BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
 					attributeVO.setId(col.getId().toLowerCase());
 					attributeVO.setName(col.getName());
-					attributeVO.setNullableFlag(col.getNullableFlag());
+					attributeVO.setNullableFlag(StringUtils.equals(col.getNullableFlag(), BooleanEnum.TRUE.getValue()));
 					attributeVO.setAttributeLength(col.getAttributeLength());
 					attributeVO.setPrecisionLength(col.getPrecisionLength());
 					attributeVO.setScaleLength(col.getScaleLength());

--
Gitblit v1.9.3