wzp
2025-05-03 86bb0542773fec123ea4bfb90852c503265426ac
feat: 回调处理和详情展示优化
8个文件已添加
13个文件已修改
666 ■■■■■ 已修改文件
ruoyi-admin/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/APITestController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/AOrderStatus.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/DictionaryCondition.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/domain/OrderStatusCallBackVo.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/AOrderStatusMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DispatchOrdMapper.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbOrdersMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/IAOrderStatusService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/IDispatchOrdService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ITbOrdersService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AOrderStatusServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DispatchOrdServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrdersServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/AOrderStatusMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/DispatchOrdMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/order/detail.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml
@@ -64,6 +64,11 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-generator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/APITestController.java
New file
@@ -0,0 +1,40 @@
package com.ruoyi.web.controller.system;
import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.OrderStatusCallBackVo;
import org.springframework.web.bind.annotation.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Anonymous
@RestController
@RequestMapping("/system/apitest")
public class APITestController extends BaseController {
    private static final Logger log = LoggerFactory.getLogger(ServiceOrderController.class);
    @Anonymous
    @PostMapping("/orderCallback")
    public AjaxResult updateOrderStatus(@RequestBody OrderStatusCallBackVo orderStatus) {
        try {
            // 输出请求参数
            log.info("收到订单状态更新回调,参数:orderId={}, thirdOrderNo={}, orderStatus={}, " +
                    "plateNo={}, driverMobile={}, driverName={}",
                    orderStatus.getOrderID(),
                    orderStatus.getThirdOrderNo(),
                    orderStatus.getOrderStatus(),
                    orderStatus.getPlateNo(),
                    orderStatus.getDriverMobile(),
                    orderStatus.getDriverName());
            // 这里可以添加业务逻辑处理
            return AjaxResult.success("回调访问成功");
        } catch (Exception e) {
            return AjaxResult.error("回调访问失败:" + e.getMessage());
        }
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ServiceOrderController.java
@@ -13,6 +13,7 @@
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.DictionaryCondition;
import com.ruoyi.system.domain.DispatchOrd;
import com.ruoyi.system.domain.TbOrders;
import com.ruoyi.system.service.IDispatchOrdService;
@@ -226,12 +227,43 @@
                dispatchInfo.put("dispatchStatus","已调度");
            }
            //车牌号
            String carLicense = dispatchOrdService.selectCarLicenseByCarId(Integer.valueOf(dispatchOrd.getDispatchOrdCarID()));
            dispatchInfo.put("carLicense", carLicense);
        }
        //病人情况
        Map<String, Object> medicalInfo = new HashMap<>();
        medicalInfo.put("hasConsciousness", orderDetail.getSense());
        medicalInfo.put("complaint",orderDetail.getComplaint());
        //条件
        List<DictionaryCondition> conditions = dispatchOrdService.selectDictionaryConditions();
        List<Integer> conditionIds = dispatchOrdService.selectConditionIdsByServiceOrdCoId(Long.valueOf(orderDetail.getServiceOrdID()));
        String patientCondition = "";//病人情况
        String useVentilator = "";//使用呼吸机
        for(DictionaryCondition condition : conditions){
            if(conditionIds.contains(condition.getVID())){
                patientCondition += condition.getVOrder2() + ": " + condition.getVtext() + ";   ";
            }
            if(condition.getVOrder2().contains("呼吸机")){
                useVentilator = condition.getVtext();
            }
        }
        medicalInfo.put("patientCondition", patientCondition);
        medicalInfo.put("useVentilator", useVentilator);
        data.put("orderInfo", orderInfo);
        data.put("patientInfo", patientInfo);
        data.put("serviceInfo", serviceInfo);
        data.put("medicalInfo", new HashMap<>()); // 暂时为空
        data.put("medicalInfo", medicalInfo); // 暂时为空
        data.put("dispatchInfo", dispatchInfo);  // 更新为包含人员信息的dispatchInfo
        data.put("paymentInfo", new ArrayList<>()); // 暂时为空
        data.put("operationInfo", new ArrayList<>()); // 暂时为空
