Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
@@ -98,7 +98,8 @@
        }else {
            qtdArray = platformClientUtil.getQTDService().getBizTypeQTDs(btmName);
        }
        return BaseResult.dataList(Arrays.asList(qtdArray));
        List<QTD> qtdList = Arrays.asList(qtdArray).stream().sorted(Comparator.comparing(s -> s.name,String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        return BaseResult.dataList(qtdList);
    }
    /**
@@ -122,6 +123,7 @@
            throw new PLException("500", new String[]{"增加业务类型查询模板失败"});
        }
    }
    /**
     * 修改查询模板
     * @param qtd 查询模板实体类
@@ -161,6 +163,7 @@
            return BaseResult.fail("删除查询模板失败");
        }
    }
    /**
     * @param qtInfoDTO 传输的数据对象:
     *                linkTypeName 链接类型、
@@ -193,6 +196,9 @@
    public BaseResult getObjTypeQTs(String btName) throws PLException, DocumentException {
        VciBaseUtil.alertNotNull(btName,"类型名");
        QTInfo[] objTypeQTs = platformClientUtil.getQTDService().getObjTypeQTs(btName);
        if(Func.isEmpty(objTypeQTs)){
            return BaseResult.success();
        }
        List<QTInfoDTO> dtos = new ArrayList<>();
        Map<String, AttributeDef> allSysAttr = Arrays.stream(platformClientUtil.getBtmService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e));
        allSysAttr.putAll(Arrays.stream(platformClientUtil.getLinkTypeService().getSysAttributeDefs()).collect(Collectors.toMap(e -> e.name, e -> e)));
@@ -214,6 +220,8 @@
            qtInfoDTO.setCreateTimeText(DateFormatUtils.format(new Date(obj.createTime), DateUtil.PATTERN_DATETIME));
            dtos.add(qtInfoDTO);
        }
        //// TODO: 2024/12/2 Ludc 返回值排序
        dtos = dtos.stream().sorted(Comparator.comparing(QTInfoDTO::getQtName,String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        return BaseResult.dataList(dtos);
    }
@@ -265,9 +273,15 @@
                if(column.contains(".")){
                    column = StringUtils.substringAfterLast(column, ".");
                }
                if(column.contains(" ")){
                    column = StringUtils.substringBefore(column, " ");
                }
                AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(column);
                if(att == null || "".equals(att.oid)){
                    att = allSysAttr.get(column.toLowerCase());
                }
                if(att == null){
                    throw new PLException("500", new String[]{"属性字段:" + column + "在属性池中未查询到,请确认!!"});
                }
                leafInfoDTO.setClause(leafInfo.getClause());
@@ -321,6 +335,7 @@
                HashMap<String, String> data = new HashMap<>();
                data.put("column",child.getText().trim());
                data.put("type",att.vtDataType);
                childList.add(data);
            }
        }
        treeMap.put("child",childList);
@@ -780,6 +795,7 @@
        }
        return ciMap;
    }
    /**
     * 树化一个查询条件组节点
     * @param children
@@ -852,6 +868,7 @@
        }
        return ciList;
    }
    /**
     * 高级查询
     * 把Node内容解析成ConditionItem
@@ -937,8 +954,6 @@
        return ci;
    }
    /**
     * 获取参照的查询模板
     * @param refAbName: 参照属性名
@@ -998,35 +1013,6 @@
        return qt;
    }
//    /**
//     * 组装查询模板
//     * @return
//     */
//    public QueryTemplate getQT(HashMap<String,Object> dataMap){
//        QueryTemplate qt = new QueryTemplate();
//        qt.setType(QTConstants.TYPE_LINK);
//        //TODO String qtId =
//        qt.setLinkType((String) dataMap.get("linkTypeName"));
//        qt.setDirection( (Boolean)dataMap.get("rdPositive") ? QTConstants.DIRECTION_POSITIVE : QTConstants.DIRECTION_OPPOSITE);
//        qt.setBtmType((String) dataMap.get("btmName"));
//        if("所有类型".equals(dataMap.get("combRelaType"))){
//            qt.setBtmType("*");
//        }
//        qt.setVersion(getVersion((String) dataMap.get("versionValue")));
//        qt.setQueryISLeaf((Boolean) dataMap.get("isQueryIsLeaf"));
//        qt.setLevel(StringUtils.isBlank((CharSequence) dataMap.get("level")) ? 1 : Integer.valueOf(String.valueOf(dataMap.get("level"))));
//        List<String> clauseList = new ArrayList<String>();
//        //TODO 查询列 显示列
//        clauseList.add("*");
//        qt.setClauseList(clauseList);
//        Condition con = new Condition();
//        qt.setCondition(con);
//        HashMap<String, ConditionItem> ciMap = getCIMap();
//        con.setCIMap(ciMap);
//        con.setRootCIName(con.getRootCINameByCIMap(ciMap));
//        return qt;
//    }
    /**
     * 返回查询的版本
     * @return
@@ -1074,11 +1060,12 @@
     * @return
     */
    @Override
    public void expLinkTemplate(List<String> names, HttpServletResponse response) throws PLException, IOException {
    public void expLinkTemplate(String names, HttpServletResponse response) throws PLException, IOException {
        String defaultTempFolder = LocalFileUtil.getDefaultTempFolder();
        String vciqtmfFileName = defaultTempFolder + File.separator + "LinkTemplateExp" + new Date().getTime() + ".vciqtf";
        LinkQTExportData exportData = new LinkQTExportData();
        for (String name : names) {
        String[] splits = names.split(",");
        for (String name : splits) {
            QTInfo qt = platformClientUtil.getQTDService().getQT(name);
            exportData.getAllQTs().put(qt.qtName,qt);
            LinkType linkType = platformClientUtil.getLinkTypeService().getLinkType(qt.btmName);
@@ -1106,6 +1093,7 @@
        ControllerUtil.writeFileToResponse(response,vciqtmfFileName);
        FileUtil.del(defaultTempFolder + File.separator);
    }
    /**
     * 导入链接类型查询模板
     * @param file 上传的文件
@@ -1464,8 +1452,13 @@
            throw new PLException("500", new String[]{checkInfo});
        }
        qt.setId("qt1");
        BusinessObject[] result = platformClientUtil.getQueryService().findBTMObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML());
        return BaseResult.dataList(Arrays.asList(result));
        try {
            BusinessObject[] result = platformClientUtil.getQueryService().findBTMObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML());
            return BaseResult.dataList(Arrays.asList(result));
        }catch (Exception e){
            String errorLog = "查询时出现问题,请检查配置的条件是否存在问题,具体原因:"+VciBaseUtil.getExceptionMessage(e);
            throw new VciBaseException(errorLog);
        }
    }
    /**
@@ -1499,6 +1492,7 @@
        if(!checkInfo.equals("OK")){
            throw new PLException("500", new String[]{checkInfo});
        }
        qt.setId(qtInfoDTO.getQtName());
        //设置排序信息
        qt.setOrderInfoList(qtInfoDTO.getQueryTemplate().getOrderInfoList());
        QTInfo qtWrapper = new QTInfo();
@@ -1579,9 +1573,10 @@
     * @return
     */
    @Override
    public String expBtmQTTemplate(List<String> names) throws PLException, IOException {
    public String expBtmQTTemplate(String qtNames) throws PLException, IOException {
        String defaultTempFolder = LocalFileUtil.getDefaultTempFolder();
        String vciqtmfFileName = defaultTempFolder + File.separator + "BtmTemplateExp" + new Date().getTime() + ".vciqtf";
        String[] names = qtNames.split(",");
        BtmQTExportData exportData = new BtmQTExportData();
        for (String name : names) {
            QTInfo qt = platformClientUtil.getQTDService().getQT(name);
@@ -1623,8 +1618,9 @@
    @Override
    public BaseResult getAllQTs() throws PLException {
        QTInfo[] allQTs = platformClientUtil.getQTDService().getAllQTs();
        List<QTInfo> allQTList = Arrays.stream(allQTs).sorted(Comparator.comparing(o -> o.qtName, String.CASE_INSENSITIVE_ORDER)).collect(Collectors.toList());
        DataGrid<QTInfo> dataGrid = new DataGrid<>();
        dataGrid.setData(Arrays.asList(allQTs));
        dataGrid.setData(allQTList);
        dataGrid.setTotal(allQTs.length);
        return BaseResult.dataGrid(dataGrid);
    }
@@ -1666,6 +1662,7 @@
        tree.put("children", childList);
        return BaseResult.success(tree);
    }
    /**
     * 查询模板的列表添加了字段的相关属性
     * @param btmName 类型
@@ -1703,12 +1700,14 @@
                if(direction != null) {
                    if (direction.equals(QTConstants.DIRECTION_POSITIVE)) {
                        if(att == null ){
                            throw new PLException("500",new String[]{"属性字段:"+ abName +"未查询到,请确认!"});
                            continue;
//                            throw new PLException("500",new String[]{"属性字段:"+ abName +"未查询到,请确认!"});
                        }
                        att.name = "T_OID." + abName;
                    } else if (direction.equals(QTConstants.DIRECTION_OPPOSITE)) {
                        if(att == null ){
                            throw new PLException("500",new String[]{"属性字段:"+ abName +"未查询到,请确认!"});
                            continue;
//                            throw new PLException("500",new String[]{"属性字段:"+ abName +"未查询到,请确认!"});
                        }
                        att.name = "F_OID." + abName;
                    }
@@ -1864,6 +1863,7 @@
            e.printStackTrace();
        }
    }
    // 数据过滤
    private void addImportBtmData(BtmQTExportData qtExportData, List<BizType> ltsNew, List<QTInfo> qTWrapperNew,
                               Map<String/* 类型名称 */, QTD[]/* 查询模板定义 */> norepQTDs) {