wujianwei
2025-07-29 fd78b45fbaa37cf845b0da6ecd986e39c347ce5d
新增调度单后端
1个文件已修改
7个文件已添加
970 ■■■■■ 已修改文件
pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/pom.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -17,6 +17,7 @@
        <module>system</module>
        <module>quartz</module>
        <module>common</module>
        <module>service</module>
    </modules>
    <packaging>pom</packaging>
service/pom.xml
New file
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>manage</artifactId>
        <groupId>com.ruoyi</groupId>
        <version>master</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.cwgl</groupId>
    <artifactId>service</artifactId>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
    <!-- 通用工具-->
    <dependency>
        <groupId>com.ruoyi</groupId>
        <artifactId>common</artifactId>
        <version>${project.version}</version>
    </dependency>
    <!--持久化层模块-->
    <dependency>
        <groupId>com.ruoyi</groupId>
        <artifactId>core</artifactId>
        <version>${ruoyi.version}</version>
    </dependency>
    <!--持久化层模块-->
    <dependency>
        <groupId>com.ruoyi</groupId>
        <artifactId>framework</artifactId>
        <version>${ruoyi.version}</version>
    </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>
service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java
New file
@@ -0,0 +1,108 @@
package com.ruoyi.cwgl.controller;
import java.util.List;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.utils.file.DownloadExportUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.cwgl.domain.DispatchOrder;
import com.ruoyi.cwgl.service.IDispatchOrderService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * 调度单Controller
 *
 * @author ruoyi
 * @date 2025-07-29
 */
@RestController
@RequestMapping("/cwgl/dispatchOrder")
public class DispatchOrderController extends BaseController
{
    @Autowired
    private IDispatchOrderService dispatchOrderService;
    /**
     * 查询调度单列表
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:list')")
    @GetMapping("/list")
    public TableDataInfo list(DispatchOrder dispatchOrder)
    {
        startPage();
        List<DispatchOrder> list = dispatchOrderService.selectDispatchOrderList(dispatchOrder);
        return getDataTable(list);
    }
    /**
     * 导出调度单列表
     * @param dispatchOrder 查询条件对象
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:export')")
    @Log(title = "调度单", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(DispatchOrder dispatchOrder,String exportKey)
    {
        dispatchOrderService.export(dispatchOrder,exportKey);
        return AjaxResult.success("导出请求成功,请稍后点击下载...!");
    }
    /**
     * 获取调度单详细信息
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Integer id)
    {
        return AjaxResult.success(dispatchOrderService.selectDispatchOrderById(id));
    }
    /**
     * 新增调度单
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:add')")
    @Log(title = "调度单", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody DispatchOrder dispatchOrder)
    {
        return toAjax(dispatchOrderService.insertDispatchOrder(dispatchOrder));
    }
    /**
     * 修改调度单
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:edit')")
    @Log(title = "调度单", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody DispatchOrder dispatchOrder)
    {
        return toAjax(dispatchOrderService.updateDispatchOrder(dispatchOrder));
    }
    /**
     * 删除调度单
     */
    @PreAuthorize("@ss.hasPermi('cwgl:dispatchOrder:remove')")
    @Log(title = "调度单", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Integer[] ids)
    {
        return toAjax(dispatchOrderService.deleteDispatchOrderByIds(ids));
    }
}
service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java
New file
@@ -0,0 +1,201 @@
package com.ruoyi.cwgl.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.Date;
import lombok.Data;
/**
 * 调度单对象 dispatch_order
 *
 * @author ruoyi
 * @date 2025-07-29
 */
