优化业务数据的查询接口;修改业务数据保存和编辑接口没有保存基础默认属性问题。
已修改15个文件
246 ■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/BaseModelDTO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeleteDataDTO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/PRMItemDO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/PlatformWebApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web/src/main/resources/menuConfig.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/BaseModelDTO.java
@@ -19,6 +19,7 @@
     * 数据
     */
    private Map<String,String> data = new HashMap<>();
    /**
     * 子表的业务类型
     */
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/DeleteDataDTO.java
@@ -18,6 +18,7 @@
     * 序列化
     */
    private static final long serialVersionUID = -7983807253912311472L;
    /**
     * 校验是否被引用的开关
     */
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/PRMItemDO.java
@@ -163,11 +163,11 @@
    /**
     * 查询模板名称
     */
    private String itemQtName = "";
    private String itemQtName = "0";
    /**
     * 是否必填 0:否,1:是
     */
    private String itemIsRequired = "";
    private String itemIsRequired = "0";
    /**
     *http存储开关  0:否,1:是
     */
Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/MenuVO.java
@@ -81,7 +81,7 @@
    private Integer sort;
    /**
     * 菜单类型
     * 菜单类型: 0:菜单,1:按钮
     */
    private Integer category;
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/PlatformWebApplication.java
@@ -41,4 +41,4 @@
    public void preDestroy(){
        System.out.println("停了平台web客户端的服务");
    }
}
}
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/SmFunctionQueryServicePlatformImpl.java
@@ -340,6 +340,7 @@
                                    menuVO.setModeType("FunctionObject");
                                    menuVO.setIsValid(info.isValid);
                                    menuVO.setHasChildren(false);
                                    menuVO.setCategory(1);
                                    menuVOList.add(menuVO);
                                }
                            }
@@ -357,6 +358,7 @@
                                    MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
                                    menuVO.setChildType(childType);
                                    menuVO.setModeType("FunctionObject");
                                    menuVO.setCategory(0);
                                    menuVOList.add(menuVO);
                                }
                            }
@@ -389,7 +391,9 @@
                        FunctionInfo funcInfo = funcInfos[i];
                        MenuVO menuVO = this.functionInfoToMenuVO(funcInfo);
                        menuVO.setModeType("FunctionObject");
                        childType = this.checkChildObject(funcInfos[i].id);
                        menuVO.setChildType(childType);
                        menuVO.setCategory(0);
                        menuVOList.add(menuVO);
                    }
                    return menuVOList;
@@ -416,7 +420,7 @@
                    menuVO.setName(operateInfo.name);
                    menuVO.setCode(operateInfo.identify);
                    menuVO.setAlias(operateInfo.alias);
                    menuVO.setCategory(2);
                    menuVO.setCategory(1);
                    menuVO.setChildType(0);
                    menuVO.setRemark(operateInfo.desc);
                    menuVO.getMeta().put("keepAlive",false);
