From 29d2aabc6a07be091d7b52ba51e12a6baf16f7ac Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期二, 06 六月 2023 17:40:18 +0800
Subject: [PATCH] 接口配置冲突

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java |  102 ++++++++++++++++++++++++++------------------------
 1 files changed, 53 insertions(+), 49 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
index e616cd2..571c89d 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeServiceImpl.java
@@ -4,15 +4,8 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.api.exception.NacosException;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.kotlin.KtQueryChainWrapper;
-import com.baomidou.mybatisplus.extension.kotlin.KtUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.omd.constant.BtmTypeConstant;
 import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO;
@@ -27,7 +20,6 @@
 import com.vci.ubcs.omd.repeater.DomainRepeater;
 import com.vci.ubcs.omd.service.*;
 import com.vci.ubcs.omd.vo.*;
-import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
 import com.vci.ubcs.omd.wrapper.LinkTypeAttributeWrapper;
 import com.vci.ubcs.omd.wrapper.LinkTypeWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -49,12 +41,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.TransactionDefinition;
 import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.DefaultTransactionDefinition;
 import org.springframework.util.CollectionUtils;
 
-import java.io.Serializable;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -169,7 +160,8 @@
 		if(!CollectionUtils.isEmpty(pkLinkTypeCollection)){
 			List<LinkType> linkTypeDOList = listLinkTypeDOByOidCollection(pkLinkTypeCollection);
 			if(!CollectionUtils.isEmpty(linkTypeDOList)) {
-				return LinkTypeWrapper.build().listEntityVO(linkTypeDOList);
+				Map<String,List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap = linkTypeAttributeService.batchGetAttributesNoDefault(linkTypeDOList);
+				return LinkTypeWrapper.build().listEntityVO(linkTypeDOList,pkLinkTypeAndAttributeMap);
 			}
 		}
 		return null;
@@ -194,6 +186,7 @@
 					linkTypeDOList.addAll(linkTypeDOS);
 				}
 			});
+			return linkTypeDOList;
 		}
 		return null;
 	}
@@ -241,7 +234,8 @@
 		if(!CollectionUtils.isEmpty(linkTypeIdCollection)){
 			List<LinkType> linkTypeDOList = listLinkTypeDOByIdCollection(linkTypeIdCollection);
 			if(!CollectionUtils.isEmpty(linkTypeDOList)) {
-				return LinkTypeWrapper.build().listEntityVO(linkTypeDOList);
+				Map<String,List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap = linkTypeAttributeService.batchGetAttributesNoDefault(linkTypeDOList);
+				return LinkTypeWrapper.build().listEntityVO(linkTypeDOList, pkLinkTypeAndAttributeMap);
 			}
 		}
 		return null;
@@ -352,6 +346,7 @@
 	 * @throws VciBaseException 娣诲姞鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
 	 */
 	@Override
+	@Transactional
 	public LinkTypeVO addSave(LinkTypeVO linkTypeVO, boolean autoCreateTable) throws VciBaseException {
 		TransactionStatus transaction = null;
 		if(autoCreateTable) {
@@ -398,20 +393,29 @@
 			}
 			LinkType linkTypeDO = new LinkType();
 			BeanUtil.copy(linkTypeVO, linkTypeDO);
+			if (StringUtils.isBlank(linkTypeDO.getTableName())){
+				linkTypeDO.setTableName(getTableName(linkTypeDO.getId(),linkTypeDO.getDomain()));
+			}
 			String creator = AuthUtil.getUserAccount();
 			Date now = new Date();
-			linkTypeDO.setCreator(creator);
-			linkTypeDO.setCreateTime(now);
-			linkTypeDO.setOwner(creator);
-			linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE);
-			linkTypeDO.setTs(now);
+			LinkTypeWrapper.build().setBeforeInsert(linkTypeDO,creator,now);
 
 			//澶勭悊灞炴��
-			addAttributeForLink(linkTypeVO.getAttributes(),linkTypeDO.getOid(),creator,now);
+			List<LinkTypeAttributeVO> attributeVOList = addAttributeForLink(linkTypeVO.getAttributes(), linkTypeDO.getOid(), creator, now);
 
 			baseMapper.insert(linkTypeDO);
 			if(autoCreateTable) {
-				dataSourceTransactionManager.commit(transaction);
+				LinkTypeVO typeVO = LinkTypeWrapper.build().entityVO(linkTypeDO);
+				typeVO.setAttributes(attributeVOList);
+				List<LinkTypeAttributeVO> attributes = typeVO.getAttributes();
+				attributes.addAll(linkTypeAttributeService.getDefaultAttributes(typeVO));
+				typeVO.setAttributes(attributes);
+				R r = DomainRepeater.submitLinkType(typeVO.getDomain(), typeVO);
+				if (!r.isSuccess()){
+					dataSourceTransactionManager.rollback(transaction);
+				}else {
+					dataSourceTransactionManager.commit(transaction);
+				}
 			}
 		}catch (VciBaseException e){
 			if(autoCreateTable) {
@@ -424,9 +428,9 @@
 			}
 			throw e;
 		}
-		if(autoCreateTable) {
+		/*if(autoCreateTable) {
 			checkTableSame(linkTypeVO);
-		}
+		}*/
 		return linkTypeVO;
 	}
 
@@ -437,11 +441,11 @@
 	 * @param creator 鍒涘缓浜�
 	 * @param now 褰撳墠鏃堕棿
 	 */
