From e146bc181625aee75624f8364654721cfd886254 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 30 六月 2023 17:39:53 +0800
Subject: [PATCH] 修改部分空指针报错

---
 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java |  105 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 83 insertions(+), 22 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
index 154d4a0..9a1ac68 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/BtmTypeServiceImpl.java
@@ -6,7 +6,7 @@
 import com.alibaba.nacos.api.exception.NacosException;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.omd.cache.EnumCache;
+import com.vci.ubcs.omd.constant.BtmTypeConstant;
 import com.vci.ubcs.omd.constant.BtmTypeFieldConstant;
 import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO;
 import com.vci.ubcs.omd.entity.Attribute;
@@ -88,7 +88,7 @@
 	/**
 	 * 琛ㄥ悕鍓嶇紑
 	 */
-	public static final String PL = "PL";
+	public static final String PL = "PLBT";
 
 	/**
 	 * 璁剧疆骞冲彴鏈韩鐨勪笟鍔$被鍨�
@@ -110,7 +110,11 @@
 	@Override
 	public BtmTypeVO getBtmTypeByOid(String pkBtmType) throws ServiceException {
 		Func.requireNotNull(pkBtmType,"涓氬姟绫诲瀷涓婚敭涓嶈兘涓虹┖");
-		BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(baseMapper.selectOne(Wrappers.<BtmType>query().lambda().eq(BtmType::getOid, pkBtmType)));
+		BtmType queryBtmType = baseMapper.selectOne(Wrappers.<BtmType>query().lambda().eq(BtmType::getOid, pkBtmType));
+		if (queryBtmType == null){
+			return null;
+		}
+		BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(queryBtmType);
 		btmTypeVO.setAttributes(btmTypeAttributeService.getAttributeByBtmTypeOid(pkBtmType));
 		return btmTypeVO;
 	}
@@ -360,6 +364,7 @@
 			if (!existFieldMap.containsKey(k)){
 				BtmTypeLinkAttributesDTO attr = new BtmTypeLinkAttributesDTO();
 				attr.setId(k);
+				attr.setName(v);
 				attr.setAttrDataType(VciFieldTypeEnum.VTString.name());
 				attr.setAttributeLength(50);
 				attr.setNullableFlag(false);
@@ -507,10 +512,13 @@
 			afterAttributes = updateAttributeForBtm(btmTypeByOid.getOid(),beforeAttributes, attributes);
 		}
 		BtmTypeVO btmTypeVO = BtmTypeWrapper.build().entityVO(btmTypeDO);
+		//鍦ㄥ垱寤鸿〃鐨勬椂鍊欒繕闇�瑕佹妸榛樿鐨勫瓧娈靛甫涓娿��
+		List<BtmTypeAttributeVO> defaultAttribute = btmTypeAttributeService.getDefaultAttribute(btmTypeVO);
+		afterAttributes.addAll(defaultAttribute);
 		btmTypeVO.setAttributes(afterAttributes);
 		try {
 			if (autoCreateTable) {
-				checkTableSame(btmTypeVO);
+//				checkTableSame(btmTypeVO);
 				R result = DomainRepeater.submitBtmType(btmTypeDTO.getDomain(), btmTypeVO);
 				if (result.isSuccess()){
 					List<ModifyAttributeInfo> infoList = new ArrayList<>();
@@ -593,12 +601,12 @@
 			// 闇�瑕佹帶鍒剁増鏈�
 			// 妫�鏌ヤ娇鐢ㄧ殑鐗堟湰瑙勫垯鏄惁瀛樺湪
 				if (StringUtils.isNotBlank(btmTypeDTO.getRevisionRuleId())) {
-					if (revisionRuleService.checkRevisionRuleExist(btmTypeDTO.getRevisionRuleId())) {
+					if (!revisionRuleService.checkRevisionRuleExist(btmTypeDTO.getRevisionRuleId())) {
 						throw new VciBaseException("鐗堟湰瑙勫垯{0}[{1}]鍦ㄧ郴缁熶腑涓嶅瓨鍦紝璇峰厛鏌ヨ瘉",
 							new Object[]{btmTypeDTO.getRevisionRuleId(), btmTypeDTO.getRevisionRuleName()});
 					}
 				}
-			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP));
+//			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.REVISION_MANAGE_FIELD_MAP));
 		}
 		if (btmTypeDTO.isLifeCycleFlag()){
 			// 闇�瑕佹帶鍒剁敓鍛藉懆鏈�
@@ -616,11 +624,11 @@
 //							new Object[]{btmTypeDTO.getSubLifeCycleId(), btmTypeDTO.getSubLifeCycleName()});
 //					}
 //				}
-			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP));
+//			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.LIFECYCLE_MANAGE_FIELD_MAP));
 		}
 		if (btmTypeDTO.isSecretFlag()){
 			// 闇�瑕佹帶鍒跺瘑绾�
-			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP));
+//			btmTypeDTO.setAttributes(addAttributeByFieldMap(btmTypeDTO.getAttributes(),BtmTypeFieldConstant.SECRET_MANAGE_FIELD_MAP));
 		}
 	}
 	@Override
@@ -639,23 +647,25 @@
 	 * @return 鏌ヨ缁撴灉
 	 */
 	@Override
