From 242725f795b4cca830421c07f714a3ec36af0add Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期二, 02 七月 2024 13:59:39 +0800
Subject: [PATCH] feat: 代码初始化、腾讯云短信SDK

---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java                   |    2 
 ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java            |   11 +
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java                |    3 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java                     |   19 ++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java          |   34 +++
 ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java              |    2 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java              |    4 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java                   |    7 
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java             |    2 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Steps.java                    |    6 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByEvaluateVO.java                   |    2 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java          |   53 ++++--
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java |    4 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java                  |    2 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java             |   97 ++++++++---
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java    |   43 ++++-
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java                |    3 
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java        |    4 
 ruoyi-service/ruoyi-admin/pom.xml                                                                   |   14 +
 ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java           |   31 ++-
 ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/factory/AdminFallbackFactory.java       |    7 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderInfoVO.java                         |    2 
 ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml                  |    6 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java                           |    4 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/AgreementServiceImpl.java      |    2 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/OrderQueryRequest.java              |    8 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java      |    1 
 ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java        |   21 +
 ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml                           |   42 ++++
 29 files changed, 330 insertions(+), 106 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ExchangeDispatch.java b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
similarity index 96%
rename from ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ExchangeDispatch.java
rename to ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
index 0a61978..cb988e0 100644
--- a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ExchangeDispatch.java
+++ b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
@@ -23,7 +23,7 @@
 @Setter
 @TableName("sys_change_dispatch")
 @ApiModel(value = "ExchangeDispatch对象", description = "改派管理")
-public class ExchangeDispatch extends BaseEntity {
+public class ChangeDispatch extends BaseEntity {
 
     @TableId("id")
     private Integer id;
diff --git a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/factory/AdminFallbackFactory.java b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/factory/AdminFallbackFactory.java
index e5693ea..742e08c 100644
--- a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/factory/AdminFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/factory/AdminFallbackFactory.java
@@ -28,11 +28,16 @@
             }
 
             @Override
-            public R<Boolean> changeDispatchSave(ExchangeDispatch changeDispatch) {
+            public R<Boolean> changeDispatchSave(ChangeDispatch changeDispatch) {
                 return R.fail(Boolean.FALSE);
             }
 
             @Override
+            public R<ChangeDispatch> changeDispatchOne(Integer id) {
+                return R.fail("获取订单改派详情失败" + cause.getMessage());
+            }
+
+            @Override
             public R<List<Notices>> noticesList() {
                 return R.fail("获取通知公告列表失败" + cause.getMessage());
             }
diff --git a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
index 84e9b47..ebda7f8 100644
--- a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
+++ b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
@@ -44,7 +44,16 @@
      * @return 详细数据
      */
     @PostMapping(value = "/changeDispatch/save")
-    R<Boolean> changeDispatchSave(@RequestBody ExchangeDispatch changeDispatch);
+    R<Boolean> changeDispatchSave(@RequestBody ChangeDispatch changeDispatch);
+
+    /**
+     * 订单改派详情
+     *
+     * @param id 订单id
+     * @return 改派订单
+     */
+    @GetMapping(value = "/changeDispatch/one")
+    R<ChangeDispatch> changeDispatchOne(@RequestParam("id") Integer id);
 
     /**
      * 系统通知列表
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
index 1235a71..149b7d6 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
@@ -5,7 +5,11 @@
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.core.domain.Result;
 import com.ruoyi.common.core.enums.GaoDeEnum;
+import com.ruoyi.common.core.exception.GlobalException;
 import com.ruoyi.common.core.vo.GaoDeMap;
+import com.ruoyi.common.core.vo.Path;
+import com.ruoyi.common.core.vo.PolylineData;
+import com.ruoyi.common.core.vo.Steps;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -13,6 +17,10 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author HJL
@@ -22,9 +30,7 @@
     /**
      * 功能描述: 高德地图Key
      */
-    private static final String GAO_DE_KEY = "3f00f94b6e9f470a5c6f510c3df814ea";
-
-    //申请的账户Key
+    private static final String GAO_DE_KEY = "37331f325a4f4ea25bc0d4e1900a1730";
 
     /**
      * 功能描述: 根据地址名称得到两个地址间的距离
@@ -32,7 +38,6 @@
      * @param start 起始位置
      * @param end   结束位置
      * @return long 两个地址间的距离
-     * @author isymikasan
      */
     public static Long getDistanceByAddress(String start, String end) {
         String startLonLat = getLonLat(start).getDatas();
@@ -170,11 +175,28 @@
                 json.append(inputLine);
             }
             in.close();
-        } catch (IOException ignored) {
+        } catch (IOException e) {
+            throw new GlobalException("获取路线规划失败!");
         }
         String data = json.toString();
         GaoDeMap gaoDeMap = JSONObject.parseObject(data, GaoDeMap.class);
-        return gaoDeMap.getRoute().getPaths().get(0);
+        Path path = gaoDeMap.getRoute().getPaths().get(0);
+        List<Steps> steps = path.getSteps();
+        for (Steps step : steps) {
+            // 经纬度地址指向
+            List<PolylineData> polylineDataList = new ArrayList<>();
+            String polyline = step.getPolyline();
+            List<String> list = Arrays.stream(polyline.split(";")).collect(Collectors.toList());
+            for (String s : list) {
+                String[] split = s.split(",");
+                // 经纬度
+                String longitude = split[0];
+                String latitude = split[1];
+                polylineDataList.add(new PolylineData(longitude, latitude));
+            }
+            step.setPolylineList(polylineDataList);
+        }
+        return path;
     }
 
 }
