package com.vci.ubcs.code.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.vci.ubcs.code.dto.CodeBasicSecDTO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.CodeRuleDTO; import com.vci.ubcs.code.entity.CodeBasicSec; import com.vci.ubcs.code.vo.CodeReferConfigVO; import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.web.pagemodel.*; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestBody; import java.rmi.ServerException; import java.util.*; /** * 固定码段的码值服务接口 * * @author ludc * @date 2022-01-24 */ public interface ICodeBasicSecService extends IService { /** * 查询所有的码段基础信息 * @param conditionMap 查询条件 * @param query 分页对象 * @return 执行结果 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ IPage gridCodeBasicSec(Query query, Map conditionMap) throws VciBaseException; /** * 根据编码规则批量删除码段基本信息 * @param codeRuleOid 编码规则主键 * @return 执行结果 */ boolean batchDeleteSecByCodeRuleOid(String codeRuleOid)throws VciBaseException; /** * 根据码段分类的类型判断属性是否是空的 * * @param codeBasicSecDTO 码段基础信息数据传输对象 * @return 有空的则传key-属性名 value-字段含义,没有空的则传 key-success value-true */ KeyValue checkAttrNullableBySecType(CodeBasicSecDTO codeBasicSecDTO); /** * 增加码段基础信息 * @param codeBasicSecDTO 码段基础信息数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ boolean addSave(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException; /** * 修改码段基础信息 * @param codeBasicSecDTO 码段基础信息数据传输对象 * @return 执行结果 * @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常 */ boolean editSave(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException; /** * 删除码段基础信息 * @param codeBasicSecDTO 码段基础信息数据传输对象,oid和ts需要传输 * @return 删除结果反馈::success:成功,fail:失败 * @throws VciBaseException 参数为空,被引用时抛出异常 */ R deleteCodeBasicSec(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException; /** * 主键删除码段基础信息 * @param oid 码段基础信息主键 * @return 删除结果反馈::success:成功,fail:失败 * @throws VciBaseException 参数为空,被引用时抛出异常 */ R deleteCodeBasicSecByPrimaryKey(String oid) throws VciBaseException; /** * 主键获取码段基础信息 * @param oid 主键 * @return 码段基础信息显示对象 * @throws VciBaseException 参数为空,数据不存在时会抛出异常 */ CodeBasicSecVO getObjectByOid(String oid) throws VciBaseException; /** * 主键批量获取码段基础信息 * @param oidCollections 主键集合,但是受性能影响,建议一次查询不超过10000个 * @return 码段基础信息显示对象 * @throws VciBaseException 查询出现异常时会抛出 */ Collection listCodeBasicSecByOids(Collection oidCollections) throws VciBaseException; /** * 参照码段基础信息列表 * @param conditionMap 查询条件 * @param query 分页和排序 * @return 码段基础信息显示对象列表,生效的内容 * @throws VciBaseException 查询条件和分页出错的时候会抛出异常 */ IPage refDataGridCodeBasicSec(Query query ,Map conditionMap) throws VciBaseException; /** * 参照分类的码段 * @param conditionMap 查询条件 * @param query 分页和排序 * @return 码段的内容 */ IPage refDataGridClassifySec(Query query ,Map conditionMap); /** * 克隆码段信息 * @param oidList 源码段信息主键集合 * @param pkCodeRule 目标编码规则 * @return 克隆结果反馈::success:成功,fail:失败 */ R cloneCodeBasicSec(List oidList, String pkCodeRule) throws ServerException; /** * 改变码段中父分类码段和子分类码段之间的关联oid为新的oid,并且不破坏分类码值的关联关系 * @param basicSecs * @return * @throws ServerException */ boolean changeParentOidAssnOid(List basicSecs) throws ServerException; /** * 查询目标分类码段所在的树结构 * @param oid 目标分类码段主键 * @return 分类码段树结构 */ //List gridCodeClassifySecTree(String oid); /** * 上移 * @param oid 主键 */ boolean upOrderNum(String oid); /** * 下移 * @param oid 主键 */ boolean downOrderNum(String oid); /** * 树形结构查询oid * @param codeClassifySecOid * @return */ List getOidByCodeclassifysecOid(String codeClassifySecOid); /** * 使用规则的主键获取对应的码段内容 * @param ruleOid 规则的内容 * @return 码段的内容 */ List listCodeBasicSecByRuleOid(String ruleOid); /** * 批量数据对象转换为显示对象 * * @param codeBasicSecDOs 数据对象列表 * @param hasFixedValue 是否有固定值 * @return 显示对象 * @throws VciBaseException 参数为空或者不存在的时候会抛出异常 */ List codeBasicSecDO2VOs(Collection codeBasicSecDOs, boolean hasFixedValue) throws VciBaseException; /** * 批量数据对象转换为显示对象 * @param codeBasicSecDOs 数据对象列表 * @return 显示对象 * @throws VciBaseException 参数为空或者不存在的时候会抛出异常 */ List codeBasicSecDO2VOs(Collection codeBasicSecDOs) throws VciBaseException; /** * 数据对象转换为显示对象 * @param codeBasicSecDO 数据对象 * @return 显示对象 * @throws VciBaseException 拷贝属性出错的时候会抛出异常 */ CodeBasicSecVO codeBasicSecDO2VO(CodeBasicSec codeBasicSecDO) throws VciBaseException; /** * 根据编码规则主键获取编码下的流水依赖码段 * @param oid 编码规则主键 * @return * @throws VciBaseException */ CodeRuleVO getSerialNumberDepend(String oid) throws VciBaseException; /** * 设置最大流水号 * @param codeOrderDTO 编码申请传输对象 * @return * @throws VciBaseException */ String setMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) throws VciBaseException; /** * 根据流水依赖获取最大流水值 * @param codeOrderDTO 编码申请传输对象 * @return * @throws VciBaseException */ Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO); }