From eee70eddb1464593aa08a0b108e4a1af01ce8a2f Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期一, 02 九月 2024 15:11:35 +0800
Subject: [PATCH] 属性树添加(包括参照)
---
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java | 41 ++++++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 4
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java | 13 ++-
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java | 24 ++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java | 136 +++++++++++++++++++++++++++++++---
5 files changed, 199 insertions(+), 19 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java
index 53a3ae6..809dc3b 100644
--- a/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java
+++ b/Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java
@@ -36,7 +36,19 @@
setOid(oid);
setText(text);
}
-
+
+ /**
+ * 鏋勯�犲嚱鏁�
+ * @param oid 涓婚敭
+ * @param text 鏍戣妭鐐规枃鏈�
+ */
+ public Tree(String oid, String text,Object o){
+ setOid(oid);
+ setText(text);
+ setData(o);
+ }
+
+
/**
* 涓婚敭
*/
@@ -63,6 +75,10 @@
* 瀛愯妭鐐�
*/
private List<Tree> children = new ArrayList<Tree>();
+ /**
+ * 灞傜骇
+ */
+ private int level;
/**
* 鍥炬爣
*/
@@ -99,6 +115,10 @@
* 鎺掑簭绱㈠紩
*/
private String index;//鎺掑簭绱㈠紩
+ /***
+ * 褰撳墠鏁版嵁瀵硅薄
+ */
+ private Object data;
/**
* 鍏朵粬鐨勫睘鎬�
@@ -383,6 +403,23 @@
}
}
+
+ public Object getData() {
+ return data;
+ }
+
+ public void setData(Object data) {
+ this.data = data;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+
@Override
public String toString() {
return "Tree{" +
@@ -392,6 +429,7 @@
", showCheckbox=" + showCheckbox +
", checked=" + checked +
", children=" + children +
+ ", level=" + level +
", icon='" + icon + '\'' +
", iconCls='" + iconCls + '\'' +
", parentId='" + parentId + '\'' +
@@ -400,6 +438,7 @@
", expanded=" + expanded +
", href='" + href + '\'' +
", index='" + index + '\'' +
+ ", data=" + data +
", attributes=" + attributes +
'}';
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
index e4a6f13..8b982bd 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java
@@ -8,6 +8,8 @@
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.pagemodel.OsAttributeVO;
+import com.vci.starter.web.pagemodel.Tree;
+import com.vci.starter.web.pagemodel.TreeQueryObject;
import com.vci.starter.web.util.ControllerUtil;
import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
@@ -46,6 +48,28 @@
*/
private Logger logger = LoggerFactory.getLogger(getClass());
+
+
+ /**
+ * 鑾峰彇鎵�鏈変笟鍔$被鍨嬶紙鏍戝舰缁撴瀯锛�
+ * @return 鏌ヨ缁撴灉
+ */
+ @GetMapping( "/getTreeAttributes")
+ @VciBusinessLog(operateName = "鑾峰彇灞炴�э紙鏍戝舰缁撴瀯锛�")
+ public BaseResult<List<Tree>> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject){
+ try {
+ List<Tree> trees= attributeService.getTreeAttributesByBtmName(treeQueryObject);
+ return BaseResult.dataList(trees);
+ // return BaseResult.tree(trees);
+ }catch (Throwable e) {
+ e.printStackTrace();
+ String exceptionMessage = "鏌ヨ涓氬姟绫诲瀷鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ return BaseResult.fail(exceptionMessage);
+ }
+ }
+
+
/**
* 灞炴�у垪琛�
* @param baseQueryObject 鏌ヨ瀵硅薄
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java
index 96ffd58..91400a3 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java
@@ -3,9 +3,7 @@
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.dto.OsAttributeDTO;
-import com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.starter.web.pagemodel.BaseResult;
-import com.vci.starter.web.pagemodel.DataGrid;
+import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.OsAttributeVO;
import org.springframework.web.multipart.MultipartFile;
@@ -21,6 +19,12 @@
*/
public interface OsAttributeServiceI extends OsBaseServiceI{
+ /**
+ * 鑾峰彇鏍戠姸
+ * @param treeQueryObject
+ * @return
+ */
+ List<Tree> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject);
/**
* 鑾峰彇榛樿鐨勫睘鎬�
* @return 榛樿鐨勫睘鎬у垪琛�
@@ -182,8 +186,9 @@
* 鏍规嵁涓氬姟绫诲瀷/閾炬帴绫诲瀷鑾峰彇灞炴�т俊鎭�
* @param btName 涓氬姟绫诲瀷/閾炬帴绫诲瀷
* @param typeFlag 0:涓氬姟绫诲瀷,1:閾炬帴绫诲瀷
+ * @param isDefault 鏄惁鍖呭惈榛樿灞炴�� true锛氬寘鍚紝false 涓嶅寘鍚�
* @return
*/
- List<OsAttributeVO> getOsAttributeVOSByBtName(String btName,int typeFlag)throws Exception;
+ List<OsAttributeVO> getOsAttributeVOSByBtName(String btName,int typeFlag,boolean isDefault)throws Exception;
}
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 c8facba..ec96cc5 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
@@ -7,14 +7,14 @@
import com.vci.client.mw.ClientSessionUtility;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
+import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.vrm.VersionRule;
import com.vci.dto.OsAttributeDTO;
import com.vci.dto.OsEnumDTO;
import com.vci.dto.OsEnumItemDTO;
import com.vci.omd.dataType.VTDataType;
-import com.vci.pagemodel.OsEnumItemVO;
-import com.vci.pagemodel.OsEnumVO;
-import com.vci.pagemodel.OsUsedAttributeVO;
+import com.vci.omd.objects.OtherInfo;
+import com.vci.pagemodel.*;
import com.vci.po.OsAttributePO;
import com.vci.po.OsEnumPO;
import com.vci.starter.poi.bo.ReadExcelOption;
@@ -25,12 +25,10 @@
import com.vci.starter.web.annotation.log.VciUnLog;
import com.vci.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.starter.web.exception.VciBaseException;
-import com.vci.starter.web.pagemodel.BaseQueryObject;
-import com.vci.starter.web.pagemodel.BaseResult;
-import com.vci.starter.web.pagemodel.DataGrid;
+import com.vci.starter.web.pagemodel.*;
import com.vci.starter.web.util.*;
import com.vci.model.OsAttributeDO;
-import com.vci.pagemodel.OsAttributeVO;
+import com.vci.web.enumpck.PortalVITypeFlag;
import com.vci.web.properties.UsedNames;
import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsBaseServiceI;
@@ -135,6 +133,101 @@
* 榛樿灞炴�х殑鏄犲皠锛宬ey鏄皬鍐�
*/
private static Map<String,OsAttributeVO> defaultAttributeVOMap = new HashMap<>();
+
+ @Override
+ public List<Tree> getTreeAttributesByBtmName(TreeQueryObject treeQueryObject) {
+ List<Tree> rootTreeList=new ArrayList<>();
+
+ Map<String, String> conditionMap = treeQueryObject.getConditionMap();
+ if (conditionMap == null) {
+ conditionMap = new HashMap<>();
+ }
+ String typeName = StringUtils.isBlank(conditionMap.get("typeName")) ? "" : conditionMap.get("typeName");
+ if (StringUtils.isBlank(typeName)) {
+ VciBaseUtil.alertNotNull(typeName,"涓氬姟绫诲瀷鍚嶇О");
+ }
+ try {
+ String typeFlag=StringUtils.isBlank(conditionMap.get("typeFlag"))?"":conditionMap.get("typeFlag");
+ PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByName(typeFlag);
+ Short viTypeFlag=-1;
+ if(portalVITypeFlag!=null){
+ viTypeFlag=portalVITypeFlag.getIntVal();
+ }
+ boolean isDefault =Boolean.parseBoolean(conditionMap.get("isDefault"));
+ Tree tree = new Tree("root", "銆�" + typeName + "銆戝睘鎬т俊鎭�", "root");
+ tree.setLevel(0);
+ rootTreeList.add(tree);
+ getChildTree(rootTreeList,typeName, viTypeFlag,isDefault);
+ }catch (Throwable e){
+ e.printStackTrace();
+ }
+ return rootTreeList;
+ }
+
+ /**
+ * 澶熺潃灞炴�ф爲鑺傜偣
+ * @param parentTreeList
+ * @param refTypeName
+ * @param refFlag
+ * @param isDefault
+ * @throws Exception
+ */
+ private void getChildTree(List<Tree> parentTreeList,String refTypeName,int refFlag,boolean isDefault) throws Exception {
+ for (Tree pTree : parentTreeList) {
+ if (pTree.getLevel()>= 3) {
+ continue;
+ }
+ Object o= pTree.getData();
+ String pName=pTree.getText();
+ boolean isOsAttributeVO=false;
+ if(o instanceof OsAttributeVO){
+ isOsAttributeVO=true;
+ OsAttributeVO osAttributeVO=(OsAttributeVO)o;
+ String other = osAttributeVO.getOther();
+ OtherInfo otherInfo = OtherInfo.getOtherInfoByText(other);
+ refFlag = otherInfo.getRefFlag();
+ refTypeName = otherInfo.getRefTypeName();
+ }
+ List<OsAttributeVO> childOsAttributeVOList=new ArrayList<>();
+ if (refFlag != -1) {
+ // pName: 涓哄弬鐓у睘鎬у悕鍔犱笂璺緞
+ childOsAttributeVOList=getOsAttributeVOSByBtName(refTypeName,refFlag,isDefault);
+ if(!CollectionUtils.isEmpty(childOsAttributeVOList)) {
+ List<Tree> childTreeList= new ArrayList<>();
+ boolean finalIsOsAttributeVO = isOsAttributeVO;
+ childOsAttributeVOList.stream().forEach(childOsAttributeVO->{
+ Tree childTree = new Tree(childOsAttributeVO.getOid(), childOsAttributeVO.getId(), childOsAttributeVO);
+ childTree.setOid(childOsAttributeVO.getOid());
+ childTree.setParentName(pTree.getText());
+ childTree.setParentId(pTree.getOid());
+ childTree.setLevel(pTree.getLevel()+1);
+ childTree.setLeaf(true);
+ if(finalIsOsAttributeVO) {
+ childTree.setText(pName + "." + childOsAttributeVO.getId());
+ }else{
+ childTree.setText(childOsAttributeVO.getId());
+ }
+ if (childTree.getLevel()>= 3) {
+ childTree.setLeaf(true);
+ }
+ childTreeList.add(childTree);
+ });
+ if(childTreeList.size()>0){
+ pTree.setChildren(childTreeList);
+ pTree.setExpanded(false);
+ getChildTree(childTreeList,refTypeName,refFlag,isDefault);
+ }else{
+ pTree.setLeaf(true);
+ pTree.setExpanded(true);
+ }
+
+ }
+ }else{
+ pTree.setExpanded(true);
+ }
+ }
+
+ }
/**
* 鑾峰彇榛樿鐨勫睘鎬�
@@ -1142,17 +1235,36 @@
* @return
*/
@Override
- public List<OsAttributeVO> getOsAttributeVOSByBtName(String btName, int typeFlag) throws Exception{
+ public List<OsAttributeVO> getOsAttributeVOSByBtName(String btName, int typeFlag,boolean isDefault) throws Exception{
VciBaseUtil.alertNotNull(btName,"鍙傛暟涓嶅厑璁镐负绌�",typeFlag,"鍙傛暟涓嶅厑璁镐负绌�");
List<OsAttributeVO> attributeVOS=new ArrayList<>();
+
try {
- AttributeDef[] attributeDefs=new AttributeDef[]{};
+ List<AttributeDef> attributeDefList=new ArrayList<>();
if(typeFlag==0){
- attributeDefs= platformClientUtil.getBtmService().getAttributeDefs(btName);
+ AttributeDef [] attributeDefs= platformClientUtil.getBtmService().getAttributeDefs(btName);
+ if(attributeDefs!=null){
+ attributeDefList.addAll(Arrays.stream(attributeDefs).collect(Collectors.toList()));
+ }
+ if(isDefault){
+ AttributeDef [] sysAttributeDefs=platformClientUtil.getBtmService().getSysAttributeDefs();
+ if(sysAttributeDefs!=null){
+ attributeDefList.addAll(Arrays.stream(sysAttributeDefs).collect(Collectors.toList()));
+ }
+ }
}else{
- attributeDefs=platformClientUtil.getLinkTypeService().getAttributes(btName);
+ AttributeDef [] attributeDefs=platformClientUtil.getLinkTypeService().getAttributes(btName);
+ if(attributeDefs!=null){
+ attributeDefList.addAll(Arrays.stream(attributeDefs).collect(Collectors.toList()));
+ }
+ if(isDefault){
+ AttributeDef[] sysAbItems = platformClientUtil.getLinkTypeService().getSysAttributeDefs();
+ if(sysAbItems!=null){
+ attributeDefList.addAll(Arrays.stream(sysAbItems).collect(Collectors.toList()));
+ }
+ }
}
- attributeVOS=attributeDO2VOs(Arrays.asList(attributeDefs));
+ attributeVOS=attributeDO2VOs(attributeDefList);
}catch (PLException e){
throw new Exception("鏍规嵁涓氬姟绫诲瀷鑾峰彇灞炴�у紓甯�"+e.getMessage());
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
index 45abd95..f6ed246 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -381,7 +381,7 @@
}
String attributeStr="";
try {
- List<OsAttributeVO> osAttributeVOList=osAttributeService.getOsAttributeVOSByBtName(portalVIDTO.getTypeName(),portalVIDTO.getTypeFlag());
+ List<OsAttributeVO> osAttributeVOList=osAttributeService.getOsAttributeVOSByBtName(portalVIDTO.getTypeName(),portalVIDTO.getTypeFlag(),false);
if(!CollectionUtils.isEmpty(osAttributeVOList)){
List<String> filedList= osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList());
attributeStr=VciBaseUtil.array2String(filedList.toArray(new String[]{}));
@@ -521,7 +521,7 @@
});
}
//鏍¢獙灞炴�ф槸鍚︽纭�
- List<OsAttributeVO> osAttributeVOList = osAttributeService.getOsAttributeVOSByBtName(portalVI.typeName, portalVI.typeFlag);
+ List<OsAttributeVO> osAttributeVOList = osAttributeService.getOsAttributeVOSByBtName(portalVI.typeName, portalVI.typeFlag,false);
if (!CollectionUtils.isEmpty(osAttributeVOList)) {
List<String> filedList = osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList());
List<String> attributeList = VciBaseUtil.str2List(portalVIPO.getAttributeKey());
--
Gitblit v1.9.3