ZQN
2025-05-20 df7d2e1113b540ccb3600b3cdc9155bf7186e8fb
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -6,12 +6,10 @@
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.core.domain.model.DateRange;
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.common.utils.*;
import com.project.enforce.domain.*;
import com.project.enforce.domain.bo.editBo.EnforceComplaintLogBo;
import com.project.enforce.domain.bo.editBo.EnforceOrderBo;
@@ -19,11 +17,14 @@
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.EnforceDistinctVo;
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.domain.SysCompany;
import com.project.system.service.ISysCompanyService;
import com.project.system.service.ISysDeptService;
import com.project.system.service.ISysOrderNoService;
import com.project.system.service.ISysUserService;
@@ -34,6 +35,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
/**
@@ -54,16 +56,19 @@
    private final IEnforceEvaluateLogService evaluateLogService;
    private final YPSmsService smsService;
    private final EnforceOrderMapper orderMapper;
    private final ISysCompanyService companyService;
    /**
     * 通用列表-无权限
     * @param 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);
    }
@@ -74,22 +79,75 @@
    }
    /**
     * 企业确认执法单
     * @param orderId    订单id
     * @return  结果
     */
    @Override
    @Transactional
    public Boolean confirm(Long orderId)
    {
        EnforceOrder order = this.getById(orderId);
        if (order.getOrderStatus()!=4){
            throw new BaseException("请待执法部门上报结果后确认!");
        }
        order.setOrderStatus(5);
        order.setConfirmTime(DateUtils.getNowDate());
        return this.updateById(order);
    }
    @Override
    @Transactional
    public Integer executeEnforceOrderWarn()
    {
        List<EnforceOrder> updList = new LinkedList<>();
        //同一天重复执法
        List<EnforceDistinctVo> list =baseMapper.selectDistinctCheckDeptIdAndCompanyId();
        if (StringUtils.isNotEmpty(list)){
            for (EnforceDistinctVo distinctVo : list) {
                List<EnforceOrder> orderList = this.list(lq()
                        .eq(EnforceOrder::getCompanyId, distinctVo.getCompanyId())
                        .eq(EnforceOrder::getCheckDeptId, distinctVo.getCheckDeptId())
                        .like(EnforceOrder::getApplyTime, distinctVo.getApplyTimeStr())
                        .orderByDesc(EnforceOrder::getApplyTime)
                );
                if (StringUtils.isNotEmpty(orderList)){
                    List<EnforceOrder> enforceOrders = orderList.subList(0, orderList.size() - 1);
                    enforceOrders.forEach(order->{order.setWarnStatus(1);order.setWarnReason("同一天内对同一企业重复执法");});
                    updList.addAll(enforceOrders);
                }
            }
        }
        if (StringUtils.isNotEmpty(updList)){
            this.updateBatchById(updList);
        }
        return updList.size();
    }
    public static void main(String[] args) {
        DateRange todayRange = DateUtils.getTodayRange();
        System.out.println(todayRange);
    }
    /**
     * 企业执法单列表
     * @param bo   参数
     * @param bo    参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCompanyList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        qw.ge("order_status",4);
        qw.ge("order_status",2);
        List<EnforceOrder> list = this.list(qw);
        return Convert.toList(EnforceOrderVo.class , list);
        List<EnforceOrderVo> vos = Convert.toList(EnforceOrderVo.class, list);
        vos.forEach(SensitiveUtil::desensitize);
        return vos;
    }
    /**
     * 执法申请单列表
     * @param bo   参数
     * @param bo    参数
     * @return 列表
     */
    @Override
@@ -104,7 +162,7 @@
    /**
     * 执法执行单列表
     * @param bo   参数
     * @param bo    参数
     * @return 列表
     */
    @Override
@@ -118,13 +176,13 @@
    /**
     * 待审核列表
     * @param bo   参数
     * @param bo    参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCheckList(EnforceOrderQueryBo bo)
    {
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        SysUser loginUser = userService.selectUserById(SecurityUtils.getUserId());
        bo.setCheckIds(loginUser.getPhonenumber());
//        List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId());
//        if (StringUtils.isNotEmpty(deptIds)){
@@ -137,7 +195,7 @@
    /**
     * 审批记录列表
     * @param bo   参数
     * @param bo    参数
     * @return 列表
     */
    @Override
