From 9cbad80abaabd430de6a9739fb2c898d3b10193a Mon Sep 17 00:00:00 2001 From: 青城 <1662047068@qq.com> Date: 星期四, 10 七月 2025 16:58:24 +0800 Subject: [PATCH] 协调审批对接修改后 --- src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 98 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 83 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java index 322a498..dd04916 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.approve.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.approve.mapper.ApproveProcessMapper; import com.ruoyi.approve.pojo.ApproveNode; @@ -9,10 +11,15 @@ import com.ruoyi.approve.service.IApproveProcessService; import com.ruoyi.approve.utils.DailyRedisCounter; 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; +import com.ruoyi.project.system.mapper.SysUserMapper; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; @@ -22,9 +29,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; @Service @RequiredArgsConstructor @@ -37,12 +42,17 @@ private final SysDeptMapper sysDeptMapper; private final IApproveNodeService approveNodeService; + 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"); @@ -50,11 +60,22 @@ //娴佺▼ ID String approveID = today + formattedCount; + //瀹℃壒浜哄鍚嶅鐞� + String approverIds = approveProcessVO.getApproveUserIds(); + String[] idArray = approverIds.split(","); + String approverNames = getApproverNames(approveProcessVO.getApproveUserIds()); + String[] namdArray = approverNames.split(","); + ApproveProcess approveProcess = new ApproveProcess(); approveProcess.setApproveId(approveID); approveProcess.setApproveUser(userId); - approveProcess.setApproveDeptName(approveProcessVO.getDeptName()); - approveProcess.setApproveUserNames(approveProcessVO.getApproverNames()); + approveProcess.setApproveUserName(nickName); + approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId()); + approveProcess.setApproveDeptName(deptName); + approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds()); + approveProcess.setApproveUserNames(approverNames); + approveProcess.setApproveUserCurrentId(Long.parseLong(idArray[0])); + approveProcess.setApproveUserCurrentName(namdArray[0]); approveProcess.setApproveTime(new Date()); approveProcess.setApproveReason(approveProcessVO.getApproveReason()); approveProcess.setApproveOverTime(null); @@ -64,8 +85,25 @@ save(approveProcess); //鍒濆鍖栧鎵硅妭鐐� - approveNodeService.initApproveNodes(approveID); + approveNodeService.initApproveNodes(approveID,0); } + + private String getApproverNames(String approverIds) { + String[] idArray = approverIds.split(","); + + Integer[] ids = Arrays.stream(idArray) + .map(Integer::parseInt) + .toArray(Integer[]::new); + List<String> names = new ArrayList<String>(); + + for (Integer id : ids) { + SysUser sysUser = sysUserMapper.selectUserById(id.longValue()); + names.add(sysUser.getNickName()); + } + + return String.join(",", names); + } + @Override public List<SysDept> selectDeptListByDeptIds(Long[] deptIds) { @@ -78,10 +116,17 @@ } @Override - public List<ApproveProcess> listAll() { + 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); - return list(queryWrapper); + if (StringUtils.isNotBlank(id)) { + queryWrapper.like(ApproveProcess::getApproveId, id); + } + return approveProcessMapper.selectPage(page, queryWrapper); } @Override @@ -89,7 +134,9 @@ for (Long id : ids) { LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ApproveProcess::getApproveId, id); - update(queryWrapper); + ApproveProcess process = getOne(queryWrapper); + process.setApproveDelete(1); + saveOrUpdate(process); } } @@ -102,21 +149,42 @@ } @Override - public void updateApproveProcessStatus(ApproveNode approveNode) { - ApproveProcess approveProcess = getById(approveNode.getApproveProcessId()); - if(approveNode.getIsFirst()){ - if(approveNode.getApproveNodeStatus() == 1){ + public void updateApproveProcessStatus(ApproveNodeVo approveNodeVo) { + ApproveNode node = approveNodeService.getById(approveNodeVo.getId()); + ApproveProcess approveProcess = getById(node.getApproveProcessId()); + + 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){ approveProcess.setApproveStatus(1); } } - if(approveNode.getIsLast()){ - if(approveNode.getApproveNodeStatus() == 1){ + if(noderOrder.equals(idArray.length)){ + if(approveNodeVo.getApproveNodeStatus() == 1){ approveProcess.setApproveStatus(2); + approveProcess.setApproveOverTime(new Date()); } } + // updateById(approveProcess); + approveProcessMapper.updateApproveDeptId(approveProcess); + } + @Override public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) { ApproveProcess approve = getApproveById(approveGetAndUpdateVo.getId()); -- Gitblit v1.9.3