ZQN
2024-06-17 9472d5dc2f433ebb0b0b5efc836632474aca9ca7
通用审批接口添加
5个文件已添加
16个文件已修改
619 ■■■■ 已修改文件
project-admin/src/main/java/com/project/admin/controller/tool/CheckController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/EnforceCheckLog.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceCheckLogBo.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceCheckLogQueryBo.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderBo.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceCheckLogVo.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/service/ICheckService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/SysCompany.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/mapper/SysUserMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/ISysUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/resources/mapper/system/SysUserMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/tool/CheckController.java
New file
@@ -0,0 +1,48 @@
package com.project.admin.controller.tool;
import com.project.common.annotation.Log;
import com.project.common.annotation.RepeatSubmit;
import com.project.common.core.domain.AjaxResult;
import com.project.common.enums.BusinessType;
import com.project.enforce.service.ICheckService;
import com.project.system.domain.bo.editBo.CheckBo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "审核管理", tags = {"审核"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/tool/check")
public class CheckController
{
    private final ICheckService checkService;
    @ApiOperation("审核")
    @Log(title = "审核", businessType = BusinessType.UPDATE)
    @PostMapping(value = "/checkOrder")
    @RepeatSubmit
    public AjaxResult checkOrder(@RequestBody CheckBo bo)
    {
        if (bo.getCheckStatus()!=1 && bo.getCheckStatus()!=-1){
            return AjaxResult.error("审核状态有误!");
        }
        Boolean check = checkService.checkOrder(bo);
        if (check){
            if (bo.getCheckStatus()==1){
                return AjaxResult.success("审核通过成功!");
            }
            return AjaxResult.success("审核拒绝成功!");
        }
        return AjaxResult.error("审核失败!");
    }
}
project-enforce/src/main/java/com/project/enforce/domain/EnforceCheckLog.java
@@ -21,7 +21,7 @@
@Accessors(chain = true)
@TableName("enforce_check_log")
@ApiModel("执法审批记录实体对象")
public class EnforceCheckLog extends BaseDomain {
public class EnforceCheckLog implements Serializable {
    private static final long serialVersionUID=1L;
@@ -30,6 +30,8 @@
    @ApiModelProperty("ID")
    private Long id;
    @ApiModelProperty("审批类型:1企业审批,2执法单审批")
    private Integer checkType;
    @ApiModelProperty("执法单id")
    private String orderId;
@@ -60,11 +62,11 @@
    @ApiModelProperty("审批人")
    private Long checkUser;
    private String checkUser;
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    private String checkPhone;
    @ApiModelProperty("审批人单位")
@@ -72,7 +74,7 @@
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    private String checkDeptName;
    @ApiModelProperty("审批时间")
@@ -86,15 +88,11 @@
    @ApiModelProperty("审批原因")
    private String checkReason;
    /**
     * 逻辑删除状态
     */
    @TableLogic(value = "0",delval = "1")
    private Integer delFlag;
project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java
@@ -76,11 +76,11 @@
    @ApiModelProperty("申请人")
    private Long applyUser;
    private String applyUser;
    @ApiModelProperty("申请人电话")
    private Long applyPhone;
    private String applyPhone;
    @ApiModelProperty("申请人单位")
@@ -88,14 +88,16 @@
    @ApiModelProperty("申请人单位")
    private Long applyDeptName;
    private String applyDeptName;
    @ApiModelProperty("申请时间")
    private Date applyTime;
    @ApiModelProperty("执法队员数量")
    @ApiModelProperty("执法队员人数")
    private Integer userNum;
    @ApiModelProperty("预警状态:0正常,1预警")
    private Integer warnStatus;
@@ -109,28 +111,12 @@
    private Integer orderStatus;
    @ApiModelProperty("审批人id")
    private Long checkId;
    @ApiModelProperty("审批人")
    private Long checkUser;
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    @ApiModelProperty("审批时间")
    private Date checkTime;
    private String checkDeptName;
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
@@ -141,16 +127,20 @@
    private String checkReason;
    @ApiModelProperty("当前审批层级:")
    private Integer checkLevel;
    @ApiModelProperty("执行人id")
    private Long executeId;
    @ApiModelProperty("执行人")
    private Long executeUser;
    private String executeUser;
    @ApiModelProperty("执行人电话")
    private Long executePhone;
    private String executePhone;
    @ApiModelProperty("执行人单位")
@@ -158,7 +148,7 @@
    @ApiModelProperty("执行人单位")
    private Long executeDeptName;
    private String executeDeptName;
    @ApiModelProperty("执行时间")
project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceCheckLogBo.java
@@ -27,6 +27,9 @@
    @ApiModelProperty("ID")
    private Long id;
    @ApiModelProperty("审批类型:1企业审批,2执法单审批")
    private Integer checkType;
    /** 执法单id */
    @ApiModelProperty("执法单id")
    private String orderId;
@@ -57,11 +60,11 @@
    /** 审批人 */
    @ApiModelProperty("审批人")
    private Long checkUser;
    private String checkUser;
    /** 审批人电话 */
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    private String checkPhone;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
@@ -69,7 +72,7 @@
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    private String checkDeptName;
    /** 审批时间 */
    @ApiModelProperty("审批时间")
@@ -84,16 +87,5 @@
    @ApiModelProperty("审批原因")
    private String checkReason;
    /** 更新人 */
    @ApiModelProperty("更新人")
    private String updateBy;
    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;
}
project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java
@@ -74,11 +74,11 @@
    /** 申请人 */
    @ApiModelProperty("申请人")
    private Long applyUser;
    private String applyUser;
    /** 申请人电话 */
    @ApiModelProperty("申请人电话")
    private Long applyPhone;
    private String applyPhone;
    /** 申请人单位 */
    @ApiModelProperty("申请人单位")
@@ -86,14 +86,15 @@
    /** 申请人单位 */
    @ApiModelProperty("申请人单位")
    private Long applyDeptName;
    private String applyDeptName;
    /** 申请时间 */
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
    @ApiModelProperty("执法队员数量")
    /** 执法队员人数 */
    @ApiModelProperty("执法队员人数")
    private Integer userNum;
    /** 预警状态:0正常,1预警 */
@@ -108,30 +109,13 @@
    @ApiModelProperty("订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价")
    private Integer orderStatus;
    /** 审批人id */
    @ApiModelProperty("审批人id")
    private Long checkId;
    /** 审批人 */
    @ApiModelProperty("审批人")
    private Long checkUser;
    /** 审批人电话 */
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    /** 审批时间 */
    @ApiModelProperty("审批时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;
    private String checkDeptName;
    /** 订单状态:-1拒绝,0待审批,1审批中,2通过 */
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
@@ -141,17 +125,21 @@
    @ApiModelProperty("审批原因")
    private String checkReason;
    /** 当前审批层级: */
    @ApiModelProperty("当前审批层级:")
    private Integer checkLevel;
    /** 执行人id */
    @ApiModelProperty("执行人id")
    private Long executeId;
    /** 执行人 */
    @ApiModelProperty("执行人")
    private Long executeUser;
    private String executeUser;
    /** 执行人电话 */
    @ApiModelProperty("执行人电话")
    private Long executePhone;
    private String executePhone;
    /** 执行人单位 */
    @ApiModelProperty("执行人单位")
@@ -159,7 +147,7 @@
    /** 执行人单位 */
    @ApiModelProperty("执行人单位")
    private Long executeDeptName;
    private String executeDeptName;
    /** 执行时间 */
    @ApiModelProperty("执行时间")
project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceCheckLogQueryBo.java
@@ -36,6 +36,10 @@
    /** 执法单id */
    @ApiModelProperty("执法单id")
    private String orderId;
    @ApiModelProperty("审批类型:1企业审批,2执法单审批")
    private Integer checkType;
    /** 执法单号 */
    @ApiModelProperty("执法单号")
    private String orderNo;
@@ -56,16 +60,16 @@
    private Long checkId;
    /** 审批人 */
    @ApiModelProperty("审批人")
    private Long checkUser;
    private String checkUser;
    /** 审批人电话 */
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    private String checkPhone;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    private String checkDeptName;
    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("审批时间")
project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderBo.java
New file
@@ -0,0 +1,188 @@
package com.project.enforce.domain.bo.queryBo;
import com.project.common.core.domain.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
 * 执法单编辑对象 enforce_order
 *
 * @author manton
 */
@Data
@ApiModel("执法单操作对象")
public class EnforceOrderBo {
    /** 单据id */
    @ApiModelProperty("单据id")
    private Long orderId;
    /** 单据编号 */
    @ApiModelProperty("单据编号")
    private String orderNo;
    /** 企业id */
    @ApiModelProperty("企业id")
    private Long companyId;
    /** 企业名 */
    @ApiModelProperty("企业名")
    private String companyName;
    /** 企业社会编码 */
    @ApiModelProperty("企业社会编码")
    private String companyCode;
    /** 企业联系人 */
    @ApiModelProperty("企业联系人")
    private String companyUser;
    /** 企业联系人电话(账号) */
    @ApiModelProperty("企业联系人电话(账号)")
    private String companyPhone;
    /** 企业地址 */
    @ApiModelProperty("企业地址")
    private String companyAddress;
    /** 所属区域编码 */
    @ApiModelProperty("所属区域编码")
    private String regionCode;
    /** 所属区域 */
    @ApiModelProperty("所属区域")
    private String regionName;
    /** 执法原因 */
    @ApiModelProperty("执法原因")
    private String enforceReason;
    /** 申请人id */
    @ApiModelProperty("申请人id")
    private Long applyId;
    /** 申请人 */
    @ApiModelProperty("申请人")
    private String applyUser;
    /** 申请人电话 */
    @ApiModelProperty("申请人电话")
    private String applyPhone;
    /** 申请人单位 */
    @ApiModelProperty("申请人单位")
    private Long applyDeptId;
    /** 申请人单位 */
    @ApiModelProperty("申请人单位")
    private String applyDeptName;
    /** 申请时间 */
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
    /** 执法队员人数 */
    @ApiModelProperty("执法队员人数")
    private Integer userNum;
    /** 预警状态:0正常,1预警 */
    @ApiModelProperty("预警状态:0正常,1预警")
    private Integer warnStatus;
    /** 预警原因 */
    @ApiModelProperty("预警原因")
    private String warnReason;
    /** 订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价 */
    @ApiModelProperty("订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价")
    private Integer orderStatus;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    /** 审批人单位 */
    @ApiModelProperty("审批人单位")
    private String checkDeptName;
    /** 订单状态:-1拒绝,0待审批,1审批中,2通过 */
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    /** 审批原因 */
    @ApiModelProperty("审批原因")
    private String checkReason;
    /** 当前审批层级: */
    @ApiModelProperty("当前审批层级:")
    private Integer checkLevel;
    /** 执行人id */
    @ApiModelProperty("执行人id")
    private Long executeId;
    /** 执行人 */
    @ApiModelProperty("执行人")
    private String executeUser;
    /** 执行人电话 */
    @ApiModelProperty("执行人电话")
    private String executePhone;
    /** 执行人单位 */
    @ApiModelProperty("执行人单位")
    private Long executeDeptId;
    /** 执行人单位 */
    @ApiModelProperty("执行人单位")
    private String executeDeptName;
    /** 执行时间 */
    @ApiModelProperty("执行时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date executeTime;
    /** 执法结果:0正常,1待整改 */
    @ApiModelProperty("执法结果:0正常,1待整改")
    private Integer regionStatus;
    /** 执法结果说明 */
    @ApiModelProperty("执法结果说明")
    private String regionReason;
    /** 执法图片 */
    @ApiModelProperty("执法图片")
    private String regionImgs;
    /** 执法视频 */
    @ApiModelProperty("执法视频")
    private String regionVideos;
    /** 是否通知企业:0否,1是 */
    @ApiModelProperty("是否通知企业:0否,1是")
    private Integer isNoticeCompany;
    /** 是否公示:0否,1是 */
    @ApiModelProperty("是否公示:0否,1是")
    private Integer isShow;
    /** 是否评价:0否,1是 */
    @ApiModelProperty("是否评价:0否,1是")
    private Integer isEva;
    /** 评价总得分 */
    @ApiModelProperty("评价总得分")
    private BigDecimal totalScore;
}
project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceCheckLogVo.java
@@ -23,6 +23,9 @@
    @ApiModelProperty("ID")
    private Long id;
    @ApiModelProperty("审批类型:1企业审批,2执法单审批")
    private Integer checkType;
    @Excel(name = "执法单id")
    @ApiModelProperty("执法单id")
    private String orderId;
@@ -46,16 +49,16 @@
    private Long checkId;
    @Excel(name = "审批人")
    @ApiModelProperty("审批人")
    private Long checkUser;
    private String checkUser;
    @Excel(name = "审批人电话")
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    private String checkPhone;
    @Excel(name = "审批人单位")
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    @Excel(name = "审批人单位")
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    private String checkDeptName;
    @Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("审批时间")
@@ -66,8 +69,6 @@
    @Excel(name = "审批原因")
    @ApiModelProperty("审批原因")
    private String checkReason;
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remark;
}
project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java
@@ -59,22 +59,22 @@
    private Long applyId;
    @Excel(name = "申请人")
    @ApiModelProperty("申请人")
    private Long applyUser;
    private String applyUser;
    @Excel(name = "申请人电话")
    @ApiModelProperty("申请人电话")
    private Long applyPhone;
    private String applyPhone;
    @Excel(name = "申请人单位")
    @ApiModelProperty("申请人单位")
    private Long applyDeptId;
    @Excel(name = "申请人单位")
    @ApiModelProperty("申请人单位")
    private Long applyDeptName;
    private String applyDeptName;
    @Excel(name = "申请时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("申请时间")
    private Date applyTime;
    @Excel(name = "执法队员数量")
    @ApiModelProperty("执法队员数量")
    @Excel(name = "执法队员人数")
    @ApiModelProperty("执法队员人数")
    private Integer userNum;
    @Excel(name = "预警状态:0正常,1预警")
    @ApiModelProperty("预警状态:0正常,1预警")
@@ -85,46 +85,36 @@
    @Excel(name = "订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价")
    @ApiModelProperty("订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价")
    private Integer orderStatus;
    @Excel(name = "审批人id")
    @ApiModelProperty("审批人id")
    private Long checkId;
    @Excel(name = "审批人")
    @ApiModelProperty("审批人")
    private Long checkUser;
    @Excel(name = "审批人电话")
    @ApiModelProperty("审批人电话")
    private Long checkPhone;
    @Excel(name = "审批人单位")
    @ApiModelProperty("审批人单位")
    private Long checkDeptId;
    @Excel(name = "审批人单位")
    @ApiModelProperty("审批人单位")
    private Long checkDeptName;
    @Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("审批时间")
    private Date checkTime;
    private String checkDeptName;
    @Excel(name = "订单状态:-1拒绝,0待审批,1审批中,2通过")
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @Excel(name = "审批原因")
    @ApiModelProperty("审批原因")
    private String checkReason;
    @Excel(name = "当前审批层级:")
    @ApiModelProperty("当前审批层级:")
    private Integer checkLevel;
    @Excel(name = "执行人id")
    @ApiModelProperty("执行人id")
    private Long executeId;
    @Excel(name = "执行人")
    @ApiModelProperty("执行人")
    private Long executeUser;
    private String executeUser;
    @Excel(name = "执行人电话")
    @ApiModelProperty("执行人电话")
    private Long executePhone;
    private String executePhone;
    @Excel(name = "执行人单位")
    @ApiModelProperty("执行人单位")
    private Long executeDeptId;
    @Excel(name = "执行人单位")
    @ApiModelProperty("执行人单位")
    private Long executeDeptName;
    private String executeDeptName;
    @Excel(name = "执行时间" , width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("执行时间")
project-enforce/src/main/java/com/project/enforce/service/ICheckService.java
New file
@@ -0,0 +1,21 @@
package com.project.enforce.service;
import com.project.system.domain.bo.editBo.CheckBo;
/**
 * 功能描述:
 *
 * @author ZQN
 * @version 1.0
 */
public interface ICheckService
{
    /**
     * 审核
     * @param bo    测试
     * @return  结果
     */
    Boolean checkOrder(CheckBo bo);
}
project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java
New file
@@ -0,0 +1,112 @@
package com.project.enforce.service.impl;
import cn.hutool.core.convert.Convert;
import com.project.common.core.domain.entity.SysRole;
import com.project.common.core.domain.entity.SysUser;
import com.project.common.exception.base.BaseException;
import com.project.common.utils.SecurityUtils;
import com.project.common.utils.StringUtils;
import com.project.enforce.domain.EnforceCheckLog;
import com.project.enforce.domain.EnforceOrder;
import com.project.enforce.service.ICheckService;
import com.project.enforce.service.IEnforceCheckLogService;
import com.project.enforce.service.IEnforceOrderService;
import com.project.system.domain.SysCompany;
import com.project.system.domain.bo.editBo.CheckBo;
import com.project.system.service.ISysCompanyService;
import com.project.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 功能描述:
 *
 * @author ZQN
 * @version 1.0
 * @date 2024年06月17日
 */
@Service
@RequiredArgsConstructor
public class CheckServiceImpl implements ICheckService
{
    private final ISysCompanyService companyService;
    private final IEnforceOrderService orderService;
    private final IEnforceCheckLogService checkLogService;
    private final ISysUserService userService;
    @Override
    @Transactional
    public Boolean checkOrder(CheckBo bo)
    {
        switch (bo.getCheckType())
        {
            case 1:
                SysCompany company = companyService.getById(bo.getId());
                if (company==null) {
                    throw new BaseException("没有找到对应数据,请检查审核类型!");
                }
                if (bo.getCheckStatus()== -1){
                    company.setCheckStatus(-1);
                } else {
                    company.setCheckStatus(2);
                }
                addCheckLog(company, bo);
                company.setCheckReason(bo.getCheckReason());
                companyService.updateById(company);
                break;
            case 2:
                EnforceOrder order = orderService.getById(bo.getId());
                if (order==null) {
                    throw new BaseException("没有找到对应数据,请检查审核类型!");
                }
                addCheckLog(order, bo);
                if (bo.getCheckStatus()==-1){
                    order.setCheckStatus(-1);
                } else {
                    String roleKey = "check_enforce_" + (order.getCheckLevel() + 1);
                    List<Long> ids = userService.getNumByRoleKey(roleKey, order.getCheckDeptId());
                    if (StringUtils.isNotEmpty(ids)){
                        order.setCheckStatus(1);
                    } else {
                        order.setCheckStatus(2);
                    }
                    //审批登记加1
                    order.setCheckLevel(order.getCheckLevel()+1);
                }
                order.setCheckReason(bo.getCheckReason());
                orderService.updateById(order);
                break;
        }
        return false;
    }
    /**
     * 添加审批记录
     * @param obj   业务对象
     * @param bo    审批参数
     */
    private void addCheckLog(Object obj, CheckBo bo)
    {
        EnforceCheckLog checkLog = Convert.convert(EnforceCheckLog.class, obj);
        checkLog.setCheckType(bo.getCheckType());
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        checkLog.setCheckId(loginUser.getUserId());
        checkLog.setCheckUser(loginUser.getUserName());
        checkLog.setCheckPhone(loginUser.getPhonenumber());
        checkLog.setCheckStatus(bo.getCheckStatus());
        checkLog.setCheckReason(bo.getCheckReason());
        boolean save = checkLogService.save(checkLog);
        if (!save) {
            throw new BaseException("审批记录添加失败,请重试!");
        }
    }
}
project-system/src/main/java/com/project/system/domain/SysCompany.java
@@ -71,6 +71,9 @@
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @ApiModelProperty("审批说明")
    private String checkReason;
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
project-system/src/main/java/com/project/system/domain/bo/editBo/CheckBo.java
New file
@@ -0,0 +1,26 @@
package com.project.system.domain.bo.editBo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author Mr.Zhao
 */
@Data
public class CheckBo
{
    @ApiModelProperty(value = "业务类型:1企业审批,2执法单审批",required = true)
    private Integer checkType;
    @ApiModelProperty(value = "id",required = true)
    private Long id;
    @ApiModelProperty(value = "类型:1通过,-1拒绝",required = true)
    private Integer checkStatus;
    @ApiModelProperty("审核说明")
    private String checkReason;
}
project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java
@@ -65,6 +65,9 @@
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @ApiModelProperty("审批说明")
    private String checkReason;
    /** 自定义排序 */
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java
@@ -61,6 +61,10 @@
    /** 订单状态:-1拒绝,0待审批,1审批中,2通过 */
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @ApiModelProperty("审批说明")
    private String checkReason;
    /** 自定义排序 */
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java
@@ -56,6 +56,9 @@
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @ApiModelProperty("审批说明")
    private String checkReason;
    @Excel(name = "自定义排序")
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
@@ -135,4 +135,11 @@
    public SysUser checkEmailUnique(String email);
    /**
     * 查询角色标识对应人数
     * @param roleKey   标识
     * @param deptId   部门id
     * @return  人数
     */
    List<Long> getNumByRoleKey(@Param("roleKey") String roleKey,@Param("deptId") Long deptId);
}
project-system/src/main/java/com/project/system/service/ISysUserService.java
@@ -212,4 +212,11 @@
     * @return  结果
     */
    public int deleteUserByDeptId(Long deptId);
    /**
     * 获取角色标识人数
     * @param roleKey   角色标识
     * @return 人数
     */
    List<Long> getNumByRoleKey(String roleKey, Long deptId);
}
project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
@@ -162,6 +162,9 @@
                throw new BaseException(String.format("%1$s,企业联系电话已存在!", entity.getCompanyName()));
            }
        }
        if (isImport==1){
            entity.setCheckStatus(2);
        }
    }
project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java
@@ -547,4 +547,10 @@
        List<SysUser> sysUsers = userMapper.selectList(new LambdaQueryWrapper<SysUser>().eq(SysUser::getDeptId, deptId));
        return this.deleteUserByIds((Long[]) sysUsers.stream().map(SysUser::getUserId).toArray());
    }
    @Override
    public List<Long> getNumByRoleKey(String roleKey, Long deptId)
    {
        return userMapper.getNumByRoleKey(roleKey, deptId);
    }
}
project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -235,4 +235,15 @@
     </delete>
    <select id="getNumByRoleKey"  resultType="Long">
        select u.user_id
            from sys_user u
            join sys_user_role ur on u.user_id = ur.user_id
            join sys_role r on r.role_id=ur.role_id
        where
          u.user_type = '01'
          and r.role_key = #{roleKey}
          and (u.dept_id = #{deptId} or u.dept_id in (SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors)))
    </select>
</mapper>