ruoyi-quartz/pom.xml
@@ -34,6 +34,10 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-system</artifactId>
        </dependency>
    </dependencies>
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,7 +1,23 @@
package com.ruoyi.quartz.task;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.system.domain.AOrderStatus;
import com.ruoyi.system.domain.DispatchOrd;
import com.ruoyi.system.domain.OrderStatusCallBackVo;
import com.ruoyi.system.domain.TbOrders;
import com.ruoyi.system.service.IAOrderStatusService;
import com.ruoyi.system.service.IDispatchOrdService;
import com.ruoyi.system.service.ITbOrdersService;
import com.ruoyi.system.service.impl.SysUserServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 定时任务调度测试
@@ -11,6 +27,16 @@
@Component("ryTask")
public class RyTask
{
    private static final Logger log = LoggerFactory.getLogger(RyTask.class);
    @Autowired
    private IAOrderStatusService orderStatusService;
    @Autowired
    private ITbOrdersService tbOrdersService;
    @Autowired
    private IDispatchOrdService dispatchOrdService;
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -25,4 +51,106 @@
    {
        System.out.println("执行无参方法");
    }
    public void ryOrderStatus() {
        try {
            List<AOrderStatus> orderStatusList = orderStatusService.selectAOrderStatusList();
            if (orderStatusList.size() < 0) {
                System.out.println("没有数据");
                return;
            }
            for (AOrderStatus orderStatus : orderStatusList) {
                int count = tbOrdersService.checkServiceOrdIDExists(orderStatus.getServiceOrdID());
                if (count > 0) {
                    // orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                    System.out.println("服务订单ID存在:" + orderStatus.getServiceOrdID());
                    TbOrders tbOrders = tbOrdersService.selectTbOrdersByServiceOrdID(orderStatus.getServiceOrdID());
                    //获取车牌号
                    String carLicense = "";
                    StringBuilder driverNames = new StringBuilder();
                    StringBuilder driverMobiles = new StringBuilder();
                    try{
                        DispatchOrd dispatchOrd = dispatchOrdService.selectDispatchOrdByServiceOrdIDDt(orderStatus.getServiceOrdID());
                        if(dispatchOrd!=null){
                            carLicense = dispatchOrdService.selectCarLicenseByCarId(Integer.valueOf(dispatchOrd.getDispatchOrdCarID()));
                            String dispatchOAEntourage = dispatchOrd.getDispatchOrd_OAEntourage();
                            String dispatchOAName = dispatchOrd.getDispatchOrd_OAName();
                            if (dispatchOAEntourage != null && dispatchOAName != null) {
                                String[] entourages = dispatchOAEntourage.split(",");
                                String[] names = dispatchOAName.split(",");
                                // 查找所有司机信息
                                for (int i = 0; i < Math.min(entourages.length, names.length); i++) {
                                    if ("司机".equals(entourages[i].trim())) {
                                        String driverMobile = dispatchOrdService.selectDriverMobileByName(names[i].trim());
                                        if (driverNames.length() > 0) {
                                            driverNames.append(",");
                                        }
                                        driverNames.append(names[i].trim());
                                        if (driverMobiles.length() > 0) {
                                            driverMobiles.append(",");
                                        }
                                        driverMobiles.append(driverMobile);
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        log.error("获取调度单异常:"+e.getMessage());
                    }
                    // 使用获取到的所有司机姓名
                    String callbackUrl = "http://localhost:8080/system/apitest/orderCallback";
                    try {
                        // 构建请求参数
                        Map<String, String> map = new HashMap<>();
                        map.put("orderID", tbOrders.getOrderID().toString());
                        map.put("thirdOrderNo", orderStatus.getServiceOrdID());
                        map.put("orderStatus","1");
                        map.put("orderRemark", orderStatus.getMsg());
                        map.put("plateNo",carLicense);
                        map.put("driverMobile",driverMobiles.toString());
                        map.put("driverName", driverNames.toString());
                        // 打印请求参数
                        log.info("发送回调请求,URL: " + callbackUrl);
                        log.info("请求参数: " + map);
                        // 发送请求并获取响应
                        String response = HttpUtil.post(callbackUrl, map);
                        // 打印响应结果
                        log.info("回调响应结果: " + response);
                        // 更新状态
                        // orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                    } catch (Exception e) {
                        log.error("回调请求失败: " + e.getMessage());
                        // 可以考虑重试机制或者记录失败日志
                    }
                }
                else {
                    log.info("服务订单ID不存在:" + orderStatus.getServiceOrdID());
                    orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                }
            }
        } catch (Exception e) {
            log.error("执行失败: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/domain/AOrderStatus.java
New file
@@ -0,0 +1,14 @@
package com.ruoyi.system.domain;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class AOrderStatus {
    private Long id;
    private String serviceOrdID;
    private String msg;
    private LocalDateTime updateTime;
    private Integer flag;
}
ruoyi-system/src/main/java/com/ruoyi/system/domain/DictionaryCondition.java
New file
@@ -0,0 +1,33 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
/**
 * 字典数据对象 dictionary
 */
@Data
public class DictionaryCondition extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /** ID */
    @Excel(name = "ID")
    private Integer vID;
    /** 文本值 */
    @Excel(name = "文本值")
    private String vtext;
    /** 类型 */
    @Excel(name = "类型")
    private Integer vType;
    /** 排序 */
    @Excel(name = "排序")
    private Double vOrder;
    /** 分类 */
    @Excel(name = "分类")
    private String vOrder2;
}
ruoyi-system/src/main/java/com/ruoyi/system/domain/OrderStatusCallBackVo.java
New file
@@ -0,0 +1,56 @@
package com.ruoyi.system.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class OrderStatusCallBackVo {
    /**
     * 订单ID(广交订单ID,系统唯一)
     */
    @JsonProperty("OrderID")
    private Long OrderID;
    /**
     * 第三方订单号(第三方平台唯一)
     */
    @JsonProperty("ThirdOrderNo")
    private String ThirdOrderNo;
    /**
     * 订单状态:
     * -1:订单创建失败
     * 0:订单创建成功
     * 1:司机已接单
     * 2:司机已出发
     * 3:司机抵达
     * 4:已接到乘客
     * 5:订单服务中
     * 6:行程结束
     * 7:订单支付完成
     * 8:订单取消
     */
    @JsonProperty("OrderStatus")
    private Integer OrderStatus;
    @JsonProperty("OrderRemark")
    private String OrderRemark;
    /**
     * 司机车牌号
     */
    @JsonProperty("PlateNo")
    private String PlateNo;
    /**
     * 司机联系电话
     */
    @JsonProperty("DriverMobile")
    private String DriverMobile;
    /**
     * 司机姓名
     */
    @JsonProperty("DriverName")
    private String DriverName;
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/AOrderStatusMapper.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.AOrderStatus;
/**
 * 订单状态 数据层
 */
public interface AOrderStatusMapper {
    /**
     * 查询订单状态列表
     * 默认查询 flag = 0 的记录
     *
     * @param aOrderStatus 订单状态信息
     * @return 订单状态集合
     */
    public List<AOrderStatus> selectAOrderStatusList();
    /**
     * 修改订单状态标志为1
     *
     * @param id 订单状态ID
     * @return 结果
     */
    public int updateAOrderStatusFlag(Long id);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DispatchOrdMapper.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.DictionaryCondition;
import com.ruoyi.system.domain.DispatchOrd;
import java.util.List;
/**
 * 调度订单Mapper接口
@@ -15,4 +18,37 @@
     * @return 调度订单信息
     */
    public DispatchOrd selectDispatchOrdByServiceOrdIDDt(String serviceOrdIDDt);
    /**
     * 根据CarID查询车牌号
     *
     * @param carId CarID
     * @return 车牌号
     */
    public String selectCarLicenseByCarId(Integer carId);
    /**
     * 查询字典表中的条件数据
     *
     * @return 条件数据列表
     */
    public List<DictionaryCondition> selectDictionaryConditions();
    /**
     * 根据服务订单ID查询条件ID列表
     *
     * @param serviceOrdCoId 服务订单ID
     * @return 条件ID列表
     */
    public List<Integer> selectConditionIdsByServiceOrdCoId(Long serviceOrdCoId);
    /**
     * 根据司机姓名查询司机手机号
     *
     * @param driverName 司机姓名
     * @return 司机手机号
     */
    public String selectDriverMobileByName(String driverName);
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbOrdersMapper.java
@@ -58,4 +58,22 @@
     * @return 结果
     */
    public int deleteTbOrdersByOrderIDs(Long[] OrderIDs);
    /**
     * 检查ServiceOrdID是否存在
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    public int checkServiceOrdIDExists(String ServiceOrdID);
    /**
     * 查询ServiceOrdID对应的订单
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    public TbOrders selectTbOrdersByServiceOrdID(String ServiceOrdID);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/IAOrderStatusService.java
New file
@@ -0,0 +1,25 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.AOrderStatus;
/**
 * 订单状态 服务层
 */
public interface IAOrderStatusService {
    /**
     * 查询订单状态列表
     * 默认查询 flag = 0 的记录
     *
     * @return 订单状态集合
     */
    public List<AOrderStatus> selectAOrderStatusList();
    /**
     * 修改订单状态标志为1
     *
     * @param id 订单状态ID
     * @return 结果
     */
    public int updateAOrderStatusFlag(Long id);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/IDispatchOrdService.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.service;
import com.ruoyi.system.domain.DictionaryCondition;
import com.ruoyi.system.domain.DispatchOrd;
import java.util.List;
/**
 * 调度订单Service接口
@@ -15,4 +18,36 @@
     * @return 调度订单信息
     */
    public DispatchOrd selectDispatchOrdByServiceOrdIDDt(String serviceOrdIDDt);
    /**
     * 根据CarID查询车牌号
     *
     * @param carId CarID
     * @return 车牌号
     */
    public String selectCarLicenseByCarId(Integer carId);
    /**
     * 查询字典表中的条件数据
     *
     * @return 条件数据列表
     */
    public List<DictionaryCondition> selectDictionaryConditions();
    /**
     * 根据服务订单ID查询条件ID列表
     *
     * @param serviceOrdCoId 服务订单ID
     * @return 条件ID列表
     */
    public List<Integer> selectConditionIdsByServiceOrdCoId(Long serviceOrdCoId);
    /**
     * 根据司机姓名查询司机手机号
     *
     * @param driverName 司机姓名
     * @return 司机手机号
     */
    public String selectDriverMobileByName(String driverName);
ruoyi-system/src/main/java/com/ruoyi/system/service/ITbOrdersService.java
@@ -58,4 +58,22 @@
     * @return 结果
     */
    public int deleteTbOrdersByOrderID(Long OrderID);
    /**
     * 检查ServiceOrdID是否存在
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    public int checkServiceOrdIDExists(String ServiceOrdID);
    /**
     * 查询ServiceOrdID对应的订单
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    public TbOrders selectTbOrdersByServiceOrdID(String ServiceOrdID);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AOrderStatusServiceImpl.java
New file
@@ -0,0 +1,43 @@
package com.ruoyi.system.service.impl;
import java.util.List;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.AOrderStatusMapper;
import com.ruoyi.system.domain.AOrderStatus;
import com.ruoyi.system.service.IAOrderStatusService;
/**
 * 订单状态 服务层实现
 */
@DataSource(DataSourceType.SQLSERVER)
@Service
public class AOrderStatusServiceImpl implements IAOrderStatusService {
    @Autowired
    private AOrderStatusMapper aOrderStatusMapper;
    /**
     * 查询订单状态列表
     * 默认查询 flag = 0 的记录
     *
     * @return 订单状态集合
     */
    @Override
    public List<AOrderStatus> selectAOrderStatusList() {
        return aOrderStatusMapper.selectAOrderStatusList();
    }
    /**
     * 修改订单状态标志为1
     *
     * @param id 订单状态ID
     * @return 结果
     */
    @Override
    public int updateAOrderStatusFlag(Long id) {
        return aOrderStatusMapper.updateAOrderStatusFlag(id);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DispatchOrdServiceImpl.java
@@ -2,11 +2,14 @@
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.DictionaryCondition;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.DispatchOrdMapper;
import com.ruoyi.system.domain.DispatchOrd;
import com.ruoyi.system.service.IDispatchOrdService;
import java.util.List;
/**
 * 调度订单Service业务层处理
@@ -29,4 +32,48 @@
    public DispatchOrd selectDispatchOrdByServiceOrdIDDt(String serviceOrdIDDt) {
        return dispatchOrdMapper.selectDispatchOrdByServiceOrdIDDt(serviceOrdIDDt);
    }
    /**
     * 根据CarID查询车牌号
     *
     * @param carId CarID
     * @return 车牌号
     */
    @Override
    public String selectCarLicenseByCarId(Integer carId) {
        return dispatchOrdMapper.selectCarLicenseByCarId(carId);
    }
    /**
     * 查询字典表中的条件数据
     *
     * @return 条件数据列表
     */
    @Override
    public List<DictionaryCondition> selectDictionaryConditions() {
        return dispatchOrdMapper.selectDictionaryConditions();
    }
    /**
     * 根据服务订单ID查询条件ID列表
     *
     * @param serviceOrdCoId 服务订单ID
     * @return 条件ID列表
     */
    @Override
    public List<Integer> selectConditionIdsByServiceOrdCoId(Long serviceOrdCoId) {
        return dispatchOrdMapper.selectConditionIdsByServiceOrdCoId(serviceOrdCoId);
    }
    /**
     * 根据司机姓名查询司机手机号
     *
     * @param driverName 司机姓名
     * @return 司机手机号
     */
    @Override
    public String selectDriverMobileByName(String driverName) {
        return dispatchOrdMapper.selectDriverMobileByName(driverName);
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrdersServiceImpl.java
@@ -90,4 +90,29 @@
    {
        return tbOrdersMapper.deleteTbOrdersByOrderID(OrderID);
    }
    /**
     * 检查ServiceOrdID是否存在
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    @Override
    public int checkServiceOrdIDExists(String ServiceOrdID)
    {
        return tbOrdersMapper.checkServiceOrdIDExists(ServiceOrdID);
    }
    /**
     * 查询ServiceOrdID对应的订单
     *
     * @param ServiceOrdID 服务订单ID
     * @return 结果
     */
    @Override
    public TbOrders selectTbOrdersByServiceOrdID(String ServiceOrdID)
    {
        return tbOrdersMapper.selectTbOrdersByServiceOrdID(ServiceOrdID);
    }
}
ruoyi-system/src/main/resources/mapper/system/AOrderStatusMapper.xml
New file
@@ -0,0 +1,24 @@
<?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.system.mapper.AOrderStatusMapper">
    <resultMap type="com.ruoyi.system.domain.AOrderStatus" id="AOrderStatusResult">
        <id     property="id"           column="id"/>
        <result property="serviceOrdID" column="serviceOrdID"/>
        <result property="msg"          column="msg"/>
        <result property="updateTime"   column="updateTime"/>
        <result property="flag"         column="flag"/>
    </resultMap>
    <select id="selectAOrderStatusList" resultMap="AOrderStatusResult">
        select id, serviceOrdID, msg, updateTime, flag
        from A_OrderStatus where flag = 0
    </select>
    <update id="updateAOrderStatusFlag" parameterType="Long">
        update A_OrderStatus
        set flag = 1
        where id = #{id}
    </update>
</mapper>
ruoyi-system/src/main/resources/mapper/system/DispatchOrdMapper.xml
@@ -21,6 +21,7 @@
        <result property="dispatchOrd_AP_Check" column="DispatchOrd_AP_Check"/>
        <result property="dispatchOrd_OAName" column="DispatchOrd_OAName"/>
        <result property="dispatchOrd_OAEntourage" column="DispatchOrd_OAEntourage"/>
        <result property="dispatchOrdCarID" column="DispatchOrdCarID"/>
        
        <!-- ... 其他字段映射 ... -->
    </resultMap>
@@ -34,4 +35,42 @@
        where ServiceOrdIDDt = #{serviceOrdIDDt}
    </select>
    <!-- 根据CarID查询车牌号 -->
    <select id="selectCarLicenseByCarId" parameterType="Integer" resultType="String">
        select CarLicense from CarData where CarID = #{carId}
    </select>
    <!-- 查询字典表中的条件数据 -->
    <resultMap id="DictionaryConditionResult" type="DictionaryCondition">
        <result property="vID" column="vID"/>
        <result property="vtext" column="vtext"/>
        <result property="vType" column="vType"/>
        <result property="vOrder" column="vOrder"/>
        <result property="vOrder2" column="vOrder2"/>
    </resultMap>
    <select id="selectDictionaryConditions" resultMap="DictionaryConditionResult">
        select vID, vtext, vType, vOrder, vOrder2
        from dictionary
        where vType >= 1
        and vtitle = 'Condition'
        order by vOrder, ID
    </select>
    <!-- 根据服务订单ID查询条件ID列表 -->
    <select id="selectConditionIdsByServiceOrdCoId" parameterType="Long" resultType="Integer">
        select ConditionID
        from ServiceOrd_Condition
        where ServiceOrdCoID = #{serviceOrdCoId}
    </select>
    <!-- 根据司机姓名查询司机手机号 -->
    <select id="selectDriverMobileByName" parameterType="String" resultType="String">
        SELECT top 1 OA_mobile
        FROM OA_User
        WHERE OA_Position = '司机'
        AND OA_Name = #{driverName}
    </select>
</mapper> 
ruoyi-system/src/main/resources/mapper/system/TbOrdersMapper.xml
@@ -235,4 +235,14 @@
            #{OrderID}
        </foreach>
    </delete>
    <select id="checkServiceOrdIDExists" parameterType="String" resultType="Integer">
        select count(1) from tb_orders where ServiceOrdID = #{ServiceOrdID}
    </select>
    <select id="selectTbOrdersByServiceOrdID" parameterType="String" resultMap="TbOrdersResult">
        <include refid="selectTbOrdersVo"/>
        where ServiceOrdID = #{ServiceOrdID}
    </select>
</mapper>
ruoyi-ui/src/views/system/order/detail.vue
@@ -64,7 +64,7 @@
              <el-descriptions-item label="是否有意识">{{ medicalInfo.hasConsciousness }}</el-descriptions-item>
              <el-descriptions-item label="病人情况">{{ medicalInfo.patientCondition }}</el-descriptions-item>
              <el-descriptions-item label="使用呼吸机">{{ medicalInfo.useVentilator }}</el-descriptions-item>
              <el-descriptions-item label="诊断病情">{{ medicalInfo.diagnosis }}</el-descriptions-item>
              <el-descriptions-item label="诊断病情">{{ medicalInfo.complaint }}</el-descriptions-item>
            </el-descriptions>
          </el-card>
        </el-col>
@@ -79,7 +79,7 @@
              <el-descriptions-item label="调度时间">{{ dispatchInfo.dispatchTime }}</el-descriptions-item>
              <el-descriptions-item label="调度状态">{{ dispatchInfo.dispatchStatus }}</el-descriptions-item>
              <el-descriptions-item label="司机">{{ dispatchInfo.driver }}</el-descriptions-item>
              <el-descriptions-item label="车牌">{{ dispatchInfo.carNo }}</el-descriptions-item>
              <el-descriptions-item label="车牌">{{ dispatchInfo.carLicense }}</el-descriptions-item>
              <el-descriptions-item label="医生">{{ dispatchInfo.doctor }}</el-descriptions-item>
              <!-- <el-descriptions-item label="职位">{{ dispatchInfo.doctorPosition }}</el-descriptions-item> -->
              <el-descriptions-item label="护士">{{ dispatchInfo.nurse }}</el-descriptions-item>
@@ -113,7 +113,7 @@
          <el-card class="inner-card">
            <div slot="header">
              <b>运行情况</b>
              <span style="float: right">粤A102311</span>
              <span style="float: right">{{dispatchInfo.carLicense}}</span>
            </div>
            <el-table
              :data="operationInfo"