Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -395,12 +395,16 @@ throw new VciBaseException(String.valueOf(e.code),e.messages); } } }else if(parentId.equals("sysOptionNode")){ }else if(parentId.equals("operateNode")){ //å è½½æææä½ try{ //å°è¿åçèç¹å¤å±å¥ä¸å½åç¶èç¹ MenuVO parentNode = JsonConfigReader.getSysModuleConf().getOperateNode(); List<MenuVO> menuVOS = new ArrayList<>(); //妿æ¥è¯¢çæ¯ç¬¬ä¸å±èç¹å°±éè¦ç´æ¥è¿åsysOptionNodeèç¹ if(Func.isNotBlank(modeType) && modeType.equals("firstNode")){ menuVOList.add(parentNode); return menuVOList; } OperateInfo[] operateInfos = platformClientUtil.getFrameworkService().getOperateTreeList(parentId); for(int i = 0; i < operateInfos.length;i++ ){ OperateInfo operateInfo = operateInfos[i]; @@ -416,10 +420,8 @@ menuVO.setSort((int) operateInfo.seq); menuVO.setModeType("operateObject"); menuVO.setHasChildren(false); menuVOS.add(menuVO); menuVOList.add(menuVO); } parentNode.setChildren(menuVOS); menuVOList.add(parentNode); }catch (PLException e) { e.printStackTrace(); throw new VciBaseException(String.valueOf(e.code),new String[]{VciBaseUtil.getExceptionMessage(e)}); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/HMSysModConfigController.java
@@ -1,7 +1,6 @@ package com.vci.web.controller; import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.framework.data.AppConfigDetailInfo; import com.vci.corba.framework.data.FuncOperationInfo; import com.vci.corba.framework.data.OperateInfo; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; @@ -9,7 +8,6 @@ import com.vci.pagemodel.AppConfigDetailInfoVO; import com.vci.pagemodel.ExpExcelConditionVO; import com.vci.pagemodel.MenuVO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.util.ControllerUtil; @@ -19,7 +17,6 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -188,7 +185,7 @@ return BaseResult.success(hmSysModConfigService.addOperationType(operateInfo),"æ·»å æä½ç±»åæå"); }catch (Exception e){ e.printStackTrace(); String errorMsg = "å 餿¨¡åæ¶åºç°é误ï¼åå ï¼"+ VciBaseUtil.getExceptionMessage(e); String errorMsg = "æ·»å æä½ç±»åæ¶åºç°é误ï¼åå ï¼"+ VciBaseUtil.getExceptionMessage(e); logger.error(errorMsg); throw new VciBaseException(errorMsg); } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -147,6 +147,39 @@ } /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ä¸çæ¥è¯¢æ¡ä»¶çæ¥è¯¢æé®æ¥è¯¢listå表 * @param qtInfoDTO * @return æ¥è¯¢ç»æ */ @PostMapping("/getCriteriaBtm") public BaseResult getCriteriaBtm(@RequestBody QTInfoDTO qtInfoDTO){ try { return quereyTemplateServiceI.getCriteriaBtm(qtInfoDTO); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * æ¥è¯¢æ¡ä»¶ä¸çéæ©æ¥è¯¢æ¨¡æ¿å¯¹è¯æ¡ï¼æ¥è¯¢å ¨é¨æ¨¡æ¿åæå¯¹åºçä¸å¡ç±»åæé¾æ¥ç±»ååï¼ * @return */ @GetMapping("/getAllQTs") public BaseResult getAllQTs(){ try { return quereyTemplateServiceI.getAllQTs(); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * æ¥è¯¢æ¨¡æ¿å表 * @param btName ç±»ååç§° * @return æ¥è¯¢ç»æ @@ -258,4 +291,78 @@ return objectBaseResult; } } /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ä¿å * @param qtInfoDTO ä¿åä¼ è¾å¯¹è±¡ * @return ä¿åç»æ */ @PostMapping("/btmSave") public BaseResult btmSave(@RequestBody QTInfoDTO qtInfoDTO){ try { return quereyTemplateServiceI.btmSave(qtInfoDTO); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * æ´æ°æ°æ®åºç»æ * @return æ´æ°ç»æ */ @PostMapping("/updateDBStructure") public BaseResult btmSave(){ try { return quereyTemplateServiceI.updateDBStructure(); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿æ æ¥è¯¢ï¼ç¨äºçé¢ç导åºåè½ * @return æ¥è¯¢ç»æ */ @GetMapping("/getBtmQtTree") public BaseResult getBtmQtTree(){ try { return quereyTemplateServiceI.getBtmQtTree(); } catch (PLException e) { BaseResult objectBaseResult = new BaseResult<>(); objectBaseResult.setCode(Integer.parseInt(e.code)); objectBaseResult.setMsg(Arrays.toString(e.messages)); return objectBaseResult; } } /** * 导åºä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * names æ¥è¯¢æ¨¡æ¿å * @return */ @PostMapping("/expBtmQTTemplate") public void expBtmQTTemplate(@RequestBody List<String> names,HttpServletResponse response) throws PLException, IOException { quereyTemplateServiceI.expBtmQTTemplate(names, response); } /** * å¯¼å ¥ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * @param file ä¸ä¼ çæä»¶ * @return å¯¼å ¥ç»æ */ @PostMapping("/impBtmTemplate") public BaseResult impBtmTemplate(MultipartFile file){ try { return quereyTemplateServiceI.impBtmTemplate(file); }catch (Throwable e) { throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); } } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java
@@ -403,7 +403,15 @@ @GetMapping(value = "/getAllAttributesByBtmId") @VciBusinessLog(operateName = "æ¥çä¸å¡ç±»åç屿§") public BaseResult<List<OsBtmTypeAttributeVO>> getAllAttributesByBtmId(String btmId){ List<OsBtmTypeAttributeVO> osBtmTypeAttributeVOS = btmService.listAttributeByBtmIdHasDefault(btmId); List<OsBtmTypeAttributeVO> osBtmTypeAttributeVOS = null; try { osBtmTypeAttributeVOS = btmService.listAttributeByBtmIdHasDefault(btmId); } catch (PLException e) { e.printStackTrace(); String exceptionMessage = VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); throw new VciBaseException(exceptionMessage); } return BaseResult.dataList(osBtmTypeAttributeVOS); } @@ -457,7 +465,15 @@ String hasDefaultAttr = baseQueryObject.getConditionMap().getOrDefault("hasDefaultAttr","false"); String attrId = baseQueryObject.getConditionMap().containsKey("name")?baseQueryObject.getConditionMap().get("name").replace("*",""):""; String attrName = baseQueryObject.getConditionMap().containsKey("label") ? baseQueryObject.getConditionMap().get("label").replace("*","") : ""; List<OsBtmTypeAttributeVO> boAttrs = btmService.listAttributeByBtmId(btmTypeId); List<OsBtmTypeAttributeVO> boAttrs = null; try { boAttrs = btmService.listAttributeByBtmId(btmTypeId); } catch (PLException e) { e.printStackTrace(); String exceptionMessage = VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); throw new VciBaseException(exceptionMessage); } if(boAttrs == null){ boAttrs = new ArrayList<>(); } @@ -505,7 +521,15 @@ String attrId = baseQueryObject.getConditionMap().containsKey("name")?baseQueryObject.getConditionMap().get("name").replace("*",""):""; String attrName = baseQueryObject.getConditionMap().containsKey("label") ? baseQueryObject.getConditionMap().get("label").replace("*","") : ""; OsBtmTypeVO btmTypeVO = btmService.selectByOid(btmTypeOid); List<OsBtmTypeAttributeVO> boAttrs = btmService.listAttributeByBtmId(btmTypeVO.getId()); List<OsBtmTypeAttributeVO> boAttrs = null; try { boAttrs = btmService.listAttributeByBtmId(btmTypeVO.getId()); } catch (PLException e) { e.printStackTrace(); String exceptionMessage = VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); throw new VciBaseException(exceptionMessage); } List<OsBtmTypeAttributeVO> attrList = boAttrs.stream().filter(s->{ boolean usedFlag = true; if(StringUtils.isNotBlank(attrId) && !s.getId().contains(attrId)){ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebCodeGenSchemaController.java
@@ -1,5 +1,7 @@ package com.vci.web.controller; import com.vci.corba.common.PLException; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; @@ -7,6 +9,7 @@ import com.vci.starter.web.util.LangBaseUtil; import com.vci.dto.OsCodeGenSchemaDTO; import com.vci.pagemodel.OsCodeGenSchemaVO; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsCodeGenSchemaServiceI; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -71,8 +74,14 @@ */ @PostMapping(value = "/productCodeFile") public BaseResult productCodeFile(String oid){ codeGenSchemaService.productCodeFile(oid); return BaseResult.success(); try { codeGenSchemaService.productCodeFile(oid); return BaseResult.success(); } catch (PLException e) { e.printStackTrace(); String exceptionMessage = VciBaseUtil.getExceptionMessage(e); throw new VciBaseException(exceptionMessage); } } /** Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/other/BtmQTExportData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.vci.web.other; import com.vci.corba.omd.btm.BizType; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; import com.vci.corba.omd.qtm.QTInfo; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * æ¥è¯¢ä¸å¡ç±»å模æ¿å¯¼åºæ°æ®ç±»ï¼å¯åºååä¸ºæ¨¡æ¿æä»¶,åæ¶ä¹å ¼å¯¼åºæ°æ®æ§å¶ç±» * @Title :QTExportData.java * @Description : * @Copyright :å®åè¿è¾¾ç§ææéå ¬å¸ * @Author :å¹³å°ä¸è§åé¨/ZhongGY/E-mail:zhonggy@vci-tech.com * @Date :2015-6-8 * @Version :1 * @Other :äº§çæ³¨é:Alt+Shift+J */ public class BtmQTExportData implements Serializable{ private static final long serialVersionUID = 1L; /** * éè¦åºååçæ¨¡æ¿æ°æ® */ // private Map<String/*ç±»ååç§°*/, BizType/*ç±»å对象*/> selectedBtmItems = new HashMap<String, BizType>(); private Map<String/*ç±»ååç§°*/,String[]/*ç±»åæå±å±æ§*/> selectedBtmAttrs = new HashMap<String, String[]>(); private Map<String/*æ¥è¯¢æ¨¡æ¿åç§°*/, QTInfo/*æ¥è¯¢æ¨¡æ¿å¯¹è±¡*/> allSelectedQTs = new HashMap<String, QTInfo>(); private Map<String/*ç±»ååç§°*/, QTD[]/*æ¥è¯¢æ¨¡æ¿å®ä¹*/> allQTDs = new HashMap<String, QTD[]>(); public Map<String, BizType> getSelectedBtmItems() { return selectedBtmItems; } public void setSelectedBtmItems(Map<String, BizType> selectedBtmItems) { this.selectedBtmItems = selectedBtmItems; } public Map<String, String[]> getSelectedBtmAttrs() { return selectedBtmAttrs; } public void setSelectedBtmAttrs(Map<String, String[]> selectedBtmAttrs) { this.selectedBtmAttrs = selectedBtmAttrs; } public Map<String, QTD[]> getAllQTDs() { return allQTDs; } public void setAllQTDs(Map<String, QTD[]> allQTDs) { this.allQTDs = allQTDs; } public Map<String, QTInfo> getAllQTs() { return allSelectedQTs; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java
@@ -114,14 +114,14 @@ * @param btmId ä¸å¡ç±»åçç¼å· * @return 屿§çå 容 */ List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId); List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId) throws PLException; /** * æ ¹æ®ä¸å¡ç±»åè·åå å«ç屿§--å å«åºç¡å±æ§ * @param btmId ä¸å¡ç±»åçç¼å· * @return 屿§çå 容 */ List<OsBtmTypeAttributeVO> listAttributeByBtmIdHasDefault(String btmId); List<OsBtmTypeAttributeVO> listAttributeByBtmIdHasDefault(String btmId) throws PLException; /** * åç §ä¸å¡ç±»å Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsCodeGenSchemaServiceI.java
@@ -1,4 +1,5 @@ package com.vci.web.service; import com.vci.corba.common.PLException; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; @@ -59,7 +60,7 @@ * @param oid æ¹æ¡çä¸»é® * @throws VciBaseException åæ°ä¸ºç©ºï¼æ¹æ¡ä¸åå¨ä¼æåºå¼å¸¸ */ void productCodeFile(String oid) throws VciBaseException; void productCodeFile(String oid) throws VciBaseException, PLException; /** * é¢è§ä»£ç æä»¶ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsQuereyTemplateServiceI.java
@@ -3,6 +3,7 @@ import com.vci.corba.common.PLException; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; import com.vci.corba.omd.qtm.QTInfo; import com.vci.dto.QTInfoDTO; import com.vci.pagemodel.OsBtmTypeAttributeVO; import com.vci.pagemodel.OsLinkTypeAttributeVO; @@ -52,7 +53,6 @@ */ BaseResult deleteTemplate(String name) throws PLException; /** * * @param qtInfoDTO ä¼ è¾çæ°æ®å¯¹è±¡ï¼ * linkTypeName 龿¥ç±»åã * rdPositive æ¹åï¼trueæ£åï¼falseåå @@ -106,4 +106,52 @@ * @return æä½ç»æ */ BaseResult deleteLinkTemplate(List<String> templateNames) throws PLException; /** * æ¥è¯¢æ¡ä»¶ä¸çæ¥è¯¢æé® * @param qtInfoDTO * @return * @throws PLException */ BaseResult getCriteriaBtm(QTInfoDTO qtInfoDTO) throws PLException; /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ä¿å * @param qtInfoDTO ä¿åä¼ è¾å¯¹è±¡ * @return ä¿åç»æ */ BaseResult btmSave(QTInfoDTO qtInfoDTO) throws PLException; /** * æ´æ°æ°æ®åºç»æ * @return ä¿åç»æ */ BaseResult updateDBStructure() throws PLException; /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿æ æ¥è¯¢ï¼ç¨äºçé¢ç导åºåè½ * @return æ¥è¯¢ç»æ */ BaseResult getBtmQtTree() throws PLException; /** * 导åºä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * names æ¥è¯¢æ¨¡æ¿å * @return */ void expBtmQTTemplate(List<String> names, HttpServletResponse response) throws PLException,IOException ; /** * æ¥è¯¢æ¡ä»¶ä¸çéæ©æ¥è¯¢æ¨¡æ¿å¯¹è¯æ¡ï¼æ¥è¯¢å ¨é¨æ¨¡æ¿åæå¯¹åºçä¸å¡ç±»åæé¾æ¥ç±»ååï¼ * @return */ BaseResult getAllQTs() throws PLException; /** * å¯¼å ¥ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * @param file ä¸ä¼ çæä»¶ * @return å¯¼å ¥ç»æ */ BaseResult impBtmTemplate(MultipartFile file) throws IOException, ClassNotFoundException; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -38,6 +38,7 @@ 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.constant.QueryOptionConstant; import com.vci.starter.web.enumpck.BooleanEnum; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; @@ -358,9 +359,14 @@ * @return 屿§çå 容 */ @Override public List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId) { public List<OsBtmTypeAttributeVO> listAttributeByBtmId(String btmId) throws PLException { VciBaseUtil.alertNotNull(btmId,"ä¸å¡ç±»åçç¼å·"); OsBtmTypeVO btmTypeVO = getBtmById(btmId); BizType[] bizTypes = platformClientUtil.getBtmService().getBizTypes(btmId); if(Func.isEmpty(bizTypes)){ return new ArrayList<>(); } BizType bizType = bizTypes[0]; OsBtmTypeVO btmTypeVO = btmDO2VO(bizType); List<OsBtmTypeAttributeVO> attributes = btmTypeVO.getAttributes(); if(attributes == null){ attributes = new ArrayList<>(); @@ -375,7 +381,7 @@ * @return 屿§çå 容 */ @Override public List<OsBtmTypeAttributeVO> listAttributeByBtmIdHasDefault(String btmId) { public List<OsBtmTypeAttributeVO> listAttributeByBtmIdHasDefault(String btmId) throws PLException { List<OsBtmTypeAttributeVO> attrVOs = listAttributeByBtmId(btmId); if(attrVOs == null){ attrVOs = new ArrayList<>(); @@ -1216,13 +1222,15 @@ public boolean addIndex(List<IndexObject> indexObjectList) throws PLException { VciBaseUtil.alertNotNull(indexObjectList,"æ°å¢çç´¢å¼ä¿¡æ¯"); String btmName = indexObjectList.get(0).getTypeName(); String indexNames = indexObjectList.stream().map(IndexObject::getIndexName).collect(Collectors.joining()); String indexNames = indexObjectList.stream().map(IndexObject::getIndexName).collect(Collectors.joining(",")); String[] oldindexAttr = {indexNames}; BusinessObject bo; List<BusinessObject> boList = new ArrayList<>(); //å æ¥è¯¢å½åæ·»å ç´¢å¼æ¯å¦å·²ç»åå¨ï¼å¦æåå¨å°±å å é¤åæ°å¢å®ç°æ¿æ¢æä½ Map<String, String> conditionMap = new HashMap<>(); conditionMap.put("typename",btmName); //å è¿æ ·å¤çï¼å端ç°å¨åªåäºå次ä¿åï¼æä»¥ä¸ç¨in conditionMap.put("indexname", indexNames); List<IndexObject> indexObjects = getIndexByCondition(conditionMap); if(indexObjects!=null && indexObjects.size()>0){ //ç´¢å¼ä¸å卿¶å é¤å°±ä¼æ¥éç´¢å¼ä¸åå¨ï¼æä»¥è¿éæç´¢å¼æå»å é¤ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsCodeGenSchemaServiceImpl.java
@@ -1,6 +1,7 @@ package com.vci.web.service.impl; import com.alibaba.fastjson.JSONObject; import com.vci.corba.common.PLException; import com.vci.starter.revision.service.RevisionModelUtil; import com.vci.starter.web.annotation.Column; import com.vci.starter.web.constant.FrameWorkLcStatusConstant; @@ -268,7 +269,7 @@ * @throws VciBaseException åæ°ä¸ºç©ºï¼æ¹æ¡ä¸åå¨ä¼æåºå¼å¸¸ */ @Override public void productCodeFile(String oid) throws VciBaseException { public void productCodeFile(String oid) throws VciBaseException, PLException { OsCodeGenSchemaDO codeGenSchemaDO = selectByOid(oid); //å¤çä¸´æ¶æä»¶å¤¹ï¼å¨ä¸´æ¶æä»¶å¤¹ä¸æ·»å codes/{ä¸å¡ç±»åçè±æåç§°} String tempFolder =LocalFileUtil.getProjectFolder(); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsQueryTemplateImpl.java
@@ -3,11 +3,15 @@ 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; 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.data.LinkObject; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.qtm.QTD; @@ -22,8 +26,10 @@ 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.web.other.BtmQTExportData; import com.vci.web.other.LinkQTExportData; import com.vci.web.service.*; import com.vci.web.util.DateUtil; @@ -32,17 +38,22 @@ import com.vci.web.util.WebUtil; 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; /** @@ -90,7 +101,7 @@ } /** * æ¥è¯¢æ¨¡æ¿ * ä¿åæ¥è¯¢æ¨¡æ¿ * @param qtd æ¥è¯¢æ¨¡æ¿å®ä½ç±» * @return ä¿åç»æ */ @@ -150,8 +161,7 @@ } } /** * * @param dataMap ä¼ è¾çæ°æ®å¯¹è±¡ï¼ * @param qtInfoDTO ä¼ è¾çæ°æ®å¯¹è±¡ï¼ * linkTypeName 龿¥ç±»åã * rdPositive æ¹åï¼trueæ£åï¼falseåå * btmName ä¸å¡ç±»ååç§° @@ -163,7 +173,7 @@ */ @Override public BaseResult getCriteria(QTInfoDTO qtInfoDTO) throws PLException { QueryTemplate qt = getQT(qtInfoDTO); QueryTemplate qt = getQT(qtInfoDTO,true); String checkInfo = OQTool.checkQT(qt); if(!checkInfo.equals("OK")){ throw new PLException("500", new String[]{checkInfo}); @@ -189,7 +199,7 @@ qtInfoDTO.setBtmName(obj.btmName); qtInfoDTO.setQtName(obj.qtName); qtInfoDTO.setLevelFlag(obj.levelFlag); // qtInfoDTO.setQtText(obj.qtText); //qtInfoDTO.setQtText(obj.qtText); qtInfoDTO.setQtUIText(obj.qtUIText); if(StringUtils.isNotBlank(obj.qtUIText)){ //å°ç»å®çStringææ¬è§£æä¸ºXMLææ¡£å¹¶è¿åæ°å建çdocument @@ -271,7 +281,7 @@ */ @Override public BaseResult linkSave(QTInfoDTO qtInfoDTO) throws PLException { QueryTemplate qt = getQT(qtInfoDTO); QueryTemplate qt = getQT(qtInfoDTO,true); String checkInfo = OQTool.checkQT(qt); if(!checkInfo.equals("OK")){ throw new PLException("500", new String[]{checkInfo}); @@ -415,17 +425,22 @@ * ç»è£ æ¥è¯¢æ¨¡æ¿ * @return */ public QueryTemplate getQT(QTInfoDTO qtInfoDTO) throws PLException { public QueryTemplate getQT(QTInfoDTO qtInfoDTO,boolean isLinkType) throws PLException { QueryTemplate qt = new QueryTemplate(); qt.setType(QTConstants.TYPE_LINK); //TODO String qtId = qt.setLinkType(qtInfoDTO.getBtmName()); qt.setDirection(qtInfoDTO.getQueryTemplate().getDirection()); qt.setBtmType(qtInfoDTO.getQueryTemplate().getBtmType()); qt.setVersion(qtInfoDTO.getQueryTemplate().getVersion()); qt.setQueryISLeaf(qtInfoDTO.getQueryTemplate().isQueryISLeaf()); qt.setLevel(qtInfoDTO.getQueryTemplate().getLevel()); if(isLinkType){ qt.setType(QTConstants.TYPE_LINK); qt.setLinkType(qtInfoDTO.getBtmName()); qt.setDirection(qtInfoDTO.getQueryTemplate().getDirection()); qt.setBtmType(qtInfoDTO.getQueryTemplate().getBtmType()); qt.setVersion(qtInfoDTO.getQueryTemplate().getVersion()); qt.setQueryISLeaf(qtInfoDTO.getQueryTemplate().isQueryISLeaf()); qt.setLevel(qtInfoDTO.getQueryTemplate().getLevel()); }else{ qt.setType(QTConstants.TYPE_BTM); qt.setBtmType(qtInfoDTO.getBtmName()); } List<String> clauseList = new ArrayList<String>(); //TODO æ¥è¯¢å æ¾ç¤ºå clauseList.add("*"); @@ -915,7 +930,6 @@ // return qt; // } /** * è¿åæ¥è¯¢ççæ¬ * @return @@ -940,7 +954,6 @@ return version; } /** * æ ¡éªåæ° * @param qtd @@ -957,7 +970,6 @@ throw new PLException("500", new String[]{"该模æ¿å®ä¹åå·²ç»è¢«ä½¿ç¨, è¯·æ´æ¢"}); } } /** * 导åºé¾æ¥ç±»åæ¥è¯¢æ¨¡æ¿ @@ -1143,6 +1155,35 @@ } } private void getPLQtBtmItem2(String string, BizType bizType, List<BizType> ltsNew) { // TODO Auto-generated method stub try { BizType queryBizType = platformClientUtil.getBtmService().getBizTypes(string)[0]; BizType[] btmArray = platformClientUtil.getBtmService().getBizTypes(""); String[] strings = queryBizType.apNameArray; boolean b = true; for (int i = 0; i < btmArray.length; i++) { if (btmArray[i].name.equals(string)) { b = false; if (Arrays.equals(bizType.apNameArray, strings)) { btmArray[i].name += "ãä¸å¡ç±»åå·²åå¨ã"; ltsNew.add(btmArray[i]); } else { btmArray[i].name += "ãä¸å¡ç±»ååå¨ä½å±æ§ä¸ä¸è´ã"; ltsNew.add(btmArray[i]); } } } if (b) { bizType.name += "ãä¸å¡ç±»åä¸åå¨ã"; ltsNew.add(bizType); } } catch (PLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void getPLQtWrapper(String string, QTInfo qtWrapper, List<LinkType> ltsNew, List<QTInfo> qTWrapperNew, Map<String/*ç±»ååç§°*/, QTD[]/*æ¥è¯¢æ¨¡æ¿å®ä¹*/> newNorepQTDs) { try { QTInfo[] qtws = platformClientUtil.getQTDService().getAllQTs(); @@ -1208,6 +1249,71 @@ } } private void getPLBtmQtWrapper(String string, QTInfo qtWrapper, List<BizType> ltsNew, List<QTInfo> qTWrapperNew, Map<String/*ç±»ååç§°*/, QTD[]/*æ¥è¯¢æ¨¡æ¿å®ä¹*/> newNorepQTDs) { try { QTInfo[] qtws = platformClientUtil.getQTDService().getAllQTs(); boolean islaet = true; for (int i = 0; i < qtws.length; i++) { if (string.equals(qtws[i].qtName)) { islaet = false; for (BizType lt : ltsNew) { if (qtWrapper.btmName.equals(lt.name.substring(0, lt.name.indexOf("ã")))) { if (lt.name.endsWith("ãä¸å¡ç±»åå·²åå¨ã")) { qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿å·²åå¨ï¼ä¸å¯¼å ¥ã"; qTWrapperNew.add(qtWrapper); }else if(lt.name.endsWith("ãä¸å¡ç±»ååå¨ä½å±æ§ä¸ä¸è´ã")){ qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿æå±ä¸å¡ç±»å屿§ä¸ä¸è´ï¼ä¸å¯¼å ¥ã"; qTWrapperNew.add(qtWrapper); }else{ qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿æå±ä¸å¡ç±»åä¸åå¨ï¼ä¸å¯¼å ¥ã"; qTWrapperNew.add(qtWrapper); } } } } } if (islaet) { for (BizType btmItem : ltsNew) { if (qtWrapper.btmName.equals(btmItem.name.substring(0, btmItem.name.indexOf("ã")))) { if (btmItem.name.endsWith("ãä¸å¡ç±»åå·²åå¨ã")) { //夿æ¥è¯¢æ¨¡æ¿å®ä¹æ¯å¦åå¨ï¼è¿è¡ä¿å QTD[] qtds = newNorepQTDs.get(qtWrapper.btmName); if(qtds != null){ for (QTD qtd : qtds) { QTD qtdByName = platformClientUtil.getQTDService().getQTDByName(qtd.name); if(!(qtdByName != null && StringUtils.isNotBlank(qtdByName.name))){ boolean b = platformClientUtil.getQTDService().addQTD(qtd); if(!b){ qtWrapper.qtName += qtWrapper.qtName+"å¯¼å ¥æ¥è¯¢æ¨¡æ¿å®ä¹ã" + qtdByName.name + "ã失败ï¼"; } } } newNorepQTDs.remove(qtWrapper.btmName); } boolean success = platformClientUtil.getQTDService().saveQT(qtWrapper); if(!success){ qtWrapper.qtName += qtWrapper.qtName+"å¯¼å ¥å¤±è´¥ï¼"; }else { qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿å¯¼å ¥æåï¼ã"; } qTWrapperNew.add(qtWrapper); }else if(btmItem.name.endsWith("ãä¸å¡ç±»ååå¨ä½å±æ§ä¸ä¸è´ã")){ qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿æå±ä¸å¡ç±»å屿§ä¸ä¸è´ï¼ä¸å¯¼å ¥ã"; qTWrapperNew.add(qtWrapper); }else{ qtWrapper.qtName += "ãæ¥è¯¢æ¨¡æ¿æå±ä¸å¡ç±»åä¸åå¨ï¼ä¸å¯¼å ¥ã"; qTWrapperNew.add(qtWrapper); } } } } } catch (PLException e) { e.printStackTrace(); } } //æ ¹æ®éæ©çæ¥è¯¢æ¨¡æ¿è¿æ»¤æ¨¡æ¿å®ä¹ private Map<String, QTD[]> getnewNorepQTDs(Map<String, QTD[]> norepQTDs, Map<String, QTInfo> allQTs) { @@ -1235,6 +1341,290 @@ if(!b){ return BaseResult.fail("å é¤å¤±è´¥ï¼ï¼ï¼"); } return BaseResult.success(); return BaseResult.success("æ¥è¯¢æ¨¡æ¿å 餿åï¼"); } /** * @param qtInfoDTO ä¼ è¾çæ°æ®å¯¹è±¡ï¼ * linkTypeName 龿¥ç±»åã * rdPositive æ¹åï¼trueæ£åï¼falseåå * btmName ä¸å¡ç±»ååç§° * combRelaType ä¸å¡ç±»åéæ©å¼ * versionValue çæ¬çæ¬¡å¼ * isQueryIsLeaf æ¯å¦éæ©ä¸çº§ * level åèç¹å±æ° * @return æ¥è¯¢ç»æ */ @Override public BaseResult getCriteriaBtm(QTInfoDTO qtInfoDTO) throws PLException { QueryTemplate qt = getQT(qtInfoDTO,false); String checkInfo = OQTool.checkQT(qt); if(!checkInfo.equals("OK")){ 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)); } /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ä¿å * @param qtInfoDTO ä¿åä¼ è¾å¯¹è±¡ * @return ä¿åç»æ */ @Override public BaseResult btmSave(QTInfoDTO qtInfoDTO) throws PLException { VciBaseUtil.alertNotNull( qtInfoDTO,"ä¿åçä¸å¡ç±»å模æ¿å¯¹è±¡", qtInfoDTO.getBtmName(),"è¯·éæ©ä¸å¡ç±»ååæ¥è¯¢æ¨¡æ¿å®ä¹æ¥å建æ¥è¯¢æ¨¡æ¿" ); //add by caill start éåæ®éæ¥è¯¢æ¨¡æ¿è¾å ¥æ¡ä¸çå¼åæ ¡éª // ArrayList<String> list = cpm_centerPanel.getList(); // for(int i=0;i<list.size();i++){ // String text = (String) list.get(i); // if(text.contains("'")){ // JOptionPane.showMessageDialog(cp_mainPanel, "æ¡ä»¶å¼ä¸å å«äºéæ³å符", "éæ³å符", JOptionPane.ERROR_MESSAGE); // return; // } // } //ä¿åä¹å带åºå·²éæ©çqtName QueryTemplate qt = getQT(qtInfoDTO,false); //å端è°ç¨è¿ä¸ªæ¹æ³isExistsQT() /*if(isExists(qtName)){ return BaseResult.success("","该æ¥è¯¢æ¨¡æ¿åå·²ç»åå¨,æ¯å¦è¦çï¼"); }*/ String checkInfo = OQTool.checkQT(qt); if(!checkInfo.equals("OK")){ throw new PLException("500", new String[]{checkInfo}); } //设置æåºä¿¡æ¯ qt.setOrderInfoList(qtInfoDTO.getQueryTemplate().getOrderInfoList()); QTInfo qtWrapper = new QTInfo(); qtWrapper.qtName = qtInfoDTO.getQtName(); qtWrapper.btmName = qt.getBtmType(); qtWrapper.creator = WebUtil.getCurrentUserId(); qtWrapper.createTime = System.currentTimeMillis(); if(qtInfoDTO.getTree() == null){ qtWrapper.qtUIText = ""; }else{ //å½å¾éäºé«çº§æ¥è¯¢æ¶éè¦å¤çé«çº§æ¥è¯¢çç¸å ³æ¡ä»¶ qtWrapper.qtUIText = getSeniorXML(qtInfoDTO); } qtWrapper.levelFlag = qtInfoDTO.getLevelFlag(); qtWrapper.qtText = OQTool.qtTOXMl(qt).asXML(); boolean saveFlag = platformClientUtil.getQTDService().saveQT(qtWrapper); if(saveFlag){ return BaseResult.success("ä¿åæ¥è¯¢æ¨¡æ¿æå"); }else{ return BaseResult.fail("ä¿åæ¥è¯¢æ¨¡æ¿å¤±è´¥"); } } /** * æ´æ°æ°æ®åºç»æ * @return ä¿åç»æ */ @Override public BaseResult updateDBStructure() throws PLException { boolean f = platformClientUtil.getQTDService().updateQT(); if(f){ return BaseResult.success("æ´æ°æå"); }else{ return BaseResult.fail("æ´æ°å¤±è´¥"); } } /** * ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿æ æ¥è¯¢ï¼ç¨äºçé¢ç导åºåè½ * @return æ¥è¯¢ç»æ */ @Override public BaseResult getBtmQtTree() throws PLException { BizType[] bizTypes= null; QTInfo[] qts = null; HashMap<String,Object> tree = new HashMap(); tree.put("text","ä¸å¡ç±»å"); if (bizTypes == null) { List<BizType> es = new ArrayList<>(); bizTypes = platformClientUtil.getBtmService().getBizTypes(""); for (BizType lt : bizTypes) { QTInfo[] qtWrappers = platformClientUtil.getQTDService().getObjTypeQTs(lt.name); if (qtWrappers.length!=0) { es.add(lt); } } bizTypes = es.toArray(new BizType[es.size()]); //TODO:éä¿®æ£æ²¡æå ³èæ¥è¯¢æ¨¡æ¿ä¸å¡ç±»å廿 qts = platformClientUtil.getQTDService().getAllQTs();//è·åæææ¥è¯¢æ¨¡æ¿ } List<HashMap<String,Object>> childList = new ArrayList<>(); //æ·»å ä¸å¡ç±»åæ ¹èç¹ for (BizType plAction : bizTypes) { HashMap<String,Object> childTree = new HashMap(); childTree.put("text", plAction.label + "/" +plAction.name); childTree.put("oid", plAction.oid); //tree.put("children", childTree); addExportTreeNode(plAction, qts, childTree); childList.add(childTree); } tree.put("children", childList); return BaseResult.success(tree); } /** * 导åºä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * names æ¥è¯¢æ¨¡æ¿å * @return */ @Override public void expBtmQTTemplate(List<String> names, HttpServletResponse response) throws PLException, IOException { String defaultTempFolder = LocalFileUtil.getDefaultTempFolder(); String vciqtmfFileName = defaultTempFolder + File.separator + "BtmTemplateExp" + new Date().getTime() + ".vciqtf"; BtmQTExportData exportData = new BtmQTExportData(); for (String name : names) { QTInfo qt = platformClientUtil.getQTDService().getQT(name); exportData.getAllQTs().put(qt.qtName,qt); BizType[] bizTypes = platformClientUtil.getBtmService().getBizTypes(qt.btmName); for (int i = 0; i < bizTypes.length; i++) { BizType bizType = bizTypes[i]; if(bizTypes != null && !bizType.oid.equals("")){ exportData.getSelectedBtmItems().put(bizType.name, bizType); exportData.getSelectedBtmAttrs().put(bizType.name, bizType.apNameArray); exportData.getAllQTDs().put(bizType.name, platformClientUtil.getQTDService().getBizTypeQTDs(bizType.name)); } } } ObjectOutputStream vciamfFileStream = null; try { File vciqtmfFile = new File(vciqtmfFileName); vciamfFileStream = new ObjectOutputStream(new FileOutputStream(vciqtmfFile)); vciamfFileStream.writeObject(exportData); }finally { try { if (vciamfFileStream != null) { vciamfFileStream.flush(); vciamfFileStream.close(); } } catch (Exception e) { throw new PLException("500",new String[]{"å¯¼åºæµå ³éå¼å¸¸ï¼"}); } } ControllerUtil.writeFileToResponse(response,vciqtmfFileName); FileUtil.del(defaultTempFolder + File.separator); } /** * æ¥è¯¢æ¡ä»¶ä¸çéæ©æ¥è¯¢æ¨¡æ¿å¯¹è¯æ¡ï¼æ¥è¯¢å ¨é¨æ¨¡æ¿åæå¯¹åºçä¸å¡ç±»åæé¾æ¥ç±»ååï¼ * @return */ @Override public BaseResult getAllQTs() throws PLException { QTInfo[] allQTs = platformClientUtil.getQTDService().getAllQTs(); DataGrid<QTInfo> dataGrid = new DataGrid<>(); dataGrid.setData(Arrays.asList(allQTs)); dataGrid.setTotal(allQTs.length); return BaseResult.dataGrid(dataGrid); } /** * å¯¼å ¥ä¸å¡ç±»åæ¥è¯¢æ¨¡æ¿ * @param file ä¸ä¼ çæä»¶ * @return å¯¼å ¥ç»æ */ @Override public BaseResult impBtmTemplate(MultipartFile file) throws IOException, ClassNotFoundException { if (file == null) { return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"æ å¯¼å ¥çæä»¶"}); } if (!file.getOriginalFilename().endsWith(".vciqtf")) { throw new VciBaseException("ä» è½ä¸ä¼ .vciqtfæ ¼å¼æä»¶ï¼è¯·éæ°ä¸ä¼ ï¼"); } ObjectInputStream obj = new ObjectInputStream( file.getInputStream()); BtmQTExportData qtExportData = (BtmQTExportData) obj.readObject(); List<BizType> ltsNew = new ArrayList<>(); List<QTInfo> qTWrapperNew = new ArrayList<>(); Map<String/* ç±»ååç§° */, QTD[]/* æ¥è¯¢æ¨¡æ¿å®ä¹ */> norepQTDs = new HashMap<String, QTD[]>(); addImportBtmData(qtExportData, ltsNew, qTWrapperNew, norepQTDs); QTInfo[] qts = qTWrapperNew .toArray(new QTInfo[qTWrapperNew.size()]); //å¤çæ çè¿å HashMap<String,Object> tree = new HashMap(); tree.put("text","ä¸å¡ç±»å"); List<HashMap<String,Object>> childList = new ArrayList<>(); //æ·»å ä¸å¡ç±»åæ ¹èç¹ for (BizType plAction : ltsNew) { HashMap<String,Object> childTree = new HashMap(); childTree.put("text", plAction.label + "/" +plAction.name); childTree.put("oid", plAction.oid); addExportTreeNode(plAction, qts, childTree); childList.add(childTree); } tree.put("children", childList); return BaseResult.success(tree); } // æ°æ®è¿æ»¤ private void addImportBtmData(BtmQTExportData qtExportData, List<BizType> ltsNew, List<QTInfo> qTWrapperNew, Map<String/* ç±»ååç§° */, QTD[]/* æ¥è¯¢æ¨¡æ¿å®ä¹ */> norepQTDs) { Map<String/* ç±»ååç§° */, QTD[]/* æ¥è¯¢æ¨¡æ¿å®ä¹ */> allQTDs = qtExportData .getAllQTDs(); Map<String/* ç±»ååç§° */, BizType/* ç±»å对象 */> selectedBtmItems = qtExportData .getSelectedBtmItems(); Map<String/* ç±»ååç§° */, String[]/* ç±»åæå±å±æ§ */> selectedBtmAttrs = qtExportData .getSelectedBtmAttrs(); Map<String/* æ¥è¯¢æ¨¡æ¿åç§° */, QTInfo/* æ¥è¯¢æ¨¡æ¿å¯¹è±¡ */> allSelectedQTs = qtExportData .getAllQTs(); if (allQTDs.size() == 0 || allQTDs == null || selectedBtmItems.size() == 0 || selectedBtmItems == null || selectedBtmAttrs.size() == 0 || selectedBtmAttrs == null || allSelectedQTs.size() == 0 || allSelectedQTs == null) { throw new VciBaseException("å¯¼å ¥çæ¨¡æ¿æ°æ®æè¯¯!!!"); } Set<Map.Entry<String, QTD[]>> pLActions = allQTDs.entrySet(); Set<Map.Entry<String, QTInfo>> pLQts = allSelectedQTs.entrySet(); Set<Map.Entry<String, BizType>> btmpLQts = selectedBtmItems.entrySet(); for (Map.Entry<String, QTD[]> entry : pLActions) { String string = entry.getKey(); QTD[] qtds = entry.getValue(); getPLQtIsInDB(string, qtds, norepQTDs); } for (Map.Entry<String, BizType> entry : btmpLQts) { String string = entry.getKey(); BizType bizType = entry.getValue(); getPLQtBtmItem2(string, bizType, ltsNew); } Map<String/*ç±»ååç§°*/, QTD[]/*æ¥è¯¢æ¨¡æ¿å®ä¹*/> newNorepQTDs = getnewNorepQTDs(norepQTDs,allSelectedQTs); for (Map.Entry<String, QTInfo> entry : pLQts) { String string = entry.getKey(); QTInfo qtWrapper = entry.getValue(); getPLBtmQtWrapper(string, qtWrapper, ltsNew, qTWrapperNew, newNorepQTDs); } } /** * çæå¯¼åºæ 鿩以åå¯¼å ¥æ æ¾ç¤º * @param bizType * @param qts * @param tree */ private void addExportTreeNode(BizType bizType/*ä¸å¡ç±»å*/,QTInfo[] qts/*æ¥è¯¢æ¨¡æ¿å¯¹è±¡*/,HashMap<String,Object> tree) { List<String> childList = new ArrayList<>(); // æ·»å æ¥è¯¢æ¨¡æ¿å¯¹è±¡åèç¹ for (QTInfo qtItem : qts) { //å¤çå¯¼å ¥æ¶æ æ³è¿è¡ç±»å夿 int splitLength = bizType.name.indexOf("ã"); if(splitLength == -1){ splitLength = bizType.name.length(); } if (qtItem.btmName.equals(bizType.name.substring(0, splitLength))) { childList.add(qtItem.qtName); } } tree.put("children",childList); } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebBtmIOServiceImpl.java
@@ -851,7 +851,13 @@ if(!CollectionUtils.isEmpty(btmTypeVOList)) { btmTypeVOList.stream().forEach(btmTypeVO -> { String btmId = btmTypeVO.getId(); List<OsBtmTypeAttributeVO> attributeVOS = btmService.listAttributeByBtmId(btmId); List<OsBtmTypeAttributeVO> attributeVOS = null; try { attributeVOS = btmService.listAttributeByBtmId(btmId); } catch (PLException e) { e.printStackTrace(); throw new VciBaseException(VciBaseUtil.getExceptionMessage(e)); } //å æ¯åç§° int rowIndex = index[0]; WriteExcelData idED = new WriteExcelData(rowIndex, 0, btmId);