package com.vci.ubcs.code.service; import com.vci.ubcs.code.entity.CodeRuleDO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.ubcs.code.dto.CodeRuleDTO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; import java.util.Collection; import java.util.List; import java.util.Map; /** * 主数据编码规则服务接口 * * @author weidy * @date 2022-01-24 */ public interface CodeRuleServiceI { /** * 查询所有的主数据编码规则 * @param conditionMap 查询条件 * @param pageHelper 分页和排序 * @return 执行结果 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ DataGrid gridCodeRule(Map conditionMap, PageHelper pageHelper) throws VciBaseException; /** * 批量数据对象转换为显示对象 * @param codeRuleDOs 数据对象列表 * @return 显示对象 * @throws VciBaseException 参数为空或者不存在的时候会抛出异常 */ List codeRuleDO2VOs(Collection codeRuleDOs) throws VciBaseException; /** * 批量数据对象转换为显示对象 * @param codeRuleDOs 数据对象列表 * @param hasSec 是否包含码段 * @return 显示对象 * @throws VciBaseException 参数为空或者不存在的时候会抛出异常 */ List codeRuleDO2VOs(Collection codeRuleDOs, boolean hasSec) throws VciBaseException; /** * 数据对象转换为显示对象 * @param codeRuleDO 数据对象 * @return 显示对象 * @throws VciBaseException 拷贝属性出错的时候会抛出异常 */ CodeRuleVO codeRuleDO2VO(CodeRuleDO codeRuleDO) throws VciBaseException; /** * 增加主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ CodeRuleVO addSave(CodeRuleDTO codeRuleDTO) throws VciBaseException; /** * 修改主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ CodeRuleVO editSave(CodeRuleDTO codeRuleDTO) throws VciBaseException; /** * 删除主数据编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象,oid和ts需要传输 * @return 删除结果反馈::success:成功,fail:失败 * @throws VciBaseException 参数为空,被引用时抛出异常 */ BaseResult deleteCodeRule(CodeRuleDTO codeRuleDTO) throws VciBaseException; /** * 校验编码规则的状态是否可以编辑或删除 * @param lcStatus 编码规则 * @return true表示可以编辑或删除,false表示不可以 */ boolean checkEditDelStatus(String lcStatus); /** * 主键获取主数据编码规则 * @param oid 主键 * @return 主数据编码规则显示对象 * @throws VciBaseException 参数为空,数据不存在时会抛出异常 */ CodeRuleVO getObjectByOid(String oid) throws VciBaseException; /** * 主键批量获取主数据编码规则 * @param oidCollections 主键集合,但是受性能影响,建议一次查询不超过10000个 * @return 主数据编码规则显示对象 * @throws VciBaseException 查询出现异常时会抛出 */ Collection listCodeRuleByOids(Collection oidCollections) throws VciBaseException; /** * 主键批量获取主数据编码规则 * @param oidCollections 主键集合,但是受性能影响,建议一次查询不超过10000个 * @param hasSec 是否包含码段 * @return 主数据编码规则显示对象 * @throws VciBaseException 查询出现异常时会抛出 */ Collection listCodeRuleByOids(Collection oidCollections,boolean hasSec) throws VciBaseException; /** * 使用编号的集合获取规则的内容 * @param idCollection 编号的集合 * @return 规则的内容 */ List listCodeRuleByIds(Collection idCollection); /** * 参照主数据编码规则列表 * @param conditionMap 查询条件 * @param pageHelper 分页和排序 * @return 主数据编码规则显示对象列表,生效的内容 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ DataGrid refDataGridCodeRule(Map conditionMap, PageHelper pageHelper) throws VciBaseException; /** * 查看主数据编码规则的使用范围 * @param oid 编码规则主键 * @return 主题库分类使用到该编码规则的所有集合 */ Collection listUseRangeInCodeClassify(String oid); /** * 检验编码规则是否已经被使用 * @param oid 编码规则主键 * @return true表示已经使用,false表示未被使用 */ boolean isAlreadyInUse(String oid); /** * 停用与启用编码规则 * @param oid 编码规则主键 * @param update enable:启用 disable:停用 release:发布 * @return 执行结果 */ BaseResult updateStatus(String oid, String update); /** * 克隆编码规则 * @param codeRuleDTO 主数据编码规则数据传输对象,oid和ts需要传输 * @return 主数据编码规则显示对象 */ BaseResult cloneCodeRule(CodeRuleDTO codeRuleDTO); /** * 使用主键获取编码规则的内容 * @param oid 主键 * @return 规则的显示对象 */ CodeRuleVO getObjectHasSecByOid(String oid); /** * 编码规则清空所有已生成的编码 * @param oid 编码规则主键 * @return 执行结果 */ BaseResult clearAllCode(String oid); }