From 91c0906bda26d3718b2fa450eed27419388b24a5 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 11 七月 2025 14:49:44 +0800
Subject: [PATCH] yys 修改协同审批bug
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 74 +++++++++---
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 27 ++++
src/main/java/com/ruoyi/approve/mapper/ApproveProcessMapper.java | 4
src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java | 23 +--
src/main/java/com/ruoyi/approve/service/IApproveProcessService.java | 7
src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java | 1
src/main/java/com/ruoyi/framework/security/service/TokenService.java | 17 ++
src/main/resources/mapper/approve/ApproveProcessMapper.xml | 6 +
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 40 ++++--
src/main/java/com/ruoyi/approve/utils/StartAndEndDateDto.java | 21 +++
src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java | 8 +
src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java | 45 +++++++
src/main/resources/mapper/system/SysUserMapper.xml | 8 +
src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java | 15 +
src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java | 4
src/main/java/com/ruoyi/approve/pojo/ApproveNode.java | 30 ++++
src/main/java/com/ruoyi/approve/service/IApproveNodeService.java | 4
17 files changed, 274 insertions(+), 60 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java b/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
index a4d815e..369a65e 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveNodeController.java
@@ -17,7 +17,7 @@
* @param id 娴佺▼瀹℃壒id approve_id
* @return
*/
- @GetMapping("/details")
+ @GetMapping("/details/{id}")
public AjaxResult details(@PathVariable String id) {
return AjaxResult.success(approveNodeService.details(id));
}
@@ -40,7 +40,7 @@
*/
@PostMapping("/init")
public AjaxResult init(String id) {
- approveNodeService.initApproveNodes(id);
+ approveNodeService.initApproveNodes("",id,1L);
return AjaxResult.success();
}
diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
index 25fd122..589f14f 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
@@ -1,5 +1,7 @@
package com.ruoyi.approve.controller;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.approve.pojo.ApproveProcess;
import com.ruoyi.approve.service.IApproveProcessService;
import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
import com.ruoyi.approve.vo.ApproveProcessVO;
@@ -8,8 +10,10 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysDept;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
+import java.text.ParseException;
import java.util.List;
@RestController
@@ -45,7 +49,8 @@
* @return
*/
@PostMapping("/add")
- public AjaxResult add(@RequestBody ApproveProcessVO approveProcessVO) {
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult add(@RequestBody ApproveProcessVO approveProcessVO) throws ParseException {
if (approveProcessVO == null) {
return AjaxResult.warn("鍙傛暟涓嶈兘涓虹┖");
}
@@ -73,6 +78,7 @@
* @return
*/
@PostMapping("/update")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult update(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo) {
if (approveGetAndUpdateVo == null) {
return AjaxResult.warn("鍙傛暟涓嶈兘涓虹┖");
@@ -85,8 +91,8 @@
* @return
*/
@GetMapping("/list")
- public AjaxResult list() {
- return AjaxResult.success(approveProcessService.listAll());
+ public AjaxResult list(Page page, ApproveProcess approveProcess) {
+ return AjaxResult.success(approveProcessService.listAll(page, approveProcess));
}
/**
@@ -94,7 +100,8 @@
* @param ids
* @return
*/
- @PostMapping("/deleteIds")
+ @DeleteMapping("/deleteIds")
+ @Transactional(rollbackFor = Exception.class)
public AjaxResult deleteIds(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
return AjaxResult.warn("鍙傛暟涓嶈兘涓虹┖");
diff --git a/src/main/java/com/ruoyi/approve/mapper/ApproveProcessMapper.java b/src/main/java/com/ruoyi/approve/mapper/ApproveProcessMapper.java
index ce1b362..32c6be0 100644
--- a/src/main/java/com/ruoyi/approve/mapper/ApproveProcessMapper.java
+++ b/src/main/java/com/ruoyi/approve/mapper/ApproveProcessMapper.java
@@ -1,7 +1,10 @@
package com.ruoyi.approve.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.approve.pojo.ApproveProcess;
+import org.apache.ibatis.annotations.Param;
/**
* @author Administrator
@@ -11,6 +14,7 @@
*/
public interface ApproveProcessMapper extends BaseMapper<ApproveProcess> {
+ IPage<ApproveProcess> listPage(Page page,@Param("req") ApproveProcess approveProcess);
}
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java b/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java
index de3a255..afcf58f 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.pojo;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill;
@@ -20,9 +21,9 @@
private Long id;
/**
- * 瀹℃壒id
+ * 瀹℃壒缂栧彿
*/
- private Long approveProcessId;
+ private String approveProcessId;
/**
* 瀹℃壒鑺傜偣椤哄簭
@@ -33,6 +34,11 @@
* 瀹℃壒鑺傜偣鐢ㄦ埛鍚嶅瓧
*/
private String approveNodeUser;
+
+ /**
+ * 瀹℃壒鑺傜偣鐢ㄦ埛id
+ */
+ private Long approveNodeUserId;
/**
* 瀹℃壒鑺傜偣鏃堕棿
@@ -63,6 +69,26 @@
private Integer deleteFlag;
/**
+ * 鍏ュ簱鐢ㄦ埛id
+ */
+ private Long createUser;
+
+ /**
+ * 鍏ュ簱鏃堕棿
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 淇敼鑰�
+ */
+ private Long updateUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ private LocalDateTime updateTime;
+
+ /**
* 瀹℃壒鑺傜偣鎷掔粷鍘熷洜
*/
private String approveNodeReason;
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 58cdddb..1bb5848 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -1,6 +1,7 @@
package com.ruoyi.approve.pojo;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
@@ -21,7 +22,7 @@
private Long id;
/**
- * 瀹℃壒id
+ * 娴佺▼缂栧彿
*/
private String approveId;
@@ -29,6 +30,11 @@
* 鐢宠浜篿d
*/
private Long approveUser;
+
+ /**
+ * 鐢宠浜哄悕绉�
+ */
+ private String approveUserName;
/**
* 鐢宠閮ㄩ棬id
@@ -41,12 +47,12 @@
private String approveDeptName;
/**
- * 鐢宠鐢ㄦ埛ids
+ * 瀹℃壒鐢ㄦ埛ids
*/
private String approveUserIds;
/**
- * 鐢宠鐢ㄦ埛鍚嶇О
+ * 瀹℃壒鐢ㄦ埛鍚嶇О
*/
private String approveUserNames;
@@ -54,6 +60,16 @@
* 鐢宠鍘熷洜
*/
private String approveReason;
+
+ /**
+ * 褰撳墠瀹℃壒鐢ㄦ埛ID
+ */
+ private Long approveUserCurrentId;
+
+ /**
+ * 褰撳墠瀹℃壒鐢ㄦ埛鍚嶇О
+ */
+ private String approveUserCurrentName;
/**
* 鐢宠鏃ユ湡
@@ -93,6 +109,11 @@
*/
private String approveRemark;
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private LocalDateTime createTime;
+
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ruoyi/approve/service/IApproveNodeService.java b/src/main/java/com/ruoyi/approve/service/IApproveNodeService.java
index 14ff91f..71813da 100644
--- a/src/main/java/com/ruoyi/approve/service/IApproveNodeService.java
+++ b/src/main/java/com/ruoyi/approve/service/IApproveNodeService.java
@@ -7,7 +7,7 @@
public interface IApproveNodeService extends IService<ApproveNode> {
- void initApproveNodes(String id);
+ void initApproveNodes(String approveUserIds,String approveID,Long tenantId);
/**
* 璇︽儏
* @param id
@@ -15,4 +15,6 @@
List<ApproveNode> details(String id);
void updateApproveNode(ApproveNode approveNode);
+
+ void delApproveNodeByApproveId(Long id);
}
diff --git a/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java b/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java
index 5ed770d..25c89bb 100644
--- a/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java
+++ b/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java
@@ -1,5 +1,7 @@
package com.ruoyi.approve.service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.approve.pojo.ApproveNode;
import com.ruoyi.approve.pojo.ApproveProcess;
@@ -7,6 +9,7 @@
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.project.system.domain.SysDept;
+import java.text.ParseException;
import java.util.List;
public interface IApproveProcessService extends IService<ApproveProcess> {
@@ -14,14 +17,14 @@
* 娣诲姞瀹℃壒娴佺▼
* @param approveProcessVO 瀹℃壒娴佺▼VO瀵硅薄
*/
- void addApprove(ApproveProcessVO approveProcessVO);
+ void addApprove(ApproveProcessVO approveProcessVO) throws ParseException;
/**
* 鏍规嵁閮ㄩ棬id鏌ヨ閮ㄩ棬淇℃伅
* @param deptIds 閮ㄩ棬ID鏁扮粍
*/
List<SysDept> selectDeptListByDeptIds(Long[] deptIds);
- List<ApproveProcess> listAll();
+ IPage<ApproveProcess> listAll(Page page, ApproveProcess approveProcess);
void delApprove(Long[] ids);
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 1bc54ed..b6c37b3 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -8,12 +9,15 @@
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;
@@ -26,36 +30,40 @@
private ApproveNodeMapper approveNodeMapper;
@Autowired
private IApproveProcessService approveProcessService;
+ @Autowired
+ private SysUserMapper sysUserMapper;
@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();
+ 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(names[i]);
+ 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) {
- ApproveProcess approve = approveProcessService.getApproveById(id);
- Long approveId = approve.getId();
-
LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(ApproveNode::getApproveProcessId, approveId);
+ queryWrapper.eq(ApproveNode::getApproveProcessId, id);
List<ApproveNode> list = list(queryWrapper);
// 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭
list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
@@ -71,4 +79,12 @@
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);
+ }
+
}
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..426a8d8 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,9 @@
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.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;
@@ -12,19 +15,28 @@
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.common.utils.SecurityUtils;
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;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@@ -37,34 +49,52 @@
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();
- //绉熸埛id
- Long tenantId = SecurityUtils.getLoginUser().getTenantId();
-
+ public void addApprove(ApproveProcessVO approveProcessVO) throws ParseException {
+ SysUser sysUser = sysUserMapper.selectUserById(approveProcessVO.getApproveUser());
+ SysDept sysDept = sysDeptMapper.selectDeptById(approveProcessVO.getApproveDeptId());
+ String[] split = approveProcessVO.getApproveUserIds().split(",");
+ List<Long> longList = Arrays.stream(split)
+ .map(Long::valueOf) // 灏嗘瘡涓� String 杞崲涓� Long
+ .collect(Collectors.toList());
+ List<SysUser> sysUsers = sysUserMapper.selectUserByIds(longList);
+ if(CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
+ if(sysDept == null) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
+ if(sysUser == null) throw new RuntimeException("鐢宠浜轰笉瀛樺湪");
String today = LocalDate.now().format(DATE_FORMAT);
- Long approveId = dailyRedisCounter.incrementAndGet("approveId");
+ Long approveId = dailyRedisCounter.incrementAndGetByDb();
String formattedCount = String.format("%03d", approveId);
//娴佺▼ ID
String approveID = today + formattedCount;
-
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
ApproveProcess approveProcess = new ApproveProcess();
approveProcess.setApproveId(approveID);
- approveProcess.setApproveUser(userId);
- approveProcess.setApproveDeptName(approveProcessVO.getDeptName());
- approveProcess.setApproveUserNames(approveProcessVO.getApproverNames());
- approveProcess.setApproveTime(new Date());
+ approveProcess.setApproveUser(approveProcessVO.getApproveUser());
+ approveProcess.setApproveUserName(sysUser.getNickName());
+ approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId());
+ approveProcess.setApproveDeptName(sysDept.getDeptName());
+ approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
+ approveProcess.setApproveTime(StringUtils.isEmpty(approveProcessVO.getApproveTime()) ? null : dateFormat.parse(approveProcessVO.getApproveTime()));
approveProcess.setApproveReason(approveProcessVO.getApproveReason());
approveProcess.setApproveOverTime(null);
approveProcess.setApproveStatus(0);
approveProcess.setApproveDelete(0);
- approveProcess.setTenantId(tenantId);
-
+ approveProcess.setCreateTime(LocalDateTime.now());
+ approveProcess.setTenantId(approveProcessVO.getApproveDeptId());
+ approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds());
+ approveProcess.setApproveUserCurrentId(longList.get(0));
+ approveProcess.setApproveUserCurrentName(sysUsers
+ .stream()
+ .filter(SysUser -> SysUser.getUserId().equals(longList.get(0)))
+ .collect(Collectors.toList())
+ .get(0)
+ .getNickName());
save(approveProcess);
//鍒濆鍖栧鎵硅妭鐐�
- approveNodeService.initApproveNodes(approveID);
+ approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId());
}
@Override
@@ -78,19 +108,23 @@
}
@Override
- public List<ApproveProcess> listAll() {
- LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(ApproveProcess::getApproveDelete, 0);
- return list(queryWrapper);
+ public IPage<ApproveProcess> listAll(Page page,ApproveProcess approveProcess) {
+ IPage<ApproveProcess> approveProcessIPage = approveProcessMapper.listPage(page,approveProcess);
+ return approveProcessIPage;
}
@Override
public void delApprove(Long[] ids) {
for (Long id : ids) {
- LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(ApproveProcess::getApproveId, id);
+ UpdateWrapper<ApproveProcess> queryWrapper = new UpdateWrapper<>();
+ queryWrapper.lambda().set(ApproveProcess::getApproveDelete, 1)
+ .eq(ApproveProcess::getApproveId, id);
update(queryWrapper);
+ // 鍒犻櫎鍏宠仈鐨勫鎵硅妭鐐�
+ approveNodeService.delApproveNodeByApproveId(id);
}
+
+
}
@Override
diff --git a/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java b/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java
index eec0e4a..0fdcfc5 100644
--- a/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java
+++ b/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java
@@ -1,12 +1,18 @@
package com.ruoyi.approve.utils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.approve.mapper.ApproveProcessMapper;
+import com.ruoyi.approve.pojo.ApproveProcess;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.Date;
import java.util.concurrent.TimeUnit;
@@ -21,7 +27,7 @@
this.redisTemplate = redisTemplate;
}
- /**
+ /**鏌ョ紦瀛�
* 鑾峰彇鎸囧畾璁℃暟鍣ㄥ湪浠婃棩鐨勬暟鍊硷紝骞惰嚜澧�1
* @param counterName 璁℃暟鍣ㄥ悕绉帮紙渚嬪锛歭ogin_count銆乷rder_count锛�
* @return 浠婃棩鑷鍚庣殑璁℃暟鍊�
@@ -39,6 +45,43 @@
return count;
}
+ @Autowired
+ private ApproveProcessMapper approveProcessMapper;
+
+ /**
+ * 鑾峰彇褰撳墠鏃堕棿鐨� 寮�濮嬫棩鏈� 锛岀粨鏉熸棩鏈�
+ * @return
+ */
+ public static StartAndEndDateDto getDateTime(){
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = new Date();
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+ cal.add(Calendar.DATE,1);
+ String startDateTime = simpleDateFormat.format(date);
+ String endDateTime = simpleDateFormat.format(cal.getTime());
+ StartAndEndDateDto startAndEndDateDto = new StartAndEndDateDto();
+ startAndEndDateDto.setStartDate(startDateTime);
+ startAndEndDateDto.setEndDate(endDateTime);
+ return startAndEndDateDto;
+ }
+
+ /**鏌ユ暟鎹簱
+ * 鑾峰彇鎸囧畾璁℃暟鍣ㄥ湪浠婃棩鐨勬暟鍊硷紝骞惰嚜澧�1
+ * @return 浠婃棩鑷鍚庣殑璁℃暟鍊�
+ */
+ public long incrementAndGetByDb() {
+ StartAndEndDateDto dateTime = getDateTime();
+ LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ approveProcessLambdaQueryWrapper
+ .eq(ApproveProcess::getApproveDelete,0)
+ .gt(ApproveProcess::getCreateTime,dateTime.getStartDate())
+ .lt(ApproveProcess::getCreateTime,dateTime.getEndDate());
+ Long aLong = approveProcessMapper.selectCount(approveProcessLambdaQueryWrapper);
+
+ return aLong == null ? 1 : aLong + 1;
+ }
+
/**
* 鑾峰彇鎸囧畾璁℃暟鍣ㄥ湪浠婃棩鐨勫綋鍓嶆暟鍊�
* @param counterName 璁℃暟鍣ㄥ悕绉�
diff --git a/src/main/java/com/ruoyi/approve/utils/StartAndEndDateDto.java b/src/main/java/com/ruoyi/approve/utils/StartAndEndDateDto.java
new file mode 100644
index 0000000..0c9eb11
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/utils/StartAndEndDateDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.approve.utils;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author :yys
+ * @date : 2023/9/19 10:58
+ */
+@Data
+@ApiModel
+public class StartAndEndDateDto {
+
+ @ApiModelProperty("寮�濮嬫椂闂�")
+ private String startDate;
+
+ @ApiModelProperty("缁撴潫鏃堕棿")
+ private String endDate;
+
+}
diff --git a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
index 5835645..7885247 100644
--- a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
+++ b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -7,17 +7,16 @@
@Data
public class ApproveProcessVO {
- //閮ㄩ棬id
- // private Long deptId;
- //閮ㄩ棬鍚嶇О
- @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖")
- private String deptName;
- //瀹℃壒浜� ids
- // private String approverIds;
- //瀹℃壒浜哄悕绉�
- @NotBlank(message = "瀹℃壒浜轰笉鑳戒负绌�")
- private String approverNames;
- //瀹℃壒浜嬬敱
- @NotBlank(message = "11")
+
+ private Long approveDeptId;
+
+ private String approveTime;
+
+ // 鐢宠浜�
+ private Long approveUser;
+
+ // 瀹℃壒浜�
+ private String approveUserIds;
+
private String approveReason;
}
diff --git a/src/main/java/com/ruoyi/framework/security/service/TokenService.java b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
index bb7e5ca..5b7cf11 100644
--- a/src/main/java/com/ruoyi/framework/security/service/TokenService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
@@ -1,9 +1,15 @@
package com.ruoyi.framework.security.service;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.project.system.domain.SysUserDept;
+import com.ruoyi.project.system.mapper.SysUserDeptMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +28,7 @@
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
+import org.springframework.util.CollectionUtils;
/**
* token楠岃瘉澶勭悊
@@ -140,6 +147,9 @@
}
}
+ @Autowired
+ private SysUserDeptMapper sysUserDeptMapper;
+
/**
* 鍒锋柊浠ょ墝鏈夋晥鏈�
*
@@ -149,6 +159,13 @@
{
loginUser.setLoginTime(System.currentTimeMillis());
loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+ LambdaQueryWrapper<SysUserDept> sysUserDeptLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ sysUserDeptLambdaQueryWrapper.eq(SysUserDept::getUserId, loginUser.getUserId());
+ List<SysUserDept> sysUserDept = sysUserDeptMapper.selectList(sysUserDeptLambdaQueryWrapper);
+ if(!CollectionUtils.isEmpty(sysUserDept)){
+ List<Long> collect = sysUserDept.stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
+ loginUser.setDeptId(collect.toArray(new Long[0]));
+ }
// 鏍规嵁uuid灏唋oginUser缂撳瓨
String userKey = getTokenKey(loginUser.getToken());
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
diff --git a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
index 442b090..61de057 100644
--- a/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
@@ -41,6 +41,7 @@
if(originalFilename == null) throw new IOException("鏂囦欢鍚嶄笉鑳戒负绌�");
URLEncoder urlEncoder = new URLEncoder();
String encodedFilename = urlEncoder.encode(originalFilename, StandardCharsets.UTF_8);
+ encodedFilename = encodedFilename.replaceAll("%2E",".");
Path tempFilePath = Paths.get(tempDir, tempId + "_" + encodedFilename);
// Path tempFilePath = Paths.get(tempDir, tempId + "_" + file.getOriginalFilename());
diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
index f08882a..9f7003a 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
@@ -54,6 +54,14 @@
public SysUser selectUserById(Long userId);
/**
+ * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛
+ *
+ * @param userId 鐢ㄦ埛ID
+ * @return 鐢ㄦ埛瀵硅薄淇℃伅
+ */
+ public List<SysUser> selectUserByIds(@Param("userIds") List<Long> userId);
+
+ /**
* 鏂板鐢ㄦ埛淇℃伅
*
* @param user 鐢ㄦ埛淇℃伅
diff --git a/src/main/resources/mapper/approve/ApproveProcessMapper.xml b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
index da0d5f7..3104940 100644
--- a/src/main/resources/mapper/approve/ApproveProcessMapper.xml
+++ b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
@@ -27,4 +27,10 @@
approve_user_names,approve_reason,approve_time,approve_over_time,approve_status,
approve_delete,tenant_id,approve_type,approve_remark
</sql>
+ <select id="listPage" resultType="com.ruoyi.approve.pojo.ApproveProcess">
+ select * from approve_process where approve_delete = 0
+ <if test="req.approveId != null and req.approveId != ''">
+ and approve_id like concat('%',#{req.approveId},'%')
+ </if>
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index f5164bc..8e9ec54 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -150,7 +150,13 @@
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
</select>
-
+ <select id="selectUserByIds" resultType="com.ruoyi.project.system.domain.SysUser">
+ <include refid="selectUserVo"/>
+ where u.user_id in <foreach collection="userIds" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </select>
+
<insert id="insertUser" parameterType="com.ruoyi.project.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if>
--
Gitblit v1.9.3