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