package com.vci.ubcs.code.service; import com.vci.ubcs.code.entity.CodeClassifyDO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.wrapper.VciQueryWrapperForDO; import com.vci.web.pageModel.OsAttributeVO; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.dto.CodeClassifyDTO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import java.io.File; import java.util.Collection; import java.util.List; /** * 主题库分类服务接口 * * @author weidy * @date 2022-01-20 */ public interface CodeClassifyServiceI { /** * 查询主题库分类 树 * @param treeQueryObject 树查询对象 * @return 主题库分类 显示树 * @throws VciBaseException 查询条件不符合要求的时候会抛出异常 */ List treeCodeClassify(TreeQueryObject treeQueryObject) throws VciBaseException; /** * 主题库的树 * @param treeQueryObject 树形查询对象 * @return 主题库显示树 */ List treeTopCodeClassify(TreeQueryObject treeQueryObject); /** * 根据树形查询对象来查询数据对象 * * @param treeQueryObject 树形查询对象 * @return 查询结果,数据对象 */ List selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject); /** * 批量数据对象转换为显示对象 * @param codeClassifyDOs 数据对象列表 * @return 显示对象 * @throws VciBaseException 参数为空或者不存在的时候会抛出异常 */ List codeClassifyDO2VOs(Collection codeClassifyDOs) throws VciBaseException; /** * 数据对象转换为显示对象 * @param codeClassifyDO 数据对象 * @return 显示对象 * @throws VciBaseException 拷贝属性出错的时候会抛出异常 */ CodeClassifyVO codeClassifyDO2VO(CodeClassifyDO codeClassifyDO) throws VciBaseException; /** * 增加主题库分类 * @param codeClassifyDTO 主题库分类数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ CodeClassifyVO addSave(CodeClassifyDTO codeClassifyDTO) throws VciBaseException; /** * 修改主题库分类 * @param codeClassifyDTO 主题库分类数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ BaseResult editSave(CodeClassifyDTO codeClassifyDTO) throws VciBaseException; /** * 检查 主题库分类是否删除 * @param codeClassifyDTO 主题库分类数据传输对象,必须要有oid和ts属性 * @return 执行结果 success为true为可以删除,false表示有数据引用,obj为true表示有下级 * @throws VciBaseException 参数为空,被引用时抛出异常 */ BaseResult checkIsCanDelete(CodeClassifyDTO codeClassifyDTO) throws VciBaseException; /** * 检查是否有下级是否关联了数据 * * @param oid 主键 * @return true 表示有引用,false表示没有引用 * @throws VciBaseException 参数为空和有引用的时候会抛出异常 */ boolean checkChildIsLinked(String oid) throws VciBaseException; /** * 校验是否有下级节点,不校验是否关联了数据 * * @param oid 主键 * @return true表示有下级,false表示没有下级 * @throws VciBaseException 参数错误,或者数据不存在的时候会抛出异常 */ boolean checkHasChild(String oid) throws VciBaseException; /** * 删除主题库分类 * @param codeClassifyDTO 主题库分类数据传输对象,oid和ts需要传输 * @return 删除结果反馈::success:成功,fail:失败 * @throws VciBaseException 参数为空,被引用时抛出异常 */ BaseResult deleteCodeClassify(CodeClassifyDTO codeClassifyDTO) throws VciBaseException; /** * 主键获取主题库分类 * @param oid 主键 * @return 主题库分类显示对象 * @throws VciBaseException 参数为空,数据不存在时会抛出异常 */ CodeClassifyVO getObjectByOid(String oid) throws VciBaseException; /** * 主键批量获取主题库分类 * @param oidCollections 主键集合,但是受性能影响,建议一次查询不超过10000个 * @return 主题库分类显示对象 * @throws VciBaseException 查询出现异常时会抛出 */ Collection listCodeClassifyByOids(Collection oidCollections) throws VciBaseException; /** * 参照树 主题库分类 * @param treeQueryObject 树形查询对象 * @return 主题库分类显示树 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ List referTree(TreeQueryObject treeQueryObject) throws VciBaseException; /** * 启用、停用 * @param oid 主键 * @param lcStatus 状态 * @return 执行结果 */ BaseResult updateLcStatus( String oid, String lcStatus); /** * 使用查询封装器来查询 * @param queryWrapper 查询封装器 * @return 数据对象 */ List selectByWrapper(VciQueryWrapperForDO queryWrapper); /** * 使用分类主键获取分类相关的所有信息 * @param codeClassifyOid 分类的主键 * @return 分类上级,下级的信息 */ CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid); /** * 获取当前分类的顶层分类 * @param codeClassifyOid 分类的主键 * @return 顶层分类的信息 */ CodeClassifyVO getTopClassifyVO(String codeClassifyOid); /** * 统计子节点的个数 * @param codeClassifyOid 分类的主键 * @return 个数 */ int countChildrenByClassifyOid(String codeClassifyOid); /** * 获取子级的主题库分类 * * @param codeClassifyOid 分类的主键 * @param allLevel 是否所有的层级 * @param fieldInPath 在路径中的字段 * @param enable 是否只显示启用 * @return 分类的显示对象 */ List listChildrenClassify(String codeClassifyOid, boolean allLevel, String fieldInPath, boolean enable); /** * 反向从子级获取父级的主题库分类 * * @param codeClassifyOid 分类的主键 * @return 分类的显示对象 */ List listParentClassify(String codeClassifyOid); /** * 导出分类 * @param oid 分类主键 * @return excel文件路径 */ String exportClassify(String oid); /** * 创建导入模板 * @return excel文件路径 */ String createImportExcel(); /** * 导入分类 * @param file1 文件的信息 */ void importClassify(File file1); /** * 获取分类关联的属性 * @param baseQueryObject 查询对象,必须有codeClassifyOid,支持id和name两种查询条件 * @return 属性的信息,包含默认的属性 */ DataGrid listClassifyLinkAttr(BaseQueryObject baseQueryObject); /** * 使用编号的路径获取对象 * @param idPath 编号的路径,一定要从最顶层节点开始,格式为xxx/yyy/zz 这样 * @return 分类的显示对象 */ CodeClassifyVO getObjectByIdPath(String idPath); /** * 使用编号的路径获取对象 * @param clsfNamePath 分类名称的路径,一定要从最顶层节点开始,格式为xxx/yyy/zz 这样 * @return 分类的显示对象 */ CodeClassifyVO getObjectByClsfNamePath(String clsfNamePath); /*** * 根据上级节点获取下级节点代号路径和名称路径 * @param classifyId * @param enable * @return */ public List getIdPathToNamePathByParentId(String classifyId,boolean enable); }