@@ -471,7 +475,7 @@
    @Override
    public int checkChildObject(String moduleId) throws VciBaseException {
        long res = 0;
        try{//20D63A69-C6BC-8519-8B2B-E5ACFEA62394
        try{
            res = platformClientUtil.getFrameworkService().checkChildObject(moduleId);
        }catch (PLException e) {
            e.printStackTrace();
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java
@@ -93,7 +93,6 @@
        }else{
            return portalVIServiceI.addSave(portalVIDTO);
        }
    }
    /**
     * 表单/table删除
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
@@ -7,13 +7,17 @@
import com.vci.dto.FormLinkDataDTO;
import com.vci.starter.web.annotation.controller.VciUnCheckRight;
import com.vci.starter.web.annotation.log.VciBusinessLog;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.*;
import com.vci.pagemodel.ReferConfigVO;
import com.vci.pagemodel.UIFormDataVO;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.web.query.UIDataGridQuery;
import com.vci.web.query.UIFormQuery;
import com.vci.web.query.UITreeQuery;
import com.vci.web.service.UIDataServiceI;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -39,6 +43,11 @@
    private UIDataServiceI uiDataService;
    /**
     * 日志
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
    /**
     * 列表查询
     * @param dataGridQuery 查询对象
     * @return 列表数据
@@ -59,7 +68,14 @@
    @VciUnCheckRight
    @VciBusinessLog(operateName = "表单的查询",description = "${param.btmname}里的${param.formDefineId}")
    public BaseResult<UIFormDataVO> getDataForForm(UIFormQuery formQuery){
        return BaseResult.success(uiDataService.getDataForForm(formQuery));
        try {
            return BaseResult.success(uiDataService.getDataForForm(formQuery));
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "表单数据查询时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -83,7 +99,14 @@
    @VciUnCheckRight
    @VciBusinessLog(operateName = "添加数据",description = "${param.btmname}")
    public BaseResult<Map<String,Object>> addSave(@RequestBody FormDataDTO formDataDTO){
        return uiDataService.addSave(formDataDTO);
        try {
            return uiDataService.addSave(formDataDTO);
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "添加数据时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -94,7 +117,14 @@
    @PostMapping("/linkAddSave")
    @VciBusinessLog(operateName = "添加链接数据",description = "${param.linkType}")
    public BaseResult<String> linkAddSave(@RequestBody FormLinkDataDTO formLinkDataDTO){
        return uiDataService.linkAddSave(formLinkDataDTO);
        try {
            return uiDataService.linkAddSave(formLinkDataDTO);
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "添加链接类型数据时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -106,7 +136,14 @@
    @VciUnCheckRight
    @VciBusinessLog(operateName = "修改数据",description = "${param.btmname}里的${param.oid}")
    public BaseResult<Map<String,Object>> editSave(@RequestBody FormDataDTO formDataDTO){
        return uiDataService.editSave(formDataDTO);
        try {
            return uiDataService.editSave(formDataDTO);
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "修改数据时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -117,7 +154,14 @@
    @VciBusinessLog(operateName = "修改链接类型数据",description = "${param.linkType}里的${param.oid}")
    @PutMapping("/linkEditSave")
    public BaseResult linkEditSave(@RequestBody FormLinkDataDTO formLinkDataDTO){
        return uiDataService.linkEditSave(formLinkDataDTO);
        try {
            return uiDataService.linkEditSave(formLinkDataDTO);
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "修改链接类型的数据时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -156,10 +200,17 @@
     * @return 执行的结果
     */
    @DeleteMapping("/deleteData")
    @VciUnCheckRight
    //@VciUnCheckRight
    @VciBusinessLog(operateName = "删除数据",description = "${param.dataList.0.btmname}的${param.dataList.${join}.oid}")
    public BaseResult deleteData(@RequestBody DeleteDataDTO deleteDataDTO){
        return uiDataService.batchDelete(deleteDataDTO);
        try {
            return uiDataService.batchDelete(deleteDataDTO);
        }catch (Exception e){
            e.printStackTrace();
            String errorMsg = "删除数据时出现错误,原因:"+ VciBaseUtil.getExceptionMessage(e);
            logger.error(errorMsg);
            throw new VciBaseException(errorMsg);
        }
    }
    /**
@@ -181,7 +232,14 @@
    @GetMapping("/defaultReferDataGrid")
    @VciBusinessLog(operateName = "获取参照的列表数据",description = "")
    public DataGrid defaultReferDataGrid(ReferConfigVO referConfigVO,PageHelper pageHelper){
        return uiDataService.referDataGrid(referConfigVO,pageHelper);
        try {
            return uiDataService.referDataGrid(referConfigVO,pageHelper);
        }catch (Exception e){
            e.printStackTrace();
            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/service/OsBtmServiceI.java
@@ -103,11 +103,21 @@
    List<OsBtmTypeVO> listBtmByIds(Collection<String> btmIds);
    /**
     * TODO:尽量别用这个方法很慢,做了一次全查再转来转去
     * 使用编号获取业务类型
     * @param id 编号
     * @return 业务类型
     */
    OsBtmTypeVO getBtmById(String id);
    /**
     * 使用类型名获取业务类型,查不到直接报错
     * @param btmName 类型名
     * @return 业务类型
     * @throws
     */
    OsBtmTypeVO getBtmByName(String btmName) throws PLException;
    /**
     * 使用编号获取业务类型
     * @param id 编号
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
@@ -42,7 +42,7 @@
     * @return 表单的数据
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException;
    UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException;
    /**
     * 获取树形数据
@@ -108,7 +108,7 @@
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<Map<String,Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException;
    BaseResult<Map<String,Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException;
    /**
     * 业务类型
@@ -160,7 +160,7 @@
     * @return 执行结果和主键
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException;
    BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException;
    /**
     * 修改数据。注意表单定义的字段才会被修改,ts这种默认字段除外
@@ -168,7 +168,7 @@
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<Map<String,Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException;
    BaseResult<Map<String,Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException;
    /**
     * 数据升版
@@ -184,7 +184,7 @@
     * @return 执行结果和显示后的值
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException;
    BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException;
    /**
     * 批量删除
@@ -192,7 +192,7 @@
     * @return 执行结果
     * @throws VciBaseException 数据被引用的时候会抛出异常
     */
    BaseResult batchDelete(DeleteDataDTO deleteDataDTO)  throws VciBaseException;
    BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException;
    /**
     * 链接类型添加
@@ -200,7 +200,7 @@
     * @return 链接类型的主键
     * @throws VciBaseException 参数为空,必输项缺失
     */
    BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException;
    BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException;
    /**
     * 设置值到业务类型的对象上
@@ -217,7 +217,7 @@
     * @return 执行结果
     * @throws VciBaseException 参数为空,必输项缺失
     */
    BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException;
    BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException;
    /**
     * 删除链接类型
@@ -233,7 +233,7 @@
     * @param pageHelper 分页的工具
     * @return 列表数据
     */
    DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper);
    DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) throws PLException;
    /**
     * 获取树形的参照
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsActionServiceImpl.java
@@ -186,7 +186,8 @@
    @Override
    public BaseResult getActionTableData(PLActionQueryDTO dto) throws PLException {
        Constraint[] consArray ;
        if(StringUtils.isNotBlank(dto.getPlactioncls())){
        //这儿要用!=null控制,查询未分类节点的时候传的""
        if(dto.getPlactioncls() != null){
            consArray = new Constraint[7];
            consArray[6] = new Constraint("plactioncls", dto.getPlactioncls().equals("root") ? "": dto.getPlactioncls());
        }else {
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java
@@ -246,7 +246,7 @@
            vo.setDelimiter(btmItem.delimiter);
            vo.setfName(btmItem.fName);
            vo.setVersionRule(String.valueOf(btmItem.verRuleName));
            if (StringUtils.isNotBlank(vo.getRevisionRuleName()) || vo.isInputRevisionFlag()) {
            if (StringUtils.isNotBlank(vo.getRevisionRuleId()) || vo.isInputRevisionFlag()) {
                vo.setRevisionFlag(true);
            }
            vo.setLifeCycleIds(Arrays.stream(btmItem.lifeCycles).collect(Collectors.joining(",")));
@@ -313,6 +313,25 @@
        }
        return self.selectAllBtmMap().getOrDefault(id.toLowerCase(), null);
    }
    /**
     * 使用类型名获取业务类型,查不到直接报错
     * @param btmName 类型名
     * @return 业务类型
     * @throws
     */
    @Override
    public OsBtmTypeVO getBtmByName(String btmName) throws PLException{
        if(Func.isBlank(btmName)){
            throw new PLException("500",new String[]{"查询条件类型名不能为空!"});
        }
        BizType bizType = platformClientUtil.getBtmService().getBizTypeByName(btmName);
        if(Func.isEmpty(bizType) || Func.isBlank(bizType.oid)){
            throw new PLException("500",new String[]{"根据【"+btmName+"】未查询到对应业务类型!"});
        }
        return btmDO2VO(bizType,null);
    }
    /**
     * 使用编号获取业务类型
     *
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -53,7 +53,7 @@
import java.util.stream.Collectors;
/*
  * 链接类型服务
 * 表单/表格服务
 * @author xiej
 * @date 2024-08-14
*/
@@ -211,7 +211,13 @@
                if (formFlag) {
                    throw new Throwable(viewName + "数据已经被UI组件引用,请重新选择要删除的对象!");
                }
                UITools.getService().deletePortalVIByID(id);
                PortalVI portalVI = new PortalVI();
                portalVI.id = portalVIDTO.getId();
                portalVI.viName = portalVIDTO.getViName();
                portalVI.viType = portalVIDTO.getViType();
                portalVI.typeName = portalVIDTO.getTypeName();
                portalVI.typeFlag = portalVIDTO.getTypeFlag();
                platformClientUtil.getPortalService().deletePortalVI(portalVI);
            }
        }catch (Throwable e){
            String exceptionMessage = "删除表单时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e);
@@ -224,20 +230,26 @@
    @Override
    public boolean delete(String ids) throws PLException {
        VciBaseUtil.alertNotNull(ids,"主键");
         List<String> idsList=  VciBaseUtil.str2List(ids);
        List<PortalVI> PortalVIList= new ArrayList<>();
        DeletePortalVIDTOList portalVIDTOList=new DeletePortalVIDTOList();
        List<String> idsList =  VciBaseUtil.str2List(ids);
        List<PortalVIDTO> portalVIDTOList = new ArrayList<>();
        DeletePortalVIDTOList deletePortalVIDTOList=new DeletePortalVIDTOList();
        idsList.stream().forEach(id->{
            PortalVI portalVI= null;
            try {
                portalVI = platformClientUtil.getPortalService().getPortalVIById(id);
                PortalVIList.add(portalVI);
                PortalVIDTO portalVIDTO = new PortalVIDTO();
                portalVIDTO.setId(portalVI.id);
                portalVIDTO.setTypeFlag(portalVI.typeFlag);
                portalVIDTO.setTypeName(portalVI.typeName);
                portalVIDTO.setViName(portalVI.viName);
                portalVIDTO.setViType(portalVI.viType);
                portalVIDTOList.add(portalVIDTO);
            } catch (PLException e) {
                e.printStackTrace();
            }
        });
        portalVIDTOList.setPortalVIDTOList(portalVIO2DTOS(PortalVIList));
        return delete(portalVIDTOList);
        deletePortalVIDTOList.setPortalVIDTOList(portalVIDTOList);
        return delete(deletePortalVIDTOList);
    }
    /**
@@ -648,7 +660,7 @@
        try {
            VciBaseUtil.alertNotNull(
                    portalVIDTO.getViName(),"名称"
                    ,portalVIDTO.getPrm().getFormQtName(),"绑定表单");
                    /*,portalVIDTO.getPrm().getFormQtName(),"绑定表单"*/);
            if(portalVIDTO.getPrm()==null||portalVIDTO.getPrm().getPrmItemList()==null||portalVIDTO.getPrm().getPrmItemList().size()==0){
                throw  new Throwable(labelName+",未设置");
            }
