package com.vci.web.service; import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.data.LinkObject; import com.vci.corba.omd.data.RevisionDataInfo; import com.vci.corba.omd.data.VersionDataInfo; import com.vci.starter.web.enumpck.VciChangeDocumentTypeEnum; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.model.BaseModel; import com.vci.starter.web.pagemodel.*; import com.vci.web.dto.*; import com.vci.web.pageModel.OsBtmTypeVO; import com.vci.web.pageModel.ReferConfigVO; import com.vci.web.pageModel.UIFormDataVO; import com.vci.web.query.UIDataGridQuery; import com.vci.web.query.UIFormQuery; import com.vci.web.query.UITreeQuery; import java.util.Collection; import java.util.List; import java.util.Map; /** * 通过UI定义的数据操作服务,包括增删改查 ,升版,跃迁等 * @author weidy * @date 2021-2-16 */ public interface UIDataServiceI { /** * 获取表格的数据 * @param dataGridQuery 表格查询,必须有业务类型名称和 表格的编号 * @return DataGrid中data为Map格式 * @throws VciBaseException 查询出错的时候会抛出异常 */ DataGrid getDataForGrid(UIDataGridQuery dataGridQuery) throws VciBaseException; /** * 获取表单的数据 * @param formQuery 表单的查询条件 * @return 表单的数据 * @throws VciBaseException 查询出错的时候会抛出异常 */ UIFormDataVO getDataForForm(UIFormQuery formQuery) throws VciBaseException; /** * 获取树形数据 * @param treeQuery 树形查询条件 * @return 树形数据 * @throws VciBaseException 查询出错的时候会抛出异常 */ List getDataForTree(UITreeQuery treeQuery) throws VciBaseException; /** * 调用前置事件 * @param baseModelDTOList 业务数据的信息 * @param baseLinkModelDTOList 链接类型的数据 * @param preEvent 前置事件的名称 * @param businessType 调用的类型 * @return 执行结果,请判断success属性是否为true * @throws VciBaseException 配置或者是调用不成功的时候,会抛出异常 */ BaseResult callPreEvent(BaseModelDTOList baseModelDTOList, BaseLinkModelDTOList baseLinkModelDTOList,String preEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException; /** * 后置事件 * @param cbos 添加完成后内容 * @param clos 添加完链接类型的内容 * @param postEvent 后置事件的名称,如果为空会自动扫描是否有注解 * @param businessType 业务操作的类型 * @return 执行的结果 * @throws VciBaseException 执行出错的会抛出异常,或者事件直接返回了异常 */ BaseResult callPostEvent(Collection cbos, Collection clos, String postEvent, VciChangeDocumentTypeEnum businessType) throws VciBaseException; /** * 表单数据转换为基础对象 * @param formDataDTO 表单数据 * @return 基础对象列表 */ BaseModelDTOList formData2DTOList(FormDataDTO formDataDTO); /** * 链接数据 转换为基础对象 * @param formLinkDataDTO 表单数据 * @return 基础数据列表 */ BaseLinkModelDTOList formLinkData2DTOList(FormLinkDataDTO formLinkDataDTO); /** * 表单的数据转换为 * @param formDataDTOList 表单数据 * @return 基础对象列表 */ BaseModelDTOList formDataList2DTOList(FormDataDTOList formDataDTOList); /** * 链接类型批量转换 * @param formLinkDataDTOList 表单的数据 * @return 基础对象列表 */ BaseLinkModelDTOList formLinkDataList2DTOList(FormLinkDataDTOList formLinkDataDTOList); /** * 添加数据 * @param formDataDTO 数据的传输对象 * @return 执行结果和显示后的值 * @throws VciBaseException 保存出错的时候会抛出异常 */ BaseResult> addSave(FormDataDTO formDataDTO) throws VciBaseException; /** * 业务类型 * @param cbo 业务数据对象 * @return 基础对象 */ BaseModel cbo2BaseModel(BusinessObject cbo); /** * 业务数据表单对象转换为基础的属性 * @param formDataDTO 表的数据传输对象 * @return 数据的映射内容 */ Map formDataDTO2MapLow(FormDataDTO formDataDTO); /** * 链接数据表单对象转换为基础的属性 * @param formLinkDataDTO 表的数据传输对象 * @return 数据的映射内容 */ Map formLinkDataDTO2MapLow(FormLinkDataDTO formLinkDataDTO); /** * 获取下一个版本号 * @param btmTypeVO 业务类型的显示对象 * @param baseModel 基础对象 * @return 版本的对象 */ RevisionDataInfo getNextRevision(OsBtmTypeVO btmTypeVO, BaseModel baseModel); /** * 获取下一个版次的号 * @param btmTypeVO 业务类型的显示对象 * @param baseModel 基础对象 * @return 版本的值对象 */ VersionDataInfo getNextVersion(OsBtmTypeVO btmTypeVO, BaseModel baseModel); /** * 获取第一个版次 * @param versionRule 版次的规则 * @return 第一个版次 */ String getFirstVersion(String versionRule); /** * 批量添加数据 * @param formDataDTOList 数据的传输对象 * @return 执行结果和主键 * @throws VciBaseException 保存出错的时候会抛出异常 */ BaseResult batchAddSave(FormDataDTOList formDataDTOList) throws VciBaseException; /** * 修改数据。注意表单定义的字段才会被修改,ts这种默认字段除外 * @param formDataDTO 数据的传输对象 * @return 执行结果和显示后的值 * @throws VciBaseException 保存出错的时候会抛出异常 */ BaseResult> editSave(FormDataDTO formDataDTO) throws VciBaseException; /** * 数据升版 * @param formDataDTO 数据的传输对象 * @return 执行结果和显示后的值 * @throws VciBaseException 保存出错的时候会抛出异常 */ BaseResult> upRevision(FormDataDTO formDataDTO) throws VciBaseException; /** * 批量修改,注意表单定义的字段才会被修改,ts这种默认字段除外 * @param formDataDTOList 数据的传输对象 * @return 执行结果和显示后的值 * @throws VciBaseException 保存出错的时候会抛出异常 */ BaseResult batchEditSave(FormDataDTOList formDataDTOList) throws VciBaseException; /** * 批量删除 * @param deleteDataDTO 数据的传输对象 * @return 执行结果 * @throws VciBaseException 数据被引用的时候会抛出异常 */ BaseResult batchDelete(DeleteDataDTO deleteDataDTO) throws VciBaseException; /** * 链接类型添加 * @param formLinkDataDTO 链接类型的表单数据 * @return 链接类型的主键 * @throws VciBaseException 参数为空,必输项缺失 */ BaseResult linkAddSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException; /** * 设置值到业务类型的对象上 * @param dataLow 数据(key小写) * @param baseDataLow 基础属性的数据(key小写) * @param cbo 业务类型的对象 * @param editFlag 是否为编辑 */ void setValueToCbo(Map dataLow, Map baseDataLow, BusinessObject cbo, boolean editFlag); /** * 链接类型的编辑数据 * @param formLinkDataDTO 数据的传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,必输项缺失 */ BaseResult linkEditSave(FormLinkDataDTO formLinkDataDTO) throws VciBaseException; /** * 删除链接类型 * @param deleteLinkDataDTO 数据的传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,必输项缺失 */ BaseResult batchLinkDelete(DeleteLinkDataDTO deleteLinkDataDTO)throws VciBaseException; /** * 获取参照的信息 * @param referConfigVO 参照的配置 * @param pageHelper 分页的工具 * @return 列表数据 */ DataGrid referDataGrid(ReferConfigVO referConfigVO, PageHelper pageHelper); /** * 获取树形的参照 * @param referConfigVO 参照的配置 * @return 树形的数据 */ List referTree(ReferConfigVO referConfigVO); /** * 表单的数据查询 * @param btmName 业务类型的信息 * @param oid 业务数据的主键 * @return 业务数据的属性信息 */ List> getDataAttr(String btmName, String oid); }