From caf56217dc2bf898b63b0e1f31a7098202c32825 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 15 十一月 2025 16:50:17 +0800
Subject: [PATCH] Merge branch 'feature_gps'

---
 ruoyi-system/src/main/resources/mapper/system/VehicleMileageStatsMapper.xml |  117 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 76 insertions(+), 41 deletions(-)

diff --git a/ruoyi-system/src/main/resources/mapper/system/VehicleMileageStatsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/VehicleMileageStatsMapper.xml
index 1dd8199..95439e9 100644
--- a/ruoyi-system/src/main/resources/mapper/system/VehicleMileageStatsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/VehicleMileageStatsMapper.xml
@@ -5,91 +5,126 @@
 <mapper namespace="com.ruoyi.system.mapper.VehicleMileageStatsMapper">
     
     <resultMap type="VehicleMileageStats" id="VehicleMileageStatsResult">
-        <result property="statsId"    column="stats_id"    />
-        <result property="vehicleId"    column="vehicle_id"    />
-        <result property="statsDate"    column="stats_date"    />
-        <result property="totalMileage"    column="total_mileage"    />
-        <result property="taskMileage"    column="task_mileage"    />
-        <result property="nonTaskMileage"    column="non_task_mileage"    />
-        <result property="taskMileageRatio"    column="task_mileage_ratio"    />
-        <result property="gpsCount"    column="gps_count"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateTime"    column="update_time"    />
+        <id     property="statsId"         column="stats_id"           />
+        <result property="vehicleId"       column="vehicle_id"         />
+        <result property="vehicleNo"       column="vehicle_no"         />
+        <result property="statDate"        column="stat_date"          />
+        <result property="totalMileage"    column="total_mileage"      />
+        <result property="taskMileage"     column="task_mileage"       />
+        <result property="nonTaskMileage"  column="non_task_mileage"   />
+        <result property="taskRatio"       column="task_ratio"         />
+        <result property="gpsPointCount"   column="gps_point_count"    />
+        <result property="taskCount"       column="task_count"         />
+        <result property="createTime"      column="create_time"        />
+        <result property="updateTime"      column="update_time"        />
+    </resultMap>
+
+    <resultMap type="TaskTimeInterval" id="TaskTimeIntervalResult">
+        <result property="taskId"          column="task_id"            />
+        <result property="startTime"       column="start_time"         />
+        <result property="endTime"         column="end_time"           />
     </resultMap>
 
     <sql id="selectVehicleMileageStatsVo">
-        select stats_id, vehicle_id, stats_date, total_mileage, task_mileage, non_task_mileage, 
-               task_mileage_ratio, gps_count, create_time, update_time
-        from vehicle_mileage_stats
+        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
     </sql>
 
     <select id="selectVehicleMileageStatsList" parameterType="VehicleMileageStats" resultMap="VehicleMileageStatsResult">
         <include refid="selectVehicleMileageStatsVo"/>
         <where>  
-            <if test="vehicleId != null "> and vehicle_id = #{vehicleId}</if>
-            <if test="statsDate != null "> and stats_date = #{statsDate}</if>
+            <if test="vehicleId != null">
+                and vehicle_id = #{vehicleId}
+            </if>
+            <if test="vehicleNo != null and vehicleNo != ''">
+                and vehicle_no = #{vehicleNo}
+            </if>
+            <if test="statDate != null">
+                and stat_date = #{statDate}
+            </if>
+            <if test="params.beginStatDate != null and params.beginStatDate != ''">
+                and stat_date &gt;= #{params.beginStatDate}
+            </if>
+            <if test="params.endStatDate != null and params.endStatDate != ''">
+                and stat_date &lt;= #{params.endStatDate}
+            </if>
         </where>
-        order by stats_date desc, vehicle_id
+        order by stat_date desc, vehicle_id
     </select>
     
-    <select id="selectVehicleMileageStatsByStatsId" parameterType="Long" resultMap="VehicleMileageStatsResult">
+    <select id="selectVehicleMileageStatsById" parameterType="Long" resultMap="VehicleMileageStatsResult">
         <include refid="selectVehicleMileageStatsVo"/>
         where stats_id = #{statsId}
     </select>
-    
+
     <select id="selectByVehicleIdAndDate" resultMap="VehicleMileageStatsResult">
         <include refid="selectVehicleMileageStatsVo"/>
