ZQN
2024-06-22 d509e25f601c110427306543a0d17cd97cc6b194
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -1,22 +1,38 @@
package com.project.enforce.service.impl;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.project.common.annotation.DataScope;
import com.project.common.core.domain.entity.SysUser;
import com.project.common.enums.OrderPre;
import com.project.common.exception.base.BaseException;
import com.project.common.utils.DateUtils;
import com.project.common.utils.JsonUtils;
import com.project.common.utils.SecurityUtils;
import com.project.common.utils.StringUtils;
import com.project.enforce.domain.*;
import com.project.enforce.domain.bo.editBo.EnforceComplaintLogBo;
import com.project.enforce.domain.bo.editBo.EnforceOrderBo;
import com.project.enforce.domain.bo.editBo.OrderComplaintBo;
import com.project.enforce.domain.bo.editBo.OrderResultBo;
import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo;
import com.project.enforce.domain.bo.queryBo.OrderCheckedQueryBo;
import com.project.enforce.domain.vo.EnforceEvaluateVo;
import com.project.enforce.domain.vo.EnforceOrderVo;
import com.project.enforce.domain.vo.OrderNodeVo;
import com.project.enforce.mapper.EnforceOrderMapper;
import com.project.enforce.service.*;
import com.project.system.service.ISysDeptService;
import com.project.system.service.ISysOrderNoService;
import com.project.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import cn.hutool.core.convert.Convert;
import com.project.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.transaction.annotation.Transactional;
import com.project.enforce.domain.vo.EnforceOrderVo;
import com.project.enforce.domain.bo.editBo.EnforceOrderBo;
import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo;
import com.project.enforce.domain.EnforceOrder;
import com.project.enforce.mapper.EnforceOrderMapper;
import com.project.enforce.service.IEnforceOrderService;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -29,33 +45,185 @@
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class EnforceOrderServiceImpl extends ServiceImpl<EnforceOrderMapper, EnforceOrder> implements IEnforceOrderService {
    private final ISysUserService userService;
    private final ISysDeptService deptService;
    private final ISysOrderNoService orderNoService;
    private final IEnforcePeerService peerService;
    private final IEnforceCheckLogService checkLogService;
    private final IEnforceComplaintLogService complaintLogService;
    private final IEnforceEvaluateLogService evaluateLogService;
    private final YPSmsService smsService;
    @Override//列表查询
    public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo)
    /**
     * 通用列表-无权限
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCommonList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        List<EnforceOrder> list = this.list(qw);
        return Convert.toList(EnforceOrderVo.class , list);
    }
    @Override//id查询
    public EnforceOrderVo queryById(Long orderId)
    /**
     * 企业执法单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCompanyList(EnforceOrderQueryBo bo)
    {
        EnforceOrder db = this.baseMapper.selectById(orderId);
        return Convert.convert(EnforceOrderVo.class , db);
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        qw.ge("order_status",2);
        List<EnforceOrder> list = this.list(qw);
        return Convert.toList(EnforceOrderVo.class , list);
    }
    /**
     * 执法申请单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_id")
    public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        qw.apply(StringUtils.isNotEmpty(bo.getParams().get("dataScope").toString()), bo.getParams().get("dataScope").toString());//数据权限控制
        List<EnforceOrder> list = this.list(qw);
        return Convert.toList(EnforceOrderVo.class , list);
    }
    /**
     * 执法执行单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    @DataScope(deptAlias = "execute_dept_id", userAlias = "execute_id")
    public List<EnforceOrderVo> getExecuteList(EnforceOrderQueryBo bo) {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        qw.apply(StringUtils.isNotEmpty(bo.getParams().get("dataScope").toString()), bo.getParams().get("dataScope").toString());//数据权限控制
        List<EnforceOrder> list = this.list(qw);
        return Convert.toList(EnforceOrderVo.class , list);
    }
    /**
     * 待审核列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCheckList(EnforceOrderQueryBo bo)
    {
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        bo.setCheckIds(loginUser.getPhonenumber());
        List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId());
        if (StringUtils.isNotEmpty(deptIds)){
            bo.setApplyDeptIds(deptIds);
        } else {
            bo.setApplyDeptIds(null);
        }
        return this.baseMapper.selectCheckList(bo);
    }
    /**
     * 审批记录列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCheckedList(OrderCheckedQueryBo bo)
    {
        bo.setUserId(SecurityUtils.getUserId());
        return this.baseMapper.selectCheckedList(bo);
    }
    /**
     * 信息公式列表
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> showList()
    {
        List<EnforceOrder> list = this.list(lq()
                .eq(EnforceOrder::getIsShow, 1)
                .eq(EnforceOrder::getOrderStatus, 4)
        );
        return Convert.toList(EnforceOrderVo.class, list);
    }
    /**
     * id查询
     */
    @Override
    public EnforceOrderVo queryById(Long orderId)
    {
        EnforceOrder db = this.baseMapper.selectById(orderId);
        EnforceOrderVo vo = Convert.convert(EnforceOrderVo.class, db);
        List<EnforcePeer> peers = peerService.list(peerService.lq().eq(EnforcePeer::getOrderId, orderId).eq(EnforcePeer::getPeerType,2));
        vo.setPeers(peers);
        if (db.getIsEva()==1){
            EnforceEvaluateLog one = evaluateLogService.getOne(evaluateLogService.lq().eq(EnforceEvaluateLog::getOrderId, orderId));
            if (one!=null){
                String questionStatic = one.getQuestionStatic();
                if (StringUtils.isNotEmpty(questionStatic)){
                    try {
                        EnforceEvaluateVo evaluateVo = JsonUtils.jsonToPojo(questionStatic, EnforceEvaluateVo.class);
                        vo.setEvaluateVo(evaluateVo);
                    } catch (Exception e) {
                        throw new BaseException("评价问券解析异常!");
                    }
                }
            }
        }
        return vo;
    }
    /**
     * 新增
     */
    @Override//添加
    @Transactional
    public Boolean insertByBo(EnforceOrderBo bo)
    {
        EnforceOrder add = Convert.convert(EnforceOrder.class, bo);
        add.setCheckLevel(0);
        validEntityBeforeSave(add);
        return this.save(add);
        List<String> phones = getCheckPhones(add.getCheckLevel(), add.getApplyDeptId());
        if (StringUtils.isNotEmpty(phones)){
            String checkPhones = StringUtils.join(phones, ",");
            add.setCheckIds(checkPhones);
        }
        this.save(add);
        bo.getPeers().add(0,new EnforcePeer()
                .setPeerType(1)
                .setPeerId(add.getApplyId())
                .setPeerUser(add.getApplyUser())
                .setPeerPhone(add.getApplyPhone())
                .setPeerDeptId(add.getApplyDeptId())
                .setPeerDeptName(add.getApplyDeptName())
        );
        //处理执法人员信息
        for (EnforcePeer peer : bo.getPeers())
        {
            peer.setOrderId(add.getOrderId());
            peer.setPeerDeptName(deptService.getDeptAllName(peer.getPeerDeptId()));
        }
        boolean savePeers = peerService.saveOrUpdateBatch(bo.getPeers());
        if (savePeers && StringUtils.isNotEmpty(phones)) {
            smsService.sendApplyMsg(phones, add.getApplyUser());
        }
        return savePeers;
    }
    /**
     * 修改
     */
    @Override//修改
    @Transactional
    public Boolean updateByBo(EnforceOrderBo bo)
