ludc
2024-12-05 90c86c95de1d20a3c3a44cab3482388a8c221a5e
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/uidataservice/impl/UIDataCommonServiceImpl.java
ÎļþÃû´Ó Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.vci.web.service.impl;
package com.vci.web.service.uidataservice.impl;
import com.vci.client.common.oq.OQTool;
import com.vci.common.qt.object.QueryTemplate;
@@ -38,6 +38,10 @@
import com.vci.web.enumpck.UIFieldTypeEnum;
import com.vci.web.enumpck.UITreeLoadTypeEnum;
import com.vci.web.service.*;
import com.vci.web.service.impl.WebBoServiceImpl;
import com.vci.web.service.impl.WebLoServiceImpl;
import com.vci.web.service.uidataservice.UIDataBaseServiceI;
import com.vci.web.service.uidataservice.UIDataCommonServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -55,12 +59,12 @@
/**
 * UI上的数据查询
 * @author weidy
 * @date 2021/3/3
 * UI上的数据查询(通用查询服务)
 * @author Ludc
 * @date 2024/12/04
 */
@Service
public class UIDataServiceImpl implements UIDataServiceI {
public class UIDataCommonServiceImpl implements UIDataCommonServiceI {
    /**
     * å¹³å°çš„调用客户端
@@ -147,9 +151,13 @@
    @Override
    public DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(dataGridQuery,"查询对象",dataGridQuery.getBtmname(),"业务类型",dataGridQuery.getTableDefineId());
        // TODO: 2024/12/4 Ludc å‰ç«¯ä¼ è¿‡æ¥çš„sourceData参数的vlaue可能是json这儿做一下处理
        if(Func.isNotEmpty(dataGridQuery.getSourceData())){
            dataGridQuery.setSourceData(this.convertMapValueJson2Map(dataGridQuery.getSourceData()));
        }
        //先判断查询模板
        UITableDefineVO tableDefineVO = uiEngineService.getComponentByOid(dataGridQuery.getComponentOid(),null).getTableDefineVO();
        String queryTemplate = !CollectionUtils.isEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName();
        String queryTemplate = Func.isNotEmpty(dataGridQuery.getSourceData())? (String) dataGridQuery.getSourceData().getOrDefault("querytemplate",tableDefineVO.getQueryTemplateName()) :tableDefineVO.getQueryTemplateName();
        if(StringUtils.isBlank(queryTemplate)){
            //说明没有设置查询模板,需要看看在这个表格所在的组件有没有设置
            tableDefineVO = uiEngineService.getTableById(dataGridQuery.getBtmname(), dataGridQuery.getTableDefineId());
@@ -226,6 +234,10 @@
    @Override
    public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formQuery,"表单的查询对象",formQuery.getBtmname(),"业务类型的信息",formQuery.getOid(),"业务数据的主键",formQuery.getFormDefineId(),"表单的定义编号");
        // TODO: 2024/12/4 Ludc å‰ç«¯ä¼ è¿‡æ¥çš„sourceData参数的vlaue可能是json这儿做一下处理
        if(Func.isNotEmpty(formQuery.getSourceData())){
            formQuery.setSourceData(this.convertMapValueJson2Map(formQuery.getSourceData()));
        }
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId());
        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());
@@ -326,7 +338,6 @@
    /**
     * å°è£…replaceMap
     * @param sourceDataMap æ¥æºæ•°æ®
     * @return æ›¿æ¢åŽçš„值
     */
@@ -357,6 +368,10 @@
    @Override
    public List<UIDataTree> getDataForTree(UITreeQuery treeQuery) throws Exception {
        VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getBtmname(),"业务类型的信息",treeQuery.getComponentOid(),"树所在的组件的主键");
        // TODO: 2024/12/4 Ludc å‰ç«¯ä¼ è¿‡æ¥çš„sourceData参数的vlaue可能是json这儿做一下处理
        if(Func.isNotEmpty(treeQuery.getSourceData())){
            treeQuery.setSourceData(this.convertMapValueJson2Map(treeQuery.getSourceData()));
        }
        Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
        UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
        if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){
@@ -570,6 +585,10 @@
    @Override
    public BaseResult getDataByTemp(UITreeQuery treeQuery) throws Exception {
        VciBaseUtil.alertNotNull(treeQuery,"表单的查询对象",treeQuery.getComponentOid(),"当前组件的主键");
        // TODO: 2024/12/4 Ludc å‰ç«¯ä¼ è¿‡æ¥çš„sourceData参数的vlaue可能是json这儿做一下处理
        if(Func.isNotEmpty(treeQuery.getSourceData())){
            treeQuery.setSourceData(this.convertMapValueJson2Map(treeQuery.getSourceData()));
        }
        //1、先查询页面定义组件
        Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
        UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
@@ -755,6 +774,16 @@
            Map<String, Object> returnMap = new HashMap<>();
            returnMap.put((String) cloMap.get("linktypename"),cloMap);
            returnMap.put((String) cbo2Map.get("btmname"),cbo2Map);
            // TODO: 2024/12/4 Ludc å°†ä¸€äº›é‡è¦çš„后续可能需要用到的属性放入第一层Map
            String fOid = (String)cbo2Map.get("f_oid");
            if(Func.isNotBlank(fOid)){
                returnMap.put("f_oid",fOid);
            }else{
                if(Func.isNotEmpty(cbo2Map.get("oid"))){
                    returnMap.put("oid",cbo2Map.get("oid").toString());
                }
            }
            tree.setAttributes(returnMap);
            tree.setIndex(i[0] + "");
            i[0]++;