wujianwei
2026-01-08 47f5004419c3c703919b5351034fc9cfa0ac39f8
tms/src/main/java/com/ruoyi/tms/service/impl/TmsDispatchOrderServiceImpl.java
@@ -19,8 +19,7 @@
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.ISystemDataNoService;
import com.ruoyi.tms.domain.*;
import com.ruoyi.tms.domain.vo.DriverDispatchVo;
import com.ruoyi.tms.domain.vo.ServiceProviderVo;
import com.ruoyi.tms.domain.vo.*;
import com.ruoyi.tms.mapper.*;
import com.ruoyi.tms.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -85,6 +84,8 @@
    private TmsServiceProviderMapper tmsServiceProviderMapper;
    @Resource
    private TmsCustomsServiceProviderMapper tmsCustomsServiceProviderMapper;
    @Resource
    private  TmsTripMapper tmsTripMapper;
    /**
     * 查询调度单管理
@@ -164,6 +165,9 @@
        tmsDispatchOrderNew.setLicensePlate(null);
        tmsDispatchOrderNew.setUpdateBy(null);
        tmsDispatchOrderNew.setId(null);
        tmsDispatchOrderNew.setAccountsReceivableStatus(0);
        tmsDispatchOrderNew.setAccountsPayableStatus(0);
        int i = insertTmsDispatchOrder(tmsDispatchOrderNew);
@@ -194,6 +198,27 @@
        return AjaxResult.success("操作成功");
    }
    @Override
    public AjaxResult close(Integer id) {
        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(id);
        if (tmsDispatchOrder == null){
            return AjaxResult.error("未找到该数据");
        }
        if (tmsDispatchOrder.getIsfk() == 0){
            return AjaxResult.success();
        }
        TmsTrip tmsTrip = tmsTripMapper.selectOne(new LambdaQueryWrapper<TmsTrip>().eq(TmsTrip::getDispatchOrderId, id)
                .eq(TmsTrip::getTripType, 0)
                .orderByDesc(TmsTrip::getId)
                .last("limit 1")
        );
        if (tmsTrip != null){
            return AjaxResult.error("该调度单状态为【在途】,且司机于【"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tmsTrip.getTripTime())+"】已发车,不允许作废,如需取消行程," +
                    "请通知司机操作返空即可。");
        }
        return AjaxResult.success("操作成功");
    }
    @Override
    public AjaxResult connectHang(TmsDriverDispatch driverDispatch) {
@@ -206,6 +231,27 @@
        return AjaxResult.success();
    }
    @Override
    public AjaxResult closeOrder(TmsDispatchOrder order) {
        TmsDispatchOrder tmsDispatchOrder = selectTmsDispatchOrderById(order.getId());
        if (tmsDispatchOrder == null){
            return AjaxResult.error("未找到该数据");
        }
        AjaxResult close = close(tmsDispatchOrder.getId());
        if (close.isSuccess()){
            tmsDispatchOrder.setStatus(5);
            tmsDispatchOrder.setCloseBy(SecurityUtils.getUsername());
            tmsDispatchOrder.setCloseTime(DateUtils.getNowDate());
            tmsDispatchOrder.setCloseRemark(tmsDispatchOrder.getCloseRemark());
            tmsDispatchOrder.setCloseWhy(tmsDispatchOrder.getCloseWhy());
            tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
            // TODO 加日志
            return AjaxResult.success("操作成功");
        }else{
            return close;
        }
    }
    @Override
    public int customsOrder(TmsDispatchOrder tmsDispatchOrder) {
@@ -398,6 +444,27 @@
        return tmsDispatchOrderMapper.updateTmsDispatchOrder(tmsDispatchOrder);
    }
    @Override
    public int printDispatchOrder(TmsDispatchOrder tmsDispatchOrder)
    {
        return tmsDispatchOrderMapper.update(null,new LambdaUpdateWrapper<TmsDispatchOrder>()
                .eq(TmsDispatchOrder::getId,tmsDispatchOrder.getId())
                .set(TmsDispatchOrder::getIsPrint,0)
                        .setSql("print_count = IFNULL(print_count, 0) + 1")
                        .set(TmsDispatchOrder::getPrintTime,new Date())
                        .set(TmsDispatchOrder::getPrintBy,SecurityUtils.getUsername())
                        .set(TmsDispatchOrder::getSixLinkNo,tmsDispatchOrder.getSixLinkNo())
                        .set(TmsDispatchOrder::getPortName,tmsDispatchOrder.getPortName())
                        .set(TmsDispatchOrder::getBillNo,tmsDispatchOrder.getBillNo())
                        .set(TmsDispatchOrder::getTerminalName,tmsDispatchOrder.getTerminalName())
                        .set(TmsDispatchOrder::getCargoName,tmsDispatchOrder.getCargoName())
                        .set(TmsDispatchOrder::getPieceCount,tmsDispatchOrder.getPieceCount())
                        .set(TmsDispatchOrder::getWeight,tmsDispatchOrder.getWeight())
                        .set(TmsDispatchOrder::getContactName,tmsDispatchOrder.getContactName())
                        .set(TmsDispatchOrder::getContactPhone,tmsDispatchOrder.getContactPhone())
                );
    }
    /**
     * 修改调度单管理[批量]
     *
@@ -539,7 +606,7 @@
                    // 非自营需要有运费
                    // 车辆服务商
                    // 实际车型
                    String actualVehicleType = tmsDispatchOrder.getActualVehicleType();
                    String actualVehicleType = tmsDispatchOrder.getRequiredVehicleTypes();
                    // 出发路线 44,4404,440402,440402102
                    String shipperRegionCode = tmsDispatchOrder.getStartRegionCode();
                    // 目的地路线 81,8100,810000
@@ -549,8 +616,8 @@
                    TmsQuoteDetail tmsQuoteDetail = tmsQuoteDetailMapper.selectOne(new LambdaQueryWrapper<TmsQuoteDetail>()
                            .eq(TmsQuoteDetail::getCustomerId, customerId)
                            .eq(TmsQuoteDetail::getVehicleType, actualVehicleType)
                            .eq(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
                            .eq(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
                            .likeRight(TmsQuoteDetail::getStartRegionCode, shipperRegionCode)
                            .likeRight(TmsQuoteDetail::getEndRegionCode, receiverRegionCode)
                            .eq(TmsQuoteDetail::getPlanType, 0)
                            .last("limit 1")
                    );
@@ -1052,4 +1119,19 @@
        }
        return AjaxResult.success();
    }
    @Override
    public List<DpDriverDispatchVo> selectDpData() {
        return tmsDispatchOrderMapper.selectselectDpData();
    }
    @Override
    public DpDriverDispatchItemVo selectDataByNo(String no) {
        return tmsDispatchOrderMapper.selectDataByNo(no);
    }
    @Override
    public List<DpItineraryLogVo> selectItineraryLog() {
        return tmsDispatchOrderMapper.selectItineraryLog();
    }
}