ZQN
2024-06-22 b2c1822dc9ae8a67872193d182d9335d9a99655c
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceComplaintLogServiceImpl.java
@@ -4,11 +4,17 @@
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.core.domain.entity.SysUser;
import com.project.common.exception.base.BaseException;
import com.project.common.utils.DateUtils;
import com.project.common.utils.SecurityUtils;
import com.project.common.utils.StringUtils;
import com.project.enforce.domain.EnforceComplaintLog;
import com.project.enforce.domain.bo.editBo.ComplaintResultBo;
import com.project.enforce.domain.bo.editBo.EnforceComplaintLogBo;
import com.project.enforce.domain.bo.queryBo.EnforceComplaintLogQueryBo;
import com.project.enforce.domain.vo.EnforceComplaintLogVo;
import com.project.enforce.domain.vo.OrderNodeVo;
import com.project.enforce.mapper.EnforceComplaintLogMapper;
import com.project.enforce.service.IEnforceComplaintLogService;
import com.project.system.service.ISysDeptService;
@@ -17,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -76,6 +83,53 @@
        return this.removeByIds(ids);
    }
    @Override//投诉单节点
    public List<OrderNodeVo> orderNodeList(Long id)
    {
        List<OrderNodeVo> vos = new ArrayList<>();
        EnforceComplaintLog order = this.getById(id);
        if (order.getComplaintTime()!=null){
            vos.add(new OrderNodeVo("发起投诉",order.getCompanyUser(),order.getComplaintTime(), null));
        }
        if (order.getInTime()!=null){
            vos.add(new OrderNodeVo("响应投诉",order.getInUser(),order.getInTime(), null));
        }
        if (order.getResultTime()!=null){
            vos.add(new OrderNodeVo("投诉结果",order.getExecuteUser(),order.getResultTime(), order.getComplaintResult()));
        }
        return vos;
    }
    @Override//响应投诉
    @Transactional
    public Boolean inComplaint(ComplaintResultBo bo)
    {
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        return this.update(lu()
                .set(EnforceComplaintLog::getInId,loginUser.getUserId())
                .set(EnforceComplaintLog::getInUser,loginUser.getNickName())
                .set(EnforceComplaintLog::getInTime, DateUtils.getNowDate())
                .eq(EnforceComplaintLog::getId, bo.getId())
        );
    }
    @Override//处理结果
    @Transactional
    public Boolean doComplaint(ComplaintResultBo bo)
    {
        if (StringUtils.isEmpty(bo.getResult())){
            throw new BaseException("请填写处理结果");
        }
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        return this.update(lu()
                .set(EnforceComplaintLog::getResultId,loginUser.getUserId())
                .set(EnforceComplaintLog::getResultUser,loginUser.getNickName())
                .set(EnforceComplaintLog::getResultTime, DateUtils.getNowDate())
                .set(EnforceComplaintLog::getComplaintResult, bo.getResult())
                .eq(EnforceComplaintLog::getId, bo.getId())
        );
    }
//-------------------------------------------------------------------------------------
@@ -85,6 +139,33 @@
        if (StringUtils.isEmpty(entity.getExecuteDeptName()) && entity.getExecuteDeptName()!=null){
            entity.setExecuteDeptName(deptService.getDeptAllName(entity.getExecuteDeptId()));
        }
        if (entity.getCompanyId()==null
                || StringUtils.isEmpty(entity.getCompanyName())
                || StringUtils.isEmpty(entity.getCompanyUser())
                || StringUtils.isEmpty(entity.getCompanyPhone())
        ){
            throw new BaseException("投诉企业不能为空!");
        }
        if (entity.getExecuteDeptId() == null
                || StringUtils.isEmpty(entity.getExecuteDeptName())
        ){
            throw new BaseException("投诉单位不能为空!");
        }
        if (StringUtils.isEmpty(entity.getComplaintType())){
            throw new BaseException("请选择要投诉类型!");
        }
        if (StringUtils.isEmpty(entity.getComplaintReason())){
            throw new BaseException("请填写投诉内容!");
        }
        if (entity.getId()==null){
            if (entity.getOrderId()!=null){ //执法单投诉
                int count = this.count(lq().eq(EnforceComplaintLog::getOrderId, entity.getOrderId()));
                if (count >0){
                    throw new BaseException("该执法单已投诉!");
                }
            }
            entity.setComplaintTime(DateUtils.getNowDate());
        }
    }
    //获取查询参数