| | |
| | | import com.ruoyi.approve.bean.vo.ApprovalTemplateVo; |
| | | import com.ruoyi.approve.mapper.ApprovalTemplateMapper; |
| | | import com.ruoyi.approve.mapper.ApprovalTemplateNodeApproverMapper; |
| | | import com.ruoyi.approve.mapper.ApprovalInstanceMapper; |
| | | import com.ruoyi.approve.pojo.ApprovalInstance; |
| | | import com.ruoyi.approve.pojo.ApprovalTemplate; |
| | | import com.ruoyi.approve.pojo.ApprovalTemplateNode; |
| | | import com.ruoyi.approve.pojo.ApprovalTemplateNodeApprover; |
| | |
| | | private final ApprovalTemplateMapper approvalTemplateMapper; |
| | | private final ApprovalTemplateNodeService approvalTemplateNodeService; |
| | | private final ApprovalTemplateNodeApproverMapper approvalTemplateNodeApproverMapper; |
| | | private final ApprovalInstanceMapper approvalInstanceMapper; |
| | | private final FileUtil fileUtil; |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public Boolean updateApprovalTemplateDto(ApprovalTemplateDto approvalTemplateDto) { |
| | | // 检查模板是否被审批实例引用 |
| | | if (isTemplateReferenced(approvalTemplateDto.getId())) { |
| | | throw new RuntimeException("该审批模板已被审批流程引用,无法编辑"); |
| | | } |
| | | approvalTemplateMapper.updateById(approvalTemplateDto); |
| | | approvalTemplateNodeService.remove( |
| | | new LambdaQueryWrapper<ApprovalTemplateNode>() |
| | |
| | | public Boolean delete(List<Long> ids) { |
| | | if (ids == null || ids.isEmpty()) { |
| | | return false; |
| | | } |
| | | // 检查模板是否被审批实例引用 |
| | | for (Long id : ids) { |
| | | if (isTemplateReferenced(id)) { |
| | | throw new RuntimeException("审批模板(ID: " + id + ")已被审批流程引用,无法删除"); |
| | | } |
| | | } |
| | | ApprovalTemplate updateEntity = new ApprovalTemplate(); |
| | | updateEntity.setDeleted(1); |
| | |
| | | BeanUtils.copyProperties(approver, approverVo); |
| | | return approverVo; |
| | | } |
| | | |
| | | /** |
| | | * 检查审批模板是否被审批实例引用 |
| | | * @param templateId 模板ID |
| | | * @return true 表示被引用,false 表示未被引用 |
| | | */ |
| | | private boolean isTemplateReferenced(Long templateId) { |
| | | if (templateId == null) { |
| | | return false; |
| | | } |
| | | Long count = approvalInstanceMapper.selectCount( |
| | | new LambdaQueryWrapper<ApprovalInstance>() |
| | | .eq(ApprovalInstance::getTemplateId, templateId) |
| | | .eq(ApprovalInstance::getDeleted, 0) |
| | | ); |
| | | return count != null && count > 0; |
| | | } |
| | | } |