@@ -692,7 +704,7 @@
            }else{
                flag=platformClientUtil.getPortalService().judgeUpdateButton(portalVIDTO.getTypeFlag(), portalVIDTO.getViName(), portalVIDTO.getTypeName());
            }
            PortalVI pvi=portalVIDTOO2VI(portalVIDTO);
            PortalVI pvi = portalVIDTOO2VI(portalVIDTO);
            if (!isEdit) {
                flag= platformClientUtil.getPortalService().savePortalVI(pvi);
            } else {
@@ -801,7 +813,7 @@
     */
    @Override
    public List<PortalVIDTO> portalVIO2DTOS(Collection<PortalVI> PortalVIS) {
        List<PortalVIDTO>PortalVIDTOS  = new ArrayList<>();
        List<PortalVIDTO> PortalVIDTOS = new ArrayList<>();
        Optional.ofNullable(PortalVIS).orElseGet(()->new ArrayList<>()).stream().forEach(PortalVI -> {
            PortalVIDTO PPortalVIDTO = portalVIO2DTO(PortalVI);
            PortalVIDTOS.add(PPortalVIDTO);
@@ -809,15 +821,13 @@
        return PortalVIDTOS;
    }
    /**
     * 表单的数据对象转换为显示对象
     * @param portalVIDTO
     * @return
     */
    @Override
    public  PortalVI portalVIDTOO2VI(PortalVIDTO portalVIDTO) {
    public PortalVI portalVIDTOO2VI(PortalVIDTO portalVIDTO) {
        PortalVI portalVI = new PortalVI();
        portalVI.id = portalVIDTO.getId();
        portalVI.typeFlag = portalVIDTO.getTypeFlag();
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -2,6 +2,7 @@
import com.vci.corba.common.PLException;
import com.vci.corba.framework.data.UserInfo;
import com.vci.corba.omd.btm.BizType;
import com.vci.corba.omd.data.*;
import com.vci.corba.omd.lcm.LifeCycle;
import com.vci.dto.*;
@@ -176,7 +177,8 @@
            queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
            queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
        }else{
            btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname());
            //btmTypeVO = btmService.getBtmById(dataGridQuery.getBtmname());
            btmTypeVO = btmService.getBtmByName(dataGridQuery.getBtmname());
            queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
            queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
        }
@@ -197,8 +199,9 @@
            }
            return loService.queryGridByScheme(linkTypeDataQuery);
        }else {
            return boService.queryGridByScheme(queryTemplate,
            DataGrid dataGrid = boService.queryGridByScheme(queryTemplate,
                    dataGridQuery.getConditionMap(), replaceMap, dataGridQuery.getPageHelper(), queryFieldList.stream().collect(Collectors.toList()));
            return dataGrid;
        }
        //生命周期在其中查询后就会处理
        //枚举也会被处理了
@@ -212,7 +215,7 @@
     * @throws VciBaseException 查询出错的时候会抛出异常
     */
    @Override
    public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException {
    public UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formQuery,"表单的查询对象",formQuery.getBtmname(),"业务类型的信息",formQuery.getOid(),"业务数据的主键",formQuery.getFormDefineId(),"表单的定义编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formQuery.getBtmname(),formQuery.getFormDefineId());
        String queryTemplate = !CollectionUtils.isEmpty(formQuery.getSourceData())?formQuery.getSourceData().getOrDefault("querytemplate",formDefineVO.getQueryTemplateName()):formDefineVO.getQueryTemplateName();
@@ -242,7 +245,7 @@
            queryFieldList.addAll(linkTypeVO.getAttributes().stream().map(OsLinkTypeAttributeVO::getId).collect(Collectors.toList()));
            queryFieldList.addAll(WebLoServiceImpl.LO_BASE_FIELD_MAP.values());
        }else{
            btmTypeVO = btmService.getBtmById(formQuery.getBtmname());
            btmTypeVO = btmService.getBtmByName(formQuery.getBtmname());
            queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
        }
        queryFieldList.add("creator_name");
@@ -1054,7 +1057,7 @@
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    @Override
    public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException {
    public BaseResult<Map<String, Object>> addSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"添加的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
@@ -1110,7 +1113,7 @@
     * @param newVersion 新版次
     * @return  执行的结果
     */
    private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion){
    private BaseResult<BusinessObject> wrapperCbo(FormDataDTO formDataDTO,UIFormDefineVO formDefineVO,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException {
        //扩展属性的值
        Map<String, String> data = formDataDTO.getData();
        Map<String,String> dataLow = new HashMap<>();
@@ -1319,7 +1322,7 @@
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    @Override
    public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException {
    public BaseResult<String> batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formDataDTOList,"要添加的数据",formDataDTOList.getFormDataDTOS(),"要添加的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
@@ -1389,7 +1392,7 @@
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    @Override
    public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException {
    public BaseResult<Map<String, Object>> editSave(FormDataDTO formDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formDataDTO,"修改的数据对象",formDataDTO.getBtmname(),"业务类型的名称",formDataDTO.getFormDefineId(),"表单定义的编号");
        UIFormDefineVO formDefineVO = uiEngineService.getFormById(formDataDTO.getBtmname(), formDataDTO.getFormDefineId());
@@ -1493,7 +1496,7 @@
     * @throws VciBaseException 保存出错的时候会抛出异常
     */
    @Override
    public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException {
    public BaseResult<String> batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formDataDTOList,"要修改的数据",formDataDTOList.getFormDataDTOS(),"要修改的数据");
        //首先判断对象是否为空
        FormDataDTO firstFormDataDTO = formDataDTOList.getFormDataDTOS().stream().findFirst().get();
@@ -1550,7 +1553,7 @@
     * @throws VciBaseException 数据被引用的时候会抛出异常
     */
    @Override
    public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException {
    public BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(deleteDataDTO,"数据传输对象",deleteDataDTO.getDataList(),"数据传输对象");
        String btmName = deleteDataDTO.getDataList().get(0).getBtmname();
        List<String> oidList = deleteDataDTO.getDataList().stream().map(BaseModelDTO::getOid).collect(Collectors.toList());
@@ -1558,7 +1561,7 @@
        List<BusinessObject> cbo = null;
        if(deleteDataDTO.isCascade()){
            //级联删除
            OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
            OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName);
            OsBtmTypeAttributeVO parentAttributeVO = btmTypeVO.getAttributes().stream().filter(s -> s.getReferBtmTypeId().equalsIgnoreCase(btmName)).findFirst().orElseGet(null);
            if(parentAttributeVO != null){
                //页面分页不能显示超过1000
@@ -1639,7 +1642,7 @@
     * @throws VciBaseException 参数为空,必输项缺失
     */
    @Override
    public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException {
    public BaseResult<String> linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException {
        //首先判断对象是否为空
        VciBaseUtil.alertNotNull(formLinkDataDTO,"添加的数据对象",formLinkDataDTO.getLinkType(),"链接类型的名称",formLinkDataDTO.getFormDefineId(),"表单定义的编号");
        if(formLinkDataDTO.getData() ==null){
@@ -1815,7 +1818,7 @@
     * @param boData to的数据
     * @return 包含的对象
     */
    private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData){
    private BaseResult<BusinessObject> wrapperToCbo(FormLinkDataDTO formLinkDataDTO,UIFormDefineVO formDefineVO,String toOid,String toBtmName,Map<String,String> boData) throws PLException {
        Map<String,String> dataLow = new HashMap<>();
        boData.forEach((key,value)->{
            dataLow.put(key.toLowerCase(),value);
@@ -1935,14 +1938,15 @@
     * @param newVersion 是否升版次
     * @return cbo对象
     */
    public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion){
    public BusinessObject createOrGetCbo(Map<String,String> dataLowMap,Map<String,String> baseDataMap,boolean editFlag,boolean newRevision,boolean newVersion) throws PLException {
        String btmName = baseDataMap.get("btmname");
        String oid = baseDataMap.get("oid");
//        BusinessObject cbo = new BusinessObject();
        BusinessObject cbo = new BusinessObject();
        String copyfromversion = baseDataMap.get("copyfromversion");
        OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
        List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList());
        //OsBtmTypeVO btmTypeVO = btmService.getBtmById(btmName);
        OsBtmTypeVO btmTypeVO = btmService.getBtmByName(btmName);
        //List<String> attributeList = btmTypeVO.getAttributes().stream().map(attribute -> attribute.getId()).collect(Collectors.toList());
        if(editFlag || newRevision || newVersion){
            try {
                cbo = platformClientUtil.getBOFService().readBusinessObject(editFlag?oid:copyfromversion,btmName);
@@ -2038,6 +2042,7 @@
            if(StringUtils.isBlank(cbo.btName)){
                cbo.btName = btmTypeVO.getId();
            }
            if(btmTypeVO.isRevisionFlag()){
                //要管理版本
                if(btmTypeVO.isInputRevisionFlag() && StringUtils.isNotBlank(baseDataMap.getOrDefault("revisionvalue",""))){
@@ -2077,7 +2082,16 @@
//            }
//        }
        setValueToCbo(dataLowMap,baseDataMap,cbo,editFlag);
//        cbo.setName(dataLowMap.get("name"));
        //TODO:默认属性需要放在cbo外层
        if(StringUtils.isNotBlank(baseDataMap.getOrDefault("id",""))){
            cbo.id = baseDataMap.getOrDefault("id","");
        }
        if(StringUtils.isNotBlank(baseDataMap.getOrDefault("name",""))){
            cbo.name = baseDataMap.getOrDefault("name","");
        }
        if(StringUtils.isNotBlank(baseDataMap.getOrDefault("description",""))){
            cbo.description = baseDataMap.getOrDefault("description","");
        }
        return cbo;
    }
@@ -2141,7 +2155,7 @@
     * @throws VciBaseException 参数为空,必输项缺失
     */
    @Override
    public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException {
    public BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException, PLException {
        VciBaseUtil.alertNotNull(formLinkDataDTO,"修改的数据对象",formLinkDataDTO.getLinkType(),"链接类型的名称",
                formLinkDataDTO.getFormDefineId(),"表单定义的编号",formLinkDataDTO.getOid(),"主键",
                formLinkDataDTO.getFoid(),"from端主键",formLinkDataDTO.getToid(),"to端主键");
@@ -2328,10 +2342,10 @@
     * @return 列表数据
     */
    @Override
    public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) {
    public DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper) throws PLException {
        checkReferConfig(referConfigVO);
        //使用业务类型查询
        OsBtmTypeVO btmById = btmService.getBtmById(referConfigVO.getReferBo());
        OsBtmTypeVO btmById = btmService.getBtmByName(referConfigVO.getReferBo());
        if(referConfigVO.getConditionMap() == null){
            referConfigVO.setConditionMap(new HashMap<>());
        }
Source/plt-web/plt-web-parent/plt-web/src/main/resources/menuConfig.json
@@ -10,6 +10,7 @@
        "parentId": "VCIBaseTreeNode",
        "code": "systemManagmentNode",
        "alias": "system",
        "category": "0",
        "meta": {
          "keepAlive": false
        },
@@ -25,6 +26,7 @@
        "parentId": "VCIBaseTreeNode",
        "code": "modelManagmentNode",
        "alias": "model",
        "category": "0",
        "meta": {
          "keepAlive": false
        },
@@ -40,6 +42,7 @@
        "parentId": "VCIBaseTreeNode",
        "code": "operateNode",
        "alias": "operate",
        "category": "0",
        "meta": {
          "keepAlive": false
        },
@@ -55,6 +58,7 @@
        "parentId": "VCIBaseTreeNode",
        "code": "sysOptionNode",
        "alias": "sysOption",
        "category": "0",
        "meta": {
          "keepAlive": false
        },
@@ -70,6 +74,7 @@
        "parentId": "VCIBaseTreeNode",
        "code": "sysMonitorNode",
        "alias": "sysMonitor",
        "category": "0",
        "meta": {
          "keepAlive": false
        },
@@ -83,6 +88,7 @@
    "parentId": "systemManagmentNode",
    "code": "rootNode",
    "alias": "root",
    "category": "0",
    "meta": {
      "keepAlive": false
    },
@@ -99,6 +105,7 @@
    "parentId": "VCIBaseTreeNode",
    "code": "systemManagmentNode",
    "alias": "system",
    "category": "0",
    "meta": {
      "keepAlive": false
    },
@@ -115,6 +122,7 @@
    "parentId": "VCIBaseTreeNode",
    "code": "modelManagmentNode",
    "alias": "model",
    "category": "0",
    "meta": {
      "keepAlive": false
    },
@@ -131,6 +139,7 @@
    "parentId": "VCIBaseTreeNode",
    "code": "operateNode",
    "alias": "operate",
    "category": "0",
    "meta": {
      "keepAlive": false
    },