-	private void addAttributeForLink(List<LinkTypeAttributeVO> attributesVOList,String pkLinkType,String creator,Date now){
+	private List<LinkTypeAttributeVO> addAttributeForLink(List<LinkTypeAttributeVO> attributesVOList,String pkLinkType,String creator,Date now){
 		List<LinkTypeAttribute> linkTypeAttributeDOList = new ArrayList<>();
 		if(!CollectionUtils.isEmpty(attributesVOList)) {
 			List<String> attributeIdList = new ArrayList<>();
-			attributesVOList.stream().forEachOrdered(s -> {
+			attributesVOList.forEach(s -> {
 				linkTypeAttributeService.checkAttribute(s);
 				linkTypeAttributeDOList.add(LinkTypeAttributeWrapper.build().copyVO2DO(s, pkLinkType, creator, now));
 				attributeIdList.add(s.getId().toLowerCase().trim());
@@ -449,7 +453,9 @@
 			//妫�鏌ュ睘鎬ф槸鍚﹂兘瀛樺湪
 			attributeService.checkAttributeExists(attributeIdList);
 			linkTypeAttributeService.saveOrUpdateBatch(linkTypeAttributeDOList,10000);
+			return LinkTypeAttributeWrapper.build().listEntityVO(linkTypeAttributeDOList);
 		}
+		return null;
 	}
 
 	/**
@@ -478,8 +484,8 @@
 		}
 		if (!CollectionUtils.isEmpty(modifyAttributeInfoDOList)) {
 			modifyAttributeService.saveOrUpdateBatch(modifyAttributeInfoDOList);
+			modifyAttributeService.finishModify(modifyAttributeInfoDOList);
 		}
-		modifyAttributeService.finishModify(modifyAttributeInfoDOList);
 	}
 
 	/**
@@ -542,15 +548,10 @@
 			if(StringUtils.isNotBlank(unExistBtmTypeId)){
 				throw new VciBaseException("閾炬帴绫诲瀷浣跨敤鐨勪笟鍔$被鍨媨0}涓嶅瓨鍦紝璇锋煡璇�",new Object[]{unExistBtmTypeId});
 			}
-
 			String creator = AuthUtil.getUserAccount();
 			Date now = new Date();
-			linkTypeDO.setLastModifier(creator);
-			linkTypeDO.setLastModifyTime(now);
-			linkTypeDO.setTs(now);
+			linkTypeDO = LinkTypeWrapper.build().setBeforeUpdate(linkTypeDO,creator,now);
 			//澶勭悊灞炴��
-
-
 			LinkTypeWrapper.build().copyLinkTypeVO2DO(linkTypeVO,linkTypeDO,creator,new Date());
 
 			//鍏堟煡璇㈣繖涓摼鎺ョ被鍨嬪寘鍚灏戝睘鎬�
@@ -564,22 +565,23 @@
 			}
 			saveOrUpdate(linkTypeDO);
 			if(autoCreateTable) {
+				List<LinkTypeAttributeVO> defaultAttributes = linkTypeAttributeService.getDefaultAttributes(linkTypeVO);
+				List<LinkTypeAttributeVO> attributes = linkTypeVO.getAttributes();
+				attributes.addAll(defaultAttributes);
+				linkTypeVO.setAttributes(attributes);
+				BtmAndLinkTypeDdlDTO ddlDTO = new BtmAndLinkTypeDdlDTO();
+				DomainRepeater.checkDifferent(ddlDTO,linkTypeVO.getDomain());
 				dataSourceTransactionManager.commit(transaction);
 			}
-		}catch (VciBaseException e){
+		} catch (Throwable e){
 			if(autoCreateTable) {
 				dataSourceTransactionManager.rollback(transaction);
 			}
-			throw e;
-		}catch (Throwable e) {
-			if(autoCreateTable) {
-				dataSourceTransactionManager.rollback(transaction);
-			}
-			throw e;
+			throw new VciBaseException(e.getMessage());
 		}
-		if(autoCreateTable) {
+		/*if(autoCreateTable) {
 			checkTableSame(linkTypeVO);
-		}
+		}*/
 		return linkTypeVO;
 	}
 
@@ -807,19 +809,19 @@
 			attributeVO.setLastModifier(creator);
 			attributeVO.setLastModifyTime(now);
 			attributeVO.setTs(now);
-			//鏌ヨ閾炬帴绫诲瀷鏄惁瀛樺湪
 			linkTypeAttributeService.saveOrUpdate(attributeDO);
 			if (autoEdit2Table) {
 				BtmAndLinkTypeDdlDTO ddlDTO = new BtmAndLinkTypeDdlDTO();
-//				ddlDTO.setLinkTypeList();
-//				DomainRepeater.checkDifferent(,domain);
+				LinkTypeVO linkTypeVO = LinkTypeWrapper.build().entityVO(linkTypeDO);
+				ddlDTO.setLinkTypeList(Collections.singletonList(linkTypeVO));
+				DomainRepeater.checkDifferent(ddlDTO,domain);
 				dataSourceTransactionManager.commit(transaction);
 			}
-//		}catch (NacosException e){
-//			if(autoEdit2Table) {
-//				dataSourceTransactionManager.rollback(transaction);
-//			}
-//			throw new RuntimeException(e);
+		}catch (NacosException e){
+			if(autoEdit2Table) {
+				dataSourceTransactionManager.rollback(transaction);
+			}
+			throw new RuntimeException(e);
 		}catch (Throwable e){
 			if(autoEdit2Table) {
 				dataSourceTransactionManager.rollback(transaction);
@@ -873,7 +875,7 @@
 	public List<BtmTreeVO> treeDomain() {
 		try {
 			Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(DomainVO::getValue, DomainVO::getLabel));
-			List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll());
+			List<LinkTypeVO> vos = LinkTypeWrapper.build().listEntityVO(baseMapper.selectAll(), null);
 			Map<String, List<LinkTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(LinkTypeVO::getDomain));
 			List<BtmTreeVO> treeList = new ArrayList<>();
 			domainMap.forEach((k,v)-> {
@@ -882,11 +884,13 @@
 					BtmTreeVO parent = new BtmTreeVO();
 					parent.setName(label);
 					parent.setId(k);
+					parent.setLabel(label);
 					parent.setChildList(v.stream().map(s -> {
 						BtmTreeVO child = new BtmTreeVO();
 						child.setOid(s.getOid());
-						child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName()));
+						child.setLabel(s.getId() + (s.getName() == null ? "" : "(" + s.getName() + ")"));
 						child.setId(s.getId());
+						child.setName(s.getName());
 						return child;
 					}).collect(Collectors.toList()));
 					treeList.add(parent);

--
Gitblit v1.9.3