From fd78b45fbaa37cf845b0da6ecd986e39c347ce5d Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期二, 29 七月 2025 11:36:05 +0800
Subject: [PATCH] 新增调度单后端

---
 service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java                  |  201 +++++++++++
 service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java         |  102 ++++++
 service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java |  182 ++++++++++
 service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml                  |  242 ++++++++++++++
 service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java            |   87 +++++
 service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java    |  108 ++++++
 pom.xml                                                                         |    1 
 service/pom.xml                                                                 |   47 ++
 8 files changed, 970 insertions(+), 0 deletions(-)

diff --git a/pom.xml b/pom.xml
index 7fed988..de12611 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
         <module>system</module>
         <module>quartz</module>
         <module>common</module>
+        <module>service</module>
     </modules>
     <packaging>pom</packaging>
 
diff --git a/service/pom.xml b/service/pom.xml
new file mode 100644
index 0000000..4902321
--- /dev/null
+++ b/service/pom.xml
@@ -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>
\ No newline at end of file
diff --git a/service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java b/service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java
new file mode 100644
index 0000000..d13f333
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/controller/DispatchOrderController.java
@@ -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;
+
+/**
+ * 璋冨害鍗旵ontroller
+ *
+ * @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));
+    }
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java b/service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java
new file mode 100644
index 0000000..3613070
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/domain/DispatchOrder.java
@@ -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;
+
+
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java b/service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java
new file mode 100644
index 0000000..592b268
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/mapper/DispatchOrderMapper.java
@@ -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;
+
+
+/**
+ * 璋冨害鍗昅apper鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-07-29
+ */
+public interface DispatchOrderMapper  extends BaseMapper<DispatchOrder>
+{
+    /**
+     * 鏌ヨ璋冨害鍗�
+     * 
+     * @param id 璋冨害鍗旾D
+     * @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 璋冨害鍗旾D
+     * @return 缁撴灉
+     */
+    public int deleteDispatchOrderById(Integer id);
+
+    /**
+     * 鎵归噺鍒犻櫎璋冨害鍗�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
+     * @return 缁撴灉
+     */
+    public int deleteDispatchOrderByIds(Integer[] ids);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java b/service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java
new file mode 100644
index 0000000..e7f7ab7
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/IDispatchOrderService.java
@@ -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;
+/**
+ * 璋冨害鍗昐ervice鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2025-07-29
+ */
+public interface IDispatchOrderService extends IService<DispatchOrder>
+{
+    /**
+     * 鏌ヨ璋冨害鍗�
+     * 
+     * @param id 璋冨害鍗旾D
+     * @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 璋冨害鍗旾D
+     * @return 缁撴灉
+     */
+    public int deleteDispatchOrderById(Integer id);
+}
diff --git a/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java b/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
new file mode 100644
index 0000000..5643f03
--- /dev/null
+++ b/service/src/main/java/com/ruoyi/cwgl/service/impl/DispatchOrderServiceImpl.java
@@ -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;
+
+/**
+ * 璋冨害鍗昐ervice涓氬姟灞傚鐞�
+ *
+ * @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 璋冨害鍗旾D
+     * @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 璋冨害鍗旾D
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteDispatchOrderById(Integer id)
+    {
+        return dispatchOrderMapper.deleteDispatchOrderById(id);
+    }
+}
diff --git a/service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml b/service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml
new file mode 100644
index 0000000..c5218ba
--- /dev/null
+++ b/service/src/main/resources/mapper/cwgl/DispatchOrderMapper.xml
@@ -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>
\ No newline at end of file

--
Gitblit v1.8.0