本文档说明了急救转运任务(create-emergency.vue)的完整实现,包括前端页面、后端接口、数据库设计等所有必要组件。
app/pages/task/create-emergency.vue)扩展表: sys_task_emergencysql -- 存储急救转运和福祉车任务的专属字段 - 患者信息(6个字段) - 转出医院信息(6个字段) - 转入医院信息(6个字段) - 费用信息(2个字段) - 福祉车专用(2个字段)
SQL文件: sql/sys_task_emergency.sql
✅ SysTaskEmergency.java - 扩展信息实体类
- 位置: ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTaskEmergency.java
- 包含所有急救转运任务的扩展字段
✅ SysTaskEmergencyMapper.java - Mapper接口
- 位置: ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTaskEmergencyMapper.java
- 提供增删改查方法
✅ SysTaskEmergencyMapper.xml - MyBatis映射文件
- 位置: ruoyi-system/src/main/resources/mapper/system/SysTaskEmergencyMapper.xml
- 实现数据库操作
✅ SysTask实体类修改
- 新增 emergencyInfo 字段,关联扩展信息
✅ SysTaskServiceImpl增强
1. 注入 SysTaskEmergencyMapper
2. insertSysTask() 方法支持保存急救转运扩展信息
- 调用 saveEmergencyInfo() 保存患者和医院信息
- 调用 saveWelfareInfo() 保存福祉车乘客信息
3. selectSysTaskByTaskId() 方法加载扩展信息
4. getTaskDetail() 方法返回完整的任务详情(含扩展信息)
POST /task
Content-Type: application/json
{
"taskType": "EMERGENCY_TRANSFER",
"vehicleIds": [1],
"transferTime": "2025-10-16 14:00:00",
"patient": {
"contact": "张三",
"phone": "13800138000",
"name": "李四",
"gender": "male",
"idCard": "440000199001011234",
"condition": "骨折"
},
"hospitalOut": {
"name": "广州市第一人民医院",
"department": "骨科",
"bedNumber": "201",
"address": "广州市越秀区XX路123号",
"longitude": 113.264385,
"latitude": 23.12911
},
"hospitalIn": {
"name": "广东省人民医院",
"department": "骨科",
"bedNumber": "301",
"address": "广州市越秀区YY路456号",
"longitude": 113.274385,
"latitude": 23.13911
},
"transferDistance": 5.2,
"price": 800
}
GET /task/{taskId}
返回结果包含:
- 基本任务信息
- 车辆关联信息
- 附件列表
- 操作日志
- emergencyInfo: 急救转运扩展信息
- 患者信息
- 转出/转入医院信息
- 费用信息
sql/sys_task_emergency.sql - 数据库表结构ruoyi-system/.../SysTaskEmergency.java - 实体类ruoyi-system/.../SysTaskEmergencyMapper.java - Mapper接口ruoyi-system/.../SysTaskEmergencyMapper.xml - MyBatis映射ruoyi-system/.../SysTask.java - 添加emergencyInfo字段ruoyi-system/.../SysTaskServiceImpl.java - 增强保存和查询逻辑saveEmergencyInfo() 方法saveWelfareInfo() 方法insertSysTask() 方法selectSysTaskByTaskId() 方法getTaskDetail() 方法mysql -u root -p your_database < sql/sys_task_emergency.sql
cd ruoyi-admin
mvn clean package
# Windows
bin\run.bat
# Linux
sh bin/run.sh
前端页面 create-emergency.vue 已经存在,无需修改
-- 验证扩展信息是否正确保存
SELECT t.task_id, t.task_code, t.task_type,
e.patient_name, e.hospital_out_name, e.hospital_in_name
FROM sys_task t
LEFT JOIN sys_task_emergency e ON t.task_id = e.task_id
WHERE t.task_type = 'EMERGENCY_TRANSFER';
使用Postman或其他工具测试:
1. POST /task - 创建急救转运任务
2. GET /task/{taskId} - 查看任务详情
3. 验证返回的 emergencyInfo 字段
sys_task_emergency.sql 后才能使用EMERGENCY_TRANSFER - 急救转运WELFARE - 福祉车开发完成时间: 2025-10-16
开发状态: ✅ 已完成
测试状态: ⏳ 待测试