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