| | |
| | | |
| | | @Override |
| | | public Boolean updateApprovalTemplateDto(ApprovalTemplateDto approvalTemplateDto) { |
| | | // 检查模板是否被审批实例引用 |
| | | if (isTemplateReferenced(approvalTemplateDto.getId())) { |
| | | // 检查模板是否被进行中的审批实例引用 |
| | | if (hasPendingReference(approvalTemplateDto.getId())) { |
| | | throw new RuntimeException("该审批模板已被审批流程引用,无法编辑"); |
| | | } |
| | | approvalTemplateMapper.updateById(approvalTemplateDto); |
| | |
| | | ); |
| | | return count != null && count > 0; |
| | | } |
| | | |
| | | private boolean hasPendingReference(Long templateId) { |
| | | if (templateId == null) { |
| | | return false; |
| | | } |
| | | Long count = approvalInstanceMapper.selectCount( |
| | | new LambdaQueryWrapper<ApprovalInstance>() |
| | | .eq(ApprovalInstance::getTemplateId, templateId) |
| | | .eq(ApprovalInstance::getDeleted, 0) |
| | | .eq(ApprovalInstance::getStatus, "PENDING") |
| | | ); |
| | | return count != null && count > 0; |
| | | } |
| | | } |