sys_task_emergency 已创建create-emergency.vue)# 进入后端目录
cd d:\project\急救转运\code\Api\RuoYi-Vue-master
# 清理并编译
mvn clean package -DskipTests
# 或者使用项目自带脚本
bin\package.bat
# 方式1: 使用启动脚本
bin\run.bat
# 方式2: 使用Maven插件
cd ruoyi-admin
mvn spring-boot:run
# 方式3: 直接运行jar包
cd ruoyi-admin\target
java -jar ruoyi-admin.jar
启动成功标志:
- 控制台显示 "RuoYi启动成功"
- 能够访问 http://localhost:8080
- 无数据库连接错误或Mapper找不到的异常
检查启动日志,确认以下Mapper已加载: Creating a new SqlSession Registering mapper: com.ruoyi.system.mapper.SysTaskEmergencyMapper
如果没有自动扫描到,检查以下配置:
确认 application.yml 中的MyBatis配置:yaml mybatis: mapper-locations: classpath*:mapper/**/*Mapper.xml type-aliases-package: com.ruoyi.system.domain
确认 Mapper XML 文件位置: ruoyi-system/src/main/resources/mapper/system/SysTaskEmergencyMapper.xml
请求配置: POST http://localhost:8080/task Content-Type: application/json Authorization: Bearer {你的token}
请求Body:json { "taskType": "EMERGENCY_TRANSFER", "vehicleIds": [1], "transferTime": "2025-10-17 14:00:00", "patient": { "contact": "张三", "phone": "13800138000", "name": "李四", "gender": "male", "idCard": "440000199001011234", "condition": "骨折需紧急转院" }, "hospitalOut": { "name": "广州市第一人民医院", "department": "骨科", "bedNumber": "201", "address": "广州市越秀区盘福路1号", "longitude": 113.264385, "latitude": 23.12911 }, "hospitalIn": { "name": "广东省人民医院", "department": "骨科", "bedNumber": "301", "address": "广州市越秀区中山二路106号", "longitude": 113.274385, "latitude": 23.13911 }, "transferDistance": 5.2, "price": 800 }
预期响应:json { "code": 200, "msg": "操作成功", "data": 1 }
请求: GET http://localhost:8080/task/{刚创建的taskId} Authorization: Bearer {你的token}
预期响应 (重点检查 emergencyInfo 字段):json { "code": 200, "msg": "查询成功", "data": { "taskId": 1, "taskCode": "RW20251017001", "taskType": "EMERGENCY_TRANSFER", "taskStatus": "PENDING", "plannedStartTime": "2025-10-17 14:00:00", "assignedVehicles": [...], "emergencyInfo": { "patientName": "李四", "patientPhone": "13800138000", "patientGender": "male", "patientCondition": "骨折需紧急转院", "hospitalOutName": "广州市第一人民医院", "hospitalOutDepartment": "骨科", "hospitalInName": "广东省人民医院", "transferDistance": 5.2, "transferPrice": 800 } } }
# 进入app目录
cd d:\project\急救转运\code\Api\RuoYi-Vue-master\app
# 安装依赖 (如果还没安装)
npm install
# 启动H5开发服务器
npm run dev:h5
必填字段:
- ✅ 任务车辆 (从下拉列表选择)
- ✅ 患者姓名
- ✅ 患者联系电话
- ✅ 转出医院名称
- ✅ 转入医院名称
可选字段:
- 转运时间
- 患者性别、身份证、病情
- 医院科室、床号、地址 (使用地图选择器)
- 转运公里数、成交价
提交后检查:
- 是否显示"任务创建成功"
- 能否跳转到任务列表
- 新创建的任务是否显示在列表中
-- 1. 查看任务主表数据
SELECT * FROM sys_task WHERE task_type = 'EMERGENCY_TRANSFER' ORDER BY create_time DESC LIMIT 1;
-- 2. 查看扩展表数据
SELECT * FROM sys_task_emergency ORDER BY create_time DESC LIMIT 1;
-- 3. 联表查询验证关联
SELECT
t.task_id,
t.task_code,
t.task_type,
t.task_status,
e.patient_name,
e.patient_phone,
e.hospital_out_name,
e.hospital_in_name,
e.transfer_distance,
e.transfer_price
FROM sys_task t
LEFT JOIN sys_task_emergency e ON t.task_id = e.task_id
WHERE t.task_type = 'EMERGENCY_TRANSFER'
ORDER BY t.create_time DESC;
预期结果:
- sys_task 表中有一条 task_type = 'EMERGENCY_TRANSFER' 的记录
- sys_task_emergency 表中有对应的扩展信息
- 两表通过 task_id 正确关联
解决方案:
```bash
mysql -u root -p your_database < sql/sys_task_emergency.sql
```
检查点:
1. Mapper XML 文件是否在正确位置: ruoyi-system/src/main/resources/mapper/system/
2. namespace 是否正确: com.ruoyi.system.mapper.SysTaskEmergencyMapper
3. 检查 application.yml 中 mapper-locations 配置
检查点:
1. 确认 SysTaskServiceImpl.getTaskDetail() 方法是否包含加载扩展信息的代码
2. 查看数据库 sys_task_emergency 表是否有数据
3. 检查控制台日志是否有SQL执行错误
检查点:
1. 浏览器开发者工具查看请求参数格式是否正确
2. 后端日志查看参数绑定错误信息
3. 确认 TaskCreateVO 中嵌套类的getter/setter方法是否正确
解决方案:
- 确认已配置腾讯地图API Key (application.yml)
- 检查网络能否访问腾讯地图API
- 可以暂时手动输入地址进行测试
如果测试过程中遇到问题,请提供:
1. 错误日志截图或文字
2. 问题出现的步骤
3. 数据库数据截图
4. 前端控制台错误信息
我会帮您一一解决!
测试完成后,请在此打勾: ☑️ 急救转运任务功能测试通过