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