package com.vci.web.service; import com.vci.corba.common.PLException; import com.vci.corba.omd.btm.BizType; import com.vci.dto.OsBtmTypeDTO; import com.vci.model.IndexObject; import com.vci.pagemodel.OsBtmTypeAttributeVO; import com.vci.pagemodel.OsBtmTypeVO; import com.vci.pagemodel.OsERVO; import com.vci.pagemodel.OsUsedAttributeVO; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; 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 OsBtmServiceI 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 selectAllBtm(); /** * 获取名字以filter开始的业务类型(for 查询),主要用于属性池的业务类型选择对话框 * 获取全部业务类型,传参filter为"" * @param btmName * @return * @throws PLException */ BizType[] getBizTypes(String btmName) throws PLException; /** * 查询所有的业务类型映射 * @return key 是业务的英文名称的小写 */ Map selectAllBtmMap(); /** * 数据对象转换为显示对象 * @param btmItems 数据对象 * @return 显示对象 */ List btmDO2VOs(Collection btmItems); /** * 数据对象转换为显示对象 * @param btmItem 数据对象 * @return 显示对象 */ OsBtmTypeVO btmDO2VO(BizType btmItem); /** * 使用编号获取业务类型 * @param btmIds 编号 * @return 业务类型 */ List listBtmByIds(Collection btmIds); /** * 使用编号获取业务类型 * @param id 编号 * @return 业务类型 */ OsBtmTypeVO getBtmById(String id); /** * 获取业务类型的在哪个属性中使用 * @param btmName 业务类型 * @return 引用的信息 */ List listBtmUsedInfo(String btmName); /** * 获取业务类型的在哪个属性中使用 * * @param btmId 业务类型 * @param hasLink 是否包含链接类型中 * @return 引用的信息 */ List listBtmUsedInfo(String btmId, boolean hasLink); /** * 根据业务类型获取包含的属性--不包含基础属性 * @param btmId 业务类型的编号 * @return 属性的内容 */ List listAttributeByBtmId(String btmId) throws PLException; /** * 根据业务类型获取包含的属性--包含基础属性 * @param btmId 业务类型的编号 * @return 属性的内容 */ List listAttributeByBtmIdHasDefault(String btmId) throws PLException; /** * 参照业务类型 * * @param conditionMap 查询条件 * @param pageHelper 分页的对象 * @return 业务类型的信息 */ DataGrid referDataGrid(Map conditionMap, PageHelper pageHelper); /** * 使用主键查询 * @param oid 主键 * @return 业务类型 */ OsBtmTypeVO selectByOid(String oid); /** * 使用编号获取枚举的名称 * @param id 枚举的英文 * @return 枚举的名称 */ String getNameById(String id); /** * 根据业务类型和链接类型生成ER图 * @param btmId 业务类型主键 */ OsERVO createERDiagram(String btmId); /** * 获取使用这个业务类型的E-R图 * @param btmId 业务类型编号 * @return 执行结果 */ OsERVO createERUsed(String btmId); /** * 获取所有业务类型(树形结构) * @return 查询结果 */ List getTreeBizTypes() throws PLException; /** * 获取所有业务类型名称集合 * @return */ List getAllBtmName() throws PLException; /** * 获取业务全部属性类型 * @param btmName 业务类型名称 * @return 属性的信息 */ List getBizTypeQTDs(String btmName) throws PLException, ParseException; /** * 创建新的业务类型 * @return * @throws PLException */ boolean addBtmType(OsBtmTypeDTO btmTypeDTO) throws PLException; /** * 批量新增业务类型 * @param bizTypes * @return */ //boolean addBtmTypes(List bizTypes); /** * 修改业务类型 * @param btmTypeDTO * @return * @throws PLException */ boolean updateBtmType(OsBtmTypeDTO btmTypeDTO) throws PLException; /** * 删除业务类型 * @param btmTypeDTO * @return * @throws PLException */ boolean deleteBtmType(OsBtmTypeDTO btmTypeDTO) throws PLException; /** * 一致性检查 * @return * @throws PLException */ BaseResult checkBtmConsistency() throws PLException; /** * 一致性检查修复功能 * @param repairData * @return */ BaseResult executeRepair(String repairData) throws Exception; /** * 创建视图 * @return * @throws PLException */ boolean createView() throws PLException; /** * 删除数据界面的查询 * @return 业务类型,链接类型 */ BaseResult getObjectData() throws PLException; /** * 删除数据 * @param btmNames 业务类型名 * @param linkNames 链接类型名 * @return * @throws PLException */ List truncateTable(String[] btmNames,String[] linkNames) throws PLException; /** * 删除全部类型 * @return * @throws PLException */ BaseResult deleteAllType() throws PLException; /** * 根据业务类型名称和索引名称查询获取已有的索引 * @param conditionMap 根据查询条件传参: typename:业务类型名;indexname:索引名 * @return */ List getIndexByCondition(Map conditionMap) throws PLException; /** * 根据业务类型名称和其下的属性名称删除索引 * @param btmName * @param indexName * @return */ boolean delIndex(String btmName,String indexName) throws PLException; /** * 给业务类型下的指定属性新增索引 * @param indexObjectList * @return */ boolean addIndex(List indexObjectList) throws PLException; /** * 导出业务类型 * oid 业务类型名称 * @return 创建结果 */ void expData(String oid, HttpServletResponse response) throws PLException, IOException; /** * 导入业务类型 * @param file 上传的文件 * @return */ BaseResult impData(MultipartFile file) throws Exception; }