1、新增检查查询模板是否存在接口。
2、新增查询模板列表接口。
3、新增查询条件的查询按钮查询lis列表。
已修改3个文件
已添加1个文件
277 ■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java 157 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.vci.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.vci.common.qt.object.QueryTemplate;
import com.vci.model.BaseLinkModel;
import com.vci.starter.web.annotation.Column;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * æŸ¥è¯¢æ¨¡æ¿åˆ—表传输对象
 * @author yuxc
 * @date 2024/8/7
 */
@Data
public class QTInfoDTO {
    public String qtName;
    public String btmName;
    public String creator;
    public long createTime;
    public String createTimeText;
    public short levelFlag;
    public String qtUIText;
    public String qtText;
    public QueryTemplate queryTemplate;
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -17,6 +17,7 @@
import com.vci.web.service.OsLinkTypeServiceI;
import com.vci.web.service.OsQuereyTemplateServiceI;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.DocumentException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -118,4 +120,64 @@
            return objectBaseResult;
        }
    }
    /**
     * æŸ¥è¯¢æ¡ä»¶çš„æŸ¥è¯¢æŒ‰é’®æŸ¥è¯¢lis列表
     * @param dataMap ä¼ è¾“的数据对象:
     *                linkTypeName é“¾æŽ¥ç±»åž‹åç§°ã€
     *                rdPositive æ–¹å‘,true正向,false反向
     *                btmName ä¸šåŠ¡ç±»åž‹åç§°
     *                combRelaType ä¸šåŠ¡ç±»åž‹é€‰æ‹©å€¼
     *                versionValue ç‰ˆæœ¬ç­æ¬¡å€¼
     *                isQueryIsLeaf æ˜¯å¦é€‰æ‹©ä¸‹çº§
     *                level å­èŠ‚ç‚¹å±‚æ•°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping("/getCriteria")
    public BaseResult getCriteria(@RequestBody HashMap<String,Object> dataMap){
        try {
            return quereyTemplateServiceI.getCriteria(dataMap);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
    /**
     * æŸ¥è¯¢æ¨¡æ¿åˆ—表
     * @param btName ç±»åž‹åç§°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping("/getObjTypeQTs")
    public BaseResult getObjTypeQTs(String btName){
        try {
            return quereyTemplateServiceI.getObjTypeQTs(btName);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        } catch (DocumentException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * æ£€æŸ¥æŸ¥è¯¢æ¨¡æ¿åå­—是否存在
     * @param name æŸ¥è¯¢æ¨¡æ¿åå­—
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping("/isExistsQT")
    public BaseResult isExistsQT(String name){
        try {
            return quereyTemplateServiceI.isExistsQT(name);
        } catch (PLException e) {
            BaseResult objectBaseResult = new BaseResult<>();
            objectBaseResult.setCode(Integer.parseInt(e.code));
            objectBaseResult.setMsg(Arrays.toString(e.messages));
            return objectBaseResult;
        }
    }
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java
@@ -9,11 +9,13 @@
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import org.dom4j.DocumentException;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -48,4 +50,29 @@
     * @return ä¿å­˜ç»“æžœ
     */
    BaseResult deleteTemplate(String name) throws PLException;
    /**
     *
     * @param dataMap ä¼ è¾“的数据对象:
     *                linkTypeName é“¾æŽ¥ç±»åž‹ã€
     *                rdPositive æ–¹å‘,true正向,false反向
     *                btmName ä¸šåŠ¡ç±»åž‹åç§°
     *                combRelaType ä¸šåŠ¡ç±»åž‹é€‰æ‹©å€¼
     *                versionValue ç‰ˆæœ¬ç­æ¬¡å€¼
     *                isQueryIsLeaf æ˜¯å¦é€‰æ‹©ä¸‹çº§
     *                level å­èŠ‚ç‚¹å±‚æ•°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    BaseResult getCriteria(HashMap<String,Object> dataMap) throws PLException;
    /**
     * æŸ¥è¯¢æ¨¡æ¿åˆ—表
     * @param btName ç±»åž‹åç§°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    BaseResult getObjTypeQTs(String btName) throws PLException, DocumentException;
    /**
     * æ£€æŸ¥æŸ¥è¯¢æ¨¡æ¿åå­—是否存在
     * @param name æŸ¥è¯¢æ¨¡æ¿åå­—
     * @return æŸ¥è¯¢ç»“æžœ
     */
    BaseResult isExistsQT(String name) throws PLException;
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
@@ -1,50 +1,26 @@
package com.vci.web.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.client.common.oq.OQTool;
import com.vci.common.qt.object.QTConstants;
import com.vci.common.qt.object.QueryTemplate;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.atm.AttributeDef;
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.ltm.LinkType;
import com.vci.corba.omd.data.LinkObject;
import com.vci.corba.omd.qtm.QTD;
import com.vci.model.OsLinkTypeDO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.po.OsLinkTypePO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
import com.vci.starter.poi.bo.WriteExcelOption;
import com.vci.starter.poi.constant.ExcelLangCodeConstant;
import com.vci.starter.poi.util.ExcelUtil;
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.corba.omd.qtm.QTInfo;
import com.vci.dto.QTInfoDTO;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.util.*;
import com.vci.web.service.*;
import com.vci.web.util.Func;
import com.vci.web.util.DateUtil;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
 * æŸ¥è¯¢æ¨¡æ¿æœåŠ¡
