gps接口修改

This commit is contained in:
2025-10-24 19:40:54 +08:00
parent 1c601bd68e
commit 218ec5ea95
2 changed files with 11 additions and 27 deletions

View File

@ -61,7 +61,7 @@ public class GpsEquipmentSonController extends BaseController {
/** /**
* 查询GPS设备定位日期信息列表 * 查询GPS设备定位日期信息列表
*/ */
@SaCheckPermission("gps:equipmentSon:getRlList") // @SaCheckPermission("gps:equipmentSon:getRlList")
@GetMapping("/getRlList") @GetMapping("/getRlList")
public R<List<GpsStatusVo>> getRlList(GpsEquipmentSonBo bo) { public R<List<GpsStatusVo>> getRlList(GpsEquipmentSonBo bo) {
return R.ok(gpsEquipmentSonService.getRlList(bo)); return R.ok(gpsEquipmentSonService.getRlList(bo));

View File

@ -81,31 +81,15 @@ public interface GpsEquipmentSonMapper extends BaseMapperPlus<GpsEquipmentSon, G
" rn = 1;") " rn = 1;")
List<GpsEquipmentSonVo> getUserListByProjectId(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now); List<GpsEquipmentSonVo> getUserListByProjectId(@Param("projectId") Long projectId, @Param("startTime") LocalDateTime startOfDay, @Param("endTime") LocalDateTime now);
@Select("WITH RECURSIVE date_range AS (\n" + @Select("SELECT\n" +
" -- 1. 初始化开始日期取startTime的“年月日”部分忽略时分秒\n" + " DATE(create_time) AS riqi,\n" +
" SELECT DATE(#{bo.startTime}) AS stat_date\n" + " COUNT(id) AS count \n" +
" UNION ALL\n" + "FROM\n" +
" -- 2. 递归生成后续日期直到不超过endTime的“年月日”\n" + " gps_equipment_son\n" +
" SELECT DATE_ADD(stat_date, INTERVAL 1 DAY)\n" +
" FROM date_range\n" +
" WHERE stat_date < DATE(#{bo.endTime})\n" +
")\n" +
"\n" +
"SELECT \n" +
" dr.stat_date AS riqi, -- 统计日期格式YYYY-MM-DD\n" +
" COUNT(ges.id) AS count -- 当天符合条件的记录数\n" +
"FROM date_range dr\n" +
"LEFT JOIN (\n" +
" SELECT \n" +
" DATE(create_time) AS data_date, -- 提取创建时间的“年月日”\n" +
" id -- 仅需主键用于计数(减少数据传输)\n" +
" FROM gps_equipment_son\n" +
"WHERE\n" + "WHERE\n" +
" project_id = #{bo.projectId} -- 匹配项目ID\n" + " project_id = #{bo.projectId}\n" +
" AND client_id =#{bo.clientId} -- 客户端ID为空\n" + " AND client_id = #{bo.clientId}\n" +
" AND create_time BETWEEN #{bo.startTime} AND #{bo.endTime} -- 时间范围\n" + " AND create_time BETWEEN #{bo.startTime} AND #{bo.endTime}\n" +
") ges ON dr.stat_date = ges.data_date -- 按日期关联\n" + " GROUP BY DATE(create_time)")
"GROUP BY dr.stat_date -- 按统计日期分组\n" +
"ORDER BY dr.stat_date; -- 按日期升序排列")
List<GpsStatusVo> getRlList(@Param("bo") GpsEquipmentSonBo bo); List<GpsStatusVo> getRlList(@Param("bo") GpsEquipmentSonBo bo);
} }