| | |
| | | and e.patient_phone = #{phone} |
| | | and DATE(t.create_time) = #{createDate} |
| | | </select> |
| | | |
| | | <!-- 查询车辆在指定时间范围内的任务列表 --> |
| | | <select id="selectVehicleTasksInTimeRange" parameterType="map" resultMap="SysTaskResult"> |
| | | select t.task_id, t.task_code, t.task_type, t.task_status, |
| | | t.departure_address, t.destination_address, |
| | | t.actual_start_time, t.actual_end_time, |
| | | t.planned_start_time, t.planned_end_time, |
| | | t.estimated_distance, |
| | | tv.vehicle_id |
| | | from sys_task t |
| | | inner join sys_task_vehicle tv on t.task_id = tv.task_id |
| | | where tv.vehicle_id = #{vehicleId} |
| | | and t.del_flag = '0' |
| | | and t.task_status not in ('CANCELLED') |
| | | and ( |
| | | <!-- 实际时间有值时,使用实际时间判断重叠 --> |
| | | (t.actual_start_time is not null and t.actual_end_time is not null |
| | | and t.actual_start_time <= #{endTime} and t.actual_end_time >= #{startTime}) |
| | | or |
| | | <!-- 实际开始时间有值但未结束时,使用当前时间作为结束时间 --> |
| | | (t.actual_start_time is not null and t.actual_end_time is null |
| | | and t.actual_start_time <= #{endTime}) |
| | | or |
| | | <!-- 实际时间都为空时,使用计划时间判断重叠 --> |
| | | (t.actual_start_time is null and t.actual_end_time is null |
| | | and t.planned_start_time <= #{endTime} and t.planned_end_time >= #{startTime}) |
| | | ) |
| | | order by t.actual_start_time, t.planned_start_time |
| | | </select> |
| | | </mapper> |