package jnpf.elnService.formula.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import jnpf.elnEntity.formula.ElnTemplateFormulaBindingEntity;
|
import jnpf.elnEntity.template.ElnTemplateVersionEntity;
|
import jnpf.elnMapper.ElnTemplateMapper;
|
import jnpf.elnMapper.ElnTemplateFormulaBindingMapper;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
public class FormulaDraftTemplateReferenceChecker
|
implements ElnFormulaCatalogServiceImpl.DraftTemplateReferenceChecker {
|
private final ElnTemplateFormulaBindingMapper bindings;
|
private final ElnTemplateMapper templates;
|
|
public FormulaDraftTemplateReferenceChecker(ElnTemplateFormulaBindingMapper bindings,
|
ElnTemplateMapper templates) {
|
this.bindings = bindings; this.templates = templates;
|
}
|
|
@Override
|
public boolean hasDraftReferences(String tenantId, String versionId) {
|
for (ElnTemplateFormulaBindingEntity binding : bindings.selectList(
|
Wrappers.<ElnTemplateFormulaBindingEntity>lambdaQuery()
|
.eq(ElnTemplateFormulaBindingEntity::getFTenantId, tenantId)
|
.eq(ElnTemplateFormulaBindingEntity::getGongshiBanbenId, versionId)
|
.in(ElnTemplateFormulaBindingEntity::getBangdingZhuangtai,
|
"PENDING", "ACTIVE")
|
.and(q -> q.isNull(ElnTemplateFormulaBindingEntity::getFDeleteMark)
|
.or().eq(ElnTemplateFormulaBindingEntity::getFDeleteMark, 0)))) {
|
ElnTemplateVersionEntity template = templates.selectOne(
|
Wrappers.<ElnTemplateVersionEntity>lambdaQuery()
|
.eq(ElnTemplateVersionEntity::getFTenantId, tenantId)
|
.eq(ElnTemplateVersionEntity::getId, binding.getMubanId())
|
.eq(ElnTemplateVersionEntity::getBizStatus, "DRAFT")
|
.and(q -> q.isNull(ElnTemplateVersionEntity::getFDeleteMark)
|
.or().eq(ElnTemplateVersionEntity::getFDeleteMark, 0)));
|
if (template != null) return true;
|
}
|
return false;
|
}
|
}
|