@Data
public class DispatchOrder{
    /** ID */
        @TableField("id")
    private Integer id;
    /** 调度单号 */
    @Excel(name = "调度单号")
        @TableField("dispatch_no")
    private String dispatchNo;
    /** 运输方式 */
    @Excel(name = "运输方式")
        @TableField("transport_mode")
    private String transportMode;
    /** 服务产品名称 */
    @Excel(name = "服务产品名称")
        @TableField("product_name")
    private String productName;
    /** 承运商 */
    @Excel(name = "承运商")
        @TableField("carrier_name")
    private String carrierName;
    /** 出发地名称 */
    @Excel(name = "出发地名称")
        @TableField("departure_location_name")
    private String departureLocationName;
    /** 目的地名称 */
    @Excel(name = "目的地名称")
        @TableField("arrival_location_name")
    private String arrivalLocationName;
    /** 车牌 */
    @Excel(name = "车牌")
        @TableField("license_plate_number")
    private String licensePlateNumber;
    /** 车板号 */
    @Excel(name = "车板号")
        @TableField("vehicle_plate_id")
    private String vehiclePlateId;
    /** 主驾驶员 */
    @Excel(name = "主驾驶员")
        @TableField("main_driver_name")
    private String mainDriverName;
    /** 副驾驶员 */
    @Excel(name = "副驾驶员")
        @TableField("assistant_driver_name")
    private String assistantDriverName;
    /** 提送货点数 */
    @Excel(name = "提送货点数")
        @TableField("point_num")
    private Integer pointNum;
    /** 件数 */
    @Excel(name = "件数")
        @TableField("quantity")
    private Integer quantity;
    /** 实际出发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际出发时间", width = 30, dateFormat = "yyyy-MM-dd")
     @TableField("actual_departure_time")
    private Date actualDepartureTime;
    /** 要求到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "要求到达时间", width = 30, dateFormat = "yyyy-MM-dd")
        @TableField("required_arrival_time")
    private Date requiredArrivalTime;
    /** 实际到达时间 */
    @Excel(name = "实际到达时间", width = 30, dateFormat = "yyyy-MM-dd")
        @JsonFormat(pattern = "yyyy-MM-dd")
        @TableField("actual_arrival_time")
    private Date actualArrivalTime;
    /** 是否回程(N,Y) */
    @Excel(name = "是否回程(N,Y)")
        @TableField("be_return")
    private String beReturn;
    /** 实发件数 */
    @Excel(name = "实发件数")
        @TableField("dispatch_quantity")
    private Integer dispatchQuantity;
    /** 实发重量(千克) */
    @Excel(name = "实发重量", readConverterExp = "千=克")
        @TableField("dispatch_weight")
    private BigDecimal dispatchWeight;
    /** 实发体积(立方) */
    @Excel(name = "实发体积(立方)")
        @TableField("dispatch_volume")
    private BigDecimal dispatchVolume;
    /** 状态(A-生效,O-打开,J-已接单,K-已到库,Z-已装车,T-在途,F-已复磅,D-已运抵) */
    @Excel(name = "状态(A-生效,O-打开,J-已接单,K-已到库,Z-已装车,T-在途,F-已复磅,D-已运抵)")
        @TableField("status")
    private String status;
    /** 备注 */
    @Excel(name = "备注")
        @TableField("remark")
    private String remark;
    /** 创建人 */
        @TableField("create_by")
    private String createBy;
    /** 创建时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @TableField("create_time")
    private Date createTime;
    /** 修改人 */
        @TableField("update_by")
    private String updateBy;
    /** 修改时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @TableField("update_time")
    private Date updateTime;
    /** 是否删除(0-否,1-是) */
    @Excel(name = "是否删除(0-否,1-是)")
        @TableField("is_deleted")
    private Integer isDeleted;
}
service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java
New file
@@ -0,0 +1,87 @@
package com.ruoyi.cwgl.mapper;
import java.util.List;
import com.ruoyi.cwgl.domain.DispatchOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * 调度单Mapper接口
 *
 * @author ruoyi
 * @date 2025-07-29
 */