\ No newline at end of file
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Steps.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Steps.java
index 68b6965..f1f8f63 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Steps.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Steps.java
@@ -29,6 +29,10 @@
     @JsonProperty("toll_road")
     private List<String> tollRoad;
     private String duration;
+    /**
+     * 路段经纬度:
+     * 格式为:经度,纬度;经度,纬度;....
+     */
     private String polyline;
     /**
      * 转向
@@ -40,4 +44,6 @@
     @JsonProperty("assistant_action")
     private String assistantAction;
 
+    private List<PolylineData> polylineList;
+
 }
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-admin/pom.xml b/ruoyi-service/ruoyi-admin/pom.xml
index b231926..b47827e 100644
--- a/ruoyi-service/ruoyi-admin/pom.xml
+++ b/ruoyi-service/ruoyi-admin/pom.xml
@@ -19,6 +19,20 @@
 
     <dependencies>
 
+        <!-- 腾讯短信sdk -->
+        <dependency>
+            <groupId>com.tencentcloudapi</groupId>
+            <artifactId>tencentcloud-sdk-java</artifactId>
+            <version>3.1.270</version>
+            <!--排除okio-->
+            <exclusions>
+                <exclusion>
+                    <groupId>com.squareup.okio</groupId>
+                    <artifactId>okio</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-websocket</artifactId>
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
index 40b74a0..be6ad9f 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
@@ -20,10 +20,7 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
@@ -80,6 +77,17 @@
     /**
      * 订单改派详情
      *
+     * @param changeDispatch 订单改派信息
+     */
+    @ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"})
+    @PostMapping(value = "/save")
+    public R<Boolean> save(@RequestBody ChangeDispatch changeDispatch) {
+        return R.ok(changeDispatchService.save(changeDispatch));
+    }
+
+    /**
+     * 订单改派详情
+     *
      * @param id 订单改派id
      */
     @RequiresPermissions("reassignment_apply")
@@ -90,6 +98,23 @@
     })
     public R<ChangeDispatch> detail(@RequestParam Integer id) {
         return R.ok(changeDispatchService.getById(id));
+    }
+
+    /**
+     * 订单改派详情 远程调用
+     *
+     * @param id 订单id
+     */
+    @GetMapping(value = "/one")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true)
+    })
+    public R<ChangeDispatch> one(@RequestParam("id") Integer id) {
+        ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
+                .eq(ChangeDispatch::getOrderId, id)
+                .eq(ChangeDispatch::getState, Constants.ZERO)
+                .one();
+        return R.ok(changeDispatch);
     }
 
     /**
@@ -113,7 +138,7 @@
     /**
      * 订单改派师傅
      *
-     * @param orderId  订单id
+     * @param changeId 改派订单id
      * @param workerId 师傅id
      */
     @RequiresPermissions("reassignment_apply")
@@ -121,16 +146,16 @@
     @GetMapping(value = "/changeWorker")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "Integer", required = true),
-            @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true)
     })
