zhangback
2025-11-15 73a4a892517ac3f60334b0c4132bf619726b4854
tms/src/main/java/com/ruoyi/tms/service/impl/TmsTripServiceImpl.java
@@ -1,13 +1,23 @@
package com.ruoyi.tms.service.impl;
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.tms.domain.TmsDispatchOrder;
import com.ruoyi.tms.domain.TmsDriver;
import com.ruoyi.tms.domain.TmsDriverDispatch;
import com.ruoyi.tms.mapper.TmsDispatchOrderMapper;
import com.ruoyi.tms.mapper.TmsDriverDispatchMapper;
import com.ruoyi.tms.mapper.TmsDriverMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
@@ -40,7 +50,14 @@
    @Resource
    private TmsDispatchOrderMapper tmsDispatchOrderMapper;
    @Autowired
    private ISysUserService userService;
    @Resource
    private TmsDriverDispatchMapper tmsDriverDispatchMapper;
    @Resource
    private TmsDriverMapper tmsDriverMapper;
    /**
     * 查询行程
     *
@@ -78,6 +95,19 @@
    public List<TmsTrip> selectTmsTripList(TmsTrip tmsTrip)
    {
        return tmsTripMapper.selectTmsTripList(tmsTrip);
    }
    @Override
    public List<TmsTrip> tmsTripList(Integer dispatchId) {
        Integer deviceId = userService.getDeviceId(SecurityUtils.getUserId());
        if (deviceId == null){
            return null;
        }
        return tmsTripMapper.selectList(new LambdaQueryWrapper<TmsTrip>()
                .eq(TmsTrip::getDispatchOrderId,dispatchId)
                .eq(TmsTrip::getDriverId,deviceId)
                .orderByDesc(TmsTrip::getId)
        );
    }
    /**
@@ -118,11 +148,82 @@
        }
        tmsDispatchOrder.setStatus(2);
        tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
        tmsTrip.setDriverName(tmsDispatchOrder.getMainDriverName());
        tmsTrip.setVehicleId(tmsDispatchOrder.getVehicleId());
        tmsTrip.setVehicleNumber(tmsDispatchOrder.getLicensePlate());
        tmsTrip.setCreateBy(SecurityUtils.getUsername());
        tmsTrip.setCreateTime(DateUtils.getNowDate());
        return tmsTripMapper.insertTmsTrip(tmsTrip);
    }
    @Override
    public AjaxResult submitDropHook(TmsTrip tmsTrip){
        Integer dispatchOrderId = tmsTrip.getDispatchOrderId();
        TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(dispatchOrderId);
        if (tmsDispatchOrder == null){
            throw new RuntimeException("未找到调度单数据");
        }
        if (tmsDispatchOrder.getStatus() != 1 && tmsDispatchOrder.getStatus() != 2){
            throw new RuntimeException("调度单数据状态异常");
        }
        tmsDispatchOrderMapper.update(
                null,
                new LambdaUpdateWrapper<TmsDispatchOrder>()
                        .eq(TmsDispatchOrder::getId, dispatchOrderId)
                        .set(TmsDispatchOrder::getStatus, 2)
                        .set(TmsDispatchOrder::getMainDriverId, null)
                        .set(TmsDispatchOrder::getMainDriverName, null)
        );
        tmsDriverDispatchMapper.update(
                null,
                new LambdaUpdateWrapper<TmsDriverDispatch>()
                        .eq(TmsDriverDispatch::getDispatchId, dispatchOrderId)
                        .eq(TmsDriverDispatch::getDriverId, tmsTrip.getDriverId())
                        .set(TmsDriverDispatch::getStatus, 3)
        );
        tmsTrip.setDriverName(tmsDispatchOrder.getMainDriverName());
        tmsTrip.setVehicleId(tmsDispatchOrder.getVehicleId());
        tmsTrip.setVehicleNumber(tmsDispatchOrder.getLicensePlate());
        tmsTrip.setCreateBy(SecurityUtils.getUsername());
        tmsTrip.setCreateTime(DateUtils.getNowDate());
         tmsTripMapper.insertTmsTrip(tmsTrip);
         return AjaxResult.success();
    }
    @Override
    public AjaxResult submitPickHook(TmsTrip tmsTrip){
        Integer dispatchOrderId = tmsTrip.getDispatchOrderId();
        TmsDispatchOrder tmsDispatchOrder = tmsDispatchOrderMapper.selectTmsDispatchOrderById(dispatchOrderId);
        if (tmsDispatchOrder == null){
            throw new RuntimeException("未找到调度单数据");
        }
        if (tmsDispatchOrder.getStatus() != 1 && tmsDispatchOrder.getStatus() != 2){
            throw new RuntimeException("调度单数据状态异常");
        }
        Integer driverId = tmsTrip.getDriverId();
        TmsDriver tmsDriver = tmsDriverMapper.selectTmsDriverById(driverId);
        tmsDispatchOrderMapper.update(
                null,
                new LambdaUpdateWrapper<TmsDispatchOrder>()
                        .eq(TmsDispatchOrder::getId, dispatchOrderId)
                        .set(TmsDispatchOrder::getMainDriverId, tmsDriver.getId())
                        .set(TmsDispatchOrder::getMainDriverName, tmsDriver.getDriverName())
        );
        TmsDriverDispatch tmsDriverDispatch = new TmsDriverDispatch();
        tmsDriverDispatch.setDispatchId(dispatchOrderId);
        tmsDriverDispatch.setDriverId(driverId);
        tmsDriverDispatch.setStatus(4);
        tmsTrip.setVehicleId(tmsDispatchOrder.getVehicleId());
        tmsTrip.setVehicleNumber(tmsDispatchOrder.getLicensePlate());
        tmsDriverDispatchMapper.insertTmsDriverDispatch(tmsDriverDispatch);
        tmsTrip.setDriverName(tmsDriver.getDriverName());
        tmsTrip.setCreateBy(SecurityUtils.getUsername());
        tmsTrip.setCreateTime(DateUtils.getNowDate());
         tmsTripMapper.insertTmsTrip(tmsTrip);
         return AjaxResult.success();
    }
    /**
     * 新增行程[批量]