@@ -157,9 +215,11 @@
    {
        List<EnforceOrder> list = this.list(lq()
                .eq(EnforceOrder::getIsShow, 1)
                .eq(EnforceOrder::getOrderStatus, 4)
                .ge(EnforceOrder::getOrderStatus, 4)
        );
        return Convert.toList(EnforceOrderVo.class, list);
        List<EnforceOrderVo> vos = Convert.toList(EnforceOrderVo.class, list);
        vos.forEach(SensitiveUtil::desensitize);
        return vos;
    }
    /**
@@ -188,6 +248,7 @@
                }
            }
        }
        SensitiveUtil.desensitize(vo);
        return vo;
    }
@@ -204,6 +265,9 @@
        validEntityBeforeSave(add);
        List<String> phones = getCheckPhones(add.getCheckLevel(), add.getApplyDeptId());
        if (StringUtils.isNotEmpty(phones)){
            int checkLevel = Integer.parseInt(phones.get(0));
            add.setCheckLevel(checkLevel);
            phones.remove(0);
            String checkPhones = StringUtils.join(phones, ",");
            add.setCheckIds(checkPhones);
        }
@@ -260,7 +324,7 @@
    @Override
    public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId)
    {
        return getCheckPhones(checkLevel, applyDeptId, 0);
        return getCheckPhonesSimple(checkLevel, applyDeptId);
    }
    @Override
@@ -272,24 +336,27 @@
                .eq(EnforceCheckLog::getOrderId, orderId).orderByAsc(EnforceCheckLog::getCheckTime)
        );
        if (order.getApplyTime()!=null){
            vos.add(new OrderNodeVo("提交申请",order.getApplyUser(),order.getApplyTime(), null));
            vos.add(new OrderNodeVo("提交申请",order.getApplyUser(),order.getApplyDeptName(),order.getApplyTime(), null));
        }
        if (StringUtils.isNotEmpty(checkLogs)){
            for (EnforceCheckLog checkLog : checkLogs) {
                if (checkLog.getCheckStatus()>0){
                    vos.add(new OrderNodeVo("审批通过",checkLog.getCheckUser(),checkLog.getCheckTime(), null));
                    vos.add(new OrderNodeVo("审批通过",checkLog.getCheckUser(),userService.getDeptNameByUserId(checkLog.getCheckId()),checkLog.getCheckTime(), null));
                } else {
                    vos.add(new OrderNodeVo("审批拒绝",checkLog.getCheckUser(),checkLog.getCheckTime(), checkLog.getCheckReason()));
                    vos.add(new OrderNodeVo("审批拒绝",checkLog.getCheckUser(),userService.getDeptNameByUserId(checkLog.getCheckId()),checkLog.getCheckTime(), checkLog.getCheckReason()));
                }
            }
        }
        if (order.getInTime()!=null){
            vos.add(new OrderNodeVo("扫码入企",order.getExecuteUser(),order.getInTime(), null));
            vos.add(new OrderNodeVo("扫码入企",order.getExecuteUser(),order.getExecuteDeptName(),order.getInTime(), null));
        }
        if (order.getExecuteTime()!=null){
            vos.add(new OrderNodeVo("结果上报",order.getExecuteUser(),order.getExecuteTime(), null));
            vos.add(new OrderNodeVo("结果上报",order.getExecuteUser(),order.getExecuteDeptName(),order.getExecuteTime(), null));
        }
        if (order.getConfirmTime()!=null){
            vos.add(new OrderNodeVo("企业确认",order.getCompanyUser(),order.getCompanyName(),order.getConfirmTime(), null));
        }
        return vos;
    }
@@ -312,7 +379,7 @@
            throw new BaseException("执法单已确认执法!");
        }
        order.setOrderStatus(3);
        SysUser user = SecurityUtils.getLoginUser().getUser();
        SysUser user = userService.selectUserById(SecurityUtils.getUserId());
        order.setExecuteId(user.getUserId());
        order.setExecuteUser(user.getNickName());
        order.setExecutePhone(user.getPhonenumber());
@@ -395,6 +462,13 @@
    //保存前校验
    private void validEntityBeforeSave(EnforceOrder entity)
    {
        if (entity.getCompanyId()!=null){
            SysCompany company = companyService.getById(entity.getCompanyId());
            entity.setCompanyName(company.getCompanyName());
            entity.setCompanyCode(company.getCompanyCode());
            entity.setCompanyUser(company.getCompanyUser());
            entity.setCompanyPhone(company.getCompanyPhone());
        }
        if (entity.getOrderId()==null){
            String orderNo = orderNoService.getOrderNo(OrderPre.ZFD.getIndex());
            entity.setOrderNo(orderNo);
@@ -479,24 +553,19 @@
     * @param checkLevel  审批级别:默认0
     * @param deptId  申请部门id
     */
    private List<String> getCheckPhones(Integer checkLevel, Long deptId, int current)
    private List<String> getCheckPhonesSimple(Integer checkLevel, Long deptId)
    {
        if (checkLevel==3){
            if (current==1){
                return null;
            }
            checkLevel = 0;
            deptId = deptService.selectDeptById(deptId).getParentId();
            current++;
            getCheckPhones(checkLevel, deptId, current);
            return null;
        }
        checkLevel++;
        String checkKey = "check_enforce_";
        List<String> phones = userService.getPhonesByRoleKey(checkKey + checkLevel, deptId);
        if (StringUtils.isNotEmpty(phones)){
            phones.add(0,checkLevel.toString());
            return phones;
        }
        return getCheckPhones(checkLevel, deptId, current);
        checkLevel ++;
        return getCheckPhonesSimple(checkLevel, deptId);
    }