maven
2 天以前 b465cb64b42d207ffd7865c87be531d249f379ee
yys  修改审批协同bug
已修改13个文件
140 ■■■■■ 文件已修改
src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/pojo/ApproveNode.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/IApproveProcessService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/utils/DailyRedisCounter.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordOut.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/pojo/ProcurementRecordStorage.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordOutServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysDeptMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysUserMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,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;
    }
    /**
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>