-	public List<BtmTypeTreeVO> treeDomain() {
+	public List<BtmTreeVO> treeDomain() {
 		try {
 			Map<String, String> domain = Optional.ofNullable(DomainRepeater.getDomain()).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(s -> s.getValue(), t -> t.getLabel()));
 			List<BtmTypeVO> vos = BtmTypeWrapper.build().listEntityVO(baseMapper.selectAll());
 			Map<String, List<BtmTypeVO>> domainMap = vos.stream().collect(Collectors.groupingBy(BtmTypeVO::getDomain));
-			List<BtmTypeTreeVO> treeList = new ArrayList<>();
+			List<BtmTreeVO> treeList = new ArrayList<>();
 			domainMap.forEach((k,v)-> {
 				if (domain.containsKey(k)){
 					String label = domain.get(k);
-					BtmTypeTreeVO parent = new BtmTypeTreeVO();
+					BtmTreeVO parent = new BtmTreeVO();
 					parent.setName(label);
+					parent.setLabel(label);
 					parent.setId(k);
 					parent.setChildList(v.stream().map(s -> {
-						BtmTypeTreeVO child = new BtmTypeTreeVO();
+						BtmTreeVO child = new BtmTreeVO();
 						child.setOid(s.getOid());
-						child.setName(s.getId() + " " + (s.getName() == null ? "" : s.getName()));
+						child.setName(s.getName());
 						child.setId(s.getId());
+						child.setLabel(s.getId() +  (s.getName() == null ? "" : "(" + s.getName() + ")"));
 						return child;
 					}).collect(Collectors.toList()));
 					treeList.add(parent);
@@ -722,7 +732,7 @@
 			btmType.setOid(VciBaseUtil.getPk());
 			btmType.setTs(now);
 			btmType.setCreator(user);
-			btmType.setBtmName("btmType");
+			btmType.setBtmName(BtmTypeConstant.BTMTYPE);
 			btmType.setCreateTime(now);
 			btmType.setDomain(domain);
 			btmType.setLastModifyTime(now);
@@ -737,8 +747,8 @@
 			}).map(attr -> {
 				// 娣诲姞灞炴�э紝1鏄牎楠岋紝2鏄坊鍔�
 				Attribute attribute = new Attribute();
-				attribute.setKey(attr.getId());
-				attribute.setLabel(attr.getName());
+				attribute.setId(attr.getId());
+				attribute.setName(attr.getName());
 				attribute.setTypeCode("attributeType");
 				attribute.setTypeKey(attr.getAttrDataType());
 //				attribute.setDictKey(attr.getAttrDataType());
@@ -751,10 +761,14 @@
 				attribute.setReferToId(attr.getReferBtmTypeId());
 				attribute.setReferToName(attr.getReferBtmTypeName());
 				attribute.setTs(now);
+				attribute.setOwner(user);
 				attribute.setCreateTime(now);
-				attribute.setIsDeleted(0);
-				attribute.setCreateUser(AuthUtil.getUserId());
-				idAttrMap.put(attribute.getKey(),attribute);
+				attribute.setLastModifier(user);
+				attribute.setLastModifyTime(now);
+				attribute.setBtmName(BtmTypeConstant.ATTRIBUTE);
+				attribute.setCreator(user);
+				attribute.setOid(VciBaseUtil.getPk());
+				idAttrMap.put(attribute.getId(),attribute);
 				// 鍦ㄨ繖閲岀粰涓氬姟绫诲瀷璁剧疆鐗堟湰鎺у埗銆佺敓鍛藉懆鏈熸帶鍒躲�佸瘑绾ф帶鍒剁浉鍏崇殑淇℃伅
 
 				// 娣诲姞涓氬姟绫诲瀷鍜屽睘鎬х殑鍏崇郴
@@ -764,7 +778,6 @@
 				btmTypeAttribute.setCreateTime(now);
 				btmTypeAttribute.setLastModifier(user);
 				btmTypeAttribute.setLastModifyTime(now);
-//				btmTypeAttribute.setBtmName("btmTypeAttribute");
 				btmTypeAttribute.setOid(VciBaseUtil.getPk());
 				btmTypeAttribute.setBtmName(btmType.getId());
 				btmTypeAttribute.setOwner(user);
@@ -778,7 +791,7 @@
 			btmType.setConsistence(BooleanEnum.TRUE.getValue());
 			btmList.add(btmType);
 		});
-		List<Attribute> existAttr = attributeService.list(Wrappers.<Attribute>query().lambda().in(Attribute::getKey, attributeIds));
+		List<Attribute> existAttr = attributeService.list(Wrappers.<Attribute>query().lambda().in(Attribute::getId, attributeIds));
 		if (!CollectionUtils.isEmpty(btmList)){
 			baseMapper.batchInsert(btmList);
 		}
@@ -800,11 +813,59 @@
 		if (CollectionUtils.isEmpty(existAttr)){
 			attributeService.saveBatch(idAttrMap.values());
 		}else {
-			List<Attribute> addList = idAttrMap.values().stream().filter(a -> existAttr.stream().noneMatch(b -> StringUtils.equals(a.getKey(), b.getKey()))).collect(Collectors.toList());
+			List<Attribute> addList = idAttrMap.values().stream().filter(a -> existAttr.stream().noneMatch(b -> StringUtils.equals(a.getId(), b.getId()))).collect(Collectors.toList());
 			if (!CollectionUtils.isEmpty(addList)) {
 				attributeService.saveBatch(addList);
 			}
 		}
 		return BtmTypeWrapper.build().listEntityVO(btmList);
 	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇榛樿灞炴��
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getDefaultAttrByBtmId(String btmTypeId) {
+		BtmTypeVO btmType = getBtmTypeById(btmTypeId);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getDefaultAttribute(btmType));
+		return btmType;
+	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷id鑾峰彇鎵�鏈夌殑灞炴��
+	 *
+	 * @param btmTypeId 涓氬姟绫诲瀷id
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getAllAttributeByBtmId(String btmTypeId) {
+		BtmTypeVO btmType = getBtmTypeById(btmTypeId);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getAllAttribute(btmType));
+		return btmType;
+	}
+
+	/**
+	 * 鎸夌収涓氬姟绫诲瀷涓婚敭鑾峰彇鎵�鏈夌殑灞炴��
+	 *
+	 * @param btmTypeOid 涓氬姟绫诲瀷涓婚敭
+	 * @return 涓氬姟绫诲瀷
+	 */
+	@Override
+	public BtmTypeVO getAllAttributeByBtmOid(String btmTypeOid) {
+		BtmTypeVO btmType = getBtmTypeByOid(btmTypeOid);
+		if (btmType == null){
+			return null;
+		}
+		btmType.setAttributes(btmTypeAttributeService.getAllAttribute(btmType));
+		return btmType;
+	}
 }

--
Gitblit v1.9.3