From 9d50e7641ecad235e8b98583d65d6f485adf712e Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 06 六月 2023 17:03:04 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- 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