package com.ruoyi.approve.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.approve.bean.dto.ApprovalTemplateNodeApproverDto;
import com.ruoyi.approve.bean.dto.ApprovalTemplateNodeDto;
import com.ruoyi.approve.mapper.ApprovalTemplateNodeMapper;
import com.ruoyi.approve.pojo.ApprovalTemplateNode;
import com.ruoyi.approve.pojo.ApprovalTemplateNodeApprover;
import com.ruoyi.approve.service.ApprovalTemplateNodeApproverService;
import com.ruoyi.approve.service.ApprovalTemplateNodeService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
* 审批模板节点表 服务实现类
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-05-18 11:20:19
*/
@Service
@RequiredArgsConstructor
public class ApprovalTemplateNodeServiceImpl extends ServiceImpl implements ApprovalTemplateNodeService {
private final ApprovalTemplateNodeMapper approvalTemplateNodeMapper;
private final ApprovalTemplateNodeApproverService approvalTemplateNodeApproverService;
@Override
public Boolean saveApprovalTemplateNode(Long templateId, List nodes) {
if (nodes == null || nodes.isEmpty()) {
throw new RuntimeException("节点列表不能为空");
}
List approverList = new ArrayList<>();
for (ApprovalTemplateNodeDto nodeDto : nodes) {
ApprovalTemplateNode node = new ApprovalTemplateNode();
BeanUtils.copyProperties(nodeDto, node);
node.setTemplateId(templateId);
approvalTemplateNodeMapper.insert(node);
List approvers = nodeDto.getApprovers();
if (approvers == null || approvers.isEmpty()) {
throw new RuntimeException("节点审批人不能为空");
}
for (ApprovalTemplateNodeApproverDto approverDto : approvers) {
ApprovalTemplateNodeApprover approver = new ApprovalTemplateNodeApprover();
BeanUtils.copyProperties(approverDto, approver);
approver.setNodeId(node.getId());
approver.setTemplateId(templateId);
approver.setDeleted(0L);
approverList.add(approver);
}
}
approvalTemplateNodeApproverService.saveBatch(approverList);
return true;
}
}