From f49622515192a11878628b8eecbc7315671ae562 Mon Sep 17 00:00:00 2001 From: yuxc <yuxc@vci-tech.com> Date: 星期四, 09 一月 2025 15:25:25 +0800 Subject: [PATCH] 在获取相关业务类型下的属性时,未在属性中定义的数据直接跳过 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java | 80 +++++++++++++++++++++++---------------- 1 files changed, 47 insertions(+), 33 deletions(-) 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 ff7fb61..666d847 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,11 +1,8 @@ package com.vci.web.service.impl; import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.ZipUtil; import com.alibaba.fastjson.JSONObject; -import com.vci.client.ClientSession; import com.vci.client.common.oq.OQTool; -import com.vci.client.common.providers.ClientServiceProvider; import com.vci.common.qt.object.*; import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.common.PLException; @@ -19,42 +16,32 @@ import com.vci.dto.*; import com.vci.omd.constants.SystemAttribute; import com.vci.omd.objects.OtherInfo; -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.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; -import com.vci.starter.web.pagemodel.Tree; -import com.vci.starter.web.util.*; +import com.vci.starter.web.util.ControllerUtil; +import com.vci.starter.web.util.Lcm.DateUtil; +import com.vci.starter.web.util.Lcm.Func; +import com.vci.starter.web.util.LocalFileUtil; +import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.other.BtmQTExportData; import com.vci.web.other.LinkQTExportData; -import com.vci.web.service.*; -import com.vci.web.util.DateUtil; -import com.vci.web.util.Func; +import com.vci.web.service.OsQuereyTemplateServiceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; +import com.vci.web.utility.AttributeDataFetcher; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; -import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; -import org.jdesktop.swingx.JXDatePicker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import javax.swing.*; -import java.awt.*; import java.io.*; import java.util.*; -import java.util.List; import java.util.stream.Collectors; /** @@ -98,7 +85,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 +110,7 @@ throw new PLException("500", new String[]{"澧炲姞涓氬姟绫诲瀷鏌ヨ妯℃澘澶辫触"}); } } + /** * 淇敼鏌ヨ妯℃澘 * @param qtd 鏌ヨ妯℃澘瀹炰綋绫� @@ -161,6 +150,7 @@ return BaseResult.fail("鍒犻櫎鏌ヨ妯℃澘澶辫触"); } } + /** * @param qtInfoDTO 浼犺緭鐨勬暟鎹璞★細 * linkTypeName 閾炬帴绫诲瀷銆� @@ -193,6 +183,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 +207,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); } @@ -440,7 +435,7 @@ //娣诲姞涓氬姟绫诲瀷鏍硅妭鐐� for (LinkType plAction : linkTypes) { HashMap<String,Object> childTree = new HashMap(); - childTree.put("text", plAction.tag + "/" +plAction.name); + childTree.put("text", plAction.label + "/" +plAction.name); childTree.put("oid", plAction.oid); // tree.put("children", childTree); addExportTreeNode(plAction, qts, childTree); @@ -787,6 +782,7 @@ } return ciMap; } + /** * 鏍戝寲涓�涓煡璇㈡潯浠剁粍鑺傜偣 * @param children @@ -859,6 +855,7 @@ } return ciList; } + /** * 楂樼骇鏌ヨ * 鎶奛ode鍐呭瑙f瀽鎴怌onditionItem @@ -944,8 +941,6 @@ return ci; } - - /** * 鑾峰彇鍙傜収鐨勬煡璇㈡ā鏉� * @param refAbName: 鍙傜収灞炴�у悕 @@ -1004,7 +999,6 @@ condition.setCIMap(ciMap); return qt; } - /** * 杩斿洖鏌ヨ鐨勭増鏈� @@ -1086,6 +1080,7 @@ ControllerUtil.writeFileToResponse(response,vciqtmfFileName); FileUtil.del(defaultTempFolder + File.separator); } + /** * 瀵煎叆閾炬帴绫诲瀷鏌ヨ妯℃澘 * @param file 涓婁紶鐨勬枃浠� @@ -1116,7 +1111,7 @@ //娣诲姞涓氬姟绫诲瀷鏍硅妭鐐� for (LinkType plAction : ltsNew) { HashMap<String,Object> childTree = new HashMap(); - childTree.put("text", plAction.tag + "/" +plAction.name); + childTree.put("text", plAction.label + "/" +plAction.name); childTree.put("oid", plAction.oid); addExportTreeNode(plAction, qts, childTree); childList.add(childTree); @@ -1444,8 +1439,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); + } } /** @@ -1560,9 +1560,10 @@ * @return */ @Override - public void expBtmQTTemplate(List<String> names, HttpServletResponse response) 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); @@ -1592,8 +1593,9 @@ throw new PLException("500",new String[]{"瀵煎嚭娴佸叧闂紓甯革紒"}); } } - ControllerUtil.writeFileToResponse(response,vciqtmfFileName); - FileUtil.del(defaultTempFolder + File.separator); + //ControllerUtil.writeFileToResponse(response,vciqtmfFileName); + //FileUtil.del(defaultTempFolder + File.separator); + return vciqtmfFileName; } /** @@ -1603,8 +1605,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); } @@ -1646,6 +1649,7 @@ tree.put("children", childList); return BaseResult.success(tree); } + /** * 鏌ヨ妯℃澘鐨勫垪琛ㄦ坊鍔犱簡瀛楁鐨勭浉鍏冲睘鎬� * @param btmName 绫诲瀷 @@ -1667,6 +1671,8 @@ }else { qtdArray = platformClientUtil.getQTDService().getBizTypeQTDs(btmName); } + //鑾峰彇灞炴�х殑鏁版嵁鍔犺浇绫� + AttributeDataFetcher attrDataFetcher = new AttributeDataFetcher(); for (QTD qtd : qtdArray) { QTDDTO qtddto = new QTDDTO(); qtddto.setName(qtd.name); @@ -1675,7 +1681,8 @@ qtddto.setBtmName(qtd.btmName); qtddto.setCreator(qtd.creator); for (String abName : qtd.abNames) { - AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName); + //AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName); + AttributeDef att = attrDataFetcher.getAttributeDef(abName); //濡傛灉鍦ㄥ睘鎬ф帴鍙d腑娌℃湁鏌ュ埌鐩稿叧瀛楁搴旇灏卞湪榛樿瀛楁涓� if(att == null || "".equals(att.oid)){ att = allSysAttr.get(abName.toLowerCase()); @@ -1753,6 +1760,9 @@ AttributeDef att = platformClientUtil.getAttributeService().getAttributeDefByName(abName_); if(att == null || "".equals(att.oid)){ att = allSysAttr.get(abName_.toLowerCase()); + if(att == null || "".equals(att.oid)){ + continue; + } } att.name = pName + abName_ ; AttributeDefDTO attrDto = new AttributeDefDTO(); @@ -1772,6 +1782,9 @@ //绯荤粺灞炴�D,NAME,DESCRIPTION for (int i = 0; i < SystemAttribute.bosysAttList().size(); i++) { AttributeDef attributeDef = allSysAttr.get(SystemAttribute.bosysAttList().get(i).toLowerCase()); + if(Func.isEmpty(attributeDef)){ + break; + } AttributeDefDTO attrDto = new AttributeDefDTO(); attrDto.setDescription(attributeDef.description); attrDto.setLabel(attributeDef.label); @@ -1846,6 +1859,7 @@ e.printStackTrace(); } } + // 鏁版嵁杩囨护 private void addImportBtmData(BtmQTExportData qtExportData, List<BizType> ltsNew, List<QTInfo> qTWrapperNew, Map<String/* 绫诲瀷鍚嶇О */, QTD[]/* 鏌ヨ妯℃澘瀹氫箟 */> norepQTDs) { -- Gitblit v1.9.3