From b465cb64b42d207ffd7865c87be531d249f379ee Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期五, 11 七月 2025 17:20:58 +0800 Subject: [PATCH] yys 修改审批协同bug --- src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 28 ++++---- src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 6 +- src/main/java/com/ruoyi/approve/service/IApproveProcessService.java | 2 src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java | 5 - src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java | 1 src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java | 5 - src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 32 +++++++++- src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java | 30 +++++++-- src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java | 3 src/main/resources/mapper/system/SysUserMapper.xml | 8 +- src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java | 2 src/main/java/com/ruoyi/approve/pojo/ApproveNode.java | 16 ++++ src/main/resources/mapper/system/SysDeptMapper.xml | 2 13 files changed, 95 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java index 589f14f..9dcda81 100644 --- a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java +++ b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java @@ -65,7 +65,7 @@ * @return */ @GetMapping("/get") - public AjaxResult get(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo){ + public AjaxResult get(ApproveGetAndUpdateVo approveGetAndUpdateVo){ if (approveGetAndUpdateVo.getId() == null || approveGetAndUpdateVo.getId().isEmpty()) { return AjaxResult.warn("鍙傛暟涓嶈兘涓虹┖"); } diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java b/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java index afcf58f..300cc32 100644 --- a/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java +++ b/src/main/java/com/ruoyi/approve/pojo/ApproveNode.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; @@ -14,7 +15,8 @@ * @TableName approve_node */ @Data -public class ApproveNode implements Serializable { +@TableName("approve_node") +public class ApproveNode{ /** * */ @@ -54,13 +56,23 @@ @TableField(exist = false) private Boolean isFirst; + + /** + * 鏄惁涓烘渶鍚庝竴姝� + */ @TableField(exist = false) private Boolean isLast; /** + * 鏄惁涓哄綋鍓嶅鏍歌妭鐐� + */ + @TableField(exist = false) + private Boolean isShen = false; + + /** * 绉熸埛id */ - @TableField(fill = FieldFill.INSERT) +// @TableField(fill = FieldFill.INSERT) private Long tenantId; /** diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java index 1bb5848..57bfdb1 100644 --- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java +++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java @@ -14,7 +14,7 @@ */ @Data @TableName("approve_process") -public class ApproveProcess implements Serializable { +public class ApproveProcess{ /** * */ @@ -84,7 +84,7 @@ private Date approveOverTime; /** - * 瀹℃壒鐘舵�侊細0寰呭鏍革紝1瀹℃牳涓紝2瀹℃牳瀹屾垚 + * 瀹℃壒鐘舵�侊細0寰呭鏍革紝1瀹℃牳涓紝2瀹℃牳瀹屾垚 3瀹℃牳鏈�氳繃 */ private Integer approveStatus; @@ -96,7 +96,7 @@ /** * 绉熸埛id */ - @TableField(fill = FieldFill.INSERT) +// @TableField(fill = FieldFill.INSERT) private Long tenantId; /** diff --git a/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java b/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java index 25c89bb..2606599 100644 --- a/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java +++ b/src/main/java/com/ruoyi/approve/service/IApproveProcessService.java @@ -36,5 +36,5 @@ * 瀹℃壒鐘舵�佹洿鏂� * @param approveNode */ - void updateApproveProcessStatus(ApproveNode approveNode); + void updateApproveProcessStatus(ApproveNode approveNode,Integer status); } 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 b6c37b3..04adc4b 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java @@ -64,18 +64,44 @@ 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) { - approveProcessService.updateApproveProcessStatus(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); } 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 426a8d8..b081070 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java @@ -132,23 +132,23 @@ LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ApproveProcess::getApproveId, id); queryWrapper.eq(ApproveProcess::getApproveDelete, 0); - return getOne(queryWrapper); + queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()); + queryWrapper.last("limit 1"); + ApproveProcess one = getOne(queryWrapper); + return one; } @Override - public void updateApproveProcessStatus(ApproveNode approveNode) { - ApproveProcess approveProcess = getById(approveNode.getApproveProcessId()); - if(approveNode.getIsFirst()){ - if(approveNode.getApproveNodeStatus() == 1){ - approveProcess.setApproveStatus(1); - } - } - if(approveNode.getIsLast()){ - if(approveNode.getApproveNodeStatus() == 1){ - approveProcess.setApproveStatus(2); - } - } - + public void updateApproveProcessStatus(ApproveNode approveNode,Integer status) { + LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); + approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId()) + .eq(ApproveProcess::getApproveDelete, 0) + .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()) + .last("limit 1"); + ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper); + if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�"); + approveProcess.setApproveStatus(status); + updateById(approveProcess); } @Override diff --git a/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java b/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java index 0fdcfc5..d98a005 100644 --- a/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java +++ b/src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java @@ -71,15 +71,29 @@ * @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); + String approveId = redisTemplate.opsForValue().get("approveNum"); + if(approveId == null){ + 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); + if(aLong == null){ + redisTemplate.opsForValue().set("approveNum","1",1L, TimeUnit.HOURS); + return 1; + }else{ + aLong += 1; + redisTemplate.opsForValue().set("approveNum",aLong.toString(),1L, TimeUnit.HOURS); + return aLong; + } + }else{ + Long num = Long.parseLong(approveId) + 1; + redisTemplate.opsForValue().set("approveNum",num.toString(),1L, TimeUnit.HOURS); + return Long.parseLong(approveId); + } - return aLong == null ? 1 : aLong + 1; } /** diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java index 07db479..d169692 100644 --- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java +++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java @@ -1,8 +1,6 @@ package com.ruoyi.procurementrecord.pojo; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Builder; import lombok.Data; @@ -70,6 +68,7 @@ /** * 绉熸埛ID */ + @TableField(fill = FieldFill.INSERT) private Long tenantId; } diff --git a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java index 890dde6..495a8a6 100644 --- a/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java +++ b/src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java @@ -1,8 +1,6 @@ package com.ruoyi.procurementrecord.pojo; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.Builder; import lombok.Data; @@ -66,5 +64,6 @@ /** * 绉熸埛ID */ + @TableField(fill = FieldFill.INSERT) private Long tenantId; } diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java index a561187..31605d7 100644 --- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java +++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java @@ -56,8 +56,7 @@ .createUser(Long.valueOf(procurementRecordOutAdd.getUserId())) .createBy(sysUser.getNickName()) .updateUser(Long.valueOf(procurementRecordOutAdd.getUserId())) - .updateTime(LocalDateTime.now()) - .tenantId(sysUser.getTenantId()); + .updateTime(LocalDateTime.now()); this.save(procurementRecordOut.build()); return 0; } diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java index 24b58ab..06612f6 100644 --- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java +++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java @@ -248,7 +248,6 @@ .createUser(loginUser.getUserId()) .updateTime(LocalDateTime.now()) .updateUser(loginUser.getUserId()) - .tenantId(loginUser.getTenantId()) .createBy(procurementDto.getNickName()); this.save(procurementRecordBuilder.build()); // 鍏ュ簱鎴愬姛鍑忔帀閲囪喘鏁伴噺 diff --git a/src/main/resources/mapper/system/SysDeptMapper.xml b/src/main/resources/mapper/system/SysDeptMapper.xml index efebac7..5c6310a 100644 --- a/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/src/main/resources/mapper/system/SysDeptMapper.xml @@ -67,7 +67,7 @@ </select> <select id="checkDeptExistUser" parameterType="Long" resultType="int"> - select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0' + select count(1) from sys_user_dept where dept_id = #{deptId} </select> <select id="hasChildByDeptId" parameterType="Long" resultType="int"> diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml index 8e9ec54..52ec0a3 100644 --- a/src/main/resources/mapper/system/SysUserMapper.xml +++ b/src/main/resources/mapper/system/SysUserMapper.xml @@ -62,12 +62,14 @@ FROM sys_user_dept T1 LEFT JOIN sys_dept T2 ON T1.dept_id = T2.dept_id + <where> + <if test="tenantId != null and tenantId != 0"> + T1.dept_id = #{tenantId} + </if> + </where> GROUP BY T1.user_id ) T2 on T2.user_id = u.user_id where u.del_flag = '0' - <if test="tenantId != null and tenantId != 0"> - and u.tenant_id = #{tenantId} - </if> <if test="userId != null and userId != 0"> AND u.user_id = #{userId} </if> -- Gitblit v1.9.3