@@ -65,6 +233,9 @@
        return this.updateById(update);
    }
    /**
     * 删除
     */
    @Override//删除
    @Transactional
    public Boolean deleteByIds(Collection<Long> ids)
@@ -75,13 +246,154 @@
        return this.removeByIds(ids);
    }
    /**
     * 获取下一级审批人电话
     */
    @Override
    public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId)
    {
        return getCheckPhones(checkLevel, applyDeptId, 0);
    }
    @Override
    public List<OrderNodeVo> orderNodeList(Long orderId)
    {
        List<OrderNodeVo> vos = new ArrayList<>();
        EnforceOrder order = this.getById(orderId);
        List<EnforceCheckLog> checkLogs = checkLogService.list(checkLogService.lq()
                .eq(EnforceCheckLog::getOrderId, orderId).orderByAsc(EnforceCheckLog::getCheckTime)
        );
        if (order.getApplyTime()!=null){
            vos.add(new OrderNodeVo("提交申请",order.getApplyUser(),order.getApplyTime(), null));
        }
        if (StringUtils.isNotEmpty(checkLogs)){
            for (EnforceCheckLog checkLog : checkLogs) {
                if (checkLog.getCheckStatus()>0){
                    vos.add(new OrderNodeVo("审批通过",checkLog.getCheckUser(),checkLog.getCheckTime(), null));
                } else {
                    vos.add(new OrderNodeVo("审批拒绝",checkLog.getCheckUser(),checkLog.getCheckTime(), checkLog.getCheckReason()));
                }
            }
        }
        if (order.getInTime()!=null){
            vos.add(new OrderNodeVo("扫码入企",order.getExecuteUser(),order.getInTime(), null));
        }
        if (order.getExecuteTime()!=null){
            vos.add(new OrderNodeVo("结果上报",order.getExecuteUser(),order.getExecuteTime(), null));
        }
        return vos;
    }
    @Override//扫码结果
    public List<EnforceOrderVo> getScanList(String companyCode)
    {
        Long userId = SecurityUtils.getUserId();
        return this.baseMapper.selectScanList(companyCode, userId);
    }
    @Override//确认扫码执法
    @Transactional
    public Boolean doScanOrder(Long orderId)
    {
        EnforceOrder order = this.getById(orderId);
        order.setOrderStatus(3);
        SysUser user = SecurityUtils.getLoginUser().getUser();
        order.setExecuteId(user.getUserId());
        order.setExecuteUser(user.getNickName());
        order.setExecutePhone(user.getRecommendPhone());
        order.setExecuteDeptId(user.getDeptId());
        order.setExecuteDeptName(deptService.getDeptAllName(user.getDeptId()));
        order.setInTime(DateUtils.getNowDate());
        return this.updateById(order);
    }
    @Override//上报结果
    @Transactional
    public Boolean doResultOrder(OrderResultBo resultBo)
    {
        if (resultBo.getRegionStatus()==null){
            throw new BaseException("请填写执法结果");
        }
        if (StringUtils.isEmpty(resultBo.getRegionReason())){
            throw new BaseException("请填写执法结果说明");
        }
        return this.update(lu()
                .set(resultBo.getRegionStatus()!=null, EnforceOrder::getRegionStatus, resultBo.getRegionStatus())
                .set(StringUtils.isNotEmpty(resultBo.getRegionReason()), EnforceOrder::getRegionReason, resultBo.getRegionReason())
                .set(StringUtils.isNotEmpty(resultBo.getRegionImgs()), EnforceOrder::getRegionImgs, resultBo.getRegionImgs())
                .set(StringUtils.isNotEmpty(resultBo.getRegionVideos()), EnforceOrder::getRegionVideos, resultBo.getRegionVideos())
                .set( EnforceOrder::getOrderStatus, 4)
                .set( EnforceOrder::getExecuteTime, DateUtils.getNowDate())
        );
    }
    @Override//执法单投诉
    @Transactional
    public Boolean orderComplaint(OrderComplaintBo bo)
    {
        if (bo.getOrderId()==null){
            throw new BaseException("请选择要投诉的执法单!");
        }
        if (StringUtils.isEmpty(bo.getComplaintType())){
            throw new BaseException("请选择要投诉类型!");
        }
        if (StringUtils.isEmpty(bo.getComplaintReason())){
            throw new BaseException("请填写投诉内容!");
        }
        EnforceOrder order = this.getById(bo.getOrderId());
        //添加投诉记录
        EnforceComplaintLogBo complaintLogBo = Convert.convert(EnforceComplaintLogBo.class, order);
        complaintLogBo.setComplaintType(bo.getComplaintType());
        complaintLogBo.setComplaintReason(bo.getComplaintReason());
        Boolean addLog = complaintLogService.insertByBo(complaintLogBo);
        if (addLog){
            return this.update(lu()
                    .set(EnforceOrder::getIsComplaint,1)
                    .set(EnforceOrder::getComplaintType,bo.getComplaintType())
                    .set(EnforceOrder::getComplaintReason,bo.getComplaintReason())
                    .eq(EnforceOrder::getOrderId,bo.getOrderId())
            );
        }
        return false;
    }
    @Override//执法单投诉节点
    public List<OrderNodeVo> orderComplaintNodeList(Long orderId)
    {
        EnforceComplaintLog log = complaintLogService.getOne(complaintLogService.lq().eq(EnforceComplaintLog::getOrderId, orderId));
        if (log==null){
            return null;
        }
        return complaintLogService.orderNodeList(log.getId());
    }
