Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/UIComponentVO.java
@@ -27,6 +27,11 @@ private String name; /** * bs端使ç¨çèªå®ä¹æ¥è¯¢ç±»åæURL */ private String bsCustQueryCLsOrUrl; /** * æå±åºå */ private String pkLayout; @@ -86,6 +91,14 @@ */ private List<UIButtonDefineVO> buttons; public void setBsCustQueryCLsOrUrl(String bsCustQueryCLsOrUrl) { this.bsCustQueryCLsOrUrl = bsCustQueryCLsOrUrl; } public String getBsCustQueryCLsOrUrl() { return bsCustQueryCLsOrUrl; } @Override public String getId() { return id; Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/UITableDefineVO.java
@@ -85,6 +85,7 @@ * æ¥è¯¢çå */ private List<UITableFieldVO> queryColumns; /** * freeMarkerç表达å¼çå¼ */ @@ -154,6 +155,14 @@ this.queryTemplateName = queryTemplateName; } public void setFreeMarkerEls(List<String> freeMarkerEls) { this.freeMarkerEls = freeMarkerEls; } public List<String> getFreeMarkerEls() { return freeMarkerEls; } public List<List<UITableFieldVO>> getCols() { return cols; } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/UITreeTableDefineVO.java
@@ -11,6 +11,7 @@ * åºåå */ private static final long serialVersionUID = -4334171123988489424L; /** * æ å½¢ç»æå±å¼å */ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIDataGridQuery.java
@@ -1,8 +1,6 @@ package com.vci.query; import com.alibaba.fastjson.JSON; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.util.Lcm.Func; import java.util.ArrayList; import java.util.HashMap; @@ -32,7 +30,7 @@ private String uiDefineId; /** * ç»ä»¶çä¸»é® * ç»ä»¶ç主é®(页é¢å®ä¹ç主é®) */ private String componentOid; Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/query/UIFormQuery.java
@@ -13,6 +13,11 @@ private String btmName; /** * ç»ä»¶ç主é®(页é¢å®ä¹ç主é®) */ private String componentOid; /** * 表åå®ä¹çä¸»é® */ private String formDefineOid; @@ -32,6 +37,14 @@ */ private String sourceOid; public void setComponentOid(String componentOid) { this.componentOid = componentOid; } public String getComponentOid() { return componentOid; } public void setSourceOid(String sourceOid) { this.sourceOid = sourceOid; } Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java
@@ -1456,7 +1456,7 @@ userInfo.updateUser = user.getLastModifier() == null ? "" : user.getLastModifier(); userInfo.pwdUpdateTime = user.getPwdUpdateTime().getTime(); userInfo.grantor = user.getGrantor() == null ? "" : user.getGrantor(); userInfo.secretGrade = user.getSecretGrade() == null ? 2 : Integer.valueOf(user.getGrantor()); userInfo.secretGrade = user.getSecretGrade() == null ? 2 : Integer.valueOf(user.getSecretGrade()); userInfo.isDeptLeader = user.getIsDeptLeader() == null ? "0" : user.getIsDeptLeader(); return userInfo; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -1225,11 +1225,12 @@ * @param prmItemDO */ private void initTableConfigDTOO2DOData(PRMItemDO prmItemDO,PRMItemDTO prmItemDTO){ prmItemDO.setItemOutFields(VciBaseUtil.array2String(prmItemDTO.getItemOutFieldList().toArray(new String[]{})));//éè¦ä½¿ç¨çåæ®µ prmItemDO.setItemKeyFields(CollectionUtils.isEmpty(prmItemDTO.getItemKeyFieldList())?"":VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//éè¦æç´¢çåæ®µ List<String> newItemFieldWidthList = prmItemDTO.getItemFieldWidthList().stream().map(KeyValue::getValue).distinct().collect(Collectors.toList()); prmItemDO.setItemFieldWidth(VciBaseUtil.array2String(newItemFieldWidthList.toArray(new String[]{}),":"));//åæ®µå®½åº¦ prmItemDO.setItemOutFields(VciBaseUtil.array2String(prmItemDTO.getItemOutFieldList().toArray(new String[]{}))); //éè¦ä½¿ç¨çåæ®µprmItemDO.setItemKeyFields(CollectionUtils.isEmpty(prmItemDTO.getItemKeyFieldList())?"":VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//éè¦æç´¢çåæ®µ // TODO: 2024/12/5 Ludc è¿å¿å»éç¨çä¸å¯¹ï¼KeyValue::getValueæ¯å¯¹å®½åº¦å»éäº List<String> newItemFieldWidthList = prmItemDTO.getItemFieldWidthList().stream().distinct().map(KeyValue::getValue).collect(Collectors.toList()); // TODO: 2024/12/5 Ludc åé符è¦åå¹³å°ç»ä¸ç¨,è䏿¯ç¨: prmItemDO.setItemFieldWidth(VciBaseUtil.array2String(newItemFieldWidthList.toArray(new String[]{}),","));//åæ®µå®½åº¦ List<ItemSeniorQueryBO> itemSeniorQueryBOS = prmItemDTO.getItemSeniorQueryBOS(); List<String> itemSeniorQueryColsList = new ArrayList<>(); List<String> itemSeniorQueryColsCountsList=new ArrayList<>(); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIEngineServiceImpl.java
@@ -1246,6 +1246,7 @@ componentVO.setName(page.name); componentVO.setDescription(page.desc); componentVO.setOrderNum((int) page.seq); UIComponentDefineXO componentDefineXO = null; try { componentDefineXO = readInfoFromXML(page.plDefination, UIComponentDefineXO.class); @@ -1253,6 +1254,8 @@ logger.error("读åxmlåºé",e); return null; } //èªå®ä¹æ¥è¯¢æ¹å¼ componentVO.setBsCustQueryCLsOrUrl(componentDefineXO.getBsCustQueryCLsOrUrl()); //ä¹åçç±»åç弿¯1ï¼2ï¼3çççä¸ç´è§ UIComponentTypeEnum componentTypeEnum = null; if("1".equals(componentDefineXO.getTemplateType())){ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/uidataservice/UIDataBaseServiceI.java
@@ -1,6 +1,7 @@ package com.vci.web.service.uidataservice; import com.alibaba.fastjson.JSON; import com.vci.corba.query.data.KV; import com.vci.pagemodel.UIFormDataVO; import com.vci.query.UIDataGridQuery; import com.vci.query.UIFormQuery; @@ -11,9 +12,7 @@ import com.vci.starter.web.pagemodel.UIDataTree; import com.vci.starter.web.util.Lcm.Func; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * uiæ°æ®æ¥è¯¢åºç¡æå¡ï¼è¯¥æ¥å£å®ä¹äºä¸äºå ¬å ±çæ°æ®æ¥è¯¢æ¹æ³åä¸äºé»è®¤æ¹æ³ä»¥ä¾ç»§æ¿å使ç¨ï¼ @@ -45,6 +44,41 @@ } /** * 夿æ¯å¦ä½¿ç¨èªå®ä¹ç±»æ¹å¼æ¥è¯¢ï¼ï¼åç»å¦æå¤ææ¯èªå®ä¹ç±»è¿æ¯èªå®ä¹URLçé»è¾ææ´æ¹ï¼ä¹å°½éç»ä¸å¨ä¸ä¸ªå°æ¹è¿è¡æ´æ¹ï¼ * @param */ default boolean isCustomClass(String bsCustomClassOrUrl){ if(bsCustomClassOrUrl.indexOf("@") == 0){ return true; } return false; } /** * å°KV转æMap * @param kvs * @return */ default List<Map<String, Object>> convertKV2ListMap(KV[][] kvs) { // å° KV[][] 转æ¢ä¸º Map List<Map<String, Object>> resulListMap = new ArrayList<>(); if(Func.isEmpty(kvs)){ return resulListMap; } for (KV[] kvArray : kvs) { Map<String, Object> map = new HashMap<>(); for (KV kv : kvArray) { if (kv.key != null && kv.value != null) { //è¿åå ¨å°åç map.put(kv.key.toLowerCase(Locale.ROOT), kv.value); } } resulListMap.add(map); } return resulListMap; } /** * è·åè¡¨æ ¼çæ°æ® * @param dataGridQuery è¡¨æ ¼æ¥è¯¢ï¼å¿ é¡»æä¸å¡ç±»ååç§°å è¡¨æ ¼çç¼å· * @return DataGridä¸data为Map<String,String>æ ¼å¼ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/uidataservice/impl/UIDataCommonServiceImpl.java
@@ -57,7 +57,6 @@ import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; /** * UIä¸çæ°æ®æ¥è¯¢(éç¨æ¥è¯¢æå¡) * @author Ludc @@ -155,8 +154,28 @@ if(Func.isNotEmpty(dataGridQuery.getSourceData())){ dataGridQuery.setSourceData(this.convertMapValueJson2Map(dataGridQuery.getSourceData())); } //å 夿æ¥è¯¢æ¨¡æ¿ UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO(); //å 夿æ¥è¯¢æ¨¡æ¿æ¯å¦é ç½®äºèªå®ä¹æ¥è¯¢ç±» UIComponentVO componentVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(), null); UITableDefineVO tableDefineVO = componentVO.getTableDefineVO(); String bsCustQueryCLsOrUrl = componentVO.getBsCustQueryCLsOrUrl(); // TODO: 2024/12/5 Ludc æ ¹æ®UIé ç½®çè¿è¡å¤ææ¯å¦ä½¿ç¨èªå®ä¹ç±»è¿è¡æ¥è¯¢(èªå®ä¹ç±»æ¥è¯¢æ¹å¼ä¼å 级é«äºæ¥è¯¢æ¨¡æ¿) if(Func.isNotBlank(bsCustQueryCLsOrUrl) && isCustomClass(bsCustQueryCLsOrUrl)){ //éè¿åå°è°ç¨bsCustQueryCLsOrUrlä¸å®ä¹çæå¡ç±»ä¸çæ¥è¯¢æ¹æ³ try { // è·åç±»ç Class 对象 Class<?> clazz = Class.forName(bsCustQueryCLsOrUrl.replace("@","")); // å建类çå®ä¾ Object instance = clazz.getDeclaredConstructor().newInstance(); // è·åæ¹æ³getDataForGridï¼è¯¥æ¹æ³æ¯æ¥å£ä¸ç»ä¸å®ä¹çæ¹æ³ï¼ Method method = clazz.getMethod("getDataForGrid", UIDataGridQuery.class); // è°ç¨æ¹æ³ DataGrid dataGrid = (DataGrid) method.invoke(instance, dataGridQuery); return dataGrid; }catch (Exception e){ e.printStackTrace(); throw new VciBaseException("è·åè¡¨æ ¼æ°æ®æ¶åºç°é误ï¼åå ï¼"+e.getMessage()); } }else{ String queryTemplate = Func.isNotEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName(); if(StringUtils.isBlank(queryTemplate)){ //è¯´ææ²¡æè®¾ç½®æ¥è¯¢æ¨¡æ¿ï¼éè¦ççå¨è¿ä¸ªè¡¨æ ¼æå¨çç»ä»¶ææ²¡æè®¾ç½® @@ -220,8 +239,7 @@ dataGridQuery.getConditionMap(), replaceMap, dataGridQuery.getPageHelper(), queryFieldList.stream().collect(Collectors.toList())); return dataGrid; } //çå½å¨æå¨å ¶ä¸æ¥è¯¢åå°±ä¼å¤ç //æä¸¾ä¹ä¼è¢«å¤çäº } } /** @@ -238,7 +256,28 @@ if(Func.isNotEmpty(formQuery.getSourceData())){ formQuery.setSourceData(this.convertMapValueJson2Map(formQuery.getSourceData())); } UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmName(),formQuery.getFormDefineId()); //å 夿æ¥è¯¢æ¨¡æ¿æ¯å¦é ç½®äºèªå®ä¹æ¥è¯¢ç±» UIComponentVO componentVO = uiEngineService.getComponentByOid(formQuery.getComponentOid(), null); UIFormDefineVO formDefineVO = componentVO.getFormDefineVO(); //UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmName(),formQuery.getFormDefineId()); String bsCustQueryCLsOrUrl = componentVO.getBsCustQueryCLsOrUrl(); if(Func.isNotBlank(bsCustQueryCLsOrUrl) && isCustomClass(bsCustQueryCLsOrUrl)){ //éè¿åå°è°ç¨bsCustQueryCLsOrUrlä¸å®ä¹çæå¡ç±»ä¸çæ¥è¯¢æ¹æ³ try { // è·åç±»ç Class 对象 Class<?> clazz = Class.forName(bsCustQueryCLsOrUrl.replace("@","")); // å建类çå®ä¾ Object instance = clazz.getDeclaredConstructor().newInstance(); // è·åæ¹æ³getDataForGridï¼è¯¥æ¹æ³æ¯æ¥å£ä¸ç»ä¸å®ä¹çæ¹æ³ï¼ Method method = clazz.getMethod("getDataForForm", UIDataGridQuery.class); // è°ç¨æ¹æ³ UIFormDataVO uiFormDataVO = (UIFormDataVO) method.invoke(instance, formQuery); return uiFormDataVO; }catch (Exception e){ e.printStackTrace(); throw new VciBaseException("è·åè¡¨æ ¼æ°æ®æ¶åºç°é误ï¼åå ï¼"+e.getMessage()); } }else{ String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())? (String) formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()) :formDefineVO.getQueryTemplateName(); Set<String> queryFieldList = formDefineVO.getItems().stream().filter(s->!UIFieldTypeEnum.CUSTOM.getValue().equalsIgnoreCase(s.getType())).map(UIFormItemVO::getField).collect(Collectors.toSet()); //è·ååç § @@ -335,6 +374,7 @@ } return formDataVO; } } /** * å°è£ replaceMap Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/uidataservice/impl/UIDataTestQueryServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,60 @@ package com.vci.web.service.uidataservice.impl; import com.vci.corba.query.data.KV; import com.vci.pagemodel.UIFormDataVO; import com.vci.query.UIDataGridQuery; import com.vci.query.UIFormQuery; import com.vci.query.UITreeQuery; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.UIDataTree; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.uidataservice.UIDataBaseServiceI; import com.vci.web.util.PlatformClientUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; /** * è¿æ¯ä¸ä¸ªèªå®ä¹æ¥è¯¢ç±»çç¤ºä¾æå¡ * @author ludc * @date 2024/12/5 13:00 */ @Service public class UIDataTestQueryServiceImpl implements UIDataBaseServiceI { @Override public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws Exception { // TODO: 2024/12/5 Ludc åå°æ¹å¼è°ç¨ï¼æä»¥åªè½éè¿newPlatformClientUtilçå½¢å¼ï¼æ³¨è§£å½¢å¼æå¡æ³¨å ¥ PlatformClientUtil platformClientUtil = new PlatformClientUtil(); String sql = "select * from " + VciBaseUtil.getTableName(dataGridQuery.getBtmName()) + " where oid in ('D5DFA9D3-D2AF-4D1D-850F-73B102532740','BCE5B0E3-A49C-2453-8E62-8F4C7F4BEDF2','257BB15B-12CF-68D2-FCFE-1FA3E29DBD1E')"; KV[][] kvs = platformClientUtil.getQueryService().queryBySql(sql); List<Map<String, Object>> resultMap = convertKV2ListMap(kvs); DataGrid dataGrid = new DataGrid(); dataGrid.setData(resultMap); dataGrid.setTotal(resultMap.size()); // TODO: 2024/12/5 Ludc è¿å¿è¿å¯ä»¥æç §dataGridQuery.getTableDefineId()æ¥æ¥è¯¢è¡¨æ ¼å®ä¹çå å®¹ï¼ // ç¶åæ ¹æ®é ç½®ç页é¢ä¿¡æ¯æ¥å¤çè¦æ¥è¯¢æ¡ä»¶æå以åè¿åçåæ° return dataGrid; } @Override public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws Exception { return null; } @Override public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception { return null; } @Override public BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception { return null; } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/xmlmodel/UIComponentDefineXO.java
@@ -162,6 +162,11 @@ */ private String queryTemplateName; /** * bs端使ç¨çèªå®ä¹æ¥è¯¢ç±»åæURL */ private String bsCustQueryCLsOrUrl; public String getType() { return type; } @@ -394,6 +399,14 @@ this.queryTemplateName = queryTemplateName; } public void setBsCustQueryCLsOrUrl(String bsCustQueryCLsOrUrl) { this.bsCustQueryCLsOrUrl = bsCustQueryCLsOrUrl; } public String getBsCustQueryCLsOrUrl() { return bsCustQueryCLsOrUrl; } @Override public String toString() { return "UIComponentDefineXO{" + @@ -426,6 +439,7 @@ ", UIParser='" + UIParser + '\'' + ", extAttr='" + extAttr + '\'' + ", queryTemplateName='" + queryTemplateName + '\'' + ", bsCustQueryCLsOrUrl='" + bsCustQueryCLsOrUrl + '\'' + '}'; } }