-        where vehicle_id = #{vehicleId} and stats_date = #{statsDate}
+        where vehicle_id = #{vehicleId} and stat_date = #{statDate}
+    </select>
+
+    <select id="selectTaskTimeIntervals" resultMap="TaskTimeIntervalResult">
+        select tv.task_id, t.create_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 &lt; #{endTime}
+          and t.actual_end_time &gt; #{startTime}
+        order by t.create_time
     </select>
         
     <insert id="insertVehicleMileageStats" parameterType="VehicleMileageStats" useGeneratedKeys="true" keyProperty="statsId">
-        insert into vehicle_mileage_stats
+        insert into tb_vehicle_mileage_stats
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="vehicleId != null">vehicle_id,</if>
-            <if test="statsDate != null">stats_date,</if>
+            <if test="vehicleNo != null">vehicle_no,</if>
+            <if test="statDate != null">stat_date,</if>
             <if test="totalMileage != null">total_mileage,</if>
             <if test="taskMileage != null">task_mileage,</if>
             <if test="nonTaskMileage != null">non_task_mileage,</if>
-            <if test="taskMileageRatio != null">task_mileage_ratio,</if>
-            <if test="gpsCount != null">gps_count,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateTime != null">update_time,</if>
+            <if test="taskRatio != null">task_ratio,</if>
+            <if test="gpsPointCount != null">gps_point_count,</if>
+            <if test="taskCount != null">task_count,</if>
+            create_time
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="vehicleId != null">#{vehicleId},</if>
-            <if test="statsDate != null">#{statsDate},</if>
+            <if test="vehicleNo != null">#{vehicleNo},</if>
+            <if test="statDate != null">#{statDate},</if>
             <if test="totalMileage != null">#{totalMileage},</if>
             <if test="taskMileage != null">#{taskMileage},</if>
             <if test="nonTaskMileage != null">#{nonTaskMileage},</if>
-            <if test="taskMileageRatio != null">#{taskMileageRatio},</if>
-            <if test="gpsCount != null">#{gpsCount},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateTime != null">#{updateTime},</if>
+            <if test="taskRatio != null">#{taskRatio},</if>
+            <if test="gpsPointCount != null">#{gpsPointCount},</if>
+            <if test="taskCount != null">#{taskCount},</if>
+            NOW()
          </trim>
     </insert>
 
     <update id="updateVehicleMileageStats" parameterType="VehicleMileageStats">
-        update vehicle_mileage_stats
+        update tb_vehicle_mileage_stats
         <trim prefix="SET" suffixOverrides=",">
-            <if test="vehicleId != null">vehicle_id = #{vehicleId},</if>
-            <if test="statsDate != null">stats_date = #{statsDate},</if>
+            <if test="vehicleNo != null">vehicle_no = #{vehicleNo},</if>
             <if test="totalMileage != null">total_mileage = #{totalMileage},</if>
             <if test="taskMileage != null">task_mileage = #{taskMileage},</if>
             <if test="nonTaskMileage != null">non_task_mileage = #{nonTaskMileage},</if>
-            <if test="taskMileageRatio != null">task_mileage_ratio = #{taskMileageRatio},</if>
-            <if test="gpsCount != null">gps_count = #{gpsCount},</if>
-            <if test="createTime != null">create_time = #{createTime},</if>
-            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <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>
+            update_time = NOW()
         </trim>
         where stats_id = #{statsId}
     </update>
 
-    <delete id="deleteVehicleMileageStatsByStatsId" parameterType="Long">
-        delete from vehicle_mileage_stats where stats_id = #{statsId}
+    <delete id="deleteVehicleMileageStatsById" parameterType="Long">
+        delete from tb_vehicle_mileage_stats where stats_id = #{statsId}
     </delete>
 
-    <delete id="deleteVehicleMileageStatsByStatsIds" parameterType="String">
-        delete from vehicle_mileage_stats where stats_id in 
+    <delete id="deleteVehicleMileageStatsByIds" parameterType="Long">
+        delete from tb_vehicle_mileage_stats where stats_id in 
         <foreach item="statsId" collection="array" open="(" separator="," close=")">
             #{statsId}
         </foreach>

--
Gitblit v1.9.1