gps接口修改
This commit is contained in:
@ -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));
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user