| | |
| | | <id property="statsId" column="stats_id" /> |
| | | <result property="vehicleId" column="vehicle_id" /> |
| | | <result property="vehicleNo" column="vehicle_no" /> |
| | | <result property="deptName" column="dept_name" /> |
| | | <result property="deptId" column="dept_id" /> |
| | | <result property="statDate" column="stat_date" /> |
| | | <result property="totalMileage" column="total_mileage" /> |
| | | <result property="taskMileage" column="task_mileage" /> |
| | |
| | | <result property="taskRatio" column="task_ratio" /> |
| | | <result property="gpsPointCount" column="gps_point_count" /> |
| | | <result property="taskCount" column="task_count" /> |
| | | <result property="segmentCount" column="segment_count" /> |
| | | <result property="dataSource" column="data_source" /> |
| | | <result property="createTime" column="create_time" /> |
| | | <result property="updateTime" column="update_time" /> |
| | | </resultMap> |
| | |
| | | </resultMap> |
| | | |
| | | <sql id="selectVehicleMileageStatsVo"> |
| | | select stats_id, vehicle_id, vehicle_no, stat_date, total_mileage, task_mileage, |
| | | non_task_mileage, task_ratio, gps_point_count, task_count, create_time, update_time |
| | | from tb_vehicle_mileage_stats |
| | | select s.stats_id, s.vehicle_id, s.vehicle_no, s.stat_date, s.total_mileage, s.task_mileage, |
| | | s.non_task_mileage, s.task_ratio, s.gps_point_count, s.task_count, s.segment_count, |
| | | s.data_source, s.create_time, s.update_time, |
| | | GROUP_CONCAT(DISTINCT d.dept_name ORDER BY d.dept_name SEPARATOR ',') as dept_name, |
| | | vd.dept_id |
| | | from tb_vehicle_mileage_stats s |
| | | left join tb_vehicle_info v on s.vehicle_id = v.vehicle_id |
| | | left join tb_vehicle_dept vd on v.vehicle_id = vd.vehicle_id |
| | | left join sys_dept d on vd.dept_id = d.dept_id |
| | | </sql> |
| | | |
| | | <select id="selectVehicleMileageStatsList" parameterType="VehicleMileageStats" resultMap="VehicleMileageStatsResult"> |
| | | <include refid="selectVehicleMileageStatsVo"/> |
| | | <where> |
| | | <if test="vehicleId != null"> |
| | | and vehicle_id = #{vehicleId} |
| | | and s.vehicle_id = #{vehicleId} |
| | | </if> |
| | | <if test="vehicleNo != null and vehicleNo != ''"> |
| | | and vehicle_no = #{vehicleNo} |
| | | and s.vehicle_no like concat('%', #{vehicleNo}, '%') |
| | | </if> |
| | | <if test="deptId != null"> |
| | | and vd.dept_id = #{deptId} |
| | | </if> |
| | | <if test="statDate != null"> |
| | | and stat_date = #{statDate} |
| | | and s.stat_date = #{statDate} |
| | | </if> |
| | | <if test="params.beginStatDate != null and params.beginStatDate != ''"> |
| | | and stat_date >= #{params.beginStatDate} |
| | | and s.stat_date >= #{params.beginStatDate} |
| | | </if> |
| | | <if test="params.endStatDate != null and params.endStatDate != ''"> |
| | | and stat_date <= #{params.endStatDate} |
| | | and s.stat_date <= #{params.endStatDate} |
| | | </if> |
| | | </where> |
| | | order by stat_date desc, vehicle_id |
| | | group by s.stats_id, s.vehicle_id, s.vehicle_no, s.stat_date, s.total_mileage, s.task_mileage, |
| | | s.non_task_mileage, s.task_ratio, s.gps_point_count, s.task_count, s.segment_count, |
| | | s.data_source, s.create_time, s.update_time, vd.dept_id |
| | | order by s.stat_date desc, s.vehicle_id |
| | | </select> |
| | | |
| | | <select id="selectVehicleMileageStatsById" parameterType="Long" resultMap="VehicleMileageStatsResult"> |
| | | <include refid="selectVehicleMileageStatsVo"/> |
| | | where stats_id = #{statsId} |
| | | where s.stats_id = #{statsId} |
| | | group by s.stats_id, s.vehicle_id, s.vehicle_no, s.stat_date, s.total_mileage, s.task_mileage, |
| | | s.non_task_mileage, s.task_ratio, s.gps_point_count, s.task_count, s.segment_count, |
| | | s.data_source, s.create_time, s.update_time, vd.dept_id |
| | | </select> |
| | | |
| | | <!-- 根据车辆ID和统计日期查询唯一统计记录 --> |
| | | <select id="selectByVehicleIdAndDate" resultMap="VehicleMileageStatsResult"> |
| | | <include refid="selectVehicleMileageStatsVo"/> |
| | | where vehicle_id = #{vehicleId} and stat_date = #{statDate} |
| | | select s.stats_id, s.vehicle_id, s.vehicle_no, s.stat_date, s.total_mileage, s.task_mileage, |
| | | s.non_task_mileage, s.task_ratio, s.gps_point_count, s.task_count, s.segment_count, |
| | | s.data_source, s.create_time, s.update_time |
| | | from tb_vehicle_mileage_stats s |
| | | where s.vehicle_id = #{vehicleId} and DATE(s.stat_date) = DATE(#{statDate}) |
| | | limit 1 |
| | | </select> |
| | | |
| | | <select id="selectTaskTimeIntervals" resultMap="TaskTimeIntervalResult"> |
| | | select tv.task_id, t.create_time as start_time, |
| | | select tv.task_id, t.actual_start_time as start_time, |
| | | IFNULL(t.actual_end_time, NOW()) as end_time |
| | | from sys_task_vehicle tv |
| | | inner join sys_task t on tv.task_id = t.task_id |
| | | where tv.vehicle_id = #{vehicleId} |
| | | and t.del_flag = '0' |
| | | and t.actual_end_time is not null |
| | | and t.create_time < #{endTime} |
| | | and t.actual_end_time > #{startTime} |
| | | order by t.create_time |
| | | and (t.actual_start_time <= #{endTime} and (t.actual_end_time is null or t.actual_end_time >= #{startTime})) |
| | | |
| | | order by t.actual_start_time |
| | | </select> |
| | | |
| | | <insert id="insertVehicleMileageStats" parameterType="VehicleMileageStats" useGeneratedKeys="true" keyProperty="statsId"> |
| | |
| | | <if test="taskRatio != null">task_ratio,</if> |
| | | <if test="gpsPointCount != null">gps_point_count,</if> |
| | | <if test="taskCount != null">task_count,</if> |
| | | <if test="segmentCount != null">segment_count,</if> |
| | | <if test="dataSource != null">data_source,</if> |
| | | create_time |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | |
| | | <if test="taskRatio != null">#{taskRatio},</if> |
| | | <if test="gpsPointCount != null">#{gpsPointCount},</if> |
| | | <if test="taskCount != null">#{taskCount},</if> |
| | | <if test="segmentCount != null">#{segmentCount},</if> |
| | | <if test="dataSource != null">#{dataSource},</if> |
| | | NOW() |
| | | </trim> |
| | | ON DUPLICATE KEY UPDATE |
| | | vehicle_no = VALUES(vehicle_no), |
| | | total_mileage = VALUES(total_mileage), |
| | | task_mileage = VALUES(task_mileage), |
| | | non_task_mileage = VALUES(non_task_mileage), |
| | | task_ratio = VALUES(task_ratio), |
| | | gps_point_count = VALUES(gps_point_count), |
| | | task_count = VALUES(task_count), |
| | | segment_count = VALUES(segment_count), |
| | | data_source = VALUES(data_source), |
| | | update_time = NOW() |
| | | </insert> |
| | | |
| | | <update id="updateVehicleMileageStats" parameterType="VehicleMileageStats"> |
| | |
| | | <if test="taskRatio != null">task_ratio = #{taskRatio},</if> |
| | | <if test="gpsPointCount != null">gps_point_count = #{gpsPointCount},</if> |
| | | <if test="taskCount != null">task_count = #{taskCount},</if> |
| | | <if test="segmentCount != null">segment_count = #{segmentCount},</if> |
| | | <if test="dataSource != null">data_source = #{dataSource},</if> |
| | | update_time = NOW() |
| | | </trim> |
| | | where stats_id = #{statsId} |