ZQN
2024-06-22 e084539a1fbdf8335fcaf088969add8350bbd6a3
project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java
@@ -7,15 +7,22 @@
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.sms.YPSmsApi;
import com.project.common.utils.DateUtils;
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.domain.EnforcePeer;
import com.project.enforce.domain.bo.editBo.EnforceOrderBo;
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.EnforceOrderVo;
import com.project.enforce.domain.vo.OrderNodeVo;
import com.project.enforce.mapper.EnforceOrderMapper;
import com.project.enforce.service.IEnforceCheckLogService;
import com.project.enforce.service.IEnforceOrderService;
import com.project.enforce.service.IEnforcePeerService;
import com.project.system.service.ISysDeptService;
@@ -27,6 +34,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -43,13 +51,23 @@
    private final ISysDeptService deptService;
    private final ISysOrderNoService orderNoService;
    private final IEnforcePeerService peerService;
    private final IEnforceCheckLogService checkLogService;
    @Override//列表查询
    @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_user_id")
    @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_id")
    public List<EnforceOrderVo> queryList(EnforceOrderQueryBo bo)
    {
        QueryWrapper<EnforceOrder> qw = getQw(bo);
        qw.apply(bo.getParams().get("dataScope") != null, bo.getParams().get("dataScope").toString());//数据权限控制
        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);
    }
    @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);
    }
@@ -59,8 +77,20 @@
    {
        SysUser loginUser = SecurityUtils.getLoginUser().getUser();
        bo.setCheckIds(loginUser.getPhonenumber());
        bo.setApplyDeptIds(deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()));
        List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId());
        if (StringUtils.isNotEmpty(deptIds)){
            bo.setApplyDeptIds(deptIds);
        } else {
            bo.setApplyDeptIds(null);
        }
        return this.baseMapper.selectCheckList(bo);
    }
    @Override
    public List<EnforceOrderVo> queryCheckedList(OrderCheckedQueryBo bo)
    {
        bo.setUserId(SecurityUtils.getUserId());
        return this.baseMapper.selectCheckedList(bo);
    }
    @Override//信息公式列表
@@ -74,7 +104,10 @@
    public EnforceOrderVo queryById(Long orderId)
    {
        EnforceOrder db = this.baseMapper.selectById(orderId);
        return Convert.convert(EnforceOrderVo.class , db);
        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);
        return vo;
    }
@@ -91,7 +124,7 @@
            add.setCheckIds(checkPhones);
        }
        this.save(add);
        bo.getPeers().add(new EnforcePeer()
        bo.getPeers().add(0,new EnforcePeer()
                .setPeerType(1)
                .setPeerId(add.getApplyId())
                .setPeerUser(add.getApplyUser())
@@ -137,6 +170,79 @@
        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
    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())
        );
    }
//-------------------------------------------------------------------------------------
@@ -150,9 +256,7 @@
    public void sendApplyMsg(List<String> phones, String applyUser)
    {
        String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.APPLY_TMP, applyUser));
        phones.forEach(phone->{
            YPSmsApi.sendSms(phone, applyMsg) ;
        });
        phones.forEach(phone-> YPSmsApi.sendSms(phone, applyMsg));
    }
    //保存前校验
@@ -162,14 +266,15 @@
            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())){
        if (StringUtils.isEmpty(entity.getApplyDeptName()) && entity.getApplyDeptId()!=null){
            entity.setApplyDeptName(deptService.getDeptAllName(entity.getApplyDeptId()));
        }
        if (StringUtils.isEmpty(entity.getExecuteDeptName())){
        if (StringUtils.isEmpty(entity.getExecuteDeptName()) && entity.getExecuteDeptId()!=null){
            entity.setExecuteDeptName(deptService.getDeptAllName(entity.getExecuteDeptId()));
        }
        if (StringUtils.isEmpty(entity.getCheckDeptName())){
        if (StringUtils.isEmpty(entity.getCheckDeptName()) && entity.getCheckDeptId()!=null){
            entity.setCheckDeptName(deptService.getDeptAllName(entity.getCheckDeptId()));
        }
@@ -189,7 +294,8 @@
        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.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());
@@ -245,7 +351,7 @@
                return null;
            }
            checkLevel = 0;
            deptId = deptService.getById(deptId).getParentId();
            deptId = deptService.selectDeptById(deptId).getParentId();
            current++;
            getCheckPhones(checkLevel, deptId, current);
        }