package com.vci.web.service; import com.vci.corba.common.PLException; import com.vci.corba.omd.ltm.LinkType; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.pagemodel.OsBtmTypeAttributeVO; import com.vci.pagemodel.OsLinkTypeAttributeVO; import com.vci.pagemodel.OsLinkTypeVO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.ParseException; import java.util.Collection; import java.util.List; import java.util.Map; /** * 链接类型服务 * @author weidy * @date 2021-2-15 */ public interface OsLinkTypeServiceI extends OsBaseServiceI{ /** * 修改业务类型中对应属性名的属性 * @param apName * @return * @throws PLException */ boolean alterAp(String apName) throws PLException; /** * 判断该属性是否已经在链接类型中产生了数据 * @param abName * @return * @throws PLException */ boolean hasInstance(String abName) throws PLException; /** * 获取连接类型名称集合 * @return */ List getAllLtName() throws PLException; /** * 获取使用该业务类型的链接类型名 * @param btmName 业务类型名称 * @return */ List getUsedBtmLinkList(String btmName); /** * 查询所有的链接类型 * @return 链接类型对象 */ List selectAllLink(); /** * 查询所有的链接类型映射 * @return key 是链接的英文名称的小写 */ Map selectAllLinkMap(); /** * 数据对象转换为显示对象 * @param linkTypes 数据对象 * @return 显示对象 */ List linkTypeDO2VOs(Collection linkTypes); /** * 数据对象转换为显示对象 * @param linkType 数据对象 * @return 显示对象 */ OsLinkTypeVO linkTypeDO2VO(LinkType linkType); /** * 使用编号获取链接类型 * @param linkIds 编号 * @return 链接类型 */ List listLinkTypeIds(Collection linkIds); /** * 使用编号获取链接类型 * @param id 编号 * @return 链接类型 */ OsLinkTypeVO getLinkTypeById(String id); /** * 获取链接类型的属性 * @param linkTypeId 链接类型的编号 * @return 链接类型的属性 */ List listAttributeByLinkId(String linkTypeId); /** * 链接类型的列表 * @param baseQueryObject 查询对象 * @return 链接类型的显示对象 */ DataGrid gridLinkType(BaseQueryObject baseQueryObject); /** * 使用主键获取显示对象 * @param linkTypeOid 链接类型的主键 * @return 链接类型的显示对象 */ OsLinkTypeVO selectByOid(String linkTypeOid); /** * 获取链接类型关联的所有业务类型中属性类型差异的信息 * @param linkTypeOid 链接类型的主键 * @return 有错误的属性 */ List checkAttributeTypeDifferent(String linkTypeOid); /** * 链接类型的列表 * * @return 链接类型的显示对象 */ BaseResult> gridLink() throws PLException; /** * 链接类型保存 * linkType 链接类型的保存对象 * addFlag 是否为新增 true新增,false修改 * @return 保存结果 */ BaseResult addAndEditLink(LinkType linkType, Boolean addFlag) throws PLException; /** * 链接类型删除 * linkType 链接类型对象 * @return 删除结果 */ BaseResult deleteLink(LinkType linkType) throws PLException; /** * 一致性检查 * @return 删除结果 */ BaseResult checkLinkType() throws PLException; /** * 一致性检查修复数据库表 * repairData 需要修复的数据 * @return 修复结果 */ BaseResult repairTable(String repairData) throws PLException, IOException; /** * 创建视图 * @return 创建结果 */ BaseResult createView() throws PLException; /** * 导出链接类型 * name 链接类型名称 * @return 创建结果 */ void expData(String oid, HttpServletResponse response) throws PLException, IOException; /** * 导入链接类型 * @param file 上传的文件 * @return */ BaseResult impData(MultipartFile file) throws Exception; /** * 获取链接类型包含的属性 * @param name 链接类型的编号 * @return 属性的信息 */ List getAllAttributeByLink(String name) throws PLException, ParseException; /** * 获取设置排序字段的排序字段 * @param linkType 链接类型的编号 * @param btmType 业务类型的编号 * @param direction 正/反向 * @return 属性的信息 */ List getAllOrderbyAttributeByLink(String linkType, String btmType, String direction) throws PLException, ParseException; }