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