@@ -138,6 +114,119 @@
            return BaseResult.fail("删除查询模板失败");
        }
    }
    /**
     *
     * @param dataMap ä¼ è¾“的数据对象:
     *                linkTypeName é“¾æŽ¥ç±»åž‹ã€
     *                rdPositive æ–¹å‘,true正向,false反向
     *                btmName ä¸šåŠ¡ç±»åž‹åç§°
     *                combRelaType ä¸šåŠ¡ç±»åž‹é€‰æ‹©å€¼
     *                versionValue ç‰ˆæœ¬ç­æ¬¡å€¼
     *                isQueryIsLeaf æ˜¯å¦é€‰æ‹©ä¸‹çº§
     *                level å­èŠ‚ç‚¹å±‚æ•°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public BaseResult getCriteria(HashMap<String,Object> dataMap) throws PLException {
        QueryTemplate qt = getQT(dataMap);
        String checkInfo = OQTool.checkQT(qt);
        if(!checkInfo.equals("OK")){
            throw new PLException("500", new String[]{checkInfo});
        }
        qt.setId("qt1");
        LinkObject[] result = platformClientUtil.getQueryService().findLTObjects(qt.getId(), OQTool.qtTOXMl(qt).asXML());
        return BaseResult.dataList(Arrays.asList(result));
    }
    /**
     * æŸ¥è¯¢æ¨¡æ¿åˆ—表
     * @param btName ç±»åž‹åç§°
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public BaseResult getObjTypeQTs(String btName) throws PLException, DocumentException {
        VciBaseUtil.alertNotNull(btName,"类型名");
        QTInfo[] objTypeQTs = platformClientUtil.getQTDService().getObjTypeQTs(btName);
        List<QTInfoDTO> dtos = new ArrayList<>();
        for (QTInfo obj : objTypeQTs) {
            QTInfoDTO qtInfoDTO = new QTInfoDTO();
            qtInfoDTO.setCreator(obj.creator);
            qtInfoDTO.setBtmName(obj.btmName);
            qtInfoDTO.setQtName(obj.qtName);
            qtInfoDTO.setLevelFlag(obj.levelFlag);
//            qtInfoDTO.setQtText(obj.qtText);
            qtInfoDTO.setQtUIText(obj.qtUIText);
            qtInfoDTO.setQueryTemplate(OQTool.getQTByDoc(DocumentHelper.parseText(obj.qtText), obj.qtName));
            qtInfoDTO.setCreateTimeText(DateFormatUtils.format(new Date(obj.createTime), DateUtil.PATTERN_DATETIME));
            dtos.add(qtInfoDTO);
        }
        return BaseResult.dataList(dtos);
    }
    /**
     * æ£€æŸ¥æŸ¥è¯¢æ¨¡æ¿åå­—是否存在
     * @param name æŸ¥è¯¢æ¨¡æ¿åå­—
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public BaseResult isExistsQT(String name) throws PLException {
        VciBaseUtil.alertNotNull(name,"询模板名");
        return BaseResult.success(platformClientUtil.getQTDService().isExistsQT(name));
    }
    /**
     * ç»„装查询模板
     * @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
     */
    public int getVersion(String versionValue){
        int version = 0;
        if(versionValue.equals("当前版本当前版次")){
            version = 1;
        }else if(versionValue.equals("当前版本最新版次")){
            version = 2;
        }else if(versionValue.equals("最新版本最新版次")){
            version = 3;
        }else if(versionValue.equals("当前版次")){
            version = 4;
        }else if(versionValue.equals("当前版本")){
            version = 5;
        }else if(versionValue.equals("当前命名对象")){
            version = 6;
        }else if(versionValue.equals("已发布的最新版本")){
            version = 7;
        }
        return version;
    }
    /**
     * æ ¡éªŒå‚æ•°