From 8ea4c69b64b5088d7821f7bc3dd8f724b78b314d Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期二, 06 六月 2023 16:46:08 +0800
Subject: [PATCH] 链接类型联调接口。DDL服务修正。业务类型新增接口修正。

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/LinkTypeWrapper.java |   76 ++++++++++++++++++++++++++++++++++---
 1 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/LinkTypeWrapper.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/LinkTypeWrapper.java
index 6086205..7406ba9 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/LinkTypeWrapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/wrapper/LinkTypeWrapper.java
@@ -1,15 +1,19 @@
 package com.vci.ubcs.omd.wrapper;
 
+import com.vci.ubcs.omd.cache.BtmTypeCache;
 import com.vci.ubcs.omd.constant.BtmTypeConstant;
 import com.vci.ubcs.omd.entity.LinkType;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.omd.vo.LinkTypeAttributeVO;
 import com.vci.ubcs.omd.vo.LinkTypeVO;
+import com.vci.ubcs.starter.web.enumpck.NewAppConstantEnum;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.util.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -26,13 +30,39 @@
 
 	@Override
 	public LinkTypeVO entityVO(LinkType entity) {
-		LinkTypeVO vo = BeanUtil.copy(entity, LinkTypeVO.class);
+		LinkTypeVO vo = Optional.ofNullable(BeanUtil.copy(entity, LinkTypeVO.class)).orElseGet(LinkTypeVO::new);
+		List<String> fromIdList = Func.toStrList(",", vo.getFromBtmType());
+		List<String> toIdList = Func.toStrList(",", vo.getToBtmType());
+		Set<String> btmIdSet = new HashSet<>();
+		btmIdSet.addAll(fromIdList);
+		btmIdSet.addAll(toIdList);
+		List<BtmTypeVO> btmTypeVOList = BtmTypeCache.selectByIdCollection(new ArrayList<>(btmIdSet));
+		List<BtmTypeVO> fromBtm = new ArrayList<>();
+		List<BtmTypeVO> toBtm = new ArrayList<>();
+		Optional.ofNullable(btmTypeVOList).orElseGet(ArrayList::new).forEach(btm -> {
+			if (vo.getFromBtmType().contains(btm.getId())){
+				fromBtm.add(btm);
+			}
+			if (vo.getToBtmType().contains(btm.getId())){
+				toBtm.add(btm);
+			}
+		});
+		vo.setFromBtmTypes(fromBtm);
+		vo.setToBtmTypes(toBtm);
 		// 鏋氫妇澶勭悊
+		vo.setDomainText(NewAppConstantEnum.getTextByName(vo.getDomain()));
 		return vo;
 	}
 
-	public List<LinkTypeVO> listEntityVO(List<LinkType> entityList){
-		return Optional.ofNullable(entityList).orElseGet(ArrayList::new).stream().map(this::entityVO).collect(Collectors.toList());
+	public List<LinkTypeVO> listEntityVO(List<LinkType> entityList, Map<String, List<LinkTypeAttributeVO>> pkLinkTypeAndAttributeMap){
+		List<LinkTypeVO> voList = Optional.ofNullable(entityList).orElseGet(ArrayList::new).stream().map(this::entityVO).collect(Collectors.toList());
+		if (!CollectionUtils.isEmpty(voList) && pkLinkTypeAndAttributeMap != null){
+			voList.forEach(vo -> {
+				List<LinkTypeAttributeVO> attributes = pkLinkTypeAndAttributeMap.getOrDefault(vo.getOid(), new ArrayList<>());
+				vo.setAttributes(attributes);
+			});
+		}
+		return voList;
 	}
 
 	public void copyLinkTypeVO2DO(LinkTypeVO linkTypeVO, LinkType linkTypeDO, String creator, Date now) {
@@ -51,4 +81,36 @@
 		linkTypeDO.setLastModifyTime(now);
 		linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE);
 	}
+
+	/**
+	 * 缂栬緫淇濆瓨鍓嶈缃粯璁ゅ瓧娈靛��
+	 *
+	 * @param linkTypeDO 閾炬帴绫诲瀷
+	 * @param modifier 淇敼浜�
+	 * @param modifyTime 淇敼鏃堕棿
+	 * @return
+	 */
+	public LinkType setBeforeUpdate(LinkType linkTypeDO, String modifier, Date modifyTime) {
+		linkTypeDO.setLastModifier(modifier);
+		linkTypeDO.setTs(modifyTime);
+		linkTypeDO.setLastModifyTime(modifyTime);
+		return linkTypeDO;
+	}
+
+	/**
+	 * 鎻掑叆鍓嶈缃粯璁ゅ瓧娈�
+	 * @param linkTypeDO 閾炬帴绫诲瀷
+	 * @param creator 鍒涘缓浜�
+	 * @param createTime 鍒涘缓鏃堕棿
+	 */
+	public void setBeforeInsert(LinkType linkTypeDO, String creator, Date createTime) {
+		linkTypeDO.setOid(VciBaseUtil.getPk());
+		linkTypeDO.setCreator(creator);
+		linkTypeDO.setCreateTime(createTime);
+		linkTypeDO.setOwner(creator);
+		linkTypeDO.setBtmName(BtmTypeConstant.LINK_TYPE);
+		linkTypeDO.setTs(createTime);
+		linkTypeDO.setLastModifyTime(createTime);
+		linkTypeDO.setLastModifier(creator);
+	}
 }

--
Gitblit v1.9.3