-    public R<String> changeWorker(@RequestParam Integer changeId, @RequestParam Integer orderId, @RequestParam Integer workerId) {
+    public R<String> changeWorker(@RequestParam Integer changeId, @RequestParam Integer workerId) {
         ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery().eq(ChangeDispatch::getId, changeId)
                 .eq(ChangeDispatch::getIsDelete, 0).one();
         if (null == changeDispatch || Constants.ONE.equals(changeDispatch.getState())) {
             throw new GlobalException("改派申请不存在或已改派!");
         }
-        Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
+        Order order = orderService.lambdaQuery().eq(Order::getId, changeDispatch.getOrderId())
+                .eq(Order::getIsDelete, 0).one();
         if (null == order) {
             throw new GlobalException("订单不存在!");
         }
@@ -144,7 +169,7 @@
         if (null == masterWorker) {
             throw new GlobalException("服务人员信息异常!");
         }
-        // 原订单状态改为 6:已改派
+        // 原订单状态改为 5:已改派
         order.setState(Constants.FIVE);
         boolean orderUpdate = orderService.updateById(order);
         // 生成新订单信息
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
index 9d190b4..6792ae0 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
@@ -65,6 +65,7 @@
         wrapper = StringUtils.isNotBlank(phone) ? wrapper.like(MasterWorker::getPhone, phone) : wrapper;
         wrapper = StringUtils.isNotBlank(city) ? wrapper.like(MasterWorker::getCity, city) : wrapper;
         return R.ok(wrapper.eq(MasterWorker::getIsDelete, 0)
+                        .eq(MasterWorker::getIsEnable,1)
                 .orderByDesc(MasterWorker::getCreateTime).page(Page.of(pageNum, pageSize)));
     }
 
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
index 4302bd6..6b09cdf 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -3,11 +3,9 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.admin.entity.MasterWorker;
-import com.ruoyi.admin.entity.Order;
+import com.ruoyi.admin.entity.*;
 import com.ruoyi.admin.request.OrderQueryRequest;
-import com.ruoyi.admin.service.MasterWorkerService;
-import com.ruoyi.admin.service.OrderService;
+import com.ruoyi.admin.service.*;
 import com.ruoyi.admin.sorcket.WebSocketServer;
 import com.ruoyi.admin.vo.OrderCountVO;
 import com.ruoyi.admin.vo.OrderDetailVO;
@@ -15,7 +13,6 @@
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.SnowflakeIdWorker;
-import com.ruoyi.common.core.utils.bean.BeanUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -25,6 +22,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -47,6 +45,15 @@
     private OrderService orderService;
     @Resource
     private MasterWorkerService masterWorkerService;
+    @Resource
+    private SiteService siteService;
+    @Resource
+    private RecoveryServeService recoveryServeService;
+    @Resource
+    private RecoveryServePriceService recoveryServePriceService;
+    @Resource
+    private ChangeDispatchService changeDispatchService;
+
     /**
      * 雪花算法类
      */
@@ -109,13 +116,11 @@
 
     /**
      * 订单列表
-     *
-     * @param orderQueryRequest 订单列表查询参数
      */
     @ApiOperation(value = "订单列表-各订单数量统计", tags = {"后台-订单管理"})
-    @PostMapping(value = "/orderPageCount")
-    public R<OrderPageCountVO> orderPageCount(@RequestBody OrderQueryRequest orderQueryRequest) {
-        return R.ok(orderService.orderPageCount(orderQueryRequest));
+    @GetMapping(value = "/orderPageCount")
+    public R<OrderPageCountVO> orderPageCount() {
+        return R.ok(orderService.orderPageCount());
     }
 
     /**
@@ -141,7 +146,39 @@
     @ApiOperation(value = "订单列表-新增订单", tags = {"后台-订单管理"})
     @PostMapping(value = "/save")
     public R<String> save(@RequestBody Order order) {
+        // 站点信息
+        Site site = siteService.lambdaQuery()
+                .eq(Site::getId, order.getSiteId())
+                .eq(Site::getIsDelete, 0).one();
+        order.setSiteName(site.getSiteName());
+        // 回收服务信息
+        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
+                .eq(RecoveryServe::getId, order.getServeId())
+                .eq(RecoveryServe::getIsDelete, 0).one();
+        order.setServeName(recoveryServe.getServeName());
+        // 不同城市会有不同的回收价格
+        RecoveryServePrice price = recoveryServePriceService.lambdaQuery()
+                .eq(RecoveryServePrice::getRecoveryServeId, recoveryServe.getId())
+                .eq(RecoveryServePrice::getIsDelete, 0)
+                .eq(RecoveryServePrice::getCity, order.getCity()).one();
+        if (null == price) {
+            order.setServePrice(recoveryServe.getDefaultPrice());
+            order.setOrderMoney(recoveryServe.getDefaultPrice());
+        } else {
+            order.setServePrice(price.getRecoveryPrice());
+            order.setOrderMoney(price.getRecoveryPrice());
+        }
+        // 师傅信息
+        MasterWorker masterWorker = masterWorkerService.lambdaQuery()
+                .eq(MasterWorker::getId, order.getServerId())
+                .eq(MasterWorker::getIsDelete, 0).one();
+        order.setServerName(masterWorker.getRealName());
+        order.setServerPhone(masterWorker.getPhone());
+        // 后台订单
         order.setType(Constants.ONE);
+        // 待派单状态
+        order.setState(Constants.ZERO);
+        order.setSubsidy(BigDecimal.ZERO);
         order.setOrderNumber(String.valueOf(SNOW_FLAKE_ID_WORKER.nextId()));
         return orderService.save(order) ? R.ok() : R.fail();
     }
@@ -157,10 +194,11 @@
     @ApiImplicitParams({
             @ApiImplicitParam(value = "操作类型(1:订单派单;2:订单改派)", name = "type", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true),
-            @ApiImplicitParam(value = "服务人员id", name = "workerId", dataType = "Integer", required = true)
+            @ApiImplicitParam(value = "服务人员id", name = "workerId", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "改派原因", name = "applyReason", dataType = "String")
     })
     public R<String> reassignment(@RequestParam Integer type, @RequestParam Integer orderId,
-                                  @RequestParam Integer workerId) {
+                                  @RequestParam Integer workerId, String applyReason) {
         Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
         MasterWorker masterWorker = masterWorkerService.lambdaQuery()
                 .eq(MasterWorker::getId, workerId)
@@ -172,19 +210,26 @@
             order.setServerName(masterWorker.getRealName());
             order.setServerPhone(masterWorker.getPhone());
             order.setAcceptTime(new Date());
+            order.setState(Constants.ONE);
             result = orderService.updateById(order);
         } else if (Constants.TWO.equals(type)) {
-            order.setState(Constants.FIVE);
-            orderService.updateById(order);
-            Order itemOrder = new Order();
-            BeanUtils.copyProperties(order, itemOrder);
-            itemOrder.setId(null);
-            itemOrder.setServerId(workerId);
-            itemOrder.setServerName(masterWorker.getRealName());
-            itemOrder.setServerPhone(masterWorker.getPhone());
-            itemOrder.setAcceptTime(new Date());
-            itemOrder.setState(Constants.ONE);
-            result = orderService.save(itemOrder);
+            order.setServeId(workerId);
+            order.setServerName(masterWorker.getRealName());
+            order.setServerPhone(masterWorker.getPhone());
+            result = orderService.updateById(order);
+            // 生成改派信息
+            ChangeDispatch changeDispatch = new ChangeDispatch();
+            changeDispatch.setWorkerId(order.getServerId());
+            changeDispatch.setWorkerName(order.getServerName());
+            changeDispatch.setApplyReason(applyReason);
+            changeDispatch.setApplyTime(new Date());
+            changeDispatch.setState(Constants.ONE);
+            changeDispatch.setOrderId(String.valueOf(order.getId()));
+            changeDispatch.setOrderNumber(order.getOrderNumber());
+            changeDispatch.setUserId(String.valueOf(order.getUserId()));
+            changeDispatch.setUserName(order.getReservationName());
+            changeDispatch.setIsDelete(Constants.ZERO);
+            changeDispatchService.save(changeDispatch);
         }
         try {
             WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId));
@@ -214,12 +259,12 @@
     /**
      * 订单列表-excel导出
      *
-     * @param idList 订单id
+     * @param orderQueryRequest 筛选参数
      */
     @ApiOperation(value = "订单列表-excel导出", tags = {"后台-订单管理"})
     @PostMapping(value = "/excelExport")
-    public R<String> excelExport(@RequestBody List<String> idList, HttpServletResponse response) {
-        return orderService.excelExport(idList, response);
+    public R<String> excelExport(@RequestBody OrderQueryRequest orderQueryRequest, HttpServletResponse response) {
+        return orderService.excelExport(orderQueryRequest, response);
     }
 
     /**
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
index 2f9a092..569f6a8 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
@@ -35,7 +35,7 @@
 
     @ApiModelProperty("申请师傅姓名")
     @TableField("worker_name")
-    private Integer workerName;
+    private String workerName;
 
     @ApiModelProperty("申请原因")
     @TableField("apply_reason")
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
index a044821..21dec73 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
@@ -4,11 +4,13 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -80,6 +82,8 @@
 
     @ApiModelProperty("上门时间")
     @TableField("time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date time;
 
     @ApiModelProperty("接单时间(师傅接单或后台派单,更新该字段时间)")
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
index 8f8214c..349cc5b 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
@@ -119,8 +119,23 @@
     /**
      * 订单管理分页模块,订单数量统计
      *
-     * @param orderQueryRequest 请求参数
      * @return 统计数量
      */
-    List<Order> orderPageCount(@Param("data") OrderQueryRequest orderQueryRequest);
+    List<Order> orderPageCount();
+
+    /**
+     * 根据所选id查询
+     *
+     * @param ids id集合
+     * @return 返回列表
+     */
+    List<Order> exportByIdList(List<String> ids);
+
+    /**
+     * 根据筛选条件查询
+     *
+     * @param orderQueryRequest 筛选条件
+     * @return 返回列表
+     */
+    List<Order> exportList(@Param("data") OrderQueryRequest orderQueryRequest);
 }
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/OrderQueryRequest.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/OrderQueryRequest.java
index 6c6b4d1..c29b0fc 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/OrderQueryRequest.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/OrderQueryRequest.java
@@ -4,6 +4,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author HJL
  * @version 1.0
@@ -25,7 +27,7 @@
     @ApiModelProperty("预约手机号")
     private String reservationPhone;
 
-    @ApiModelProperty("订单状态((0:待派单;1:待接单;2:待上门;3:待完工;4:已完结;5:已取消))")
+    @ApiModelProperty("订单状态(0:待派单;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派)")
     private Integer state;
 
     @ApiModelProperty("师傅名称")
@@ -55,4 +57,8 @@
     @ApiModelProperty(value = "每页显示条数", required = true)
     private Integer pageSize = 10;
 
+    @ApiModelProperty("导出ids集合")
+    private List<String> ids;
+
+
 }
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
index 4ef43d7..c8ce5e0 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
@@ -63,11 +63,11 @@
     /**
      * excel模板导出
      *
-     * @param idList   订单记录id
+     * @param orderQueryRequest   筛选参数
      * @param response 响应体
      * @return 导出结果
      */
-    R<String> excelExport(List<String> idList, HttpServletResponse response);
+    R<String> excelExport(OrderQueryRequest orderQueryRequest, HttpServletResponse response);
 
     /**
      * 订单列表
@@ -98,8 +98,7 @@
     /**
      * 订单管理分页模块,订单数量统计
      *
-     * @param orderQueryRequest 请求参数
      * @return 统计数量
      */
-    OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest);
+    OrderPageCountVO orderPageCount();
 }
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/AgreementServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/AgreementServiceImpl.java
index 85fd9d5..657818a 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/AgreementServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/AgreementServiceImpl.java
@@ -32,7 +32,7 @@
     @Transactional(rollbackFor = Exception.class)
     public R<String> saveData(Agreement agreement) {
         Integer type = agreement.getContentType();
-        if (Constants.ZERO.equals(type) || Constants.ONE.equals(type) || Constants.TWO.equals(type)) {
+        if (!Constants.ZERO.equals(type) && !Constants.ONE.equals(type) && !Constants.TWO.equals(type)) {
             return R.fail("保存类型异常!(0注册协议;1:隐私政策;2:司机操作指导)");
         }
         Agreement dbDate = lambdaQuery().eq(Agreement::getContentType, type).one();
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
index f29415d..98a4736 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -58,6 +58,8 @@
     private ServeCoordinateService serveCoordinateService;
     @Resource
     private EvaluateService evaluateService;
+    @Resource
+    private ChangeDispatchService changeDispatchService;
 
     @Override
     public OrderResultVO orderCountHome(OrderCountRequest orderCount) {
@@ -108,7 +110,7 @@
     }
 
     @Override
-    public R<String> excelExport(List<String> idList, HttpServletResponse response) {
+    public R<String> excelExport(OrderQueryRequest orderQueryRequest, HttpServletResponse response) {
         try {
             response.setCharacterEncoding(Constants.UTF8);
             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@@ -118,7 +120,13 @@
             return R.fail("excel导出失败!");
         }
         try {
-            List<Order> list = lambdaQuery().in(Order::getId, idList).eq(Order::getIsDelete, 0).list();
+            List<String> ids = orderQueryRequest.getIds();
+            List<Order> list;
+            if (null != ids && !ids.isEmpty()) {
+                list = baseMapper.exportByIdList(ids);
+            } else {
+                list = baseMapper.exportList(orderQueryRequest);
+            }
             // excel模板封装
             ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
             InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" + Constants.EXCEL_ORDER_FILE_NAME + ".xlsx");
@@ -140,7 +148,18 @@
     public IPage<Order> queryPage(OrderQueryRequest orderQueryRequest) {
         Page<Order> page = Page.of(orderQueryRequest.getPageNum(), orderQueryRequest.getPageSize());
         // 基础查询
-        return baseMapper.queryPage(orderQueryRequest, page);
+        IPage<Order> pageList = baseMapper.queryPage(orderQueryRequest, page);
+        for (Order order : pageList.getRecords()) {
+            ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
+                    .eq(ChangeDispatch::getOrderId, order.getId())
+                    .eq(ChangeDispatch::getIsDelete, 0)
+                    .orderByDesc(ChangeDispatch::getCreateTime)
+                    .last("limit 1").one();
+            if (null != changeDispatch) {
+                order.setApplyReason(changeDispatch.getApplyReason());
+            }
+        }
+        return pageList;
     }
 
     @Override
@@ -165,18 +184,17 @@
         Evaluate evaluate = evaluateService.lambdaQuery().eq(Evaluate::getOrderId, order.getId())
                 .eq(Evaluate::getIsDelete, 0).one();
         OrderByEvaluateVO orderByEvaluate = new OrderByEvaluateVO();
-        orderByEvaluate.setStarRating(evaluate.getStarRating());
-        orderByEvaluate.setEvaluateTime(evaluate.getCreateTime());
-        orderByEvaluate.setEvaluateContent(evaluate.getContent());
+        if (null != evaluate) {
+            orderByEvaluate.setStarRating(evaluate.getStarRating());
+            orderByEvaluate.setEvaluateTime(evaluate.getCreateTime());
+            orderByEvaluate.setEvaluateContent(evaluate.getContent());
+        }
         result.setEvaluateInfo(orderByEvaluate);
     }
 
     private void serveRecordInfo(OrderDetailVO result, Order order) {
         ServeRecord serveRecord = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, order.getId())
                 .eq(ServeRecord::getIsDelete, 0).one();
-        if (null == serveRecord) {
-            throw new GlobalException("服务记录信息异常,请重试");
-        }
         // 师傅路线轨迹
         List<ServeCoordinate> serveCoordinateList = serveCoordinateService.lambdaQuery().eq(ServeCoordinate::getWorkerId, order.getServerId())
                 .eq(ServeCoordinate::getIsDelete, 0).orderByDesc(ServeCoordinate::getCreateTime).list();
@@ -184,7 +202,9 @@
         orderByServeRecord.setAcceptOrderTime(order.getAcceptTime());
         orderByServeRecord.setReachTime(order.getTime());
         orderByServeRecord.setCoordinate(serveCoordinateList.stream().map(ServeCoordinate::getCoordinate).collect(Collectors.toList()));
-        orderByServeRecord.setPhoto(Arrays.stream(serveRecord.getPhoto().split(",")).collect(Collectors.toList()));
+        if (null != serveRecord) {
+            orderByServeRecord.setPhoto(Arrays.stream(serveRecord.getPhoto().split(",")).collect(Collectors.toList()));
+        }
         result.setServeRecordInfo(orderByServeRecord);
     }
 
@@ -233,12 +253,11 @@
     private void userInfo(OrderDetailVO result, Order order) {
         Integer userId = order.getUserId();
         User user = userMapper.selectById(userId);
-        if (null == user) {
-            throw new GlobalException("预约人信息异常,请重试");
-        }
         OrderByUserInfoVO orderByUserInfo = new OrderByUserInfoVO();
-        orderByUserInfo.setProfilePicture(user.getProfilePicture());
-        orderByUserInfo.setUserNumber(user.getUserNo());
+        if (null != user) {
+            orderByUserInfo.setProfilePicture(user.getProfilePicture());
+            orderByUserInfo.setUserNumber(user.getUserNo());
+        }
         orderByUserInfo.setReservationName(order.getReservationName());
         orderByUserInfo.setReservationPhone(order.getReservationPhone());
         orderByUserInfo.setReservationAddress(order.getReservationAddress());
@@ -252,8 +271,8 @@
     }
 
     @Override
-    public OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest) {
-        List<Order> orderList = baseMapper.orderPageCount(orderQueryRequest);
+    public OrderPageCountVO orderPageCount() {
+        List<Order> orderList = baseMapper.orderPageCount();
         int total = 0;
         int toBeDispatched = 0;
         int stayDoorstep = 0;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
index 2b349b9..e7b95a8 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.util.RandomUtil;
 import com.ruoyi.admin.service.SendSmsService;
+import com.ruoyi.admin.utils.SendSmsUtil;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.RedisConstants;
 import com.ruoyi.common.core.exception.GlobalException;
@@ -21,23 +22,28 @@
 
     @Resource
     private RedisTemplate<String, Object> redisTemplate;
+    @Resource
+    private SendSmsUtil sendSmsUtil;
 
     @Override
     public String workerSettleSms(String phone) {
-        return sendPhoneCode(phone, RedisConstants.WORKER_SETTLE_KEY, Constants.FIVE, TimeUnit.MINUTES);
+        return sendPhoneCode(phone, RedisConstants.WORKER_SETTLE_KEY,
+                sendSmsUtil.applyId);
     }
 
     @Override
     public String workerLoginSms(String phone) {
-        return sendPhoneCode(phone, RedisConstants.WORKER_APPLY_KEY, Constants.FIVE, TimeUnit.MINUTES);
+        return sendPhoneCode(phone, RedisConstants.WORKER_APPLY_KEY,
+                sendSmsUtil.loginId);
     }
 
     @Override
     public String userLoginSms(String phone) {
-        return sendPhoneCode(phone, RedisConstants.USER_LOGIN_PHONE_CODE, Constants.FIVE, TimeUnit.MINUTES);
+        return sendPhoneCode(phone, RedisConstants.USER_LOGIN_PHONE_CODE,
+                sendSmsUtil.loginId);
     }
 
-    private String sendPhoneCode(String phone, String redisKey, Integer timeout, TimeUnit timeUnit) {
+    private String sendPhoneCode(String phone, String redisKey, String templateId) {
         // 生成随机 6位数字 验证码
         String phoneCode = RandomUtil.randomNumbers(6);
         // 判断redis中是否存在手机验证码
@@ -60,10 +66,13 @@
          * key为 --> phone_code:手机号码 (phone_code表示该业务为 验证码登录)
          * value为 --> 随机验证码:时间戳 (时间戳用于计算是否超过1分钟的重发时间)
          */
-        redisTemplate.opsForValue().set(redisKey + phone, phoneCode + ":" + System.currentTimeMillis(), timeout, timeUnit);
+        redisTemplate.opsForValue().set(redisKey + phone, phoneCode + ":" + System.currentTimeMillis(),
+                Constants.FIVE, TimeUnit.MINUTES);
         String sendMessage = "验证码发送成功,您的验证码为:" + phoneCode + ",该验证码三分钟内有效,请及时完成登陆";
-        // todo 发送此消息
         System.out.println(sendMessage);
+        String[] param = {phoneCode};
+        // 发送验证码
+        sendSmsUtil.sendSms(new SendSmsUtil.SendSmsRequest(phone, templateId, param));
         return phoneCode;
     }
 
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
index 8d558fa..22651bb 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
@@ -75,7 +75,7 @@
             //从set中删除
             subOnlineCount();
         }
-        log.info("用户退出:" + userId + ",当前在线人数为:" + getOnlineCount());
+        log.info("用户退出: " + userId + ",当前在线人数为: " + getOnlineCount());
     }
 
     /**
@@ -125,6 +125,7 @@
             WEB_SOCKET_MAP.get(workerId).getSession().getBasicRemote().sendText(message);
         } else {
             log.error("用户" + workerId + ",不在线!");
+            throw new IOException("用户" + workerId + ",不在线!");
         }
     }
 
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
index 34e1f4e..7d1239b 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
@@ -36,7 +36,7 @@
 
     public static void main(String[] args) {
         // 数据库连接url
-        String dbUrl = "jdbc:mysql://localhost:3306/secondary_recovery";
+        String dbUrl = "jdbc:mysql://localhost:3306/old_data";
         // 数据库用户名
         String dbUsername = "root";
         // 数据库密码
@@ -61,7 +61,7 @@
                 // 包配置
                 .packageConfig(builder -> builder
                                 // 父包名
-                                .parent("com.rouyi.admin")
+                                .parent("com.rouyi.user")
                                 // 父包模块名 注释即为无
 //                         .moduleName(scanner("模块名"))
                                 // Entity 包名
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByEvaluateVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByEvaluateVO.java
index 77cb0da..5360775 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByEvaluateVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByEvaluateVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.admin.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -20,6 +21,7 @@
     private BigDecimal starRating;
 
     @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date evaluateTime;
 
     @ApiModelProperty("评价内容")
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
index 1f6fd4f..90cd70e 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.admin.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -17,9 +18,11 @@
 public class OrderByServeRecordVO {
 
     @ApiModelProperty("接单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date acceptOrderTime;
 
     @ApiModelProperty("到达时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date reachTime;
 
     @ApiModelProperty("路线经纬度集合")
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
index 3023ac2..6f99708 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.admin.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -31,6 +32,7 @@
     private String reservationAddress;
 
     @ApiModelProperty("预约上门时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date time;
 
 }
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderInfoVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderInfoVO.java
index 7827000..51e6b00 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderInfoVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderInfoVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.admin.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -19,6 +20,7 @@
     private String orderNumber;
 
     @ApiModelProperty("下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private Date placeOrderTime;
 
     @ApiModelProperty("订单状态(0:待派单;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派)")
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
index 4225a99..48ad3d7 100644
--- a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
@@ -5,6 +5,8 @@
     <resultMap id="BaseResultMap" type="com.ruoyi.admin.entity.Order">
         <id column="id" property="id"/>
         <result column="site_id" property="siteId"/>
+        <result column="order_number" property="orderNumber"/>
+        <result column="order_money" property="orderMoney"/>
         <result column="site_name" property="siteName"/>
         <result column="serve_id" property="serveId"/>
         <result column="serve_name" property="serveName"/>
@@ -14,6 +16,7 @@
         <result column="time" property="time"/>
         <result column="server_id" property="serverId"/>
         <result column="server_name" property="serverName"/>
+        <result column="server_phone" property="serverPhone"/>
         <result column="reservation_remark" property="reservationRemark"/>
         <result column="state" property="state"/>
         <result column="createBy" property="createBy"/>
@@ -196,12 +199,10 @@
     </select>
 
     <select id="queryPage" resultMap="BaseResultMap">
-        select o.*, c.apply_reason
+        select *
         from t_order o
-                 left join sys_change_dispatch c on o.id = c.order_id
         <where>
             o.is_delete = 0
-              AND (c.is_delete = 0 OR c.is_delete IS NULL)
             <if test="data.orderNumber != null and data.orderNumber != ''">
                 and o.order_number like concat('%', #{data.orderNumber}, '%')
             </if>
@@ -242,12 +243,41 @@
     </select>
 
     <select id="orderPageCount" resultMap="BaseResultMap">
-        select o.*, c.apply_reason
+        select o.*
         from t_order o
-        left join sys_change_dispatch c on o.id = c.order_id
+        where o.is_delete = 0
+    </select>
+
+    <select id="exportByIdList" resultMap="BaseResultMap">
+        select reservation_name,
+               reservation_phone,
+               reservation_address,
+               time,
+               serve_name,
+               server_name,
+               server_phone
+        from t_order
+        <where>
+            id in
+            <foreach collection="list" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </where>
+    </select>
+
+    <select id="exportList" resultMap="BaseResultMap">
+        select o.reservation_name,
+               o.reservation_phone,
+               o.reservation_address,
+               o.time,
+               o.serve_name,
+               o.server_name,
+               o.server_phone
+        from t_order o
+                 left join sys_change_dispatch c on o.id = c.order_id
         <where>
             o.is_delete = 0
-            AND (c.is_delete = 0 OR c.is_delete IS NULL)
+              AND (c.is_delete = 0 OR c.is_delete IS NULL)
             <if test="data.orderNumber != null and data.orderNumber != ''">
                 and o.order_number like concat('%', #{data.orderNumber}, '%')
             </if>
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
index cb5f1df..2ed177b 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
@@ -1,7 +1,7 @@
 package com.ruoyi.worker.controller;
 
 
-import com.ruoyi.admin.api.entity.ExchangeDispatch;
+import com.ruoyi.admin.api.entity.ChangeDispatch;
 import com.ruoyi.admin.api.feignClient.AdminClient;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
@@ -89,24 +89,28 @@
         if (null == loginWorker) {
             return R.loginExpire("登录失效!");
         }
+        ChangeDispatch data = adminClient.changeDispatchOne(orderId).getData();
+        if (null != data) {
+            return R.fail("当前订单已提交改派申请!");
+        }
         MasterWorker masterWorker = masterWorkerService.getById(loginWorker.getUserid());
         // 订单改派信息
-        ExchangeDispatch exchangeDispatch = new ExchangeDispatch();
-        exchangeDispatch.setWorkerId(masterWorker.getId());
-        exchangeDispatch.setWorkerName(masterWorker.getRealName());
-        exchangeDispatch.setApplyReason(reason);
-        exchangeDispatch.setApplyTime(DateUtils.getNowDate());
-        exchangeDispatch.setState(0);
+        ChangeDispatch changeDispatch = new ChangeDispatch();
+        changeDispatch.setWorkerId(masterWorker.getId());
+        changeDispatch.setWorkerName(masterWorker.getRealName());
+        changeDispatch.setApplyReason(reason);
+        changeDispatch.setApplyTime(DateUtils.getNowDate());
+        changeDispatch.setState(0);
         Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
         if (null == order) {
             throw new GlobalException("订单信息异常!");
         }
-        exchangeDispatch.setOrderId(orderId);
-        exchangeDispatch.setOrderNumber(order.getOrderNumber());
-        exchangeDispatch.setUserId(order.getUserId());
-        exchangeDispatch.setUserName(order.getReservationName());
+        changeDispatch.setOrderId(orderId);
+        changeDispatch.setOrderNumber(order.getOrderNumber());
+        changeDispatch.setUserId(order.getUserId());
+        changeDispatch.setUserName(order.getReservationName());
         // 添加改派信息
-        Boolean save = adminClient.changeDispatchSave(exchangeDispatch).getData();
+        Boolean save = adminClient.changeDispatchSave(changeDispatch).getData();
         return save ? R.ok() : R.fail();
     }
 
@@ -128,7 +132,8 @@
         if (null == loginWorker) {
             return R.loginExpire("登录失效!");
         }
-        Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getServerId, loginWorker.getUserid())
+        Order order = orderService.lambdaQuery().eq(Order::getId, orderId)
+                .eq(Order::getServerId, loginWorker.getUserid())
                 .eq(Order::getIsDelete, 0).one();
         if (null == order) {
             throw new GlobalException("请确认当前订单所派单师傅是否是您!");
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
index 6358f23..1e5bde0 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
@@ -47,7 +47,7 @@
     }
 
     @PostMapping("/uploadPhoto")
-    @ApiOperation(value = "师傅端-上传完工照片", tags = "公共-文件上传")
+    @ApiOperation(value = "师傅端-上传完工照片", tags = "师傅端-文件上传")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "照片", name = "file", dataType = "MultipartFile", required = true),
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true),
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
index 8a17a9c..fe86570 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
@@ -45,10 +45,10 @@
 
     @Override
     public List<OrderListVO> orderNotHandle(Integer userid, String longitude, String latitude) {
-        List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid)
+        List<Order> orderList = orderService.lambdaQuery()
+                .eq(Order::getServerId, userid)
                 .eq(Order::getState, Constants.ONE)
                 .eq(Order::getIsDelete, 0)
-                .eq(Order::getType, Constants.ZERO)
                 .orderByAsc(Order::getTopSort).list();
         // 根据经纬度距离封装
         List<OrderNotHandleVO> list = new ArrayList<>();
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
index 18eef66..ee472dd 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
@@ -36,11 +36,11 @@
         } else {
             wrapper.in(Order::getState, 1, 2, 3, 4, 5);
         }
-        return wrapper.list();
+        return wrapper.eq(Order::getServerId, userid).list();
     }
 
     @Override
     public Object orderNavigation(String userPosition, String workerPosition) {
-        return GaoDeMapUtil.routing(userPosition, workerPosition);
+        return GaoDeMapUtil.routing(workerPosition, userPosition);
     }
 }
diff --git a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
index 6c7fee2..306a8c3 100644
--- a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
+++ b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
@@ -26,9 +26,9 @@
     </resultMap>
 
     <select id="orderCount" resultType="com.ruoyi.worker.vo.OrderCountVO">
-        SELECT COALESCE(SUM(CASE WHEN o.state IN (2, 3, 4) THEN 1 ELSE 0 END), 0) AS total,
-               COALESCE(SUM(CASE WHEN o.state = 2 THEN 1 ELSE 0 END), 0)          AS waitVisit,
-               COALESCE(SUM(CASE WHEN o.state = 4 THEN 1 ELSE 0 END), 0)          AS completed
+        SELECT COALESCE(SUM(CASE WHEN o.state IN (1, 2, 3) THEN 1 ELSE 0 END), 0) AS total,
+               COALESCE(SUM(CASE WHEN o.state = 1 THEN 1 ELSE 0 END), 0)          AS waitVisit,
+               COALESCE(SUM(CASE WHEN o.state = 3 THEN 1 ELSE 0 END), 0)          AS completed
         FROM t_order o
                  left join sys_master_worker m on o.server_id = m.id
         where m.id = #{id}

--
Gitblit v1.7.1