青城
8 天以前 9cbad80abaabd430de6a9739fb2c898d3b10193a
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -13,7 +13,9 @@
import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
import com.ruoyi.approve.vo.ApproveNodeVo;
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
@@ -27,10 +29,7 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
@Service
@RequiredArgsConstructor
@@ -46,11 +45,14 @@
    private final SysUserMapper sysUserMapper;
    private final ApproveProcessMapper approveProcessMapper;
    @Override
    public void addApprove(ApproveProcessVO approveProcessVO) {
        Long userId = SecurityUtils.getUserId();
        String nickName = SecurityUtils.getLoginUser().getNickName();
        //租户id
        Long tenantId = SecurityUtils.getLoginUser().getTenantId();
        String deptName = sysDeptMapper.selectDeptById(approveProcessVO.getApproveDeptId()).getDeptName();
        String today = LocalDate.now().format(DATE_FORMAT);
        Long approveId = dailyRedisCounter.incrementAndGet("approveId");
@@ -59,17 +61,18 @@
        String approveID = today + formattedCount;
        //审批人姓名处理
        String approverIds = approveProcessVO.getApproverIds();
        String approverIds = approveProcessVO.getApproveUserIds();
        String[] idArray = approverIds.split(",");
        String approverNames = getApproverNames(approveProcessVO.getApproverIds());
        String[] namdArray = approverIds.split(",");
        String approverNames = getApproverNames(approveProcessVO.getApproveUserIds());
        String[] namdArray = approverNames.split(",");
        ApproveProcess approveProcess = new ApproveProcess();
        approveProcess.setApproveId(approveID);
        approveProcess.setApproveUser(userId);
        approveProcess.setApproveUserName(nickName);
        approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId());
      //  approveProcess.setApproveDeptName(approveProcessVO.getDeptName());
        approveProcess.setApproveUserIds(approveProcessVO.getApproverIds());
        approveProcess.setApproveDeptName(deptName);
        approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds());
        approveProcess.setApproveUserNames(approverNames);
        approveProcess.setApproveUserCurrentId(Long.parseLong(idArray[0]));
        approveProcess.setApproveUserCurrentName(namdArray[0]);
@@ -82,7 +85,7 @@
        save(approveProcess);
        //初始化审批节点
        approveNodeService.initApproveNodes(approveID);
        approveNodeService.initApproveNodes(approveID,0);
    }
    private String getApproverNames(String approverIds) {
@@ -91,13 +94,14 @@
        Integer[] ids = Arrays.stream(idArray)
                .map(Integer::parseInt)
                .toArray(Integer[]::new);
        String names = "";
        StringBuilder stringBuilder = new StringBuilder();
        List<String> names = new ArrayList<String>();
        for (Integer id : ids) {
            SysUser sysUser = sysUserMapper.selectUserById(id.longValue());
                names = stringBuilder + "," + sysUser.getUserName();
                 names.add(sysUser.getNickName());
        }
        return names;
        return String.join(",", names);
    }
@@ -112,9 +116,16 @@
    }
    @Override
    public IPage<ApproveProcess> listAll(Page page) {
    public IPage<ApproveProcess> listAll(Page page,String id) {
        // 1. 处理空值场景(参数校验)
        if (page == null) {
            page = Page.of(1, 10); // 默认第1页,每页10条数据
        }
        LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ApproveProcess::getApproveDelete, 0);
        if (StringUtils.isNotBlank(id)) {
            queryWrapper.like(ApproveProcess::getApproveId, id);
        }
        return approveProcessMapper.selectPage(page, queryWrapper);
    }
@@ -122,8 +133,10 @@
    public void delApprove(Long[] ids) {
        for (Long id : ids) {
            LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(ApproveProcess::getApproveDelete, 1);
            update(queryWrapper);
            queryWrapper.eq(ApproveProcess::getApproveId, id);
            ApproveProcess process = getOne(queryWrapper);
            process.setApproveDelete(1);
            saveOrUpdate(process);
        }
    }
@@ -143,9 +156,16 @@
        String[] idArray = approveProcess.getApproveUserIds().split(",");
        String[] nameArray = approveProcess.getApproveUserNames().split(",");
        Integer noderOrder = approveNodeVo.getApproveNodeOrder();
        //设置当前审批人
        if (noderOrder ==idArray.length){
            approveProcess.setApproveUserCurrentId(null);
            approveProcess.setApproveUserCurrentName(null);
        }else {
        approveProcess.setApproveUserCurrentId(Long.parseLong(idArray[noderOrder]));
        approveProcess.setApproveUserCurrentName(nameArray[noderOrder]);
        }
        if(noderOrder.equals(1)){
            if(approveNodeVo.getApproveNodeStatus() == 1){
@@ -155,12 +175,16 @@
        if(noderOrder.equals(idArray.length)){
            if(approveNodeVo.getApproveNodeStatus() == 1){
                approveProcess.setApproveStatus(2);
                approveProcess.setApproveOverTime(new Date());
            }
        }
        updateById(approveProcess);
       // updateById(approveProcess);
        approveProcessMapper.updateApproveDeptId(approveProcess);
    }
    @Override
    public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) {
        ApproveProcess approve = getApproveById(approveGetAndUpdateVo.getId());