From 7035ddf9bf670d7cf2902434305517e5a86cbcd8 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期五, 09 八月 2024 09:40:44 +0800
Subject: [PATCH] 1、新增检查查询模板是否存在接口。 2、新增查询模板列表接口。 3、新增查询条件的查询按钮查询lis列表。
---
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java | 31 ++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java | 62 ++++++++++++
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java | 157 ++++++++++++++++++++++++------
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java | 27 +++++
4 files changed, 243 insertions(+), 34 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/QTInfoDTO.java
new file mode 100644
index 0000000..fa2f615
--- /dev/null
+++ b/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;
+}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
index a346399..8202ace 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
+++ b/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;
}
}
+
+ /**
+ * 鏌ヨ鏉′欢鐨勬煡璇㈡寜閽煡璇is鍒楄〃
+ * @param dataMap 浼犺緭鐨勬暟鎹璞★細
+ * linkTypeName 閾炬帴绫诲瀷鍚嶇О銆�
+ * rdPositive 鏂瑰悜锛宼rue姝e悜锛宖alse鍙嶅悜
+ * 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;
+ }
+ }
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java
index c966f1c..e071a29 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java
+++ b/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 鏂瑰悜锛宼rue姝e悜锛宖alse鍙嶅悜
+ * 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;
}
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
index 50b8418..ca8ac52 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
+++ b/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 鏂瑰悜锛宼rue姝e悜锛宖alse鍙嶅悜
+ * 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;
+ }
+
/**
* 鏍¢獙鍙傛暟
--
Gitblit v1.9.3