From d336c430e5d22ade703ff12f3d523889eb3d75d6 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 08 十一月 2024 10:54:26 +0800
Subject: [PATCH] action管理 编辑 新增 分类禁用bug
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java | 71 +++++++++++++++++++++++++++++++----
1 files changed, 63 insertions(+), 8 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
index 038360c..b4860b3 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
@@ -5,6 +5,7 @@
import com.vci.client.common.datatype.VTLong;
import com.vci.client.common.datatype.VTString;
import com.vci.client.mw.ClientSessionUtility;
+import com.vci.common.utility.ObjectUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.corba.omd.ltm.LinkType;
@@ -54,6 +55,7 @@
import java.util.*;
import java.util.List;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
//import static com.vci.client.omd.attribpool.ui.VTDataTypePanel.*;
import static com.vci.omd.constants.AttributeConstants.*;
@@ -166,7 +168,7 @@
}
/**
- * 澶熺潃灞炴�ф爲鑺傜偣
+ * 鏋勯�犲睘鎬ф爲鑺傜偣
* @param parentTreeList
* @param refTypeName
* @param refFlag
@@ -341,7 +343,10 @@
attributeVO.setLastModifyTime(new Date(attribItem.modifyTime));
attributeVO.setTs(VciDateUtil.str2Date(attribItem.ts,VciDateUtil.DateTimeMillFormat));
}catch (Throwable e){
-
+ e.printStackTrace();
+ String errorLog = "灞炴�O杞琕O鏃跺嚭閿欙紝鍘熷洜锛�"+VciBaseUtil.getExceptionMessage(e);
+ logger.error(errorLog);
+ throw new VciBaseException(errorLog);
}
attributeVO.setLastModifier(attribItem.modifier);
attributeVO.setName(attribItem.label);
@@ -517,6 +522,32 @@
}
/**
+ * 浣跨敤灞炴�х紪鍙疯幏鍙栧璞�--鎵归噺
+ *
+ * @param attrCodes 灞炴�х殑鑻辨枃鍚嶇О
+ * @param attributeVOMap 灞炴�у璞�
+ * @return 灞炴�х殑鏄剧ず瀵硅薄
+ */
+ @Override
+ public List<OsAttributeVO> listAttrByIds(Collection<String> attrCodes,Map<String, OsAttributeVO> attributeVOMap) {
+ if(CollectionUtils.isEmpty(attrCodes)){
+ return null;
+ }
+ if(attributeVOMap == null){
+ attributeVOMap = self.selectAllAttributeMap();
+ }
+ List<OsAttributeVO> attributeVOS = new ArrayList<>();
+ Map<String, OsAttributeVO> finalAttributeVOMap = attributeVOMap;
+ attrCodes.stream().forEach(attrCode->{
+ OsAttributeVO attributeVO = finalAttributeVOMap.getOrDefault(attrCode.toLowerCase(),null);
+ if(attributeVO!=null){
+ attributeVOS.add(attributeVO);
+ }
+ });
+ return attributeVOS;
+ }
+
+ /**
* 鎵归噺娣诲姞灞炴��
*
* @param attribItemList 灞炴�х殑鍒楄〃
@@ -612,9 +643,10 @@
//妫�鏌ラ粯璁ゅ�间笌灞炴�х被鍨嬫槸鍚﹀尮閰�
checkDefValue(osAttributeDTO);
boolean compatible = isCompatible(osAttributeVO,osAttributeDTO);
- boolean hasInstance = hasInstance(osAttributeDTO.getName());
- //浜х敓鏁版嵁, 骞朵笖涓嶅吋瀹�
- if(hasInstance && !compatible){
+ //boolean hasInstance = hasInstance(osAttributeDTO.getId()); //涓嶅垽鏂槸鍚︿骇鐢熸暟鎹彧瑕佽寮曠敤灏遍渶瑕佽繘涓�姝ュ垽鏂被鍨嬫槸鍚﹀吋瀹�
+ boolean checkAttrIsUse = this.checkAttrIsUse(osAttributeDTO.getId());
+ //TODO锛氭寜鐓т互鍓嶆搷浣滈厤缃枃妗d腑鐨勯�昏緫搴旇鏄細涓嶈鏄惁浜х敓鏁版嵁鍙琚紩鐢ㄥ氨闇�瑕佽鍒ゆ柇绫诲瀷鏄惁鍏煎锛堝VTString涓嶈兘杞负VTIntger鎴朧TLong锛�
+ if(checkAttrIsUse/*hasInstance*/ && !compatible){
throw new PLException("500",new String[]{"鏃犳晥鍙樻洿, 涓嶅吋瀹瑰凡浜х敓鐨勬暟鎹紒"});
}
String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
@@ -764,6 +796,26 @@
*/
private boolean hasInstance(String abName) throws PLException {
return osBtmService.hasInstance(abName) && osLinkTypeServiceI.hasInstance(abName);
+ }
+
+ /**
+ * 鏌ョ湅灞炴�ф槸鍚﹁寮曠敤
+ * @param abName
+ * @return false鏈寮曠敤 true琚紩鐢�
+ */
+ private boolean checkAttrIsUse(String abName) throws PLException {
+ if(Func.isBlank(abName)){
+ return false;
+ }
+ String[] btNames = platformClientUtil.getBtmService().getBTNamesByAPName(abName);
+ if(Func.isNotEmpty(btNames)){
+ return true;
+ }
+ String[] ltNames = platformClientUtil.getLinkTypeService().getLTNamesByAPName(abName);
+ if(Func.isNotEmpty(ltNames)){
+ return true;
+ }
+ return false;
}
/**
@@ -947,11 +999,14 @@
throw new PLException("500",new String[]{"璇烽�夋嫨瑕佹煡璇㈠簲鐢ㄨ寖鍥寸殑灞炴��!"});
}
String[] btNames = platformClientUtil.getBtmService().getBTNamesByAPName(attributeName);
- if(Func.isEmpty(btNames)){
+ String[] ltNames = platformClientUtil.getLinkTypeService().getLTNamesByAPName(attributeName);
+ String[] mergedArray = Stream.concat(Stream.of(btNames), Stream.of(ltNames)).toArray(String[]::new);
+
+ if(Func.isEmpty(mergedArray)){
return new ArrayList<>();
}
List<Map<String,String>> btmNameMapList = new ArrayList<>();
- Arrays.stream(btNames).forEach(btName->{
+ Arrays.stream(mergedArray).forEach(btName->{
Map<String, String> itemMap = new HashMap<>();
itemMap.put("attributeName",attributeName);
itemMap.put("source",btName);
@@ -1171,7 +1226,7 @@
}
osAttributeDTO.setBtmTypeId(osAttributePO.getEnumId());
}
- osAttributeDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT));
+ osAttributeDTO.setOid(ObjectUtility.getNewObjectID36());
osAttributeDTO.setId(osAttributePO.getId());
osAttributeDTO.setName(osAttributePO.getName());
osAttributeDTO.setDescription(osAttributePO.getDescription());
--
Gitblit v1.9.3