From ba4af275c3b8d073f863be7b12e43974b3ef14a2 Mon Sep 17 00:00:00 2001 From: liyong <18434998025@163.com> Date: 星期六, 12 七月 2025 10:27:06 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/product-inventory-management-after into pim_ly --- src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 116 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java new file mode 100644 index 0000000..04adc4b --- /dev/null +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java @@ -0,0 +1,116 @@ +package com.ruoyi.approve.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +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 com.ruoyi.project.system.domain.SysUser; +import com.ruoyi.project.system.mapper.SysUserMapper; +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.time.LocalDateTime; +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; + @Autowired + private SysUserMapper sysUserMapper; + + + @Override + public void initApproveNodes(String approveUserIds,String approveID,Long tenantId) { + Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); + ApproveProcess approve = approveProcessService.getApproveById(approveID); + String[] names = approveUserIds.split(","); + String approveId = approve.getApproveId(); + for (int i = 0; i < names.length; i++) { + SysUser sysUser = sysUserMapper.selectUserById(Long.parseLong(names[i])); + if (sysUser == null) continue; + ApproveNode approveNode = new ApproveNode(); + approveNode.setApproveProcessId(approveId); + approveNode.setApproveNodeOrder(i +1); + approveNode.setApproveNodeUser(sysUser.getNickName()); + approveNode.setApproveNodeUserId(sysUser.getUserId()); + approveNode.setApproveNodeTime(new Date()); + approveNode.setApproveNodeStatus(0); + approveNode.setTenantId(tenantId); + approveNode.setDeleteFlag(0); + approveNode.setCreateUser(userId); + approveNode.setUpdateUser(userId); + approveNode.setCreateTime(LocalDateTime.now()); + approveNode.setUpdateTime(LocalDateTime.now()); + approveNodeMapper.insert(approveNode); + } + } + + @Override + public List<ApproveNode> details(String id) { + LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ApproveNode::getApproveProcessId, id); + queryWrapper.eq(ApproveNode::getDeleteFlag, 0); + queryWrapper.eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId()); + List<ApproveNode> list = list(queryWrapper); + // 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭 + list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder)); + LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); + approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, id) + .eq(ApproveProcess::getApproveDelete, 0) + .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()) + .last("limit 1"); + ApproveProcess approveProcess = approveProcessService.getOne(approveProcessLambdaQueryWrapper); + if(approveProcess != null && approveProcess.getApproveStatus() == 3){ + return list; + } + for (ApproveNode approveNode : list) { + if(approveNode.getApproveNodeStatus() == 1){ + continue; + } + approveNode.setIsShen(true); + break; + } + return list; + } + + @Override + public void updateApproveNode(ApproveNode approveNode) { + // 瀹℃壒鑺傜偣鐘舵��:1鍚屾剰锛�2鎷掔粷锛�0灏氭湭瀹℃牳 + switch (approveNode.getApproveNodeStatus()){ + case 1: + approveProcessService.updateApproveProcessStatus(approveNode, Boolean.TRUE.equals(approveNode.getIsLast()) ? 2 : 1); + break; + case 2: + approveProcessService.updateApproveProcessStatus(approveNode, 3); + break; + default: + break; + } + approveNode.setApproveNodeTime(new Date()); + approveNodeMapper.updateById(approveNode); + } + + @Override + public void delApproveNodeByApproveId(Long id) { + UpdateWrapper<ApproveNode> queryWrapper = new UpdateWrapper<>(); + queryWrapper.lambda().set(ApproveNode::getDeleteFlag, 1) + .eq(ApproveNode::getApproveProcessId, id); + update(queryWrapper); + } + +} -- Gitblit v1.9.3