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;
|
}
|
}
|