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/LinkTypeAttributeServiceImpl.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 1 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeAttributeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeAttributeServiceImpl.java
index f71b4d3..0908a51 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeAttributeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/LinkTypeAttributeServiceImpl.java
@@ -1,18 +1,27 @@
 package com.vci.ubcs.omd.service.impl;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.omd.constant.BtmTypeFieldConstant;
+import com.vci.ubcs.omd.entity.LinkType;
 import com.vci.ubcs.omd.entity.LinkTypeAttribute;
 import com.vci.ubcs.omd.mapper.LinkTypeAttributeMapper;
 import com.vci.ubcs.omd.service.IAttributeService;
 import com.vci.ubcs.omd.service.ILinkTypeAttributeService;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.omd.vo.LinkTypeAttributeVO;
+import com.vci.ubcs.omd.vo.LinkTypeVO;
+import com.vci.ubcs.omd.wrapper.LinkTypeAttributeWrapper;
+import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Description: 閾炬帴绫诲瀷鍖呭惈灞炴�х殑鏈嶅姟
@@ -56,4 +65,80 @@
 		VciBaseUtil.alertNotNull(oid);
 		return baseMapper.selectOne(Wrappers.<LinkTypeAttribute>query().lambda().eq(LinkTypeAttribute::getOid,oid));
 	}
+
+	/**
+	 * 鏍规嵁閾炬帴绫诲瀷鑾峰彇榛樿瀛楁
+	 *
+	 * @param linkTypeVO 閾炬帴绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public List<LinkTypeAttributeVO> getDefaultAttributes(LinkTypeVO linkTypeVO) {
+		Objects.requireNonNull(linkTypeVO,"閾炬帴绫诲瀷涓嶈兘涓虹┖");
+		List<LinkTypeAttributeVO> list = new ArrayList<>();
+		// 涓氬姟绫诲瀷鐨勫熀鏈瓧娈�
+		BtmTypeFieldConstant.LINK_TYPE_FIELD_MAP.forEach((id, name) -> {
+			LinkTypeAttributeVO vo = new LinkTypeAttributeVO();
+			vo.setId(id);
+			vo.setName(name);
+			vo.setPkLinkType(linkTypeVO.getOid());
+			if (StringUtils.equals(id,"oid")){
+				vo.setNullableFlag(false);
+			}else {
+				vo.setNullableFlag(true);
+			}
+			if (Arrays.asList("createtime","lastmodifytime","owner").contains(id)){
+				vo.setAttrDataType(VciFieldTypeEnum.VTDateTime.name());
+				vo.setAttributeLength(6);
+			}else {
+				vo.setAttrDataType(VciFieldTypeEnum.VTString.name());
+				vo.setAttributeLength(150);
+			}
+			list.add(vo);
+		});
+		return list;
+	}
+
+	/**
+	 * 鏍规嵁閾炬帴绫诲瀷鑾峰彇鎵�鏈夌殑瀛楁
+	 *
+	 * @param linkTypeVO 閾炬帴绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public List<LinkTypeAttributeVO> getAllAttributes(LinkTypeVO linkTypeVO) {
+		Objects.requireNonNull(linkTypeVO,"閾炬帴绫诲瀷涓嶈兘涓虹┖");
+		List<LinkTypeAttributeVO> attributes = getAttributesNoDefault(linkTypeVO);
+		attributes.addAll(getDefaultAttributes(linkTypeVO));
+		return attributes;
+	}
+
+	/**
+	 * 鑾峰彇闈為粯璁ゅ瓧娈电殑閾炬帴绫诲瀷灞炴��
+	 *
+	 * @param linkTypeVO 閾炬帴绫诲瀷
+	 * @return
+	 */
+	@Override
+	public List<LinkTypeAttributeVO> getAttributesNoDefault(LinkTypeVO linkTypeVO) {
+		Objects.requireNonNull(linkTypeVO,"閾炬帴绫诲瀷涓嶈兘涓虹┖");
+		return LinkTypeAttributeWrapper.build().listEntityVO(baseMapper.selectList(Wrappers.<LinkTypeAttribute>query().lambda().eq(LinkTypeAttribute::getPkLinkType, linkTypeVO.getOid())));
+	}
+
+	/**
+	 * 鎵归噺鑾峰彇闈為粯璁ゅ瓧娈电殑閾炬帴绫诲瀷灞炴��
+	 *
+	 * @param linkTypeDOList 閾炬帴绫诲瀷
+	 * @return 鎵ц缁撴灉
+	 */
+	@Override
+	public Map<String, List<LinkTypeAttributeVO>> batchGetAttributesNoDefault(List<LinkType> linkTypeDOList) {
+		VciBaseUtil.alertNotNull(linkTypeDOList,"閾炬帴绫诲瀷闆嗗悎");
+		Set<String> oidSet = linkTypeDOList.stream().map(LinkType::getOid).collect(Collectors.toSet());
+		if (CollectionUtils.isEmpty(oidSet)){
+			return new HashMap<>();
+		}
+		List<LinkTypeAttribute> attributes = baseMapper.selectList(Wrappers.<LinkTypeAttribute>query().lambda().in(LinkTypeAttribute::getPkLinkType, oidSet));
+		return LinkTypeAttributeWrapper.build().listEntityVO(Optional.ofNullable(attributes).orElseGet(ArrayList::new)).stream().collect(Collectors.groupingBy(LinkTypeAttributeVO::getPkLinkType));
+	}
 }

--
Gitblit v1.9.3