//-------------------------------------------------------------------------------------
    //保存前校验
    private void validEntityBeforeSave(EnforceOrder entity)
    {
        //做一些数据校验,如唯一约束
        if (entity.getOrderId()==null){
            String orderNo = orderNoService.getOrderNo(OrderPre.ZFD.getIndex());
            entity.setOrderNo(orderNo);
            entity.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(entity.getApplyDeptId()));
            entity.setApplyTime(DateUtils.getNowDate());
        }
        if (StringUtils.isEmpty(entity.getApplyDeptName()) && entity.getApplyDeptId()!=null){
            entity.setApplyDeptName(deptService.getDeptAllName(entity.getApplyDeptId()));
        }
        if (StringUtils.isEmpty(entity.getExecuteDeptName()) && entity.getExecuteDeptId()!=null){
            entity.setExecuteDeptName(deptService.getDeptAllName(entity.getExecuteDeptId()));
        }
        if (StringUtils.isEmpty(entity.getCheckDeptName()) && entity.getCheckDeptId()!=null){
            entity.setCheckDeptName(deptService.getDeptAllName(entity.getCheckDeptId()));
        }
    }
    //获取查询参数
@@ -89,47 +401,49 @@
    {
        QueryWrapper<EnforceOrder> qw = Wrappers.query();
            qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo());
            qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId());
            qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
            qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
            qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
            qw.eq(StringUtils.isNotEmpty(bo.getEnforceReason()), "enforce_reason", bo.getEnforceReason());
            qw.eq(bo.getApplyId() != null, "apply_id", bo.getApplyId());
            qw.eq(bo.getApplyUser() != null, "apply_user", bo.getApplyUser());
            qw.eq(bo.getApplyPhone() != null, "apply_phone", bo.getApplyPhone());
            qw.eq(bo.getApplyDeptId() != null, "apply_dept_id", bo.getApplyDeptId());
            qw.like(bo.getApplyDeptName() != null, "apply_dept_name", bo.getApplyDeptName());
            qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime());
            qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus());
            qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason());
            qw.eq(bo.getOrderStatus() != null, "order_status", bo.getOrderStatus());
            qw.eq(bo.getCheckId() != null, "check_id", bo.getCheckId());
            qw.eq(bo.getCheckUser() != null, "check_user", bo.getCheckUser());
            qw.eq(bo.getCheckPhone() != null, "check_phone", bo.getCheckPhone());
            qw.eq(bo.getCheckDeptId() != null, "check_dept_id", bo.getCheckDeptId());
            qw.like(bo.getCheckDeptName() != null, "check_dept_name", bo.getCheckDeptName());
            qw.eq(bo.getCheckTime() != null, "check_time", bo.getCheckTime());
            qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
            qw.eq(StringUtils.isNotEmpty(bo.getCheckReason()), "check_reason", bo.getCheckReason());
            qw.eq(bo.getExecuteId() != null, "execute_id", bo.getExecuteId());
            qw.eq(bo.getExecuteUser() != null, "execute_user", bo.getExecuteUser());
            qw.eq(bo.getExecutePhone() != null, "execute_phone", bo.getExecutePhone());
            qw.eq(bo.getExecuteDeptId() != null, "execute_dept_id", bo.getExecuteDeptId());
            qw.like(bo.getExecuteDeptName() != null, "execute_dept_name", bo.getExecuteDeptName());
            qw.eq(bo.getExecuteTime() != null, "execute_time", bo.getExecuteTime());
            qw.eq(bo.getRegionStatus() != null, "region_status", bo.getRegionStatus());
            qw.eq(StringUtils.isNotEmpty(bo.getRegionReason()), "region_reason", bo.getRegionReason());
            qw.eq(StringUtils.isNotEmpty(bo.getRegionImgs()), "region_imgs", bo.getRegionImgs());
            qw.eq(StringUtils.isNotEmpty(bo.getRegionVideos()), "region_videos", bo.getRegionVideos());
            qw.eq(bo.getIsNoticeCompany() != null, "is_notice_company", bo.getIsNoticeCompany());
            qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow());
            qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva());
            qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore());
        qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo());
        qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId());
        qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
        qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
        qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
        qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
        qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
        qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
        qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
        qw.like(StringUtils.isNotEmpty(bo.getEnforceReason()), "enforce_reason", bo.getEnforceReason());
        qw.like(StringUtils.isNotEmpty(bo.getEnforceContent()), "enforce_content", bo.getEnforceContent());
        qw.eq(StringUtils.isNotEmpty(bo.getEnforceType()), "enforce_type", bo.getEnforceType());
        qw.eq(bo.getApplyId() != null, "apply_id", bo.getApplyId());
        qw.eq(StringUtils.isNotEmpty(bo.getApplyUser()), "apply_user", bo.getApplyUser());
        qw.eq(StringUtils.isNotEmpty(bo.getApplyPhone()), "apply_phone", bo.getApplyPhone());
        qw.eq(bo.getApplyDeptId() != null, "apply_dept_id", bo.getApplyDeptId());
        qw.like(StringUtils.isNotEmpty(bo.getApplyDeptName()), "apply_dept_name", bo.getApplyDeptName());
        qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime());
        qw.eq(bo.getPlanTime() != null, "plan_time", bo.getPlanTime());
        qw.eq(bo.getInTime() != null, "in_time", bo.getInTime());
        qw.eq(bo.getUserNum() != null, "user_num", bo.getUserNum());
        qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus());
        qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason());
        qw.eq(bo.getOrderStatus() != null, "order_status", bo.getOrderStatus());
        qw.eq(bo.getCheckDeptId() != null, "check_dept_id", bo.getCheckDeptId());
        qw.like(StringUtils.isNotEmpty(bo.getCheckDeptName()), "check_dept_name", bo.getCheckDeptName());
        qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
        qw.eq(StringUtils.isNotEmpty(bo.getCheckReason()), "check_reason", bo.getCheckReason());
        qw.eq(bo.getCheckLevel() != null, "check_level", bo.getCheckLevel());
        qw.eq(bo.getExecuteId() != null, "execute_id", bo.getExecuteId());
        qw.eq(StringUtils.isNotEmpty(bo.getExecuteUser()), "execute_user", bo.getExecuteUser());
        qw.eq(StringUtils.isNotEmpty(bo.getExecutePhone()), "execute_phone", bo.getExecutePhone());
        qw.eq(bo.getExecuteDeptId() != null, "execute_dept_id", bo.getExecuteDeptId());
        qw.like(StringUtils.isNotEmpty(bo.getExecuteDeptName()), "execute_dept_name", bo.getExecuteDeptName());
        qw.eq(bo.getExecuteTime() != null, "execute_time", bo.getExecuteTime());
        qw.eq(bo.getRegionStatus() != null, "region_status", bo.getRegionStatus());
        qw.eq(StringUtils.isNotEmpty(bo.getRegionReason()), "region_reason", bo.getRegionReason());
        qw.eq(StringUtils.isNotEmpty(bo.getRegionImgs()), "region_imgs", bo.getRegionImgs());
        qw.eq(StringUtils.isNotEmpty(bo.getRegionVideos()), "region_videos", bo.getRegionVideos());
        qw.eq(bo.getIsNoticeCompany() != null, "is_notice_company", bo.getIsNoticeCompany());
        qw.eq(bo.getIsShow() != null, "is_show", bo.getIsShow());
        qw.eq(bo.getIsEva() != null, "is_eva", bo.getIsEva());
        qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore());
        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
            if ("acs".equals(bo.getIsAsc())) {
                qw.orderByAsc(bo.getOrderByColumn());
@@ -139,4 +453,32 @@
        }
        return qw;
    }
    /**
     * 获取审批人id
     * @param checkLevel  审批级别:默认0
     * @param deptId  申请部门id
     */
    private List<String> getCheckPhones(Integer checkLevel, Long deptId, int current)
    {
        if (checkLevel==3){
            if (current==1){
                return null;
            }
            checkLevel = 0;
            deptId = deptService.selectDeptById(deptId).getParentId();
            current++;
            getCheckPhones(checkLevel, deptId, current);
        }
        checkLevel++;
        String checkKey = "check_enforce_";
        List<String> phones = userService.getPhonesByRoleKey(checkKey + checkLevel, deptId);
        if (StringUtils.isNotEmpty(phones)){
            return phones;
        }
        return getCheckPhones(checkLevel, deptId, current);
    }
}