package com.ruoyi.approve.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.approve.mapper.ApproveNodeMapper;
|
import com.ruoyi.approve.pojo.ApproveNode;
|
import com.ruoyi.approve.pojo.ApproveProcess;
|
import com.ruoyi.approve.service.IApproveNodeService;
|
import com.ruoyi.approve.service.IApproveProcessService;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import lombok.AllArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Comparator;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
@RequiredArgsConstructor
|
public class ApproveNodeServiceImpl extends ServiceImpl<ApproveNodeMapper, ApproveNode> implements IApproveNodeService {
|
|
@Autowired
|
private ApproveNodeMapper approveNodeMapper;
|
@Autowired
|
private IApproveProcessService approveProcessService;
|
|
|
@Override
|
public void initApproveNodes(String id) {
|
//租户id
|
Long tenantId = SecurityUtils.getLoginUser().getTenantId();
|
|
ApproveProcess approve = approveProcessService.getApproveById(id);
|
String[] names = approve.getApproveUserNames().split(",");
|
Long approveId = approve.getId();
|
for (int i = 0; i < names.length; i++) {
|
ApproveNode approveNode = new ApproveNode();
|
approveNode.setApproveProcessId(approveId);
|
approveNode.setApproveNodeOrder(i +1);
|
approveNode.setApproveNodeUser(names[i]);
|
approveNode.setApproveNodeTime(new Date());
|
approveNode.setApproveNodeStatus(0);
|
approveNode.setTenantId(tenantId);
|
approveNode.setDeleteFlag(0);
|
approveNodeMapper.insert(approveNode);
|
}
|
}
|
|
@Override
|
public List<ApproveNode> details(String id) {
|
ApproveProcess approve = approveProcessService.getApproveById(id);
|
Long approveId = approve.getId();
|
|
LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(ApproveNode::getApproveProcessId, approveId);
|
List<ApproveNode> list = list(queryWrapper);
|
// 按照 approveNodeOrder 字段升序排序
|
list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
|
return list;
|
}
|
|
@Override
|
public void updateApproveNode(ApproveNode approveNode) {
|
approveProcessService.updateApproveProcessStatus(approveNode);
|
|
approveNode.setApproveNodeTime(new Date());
|
|
approveNodeMapper.updateById(approveNode);
|
}
|
|
}
|