package com.vci.web.service;
|
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.DataGrid;
|
import com.vci.starter.web.pagemodel.PageHelper;
|
import com.vci.dto.OsCodeRuleDTO;
|
import com.vci.dto.OsCodeRuleProduceDTO;
|
import com.vci.model.OsCodeRuleDO;
|
import com.vci.model.OsCodeRuleElementDO;
|
import com.vci.pagemodel.OsCodeResultVO;
|
import com.vci.pagemodel.OsCodeRuleElementVO;
|
import com.vci.pagemodel.OsCodeRuleVO;
|
|
import java.util.Collection;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 编码规则的服务接口
|
* @author weidy
|
* @date 2020/09/01
|
*/
|
public interface OsCodeRuleServiceI {
|
|
/**
|
* 使用编码规则生成编码
|
* @param codeRuleProduceDTO 编码生成所属数据传输对象,规则编号优先级大于主键,传递的数据优先级大于业务数据
|
* @return 生成的编码的值
|
* @throws VciBaseException 参数错误,规则不存在,数据不支持编码的生成等会抛出异常
|
*/
|
String produceCode(OsCodeRuleProduceDTO codeRuleProduceDTO) throws VciBaseException;
|
|
/**
|
* 列表查询
|
* @param conditionMap 查询条件
|
* @param pageHelper 分页的对象
|
* @return 数据显示对象
|
*/
|
DataGrid<OsCodeRuleVO> dataGrid(Map<String, String> conditionMap, PageHelper pageHelper);
|
/**
|
* 数据对象批量转换为显示对象
|
* @param ruleDOCollection 规则的数据对象
|
* @return 规则的显示对象
|
*/
|
List<OsCodeRuleVO> codeRuleDO2VOs(Collection<OsCodeRuleDO> ruleDOCollection);
|
|
/**
|
* 规则的元素的数据对象转换为显示对象
|
* @param elementDOCollection 元素的数据对象
|
* @return 元素的显示对象
|
*/
|
List<OsCodeRuleElementVO> codeRuleElementDO2VOs(Collection<OsCodeRuleElementDO> elementDOCollection);
|
|
/**
|
* 数据对象转换为显示对象
|
* @param ruleDO 规则的数据对象
|
* @return 规则的显示对象
|
*/
|
OsCodeRuleVO codeRuleDO2VO(OsCodeRuleDO ruleDO);
|
|
/**
|
* 明细的数据对象转换为显示对象
|
* @param elementDO 明细的数据对象
|
* @return 显示对象
|
*/
|
OsCodeRuleElementVO codeRuleElementDO2VO(OsCodeRuleElementDO elementDO);
|
|
/**
|
* 列表的明细查询
|
* @param pkRule 规则的主键
|
* @param conditionMap 查询条件
|
* @param pageHelper 分页的对象
|
* @return 数据显示对象
|
*/
|
DataGrid<OsCodeRuleElementVO> dataGridElement(String pkRule, Map<String, String> conditionMap, PageHelper pageHelper);
|
|
/**
|
* 添加规则
|
* @param ruleDTO 规则的数据传输对象,需要将明细也传递
|
* @return 显示对象
|
*/
|
OsCodeRuleVO addRule(OsCodeRuleDTO ruleDTO);
|
|
/**
|
* 修改规则
|
* @param ruleDTO 规则的数据传输对象,需要将明细也传递
|
* @return 显示对象
|
*/
|
OsCodeRuleVO editRule(OsCodeRuleDTO ruleDTO);
|
|
/**
|
* 删除规则,有流水号的时候不能删除
|
* @param ruleDTO 规则的数据传输对象,必须有ts和oid
|
*/
|
void deleteRule(OsCodeRuleDTO ruleDTO);
|
|
/**
|
* 停用规则
|
* @param ruleDTO 规则的数据传输对象,必须有ts和oid
|
*/
|
void disableRule(OsCodeRuleDTO ruleDTO);
|
|
/**
|
* 启用规则
|
* @param ruleDTO 规则的数据传输对象,必须有ts和oid
|
*/
|
void enableRule(OsCodeRuleDTO ruleDTO);
|
|
/**
|
* 使用编码规则生成编码
|
*
|
* @param codeRuleProduceDTO 编码生成所属数据传输对象,规则编号优先级大于主键,传递的数据优先级大于业务数据
|
* @return 生成的编码的值
|
* @throws VciBaseException 参数错误,规则不存在,数据不支持编码的生成等会抛出异常
|
*/
|
List<OsCodeResultVO> batchProduceCode(OsCodeRuleProduceDTO codeRuleProduceDTO, Integer needAddQuantity);
|
|
/**
|
* 是否存在编码规则
|
* @param codeRuleProduceDTO 编码生成所属数据传输对象,规则编号优先级大于主键,传递的数据优先级大于业务数据
|
* @return 是否包含
|
*/
|
boolean existRule(OsCodeRuleProduceDTO codeRuleProduceDTO);
|
|
/**
|
* 上移
|
* @param codeRuleElementOid 元素的主键
|
*/
|
void upIndex(String codeRuleElementOid);
|
|
/**
|
* 下移
|
* @param codeRuleElementOid 元素的主键
|
*/
|
void downIndex(String codeRuleElementOid);
|
|
/**
|
* 获取流程依据
|
* @param ruleDTO 创建内容的数据传输对象
|
* @return 流水依据
|
*/
|
String getSerialUnit(OsCodeRuleProduceDTO ruleDTO);
|
|
/**
|
* 根据产品型号查询编码规则
|
* @param productmodel 产品型号
|
* @return 编码规则DO
|
*/
|
OsCodeRuleDO selectById(String productmodel);
|
}
|