package com.vci.ubcs.omd.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.vci.ubcs.omd.entity.LinkType; import com.vci.ubcs.omd.vo.BtmTreeVO; import com.vci.ubcs.omd.vo.LinkTypeAttributeVO; import com.vci.ubcs.omd.vo.LinkTypeVO; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.web.pagemodel.PageHelper; import org.springblade.core.mp.base.BaseService; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; /** * Description: 链接类型的服务接口 * * @author LiHang * @date 2023/5/24 */ public interface ILinkTypeService extends BaseService { /** * 获取链接类型列表 * @param conditionMap 查询条件 * @param pageHelper 分页信息和排序信息,默认使用id排序 * @return 链接类型对象列表 * @throws VciBaseException 查询出错时会抛出异常 */ IPage listLinkType(Map conditionMap, PageHelper pageHelper) throws VciBaseException; /** * 根据主键获取链接类型 * @param pkLinkType 链接类型主键 * @return 链接类型,如果不存在会返回null * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ LinkTypeVO getLinkTypeByOid(String pkLinkType) throws VciBaseException; /** * 根据主键批量获取链接类型 * @param pkLinkTypes 链接类型主键,用逗号分隔 * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ List listLinkTypeByOids(String pkLinkTypes) throws VciBaseException; /** * 批量根据主键获取链接类型 * @param pkLinkTypeCollection 链接类型主键集合 * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ List listLinkTypeByOidCollection(Collection pkLinkTypeCollection) throws VciBaseException; /** * 根据英文名称获取链接类型 * @param id 英文名称 * @return 链接类型,如果不存在会返回null * @throws VciBaseException */ LinkTypeVO getLinkTypeById(String id) throws VciBaseException; /** * 根据英文名称批量获取链接类型 * @param ids 英文名称,使用逗号分隔 * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ List listLinkTypeByIds(String ids) throws VciBaseException; /** * 根据英文名称集合批量获取链接类型 * @param linkTypeIdCollection 英文名称集合,使用逗号分隔 * @return 链接类型列表,如果有不存在的不会返回,全部不存在的则返回空列表 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ List listLinkTypeByIdCollection(Collection linkTypeIdCollection) throws VciBaseException; /** * 获取链接类型的指定属性 * @param id 链接类型的英文名称 * @param attributeIdCollection 属性的集合,如果为空则获取全部 * @return 属性的显示对象 */ List listAttributeVOByIdsForLink(String id, Collection attributeIdCollection); /** * 根据链接类型主键获取中文名称 * @param oid 链接类型主键 * @return 中文名称,如果不存在会返回null;多个会以逗号分隔 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ String getNameByOid(String oid) throws VciBaseException; /** * 根据链接类型英文名称获取中文名称 * @param id 链接类型英文名称 * @return 中文名称,如果不存在会返回null;多个会以逗号分隔 * @throws VciBaseException 参数为空或者查询出错时会抛出错误 */ String getNameById(String id) throws VciBaseException; /** * 添加链接类型 * @param linkTypeVO 链接类型显示对象(和DTO共用) * @return 添加后的链接类型 * @throws VciBaseException 添加出错的时候会抛出异常 */ LinkTypeVO addSave(LinkTypeVO linkTypeVO) throws VciBaseException; /** * 添加链接类型 * @param linkTypeVO 链接类型显示对象(和DTO共用) * @param autoCreateTable 自动创建表格 * @return 添加后的链接类型 * @throws VciBaseException 添加出错的时候会抛出异常 */ LinkTypeVO addSave(LinkTypeVO linkTypeVO,boolean autoCreateTable) throws VciBaseException; /** * 修改链接类型 * @param linkTypeVO 链接类型显示对象(和DTO共用) * @return 修改后的链接类型 * @throws VciBaseException 修改出错的时候会抛出异常 */ LinkTypeVO editSave(LinkTypeVO linkTypeVO) throws VciBaseException; /** * 修改链接类型 * @param linkTypeVO 链接类型显示对象(和DTO共用) * @param autoCreateTable 自动创建表格 * @return 修改后的链接类型 * @throws VciBaseException 修改出错的时候会抛出异常 */ LinkTypeVO editSave(LinkTypeVO linkTypeVO,boolean autoCreateTable) throws VciBaseException; /** * 删除链接类型 * @param linkTypeVO 链接类型显示对象 * @throws VciBaseException 如果链接类型被引用,或者删除出错时会抛出异常 */ void delete(LinkTypeVO linkTypeVO) throws VciBaseException; /** * 批量删除链接类型 * @param linkTypeVOList 要删除的链接类型显示对象列表 * @throws VciBaseException 如果链接类型被引用,或者删除出错时会抛出异常 */ void batchDelete(List linkTypeVOList) throws VciBaseException; /** * 为链接类型添加属性对象 * @param attributeVO 属性显示对象 * @param tableName 表名 * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常 */ void addSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String serviceName) throws VciBaseException; /** * 为链接类型添加属性对象 * @param attributeVO 属性显示对象 * @param tableName 表名 * @param autoAdd2Table 是否自动添加到表格中 * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常 */ void addSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,boolean autoAdd2Table,String serviceName) throws VciBaseException; /** * 检查某个主键的链接类型是否存在 * @param pkLinkType 链接类型主键 * @return true表示存在,false表示不存在 * @throws VciBaseException 查询出错或者参数为空的时候抛出异常 */ boolean checkLinkTypeExist(String pkLinkType) throws VciBaseException; /** * 为链接类型修改属性对象 * @param attributeVO 属性显示对象 * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常 */ void editSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String domain) throws VciBaseException; /** * 为链接类型修改属性对象 * @param attributeVO 属性显示对象 * @param autoEdit2Table 是否自动修改到表格 * @throws VciBaseException 参数为空或者查询出错的时候会抛出异常 */ void editSaveAttribute(LinkTypeAttributeVO attributeVO,String tableName,String domain,boolean autoEdit2Table) throws VciBaseException; /** * 获取链接类型的数据库表名称 * @param id 链接类型的英文名称 * @param domain 领域值 * @return 数据库表名称 */ String getTableName(String id,String domain) ; /** * 获取所有使用的业务类型的英文名称,转换为小写 * @return 英文名称英文小写 */ Set listUsedBtmType(); /** * 按domain分组,查询业务类型属性结构 * @return 查询结果 */ List treeDomain(); /** * 获取链接类型,只有默认字段 * * @param linkTypeId 链接类型id * @return 默认字段属性 */ LinkTypeVO getLinkTypeDefaultAttrById(String linkTypeId); /** * 获取链接类型,有所有的字段 * * @param linkTypeId 链接类型id * @return 所有字段 */ LinkTypeVO getLinkTypeAllAttrById(String linkTypeId); /** * 获取链接类型,有所有的字段 * * @param linkTypeOid 链接类型主键 * @return 所有字段 */ LinkTypeVO getLinkTypeAllAttrByOid(String linkTypeOid); }