From 9423f2936340d82b046ec615381c1c5e03698557 Mon Sep 17 00:00:00 2001 From: yuxc <yuxc@vci-tech.com> Date: 星期五, 27 九月 2024 17:56:53 +0800 Subject: [PATCH] 1、主要完成对获取UI上下文的定义接口的优化,优化的方向为对多次获取业务类型对象进行转换而导致耗时较久的问题继续修改,还有对多次获取属性对象进行转换对象导致耗时过长问题进行修改。 2、对树的数据查询接口的优化,对多次获取属性对象进行转换对象导致耗时过长问题进行修改。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java | 68 +++++++++++++++++++++++---------- 1 files changed, 47 insertions(+), 21 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java index 558679f..f2b6086 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java @@ -82,6 +82,12 @@ private OsBtmServiceI btmService; /** + * 灞炴�х殑鏈嶅姟 + */ + @Autowired + private OsAttributeServiceI attrService; + + /** * 涓氬姟绫诲瀷鐨勬湇鍔� */ @Autowired @@ -315,7 +321,13 @@ //璇存槑鏄摼鎺ョ被鍨� field = field.substring("t_oid.".length()); } - OsAttributeVO attributeVO = attributeService.getAttr(field); +// OsAttributeVO attributeVO = attributeService.getAttr(field); + OsAttributeVO attributeVO = null; + try { + attributeVO = attributeService.attributeDO2VO(platformClientUtil.getAttributeService().getAttributeDefByName(field)); + } catch (PLException e) { + throw new RuntimeException(e); + } UIFormReferVO referVO = new UIFormReferVO(); if(attributeVO !=null && StringUtils.isNotBlank(attributeVO.getBtmTypeId()) && StringUtils.isBlank(itemXO.getRefer()) @@ -473,7 +485,12 @@ public List<UITableDefineVO> tableDO2VOs(Collection<PortalVI> prms, boolean queryDetail) { List<UITableDefineVO> tableDefineVOList = new ArrayList<>(); Optional.ofNullable(prms).orElseGet(()->new ArrayList<PortalVI>()).stream().forEach(portal->{ - UITableDefineVO defineVO = tableDO2VO(portal,queryDetail); + UITableDefineVO defineVO = null; + try { + defineVO = tableDO2VO(portal,queryDetail,null); + } catch (PLException e) { + throw new RuntimeException(e); + } tableDefineVOList.add(defineVO); }); return tableDefineVOList; @@ -488,7 +505,7 @@ */ @Override @VciUnLog - public UITableDefineVO tableDO2VO(PortalVI portal, boolean queryDetail) { + public UITableDefineVO tableDO2VO(PortalVI portal, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap) throws PLException { UITableDefineVO tableDefineVO = new UITableDefineVO(); tableDefineVO.setOid(portal.id); tableDefineVO.setId(portal.viName); @@ -593,7 +610,7 @@ fieldVO.setSortField(fieldName); fieldVO.setEdit("combox"); //鑲畾鏄笟鍔$被鍨嬶紝鍥犱负閾炬帴绫诲瀷娌℃湁杩欎釜瀛楁 - OsBtmTypeVO btmTypeVO = btmService.getBtmById(tableDefineVO.getBtmType()); + OsBtmTypeVO btmTypeVO = btmService.btmDO2VO(platformClientUtil.getBtmService().getBizTypeByName(tableDefineVO.getBtmType()),attributeVOMap); if(btmTypeVO!=null && StringUtils.isNotBlank(btmTypeVO.getLifeCycleId())){ fieldVO.setComboxKey(btmTypeVO.getLifeCycleId() + LC_STATUS_SUBFIX); } @@ -712,7 +729,7 @@ * @return 琛ㄥ崟鐨勫畾涔� */ @Override - public UITableDefineVO getTableById(String btmId, String id) { + public UITableDefineVO getTableById(String btmId, String id) throws PLException { if(StringUtils.isBlank(btmId) || StringUtils.isBlank(id)){ return null; } @@ -723,7 +740,7 @@ } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } - return tableDO2VO(portalVI,true); + return tableDO2VO(portalVI,true,null); } return self.selectAllTableMap().getOrDefault(btmId.toLowerCase()+SEP+id.toLowerCase(),null); } @@ -1060,8 +1077,14 @@ */ private List<UILayoutVO> UILayoutDO2VOs(Collection<PLTabPage> pages, boolean queryDetail){ List<UILayoutVO> contentVOS = new ArrayList<>(); + Map<String, OsAttributeVO> attributeVOMap; + if(pages != null && pages.size() > 0){ + attributeVOMap = attrService.selectAllAttributeMap(); + }else{ + attributeVOMap = null; + } Optional.ofNullable(pages).orElseGet(()->new ArrayList<PLTabPage>()).stream().forEach(page->{ - UILayoutVO layoutVO = UILayoutDO2VO(page, queryDetail); + UILayoutVO layoutVO = UILayoutDO2VO(page, queryDetail,attributeVOMap); if(layoutVO.isEnableStatus()) { contentVOS.add(layoutVO); } @@ -1084,7 +1107,7 @@ * @return 鍖哄煙鐨勬樉绀哄璞� */ @VciUnLog - private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail){ + private UILayoutVO UILayoutDO2VO(PLTabPage page, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap){ UILayoutVO layoutVO = new UILayoutVO(); if(page !=null ){ layoutVO.setOid(page.plOId); @@ -1124,7 +1147,7 @@ if(queryDetail){ //鍗曚釜鐨勶紝鐩存帴鑾峰彇 try { - layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true)); + layoutVO.setComponentVOs(uiComponentDO2VOs(Arrays.stream(platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(layoutVO.getOid())).collect(Collectors.toList()),true,attributeVOMap)); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -1164,13 +1187,13 @@ * @return 涓婚敭鐨勬樉绀哄璞� */ @Override - public UIComponentVO getComponentByOid(String componentOid) { + public UIComponentVO getComponentByOid(String componentOid, Map<String, OsAttributeVO> attributeVOMap) { if(StringUtils.isBlank(componentOid)){ return null; } if(!QUERY_BY_CACHE){ try { - return uiComponentDO2VO(platformClientUtil.getUIService().getPLPageDefinationById(componentOid),true); + return uiComponentDO2VO(platformClientUtil.getUIService().getPLPageDefinationById(componentOid),true,attributeVOMap); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -1189,10 +1212,10 @@ * @param pages 鏁版嵁瀵硅薄 * @return 鏄剧ず瀵硅薄 */ - private List<UIComponentVO> uiComponentDO2VOs(Collection<com.vci.corba.portal.data.PLPageDefination> pages, boolean queryDetail){ + private List<UIComponentVO> uiComponentDO2VOs(Collection<com.vci.corba.portal.data.PLPageDefination> pages, boolean queryDetail,Map<String, OsAttributeVO> attributeVOMap){ List<UIComponentVO> componentVOS = new ArrayList<>(); pages.stream().forEach(page->{ - componentVOS.add(uiComponentDO2VO(page,queryDetail)); + componentVOS.add(uiComponentDO2VO(page,queryDetail,attributeVOMap)); }); return componentVOS; } @@ -1203,7 +1226,7 @@ * @return 鏄剧ず瀵硅薄 */ @VciUnLog - private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail){ + private UIComponentVO uiComponentDO2VO(PLPageDefination page, boolean queryDetail, Map<String, OsAttributeVO> attributeVOMap){ UIComponentVO componentVO = new UIComponentVO(); if(page !=null){ componentVO.setOid(page.plOId); @@ -1242,7 +1265,7 @@ componentVO.setTableDefineVO(tableDefineVOMap.get(key)); }else{ try { - componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true)); + componentVO.setTableDefineVO(tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true,attributeVOMap)); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -1278,7 +1301,7 @@ tableDefineVO= tableDefineVOMap.get(key); }else{ try { - tableDefineVO = tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true); + tableDefineVO = tableDO2VO(platformClientUtil.getUIService().getPortalVIByTypeNameAndVIName(btmType,componentDefineXO.getTemplateId()),true,null); } catch (PLException vciError) { throw WebUtil.getVciBaseException(vciError); } @@ -1432,9 +1455,13 @@ @Override public List<UIButtonDefineVO> buttonDO2VOs(Collection<com.vci.corba.portal.data.PLTabButton> buttons){ List<UIButtonDefineVO> buttonDefineVOS = new ArrayList<>(); - Optional.ofNullable(buttons).orElseGet(()->new ArrayList<>()).stream().forEach(button->{ - buttonDefineVOS.add(buttonDO2VO(button)); - }); + if(buttons != null && buttons.size() > 0){ + Map<String, UIActionVO> actionVOMap = self.selectAllActionMap(); + Optional.ofNullable(buttons).orElseGet(()->new ArrayList<>()).stream().forEach(button->{ + buttonDefineVOS.add(buttonDO2VO(button, actionVOMap)); + }); + } + return buttonDefineVOS; } @@ -1444,9 +1471,8 @@ * @return 鏄剧ず瀵硅薄 */ @Override - public UIButtonDefineVO buttonDO2VO(com.vci.corba.portal.data.PLTabButton button) { + public UIButtonDefineVO buttonDO2VO(com.vci.corba.portal.data.PLTabButton button, Map<String, UIActionVO> actionVOMap) { UIButtonDefineVO buttonVO = new UIButtonDefineVO(); - Map<String, UIActionVO> actionVOMap = self.selectAllActionMap(); // Map<String, UIActionVO> actionVOMap = ServiceProvider.getUIService().getAllPLAction(); if(button !=null){ buttonVO.setOid(button.plOId); -- Gitblit v1.9.3