public interface DispatchOrderMapper  extends BaseMapper<DispatchOrder>
{
    /**
     * 查询调度单
     *
     * @param id 调度单ID
     * @return 调度单
     */
    public DispatchOrder selectDispatchOrderById(Integer id);
    /**
     * 查询调度单 记录数
     *
     * @param dispatchOrder 调度单
     * @return 调度单集合
     */
    public int selectDispatchOrderCount(DispatchOrder dispatchOrder);
    /**
     * 查询调度单列表
     *
     * @param dispatchOrder 调度单
     * @return 调度单集合
     */
    public List<DispatchOrder> selectDispatchOrderList(DispatchOrder dispatchOrder);
    /**
     * 新增调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    public int insertDispatchOrder(DispatchOrder dispatchOrder);
    /**
     * 新增调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    public int insertDispatchOrderBatch(List<DispatchOrder> dispatchOrders);
    /**
     * 修改调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    public int updateDispatchOrder(DispatchOrder dispatchOrder);
    /**
     * 修改调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    public int updateDispatchOrderBatch(List<DispatchOrder> dispatchOrders);
    /**
     * 删除调度单
     *
     * @param id 调度单ID
     * @return 结果
     */
    public int deleteDispatchOrderById(Integer id);
    /**
     * 批量删除调度单
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteDispatchOrderByIds(Integer[] ids);
}
service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java
New file
@@ -0,0 +1,102 @@
package com.ruoyi.cwgl.service;
import java.util.List;
import com.ruoyi.cwgl.domain.DispatchOrder;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * 调度单Service接口
 *
 * @author ruoyi
 * @date 2025-07-29
 */
public interface IDispatchOrderService extends IService<DispatchOrder>
{
    /**
     * 查询调度单
     *
     * @param id 调度单ID
     * @return 调度单
     */
    public DispatchOrder selectDispatchOrderById(Integer id);
    /**
     * 查询调度单 记录数
     *
     * @param dispatchOrder 调度单
     * @return 调度单集合
     */
    public int selectDispatchOrderCount(DispatchOrder dispatchOrder);
    /**
     * 查询调度单列表
     *
     * @param dispatchOrder 调度单
     * @return 调度单集合
     */
    public List<DispatchOrder> selectDispatchOrderList(DispatchOrder dispatchOrder);
    /**
     * 查询调度单列表 异步 导出
     *
     * @param dispatchOrder 调度单
     * @param exportKey 导出功能的唯一标识
     * @return 调度单集合
     */
    public void export(DispatchOrder dispatchOrder, String exportKey) ;
    /**
     * 新增调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    public int insertDispatchOrder(DispatchOrder dispatchOrder);
    /**
     * 新增调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    public int insertDispatchOrderBatch(List<DispatchOrder> dispatchOrders);
    /**
     * 修改调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    public int updateDispatchOrder(DispatchOrder dispatchOrder);
    /**
     * 修改调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    public int updateDispatchOrderBatch(List<DispatchOrder> dispatchOrders);
    /**
     * 批量删除调度单
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteDispatchOrderByIds(String ids);
    /**
     * 批量删除调度单
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteDispatchOrderByIds(Integer[] ids);
    /**
     * 删除调度单信息
     *
     * @param id 调度单ID
     * @return 结果
     */
    public int deleteDispatchOrderById(Integer id);
}
service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
New file
@@ -0,0 +1,182 @@
package com.ruoyi.cwgl.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.scheduling.annotation.Async;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.common.core.service.BaseService;
import com.ruoyi.cwgl.mapper.DispatchOrderMapper;
import com.ruoyi.cwgl.domain.DispatchOrder;
import com.ruoyi.cwgl.service.IDispatchOrderService;
import com.ruoyi.common.core.text.Convert;
/**
 * 调度单Service业务层处理
 *
 * @author ruoyi
 * @date 2025-07-29
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class DispatchOrderServiceImpl  extends BaseService<DispatchOrderMapper, DispatchOrder> implements IDispatchOrderService
{
    protected final Logger logger = LoggerFactory.getLogger(getClass());
    @Resource
    private DispatchOrderMapper dispatchOrderMapper;
    /**
     * 查询调度单
     *
     * @param id 调度单ID
     * @return 调度单
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public DispatchOrder selectDispatchOrderById(Integer id)
    {
        return dispatchOrderMapper.selectDispatchOrderById(id);
    }
    /**
     * 查询调度单 记录数
     *
     * @param dispatchOrder 调度单
     * @return 调度单集合
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public int selectDispatchOrderCount(DispatchOrder dispatchOrder)
    {
        return dispatchOrderMapper.selectDispatchOrderCount(dispatchOrder);
    }
    /**
     * 查询调度单列表
     *
     * @param dispatchOrder 调度单
     * @return 调度单
     */
    @DataSource(DataSourceType.SLAVE)
    @Override
    public List<DispatchOrder> selectDispatchOrderList(DispatchOrder dispatchOrder)
    {
        return dispatchOrderMapper.selectDispatchOrderList(dispatchOrder);
    }
    /**
     * 查询调度单列表 异步 导出
     *
     * @param dispatchOrder 调度单
     * @param exportKey 导出功能的唯一标识
     * @return 调度单集合
     */
    @DataSource(DataSourceType.SLAVE)
    @Async
    @Override
    public void export(DispatchOrder dispatchOrder,String exportKey) {
        super.export(DispatchOrder.class,exportKey,"dispatchOrderData",(pageNum)->{
            PageUtils.startPage(pageNum, Constants.EXPORT_PATE_SIZE);
            return selectDispatchOrderList(dispatchOrder);
        });
    }
    /**
     * 新增调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    @Override
    public int insertDispatchOrder(DispatchOrder dispatchOrder)
    {
        dispatchOrder.setCreateTime(DateUtils.getNowDate());
        return dispatchOrderMapper.insertDispatchOrder(dispatchOrder);
    }
    /**
     * 新增调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    @Override
    public int insertDispatchOrderBatch(List<DispatchOrder> dispatchOrders)
    {
        int rows = dispatchOrderMapper.insertDispatchOrderBatch(dispatchOrders);
        return rows;
    }
    /**
     * 修改调度单
     *
     * @param dispatchOrder 调度单
     * @return 结果
     */
    @Override
    public int updateDispatchOrder(DispatchOrder dispatchOrder)
    {
        dispatchOrder.setUpdateTime(DateUtils.getNowDate());
        return dispatchOrderMapper.updateDispatchOrder(dispatchOrder);
    }
    /**
     * 修改调度单[批量]
     *
     * @param dispatchOrders 调度单
     * @return 结果
     */
    @Override
    public int updateDispatchOrderBatch(List<DispatchOrder> dispatchOrders){
        return dispatchOrderMapper.updateDispatchOrderBatch(dispatchOrders);
    }
    /**
     * 删除调度单对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteDispatchOrderByIds(String ids)
    {
        return deleteDispatchOrderByIds(Convert.toIntArray(ids));
    }
    /**
     * 删除调度单对象
     *
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteDispatchOrderByIds(Integer[] ids)
    {
        return dispatchOrderMapper.deleteDispatchOrderByIds(ids);
    }
    /**
     * 删除调度单信息
     *
     * @param id 调度单ID
     * @return 结果
     */
    @Override
    public int deleteDispatchOrderById(Integer id)
    {
        return dispatchOrderMapper.deleteDispatchOrderById(id);
    }
}
service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml
New file
@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cwgl.mapper.DispatchOrderMapper">
    <resultMap type="com.ruoyi.cwgl.domain.DispatchOrder" id="DispatchOrderResult">
        <result property="id"    column="id"    />
        <result property="dispatchNo"    column="dispatch_no"    />
        <result property="transportMode"    column="transport_mode"    />
        <result property="productName"    column="product_name"    />
        <result property="carrierName"    column="carrier_name"    />
        <result property="departureLocationName"    column="departure_location_name"    />
        <result property="arrivalLocationName"    column="arrival_location_name"    />
        <result property="licensePlateNumber"    column="license_plate_number"    />
        <result property="vehiclePlateId"    column="vehicle_plate_id"    />
        <result property="mainDriverName"    column="main_driver_name"    />
        <result property="assistantDriverName"    column="assistant_driver_name"    />
        <result property="pointNum"    column="point_num"    />
        <result property="quantity"    column="quantity"    />
        <result property="actualDepartureTime"    column="actual_departure_time"    />
        <result property="requiredArrivalTime"    column="required_arrival_time"    />
        <result property="actualArrivalTime"    column="actual_arrival_time"    />
        <result property="beReturn"    column="be_return"    />
        <result property="dispatchQuantity"    column="dispatch_quantity"    />
        <result property="dispatchWeight"    column="dispatch_weight"    />
        <result property="dispatchVolume"    column="dispatch_volume"    />
        <result property="status"    column="status"    />
        <result property="remark"    column="remark"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="isDeleted"    column="is_deleted"    />
    </resultMap>
    <sql id="selectDispatchOrderVo">
        select thisTab.id, thisTab.dispatch_no, thisTab.transport_mode, thisTab.product_name, thisTab.carrier_name, thisTab.departure_location_name, thisTab.arrival_location_name, thisTab.license_plate_number, thisTab.vehicle_plate_id, thisTab.main_driver_name, thisTab.assistant_driver_name, thisTab.point_num, thisTab.quantity, thisTab.actual_departure_time, thisTab.required_arrival_time, thisTab.actual_arrival_time, thisTab.be_return, thisTab.dispatch_quantity, thisTab.dispatch_weight, thisTab.dispatch_volume, thisTab.status, thisTab.remark, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.is_deleted from dispatch_order AS thisTab
    </sql>
    <sql id="selectDispatchOrderVoCount">
        select count(0) from dispatch_order as thisTab
    </sql>
    <sql id="whereCondition">
        <if test="dispatchNo != null  and dispatchNo != ''"> and thisTab.dispatch_no = #{dispatchNo}</if>
        <if test="transportMode != null  and transportMode != ''"> and thisTab.transport_mode = #{transportMode}</if>
        <if test="productName != null  and productName != ''"> and  thisTab.product_name like concat('%', #{productName}, '%')</if>
        <if test="carrierName != null  and carrierName != ''"> and  thisTab.carrier_name like concat('%', #{carrierName}, '%')</if>
        <if test="departureLocationName != null  and departureLocationName != ''"> and  thisTab.departure_location_name like concat('%', #{departureLocationName}, '%')</if>
        <if test="arrivalLocationName != null  and arrivalLocationName != ''"> and  thisTab.arrival_location_name like concat('%', #{arrivalLocationName}, '%')</if>
        <if test="licensePlateNumber != null  and licensePlateNumber != ''"> and thisTab.license_plate_number = #{licensePlateNumber}</if>
        <if test="vehiclePlateId != null  and vehiclePlateId != ''"> and thisTab.vehicle_plate_id = #{vehiclePlateId}</if>
        <if test="mainDriverName != null  and mainDriverName != ''"> and  thisTab.main_driver_name like concat('%', #{mainDriverName}, '%')</if>
        <if test="assistantDriverName != null  and assistantDriverName != ''"> and  thisTab.assistant_driver_name like concat('%', #{assistantDriverName}, '%')</if>
        <if test="pointNum != null "> and thisTab.point_num = #{pointNum}</if>
        <if test="quantity != null "> and thisTab.quantity = #{quantity}</if>
        <if test="actualDepartureTime != null "> and thisTab.actual_departure_time = #{actualDepartureTime}</if>
        <if test="requiredArrivalTime != null "> and thisTab.required_arrival_time = #{requiredArrivalTime}</if>
        <if test="actualArrivalTime != null "> and thisTab.actual_arrival_time = #{actualArrivalTime}</if>
        <if test="beReturn != null  and beReturn != ''"> and thisTab.be_return = #{beReturn}</if>
        <if test="dispatchQuantity != null "> and thisTab.dispatch_quantity = #{dispatchQuantity}</if>
        <if test="dispatchWeight != null "> and thisTab.dispatch_weight = #{dispatchWeight}</if>
        <if test="dispatchVolume != null "> and thisTab.dispatch_volume = #{dispatchVolume}</if>
        <if test="status != null  and status != ''"> and thisTab.status = #{status}</if>
        <if test="isDeleted != null "> and thisTab.is_deleted = #{isDeleted}</if>
    </sql>
    <!--查询-->
    <select id="selectDispatchOrderById" parameterType="Integer" resultMap="DispatchOrderResult">
        <include refid="selectDispatchOrderVo"/>
        where id = #{id}
    </select>
    <select id="selectDispatchOrderCount" parameterType="com.ruoyi.cwgl.domain.DispatchOrder" resultType="int">
        <include refid="selectDispatchOrderVoCount"/>
        <where>
            <include refid="whereCondition"/>
        </where>
    </select>
    <select id="selectDispatchOrderList" parameterType="com.ruoyi.cwgl.domain.DispatchOrder" resultMap="DispatchOrderResult">
        <include refid="selectDispatchOrderVo"/>
        <where>
            <include refid="whereCondition"/>
        </where>
        order by thisTab.id desc
    </select>
    <!-- 新增 -->
    <insert id="insertDispatchOrder" parameterType="com.ruoyi.cwgl.domain.DispatchOrder"  useGeneratedKeys="true" keyProperty="id">
        insert into dispatch_order
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="dispatchNo != null and dispatchNo != ''">dispatch_no,</if>
            <if test="transportMode != null">transport_mode,</if>
            <if test="productName != null">product_name,</if>
            <if test="carrierName != null">carrier_name,</if>
            <if test="departureLocationName != null">departure_location_name,</if>
            <if test="arrivalLocationName != null">arrival_location_name,</if>
            <if test="licensePlateNumber != null">license_plate_number,</if>
            <if test="vehiclePlateId != null">vehicle_plate_id,</if>
            <if test="mainDriverName != null">main_driver_name,</if>
            <if test="assistantDriverName != null">assistant_driver_name,</if>
            <if test="pointNum != null">point_num,</if>
            <if test="quantity != null">quantity,</if>
            <if test="actualDepartureTime != null">actual_departure_time,</if>
            <if test="requiredArrivalTime != null">required_arrival_time,</if>
            <if test="actualArrivalTime != null">actual_arrival_time,</if>
            <if test="beReturn != null">be_return,</if>
            <if test="dispatchQuantity != null">dispatch_quantity,</if>
            <if test="dispatchWeight != null">dispatch_weight,</if>
            <if test="dispatchVolume != null">dispatch_volume,</if>
            <if test="status != null">status,</if>
            <if test="remark != null">remark,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="isDeleted != null">is_deleted,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="dispatchNo != null and dispatchNo != ''">#{dispatchNo},</if>
            <if test="transportMode != null">#{transportMode},</if>
            <if test="productName != null">#{productName},</if>
            <if test="carrierName != null">#{carrierName},</if>
            <if test="departureLocationName != null">#{departureLocationName},</if>
            <if test="arrivalLocationName != null">#{arrivalLocationName},</if>
            <if test="licensePlateNumber != null">#{licensePlateNumber},</if>
            <if test="vehiclePlateId != null">#{vehiclePlateId},</if>
            <if test="mainDriverName != null">#{mainDriverName},</if>
            <if test="assistantDriverName != null">#{assistantDriverName},</if>
            <if test="pointNum != null">#{pointNum},</if>
            <if test="quantity != null">#{quantity},</if>
            <if test="actualDepartureTime != null">#{actualDepartureTime},</if>
            <if test="requiredArrivalTime != null">#{requiredArrivalTime},</if>
            <if test="actualArrivalTime != null">#{actualArrivalTime},</if>
            <if test="beReturn != null">#{beReturn},</if>
            <if test="dispatchQuantity != null">#{dispatchQuantity},</if>
            <if test="dispatchWeight != null">#{dispatchWeight},</if>
            <if test="dispatchVolume != null">#{dispatchVolume},</if>
            <if test="status != null">#{status},</if>
            <if test="remark != null">#{remark},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="isDeleted != null">#{isDeleted},</if>
         </trim>
    </insert>
    <insert id="insertDispatchOrderBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
        insert into dispatch_order
        <trim prefix="(" suffix=") values" suffixOverrides=",">
            id,dispatch_no,transport_mode,product_name,carrier_name,departure_location_name,arrival_location_name,license_plate_number,vehicle_plate_id,main_driver_name,assistant_driver_name,point_num,quantity,actual_departure_time,required_arrival_time,actual_arrival_time,be_return,dispatch_quantity,dispatch_weight,dispatch_volume,status,remark,create_by,create_time,update_by,update_time,is_deleted,
        </trim>
        <foreach item="item" index="index" collection="list" separator=",">
            <trim prefix="(" suffix=") " suffixOverrides=",">
                #{item.id},#{item.dispatchNo},#{item.transportMode},#{item.productName},#{item.carrierName},#{item.departureLocationName},#{item.arrivalLocationName},#{item.licensePlateNumber},#{item.vehiclePlateId},#{item.mainDriverName},#{item.assistantDriverName},#{item.pointNum},#{item.quantity},#{item.actualDepartureTime},#{item.requiredArrivalTime},#{item.actualArrivalTime},#{item.beReturn},#{item.dispatchQuantity},#{item.dispatchWeight},#{item.dispatchVolume},#{item.status},#{item.remark},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.isDeleted},
            </trim>
        </foreach>
    </insert>
    <!-- 修改 -->
    <update id="updateDispatchOrder" parameterType="com.ruoyi.cwgl.domain.DispatchOrder">
        update dispatch_order
        <trim prefix="SET" suffixOverrides=",">
            <if test="dispatchNo != null and dispatchNo != ''">dispatch_no = #{dispatchNo},</if>
            <if test="transportMode != null">transport_mode = #{transportMode},</if>
            <if test="productName != null">product_name = #{productName},</if>
            <if test="carrierName != null">carrier_name = #{carrierName},</if>
            <if test="departureLocationName != null">departure_location_name = #{departureLocationName},</if>
            <if test="arrivalLocationName != null">arrival_location_name = #{arrivalLocationName},</if>
            <if test="licensePlateNumber != null">license_plate_number = #{licensePlateNumber},</if>
            <if test="vehiclePlateId != null">vehicle_plate_id = #{vehiclePlateId},</if>
            <if test="mainDriverName != null">main_driver_name = #{mainDriverName},</if>
            <if test="assistantDriverName != null">assistant_driver_name = #{assistantDriverName},</if>
            <if test="pointNum != null">point_num = #{pointNum},</if>
            <if test="quantity != null">quantity = #{quantity},</if>
            <if test="actualDepartureTime != null">actual_departure_time = #{actualDepartureTime},</if>
            <if test="requiredArrivalTime != null">required_arrival_time = #{requiredArrivalTime},</if>
            <if test="actualArrivalTime != null">actual_arrival_time = #{actualArrivalTime},</if>
            <if test="beReturn != null">be_return = #{beReturn},</if>
            <if test="dispatchQuantity != null">dispatch_quantity = #{dispatchQuantity},</if>
            <if test="dispatchWeight != null">dispatch_weight = #{dispatchWeight},</if>
            <if test="dispatchVolume != null">dispatch_volume = #{dispatchVolume},</if>
            <if test="status != null">status = #{status},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="isDeleted != null">is_deleted = #{isDeleted},</if>
        </trim>
        where id = #{id}
    </update>
    <!-- 修改 -->
    <update id="updateDispatchOrderBatch" parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" separator=";">
            update dispatch_order
            <trim prefix="SET" suffixOverrides=",">
                <if test="item.dispatchNo != null and item.dispatchNo != ''">dispatch_no = #{item.dispatchNo},</if>
                <if test="item.transportMode != null">transport_mode = #{item.transportMode},</if>
                <if test="item.productName != null">product_name = #{item.productName},</if>
                <if test="item.carrierName != null">carrier_name = #{item.carrierName},</if>
                <if test="item.departureLocationName != null">departure_location_name = #{item.departureLocationName},</if>
                <if test="item.arrivalLocationName != null">arrival_location_name = #{item.arrivalLocationName},</if>
                <if test="item.licensePlateNumber != null">license_plate_number = #{item.licensePlateNumber},</if>
                <if test="item.vehiclePlateId != null">vehicle_plate_id = #{item.vehiclePlateId},</if>
                <if test="item.mainDriverName != null">main_driver_name = #{item.mainDriverName},</if>
                <if test="item.assistantDriverName != null">assistant_driver_name = #{item.assistantDriverName},</if>
                <if test="item.pointNum != null">point_num = #{item.pointNum},</if>
                <if test="item.quantity != null">quantity = #{item.quantity},</if>
                <if test="item.actualDepartureTime != null">actual_departure_time = #{item.actualDepartureTime},</if>
                <if test="item.requiredArrivalTime != null">required_arrival_time = #{item.requiredArrivalTime},</if>
                <if test="item.actualArrivalTime != null">actual_arrival_time = #{item.actualArrivalTime},</if>
                <if test="item.beReturn != null">be_return = #{item.beReturn},</if>
                <if test="item.dispatchQuantity != null">dispatch_quantity = #{item.dispatchQuantity},</if>
                <if test="item.dispatchWeight != null">dispatch_weight = #{item.dispatchWeight},</if>
                <if test="item.dispatchVolume != null">dispatch_volume = #{item.dispatchVolume},</if>
                <if test="item.status != null">status = #{item.status},</if>
                <if test="item.remark != null">remark = #{item.remark},</if>
                <if test="item.createBy != null">create_by = #{item.createBy},</if>
                <if test="item.createTime != null">create_time = #{item.createTime},</if>
                <if test="item.updateBy != null">update_by = #{item.updateBy},</if>
                <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
                <if test="item.isDeleted != null">is_deleted = #{item.isDeleted},</if>
            </trim>
        where id = #{item.id}
        </foreach>
    </update>
    <!--删除-->
    <delete id="deleteDispatchOrderById" parameterType="Integer">
        delete from dispatch_order where id = #{id}
    </delete>
    <delete id="deleteDispatchOrderByIds" parameterType="Integer">
        delete from dispatch_order where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>