xiejun
2024-09-02 eee70eddb1464593aa08a0b108e4a1af01ce8a2f
属性树添加(包括参照)
已修改5个文件
218 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/pagemodel/Tree.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 +
                '}';
    }
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 查询对象
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;
}
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 @@
     * 默认属性的映射,key是小写
     */
    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());
        }
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());