yangys
2024-05-07 eaf6878850c029ac359d60409c7c9fcfa09c1852
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
package com.qianwen.core.coderule.generator.impl;
 
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import java.sql.Timestamp;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.qianwen.core.coderule.builder.DefaultConcreateContextBuilder;
import com.qianwen.core.coderule.constant.CodeRuleConstant;
import com.qianwen.core.coderule.exception.CodeRuleException;
import com.qianwen.core.coderule.generator.RangeCodeGenerator;
import com.qianwen.core.coderule.model.CodeRuleContext;
import com.qianwen.core.coderule.model.CodeRuleEntryModel;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.StringUtil;
import org.springframework.jdbc.core.JdbcTemplate;
 
/* loaded from: blade-starter-coderule-9.3.0.0-SNAPSHOT.jar:org/springblade/core/coderule/generator/impl/DefaultRangeCodeGenerator.class */
public class DefaultRangeCodeGenerator implements RangeCodeGenerator {
    private String objectTypeId;
    private Long codeRuleId;
    private Object objectType;
    private JdbcTemplate jdbcTemplate;
    private static final Logger log = LoggerFactory.getLogger(DefaultRangeCodeGenerator.class);
    private static final DefaultIdentifierGenerator identifierGenerator = new DefaultIdentifierGenerator();
 
    @Override // com.qianwen.core.coderule.generator.CodeGenerator
    public String nextNo() throws CodeRuleException {
        StringBuilder result = new StringBuilder();
        DefaultConcreateContextBuilder builder = new DefaultConcreateContextBuilder(this.jdbcTemplate);
        CodeRuleContext codeRuleContext = builder.codeRuleModel(this.codeRuleId).objectData(this.objectType).constant().number().date().dropdown(this.objectTypeId).baseData(this.objectTypeId).baseDataProperty().sequence(this.objectTypeId).createCodeRuleContext();
        if (Func.isNotEmpty(codeRuleContext.getCodeRuleModel()) && Func.isNotEmpty(codeRuleContext.getCodeRuleModel().getCodeRuleEntryModelList())) {
            List<CodeRuleEntryModel> collect = (List) codeRuleContext.getCodeRuleModel().getCodeRuleEntryModelList().stream().filter(x -> {
                return x.getCodeElement().booleanValue();
            }).sorted(Comparator.comparing((v0) -> {
                return v0.getSeq();
            })).collect(Collectors.toList());
            if (Func.isNotEmpty(collect)) {
                for (CodeRuleEntryModel item : collect) {
                    result.append(codeRuleContext.getEntryData().get(item.getSeq()));
                }
            }
        }
        try {
            this.jdbcTemplate.execute(StringUtil.format(CodeRuleConstant.CODE_RULE_LOG_INSERT, new Object[]{identifierGenerator.nextId((Object) null), this.objectTypeId, this.codeRuleId, result, new Timestamp(System.currentTimeMillis())}));
        } catch (Exception exception) {
            log.error("生成编号历史记录出错" + exception.getMessage());
        }
        return result.toString();
    }
 
    @Override // com.qianwen.core.coderule.generator.RangeCodeGenerator
    public void setObjectTypeId(String objectTypeId) {
        this.objectTypeId = objectTypeId;
    }
 
    @Override // com.qianwen.core.coderule.generator.RangeCodeGenerator
    public void setCodeRuleId(Long codeRuleId) {
        this.codeRuleId = codeRuleId;
    }
 
    @Override // com.qianwen.core.coderule.generator.RangeCodeGenerator
    public void setObjectType(Object objectType) {
        this.objectType = objectType;
    }
 
    @Override // com.qianwen.core.coderule.generator.RangeCodeGenerator
    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }
}