ludc
2024-08-24 c259536f2c3055f4f81822e159a94cdc59cc9483
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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);
}