ZQN
2024-06-25 7987ac6bf58cd64f0ad2af915ed1a9749960f643
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -53,8 +53,14 @@
    private final IEnforceComplaintLogService complaintLogService;
    private final IEnforceEvaluateLogService evaluateLogService;
    private final YPSmsService smsService;
    private final EnforceOrderMapper orderMapper;
    @Override//通用列表
    /**
     * 通用列表-无权限
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCommonList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
@@ -62,7 +68,17 @@
        return Convert.toList(EnforceOrderVo.class , list);
    }
    @Override//企业列表
    @Override
    public Integer getDistinctCompanyNum() {
        return orderMapper.getDistinctCompanyNum();
    }
    /**
     * 企业执法单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> queryCompanyList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
@@ -71,7 +87,12 @@
        return Convert.toList(EnforceOrderVo.class , list);
    }
    @Override//列表查询
    /**
     * 执法申请单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_id")
    public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo)
    {
@@ -81,7 +102,12 @@
        return Convert.toList(EnforceOrderVo.class , list);
    }
    @Override//执法上报列表
    /**
     * 执法执行单列表
     * @param bo   参数
     * @return 列表
     */
    @Override
    @DataScope(deptAlias = "execute_dept_id", userAlias = "execute_id")
    public List<EnforceOrderVo> getExecuteList(EnforceOrderQueryBo bo) {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
@@ -90,20 +116,30 @@
        return Convert.toList(EnforceOrderVo.class , list);
    }
    @Override//待审核列表
    /**
     * 待审核列表
     * @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)){
            bo.setApplyDeptIds(deptIds);
        } else {
            bo.setApplyDeptIds(null);
        }
//        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)
    {
@@ -111,7 +147,12 @@
        return this.baseMapper.selectCheckedList(bo);
    }
    @Override//信息公式列表
    /**
     * 信息公式列表
     * @return 列表
     */
    @Override
    public List<EnforceOrderVo> showList()
    {
        List<EnforceOrder> list = this.list(lq()
@@ -121,7 +162,10 @@
        return Convert.toList(EnforceOrderVo.class, list);
    }
    @Override//id查询
    /**
     * id查询
     */
    @Override
    public EnforceOrderVo queryById(Long orderId)
    {
        EnforceOrder db = this.baseMapper.selectById(orderId);
@@ -133,12 +177,14 @@
            if (one!=null){
                String questionStatic = one.getQuestionStatic();
                if (StringUtils.isNotEmpty(questionStatic)){
                    EnforceEvaluateVo evaluateVo = Convert.convert(EnforceEvaluateVo.class, one);
                    try {
                        EnforceEvaluateVo evaluateVo = JsonUtils.jsonToPojo(questionStatic, EnforceEvaluateVo.class);
                        vo.setEvaluateVo(evaluateVo);
                        List<EnforceEvaluateQuestion> questions = JsonUtils.jsonToList(questionStatic, EnforceEvaluateQuestion.class);
                        evaluateVo.setQuestionList(questions);
                    } catch (Exception e) {
                        throw new BaseException("评价问券解析异常!");
                    }
                    vo.setEvaluateVo(evaluateVo);
                }
            }
        }
@@ -146,6 +192,9 @@
    }
    /**
     * 新增
     */
    @Override//添加
    @Transactional
    public Boolean insertByBo(EnforceOrderBo bo)
@@ -155,6 +204,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);
        }
@@ -180,6 +232,9 @@
        return savePeers;
    }
    /**
     * 修改
     */
    @Override//修改
    @Transactional
    public Boolean updateByBo(EnforceOrderBo bo)
@@ -189,6 +244,9 @@
        return this.updateById(update);
    }
    /**
     * 删除
     */
    @Override//删除
    @Transactional
    public Boolean deleteByIds(Collection<Long> ids)
@@ -199,10 +257,13 @@
        return this.removeByIds(ids);
    }
    /**
     * 获取下一级审批人电话
     */
    @Override
    public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId)
    {
        return getCheckPhones(checkLevel, applyDeptId, 0);
        return getCheckPhonesSimple(checkLevel, applyDeptId);
    }
    @Override
@@ -214,22 +275,23 @@
                .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));
        }
        return vos;
@@ -247,11 +309,17 @@
    public Boolean doScanOrder(Long orderId)
    {
        EnforceOrder order = this.getById(orderId);
        if (order.getOrderStatus()<2){
            throw new BaseException("执法单还未审批!");
        }
        if (order.getOrderStatus()>2){
            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.getRecommendPhone());
        order.setExecutePhone(user.getPhonenumber());
        order.setExecuteDeptId(user.getDeptId());
        order.setExecuteDeptName(deptService.getDeptAllName(user.getDeptId()));
        order.setInTime(DateUtils.getNowDate());
@@ -268,7 +336,6 @@
        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())
@@ -276,6 +343,7 @@
                .set(StringUtils.isNotEmpty(resultBo.getRegionVideos()), EnforceOrder::getRegionVideos, resultBo.getRegionVideos())
                .set( EnforceOrder::getOrderStatus, 4)
                .set( EnforceOrder::getExecuteTime, DateUtils.getNowDate())
                .eq( EnforceOrder::getOrderId, resultBo.getOrderId())
        );
    }
@@ -293,6 +361,9 @@
            throw new BaseException("请填写投诉内容!");
        }
        EnforceOrder order = this.getById(bo.getOrderId());
        if (order.getOrderStatus()!=4){
            throw new BaseException("执法单未上报执法结果!");
        }
        //添加投诉记录
        EnforceComplaintLogBo complaintLogBo = Convert.convert(EnforceComplaintLogBo.class, order);
        complaintLogBo.setComplaintType(bo.getComplaintType());
@@ -394,6 +465,8 @@
        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.ge(StringUtils.isNotEmpty(bo.getBeginTime()), "in_time", bo.getBeginTime());
        qw.le(StringUtils.isNotEmpty(bo.getEndTime()), "in_time", bo.getEndTime());
        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
            if ("acs".equals(bo.getIsAsc())) {
                qw.orderByAsc(bo.getOrderByColumn());
@@ -410,24 +483,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);
    }