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("参数不能为空"); } 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; /** 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; /** 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); } 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); } 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 src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java
@@ -71,6 +71,8 @@ * @return 今日自增后的计数值 */ public long incrementAndGetByDb() { String approveId = redisTemplate.opsForValue().get("approveNum"); if(approveId == null){ StartAndEndDateDto dateTime = getDateTime(); LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); approveProcessLambdaQueryWrapper @@ -78,8 +80,20 @@ .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; } /** 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; } 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; } 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; } 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()); // 入库成功减掉采购数量 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"> 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>