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