本文引用的文件
本文件面向后端接口使用者、前端开发者和数据分析人员,说明轨迹数据接口的用途、参数、返回结构、分页方式和常见排错方法。覆盖以下六类轨迹能力:
这些接口主要服务于人员关联分析和时空调查:通过“谁在什么时间出现在哪里”“谁和谁在一起”两条线索,串联人员、通话、交易和治理树等业务对象,形成可追溯的时空证据链。
com.zsjz.ai.module.track.controller 包下。POST,请求体为 JSON。Result<T> 中。Page<T> 类型;非分页接口返回列表、映射或具体 DTO。查询条件大多继承自通用基类 Query,因此分页、排序、日期范围等字段可复用。
graph TB
Client["客户端"] --> Gateway["网关或业务入口"]
Gateway --> TogetherTravel["同行控制器<br/>/track/togetherTravel"]
Gateway --> TogetherLive["同住控制器<br/>/track/togetherLive"]
Gateway --> Meet["见面控制器<br/>/track/meet"]
Gateway --> EnLocal["本地活动控制器<br/>/track/enLocal"]
Gateway --> CellTower["基站控制器<br/>/track/cellTower"]
Gateway --> Express["快递控制器<br/>/expressInfo"]
图表来源
| 控制器 | 基础路径 | 主要职责 | 是否分页 |
|---|---|---|---|
| 同行轨迹控制器 | /track/togetherTravel |
统计同行旅行时间线、二次记录、三次同行 | 否 |
| 同住轨迹控制器 | /track/togetherLive |
首次同住统计、二次同住详情、旅馆住宿详情、同住服务详情 | 是(详情接口) |
| 见面轨迹控制器 | /track/meet |
首次碰面汇总、二次碰面明细 | 否 |
| 本地活动轨迹控制器 | /track/enLocal |
首次本地活动分组统计、二次明细 | 是(二次明细) |
| 基站轨迹控制器 | /track/cellTower |
首次基站轨迹统计、二次基站轨迹统计 | 是 |
| 快递信息控制器 | /expressInfo |
一级聚合统计、二级明细统计 | 是 |
章节来源
所有轨迹查询条件大多继承 Query,因此以下字段通常可用:
| 字段 | 类型 | 含义 | 默认值或说明 |
|---|---|---|---|
page |
long |
当前页码 | 默认 1 |
limit |
long |
每页条数 | 默认 20 |
startDate |
LocalDate |
开始日期 | 用于按日期范围过滤 |
endDate |
LocalDate |
结束日期 | 用于按日期范围过滤 |
orderKey |
String |
排序字段 | 仅写入,不参与序列化 |
sort |
String |
排序方式 | 默认升序 |
tableName |
String |
表名 | 不参与 JSON 序列化 |
personName |
String |
本方姓名 | 常用于以被调查对象为中心筛选 |
personNames |
List<String> |
本方姓名列表 | 多人员筛选 |
keyword |
String |
关键词搜索 | 仅写入,不参与序列化 |
章节来源
POST/track/togetherTravel/statTogetherTravelTrackTogetherTravelQueryResult<List<TravelTimelineDTO>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
personCertNos |
List<String> |
否 | 多人身份证号集合 |
personCertNo |
String |
否 | 单人身份证号 |
ids |
List<String> |
否 | 数据 ID 列表 |
type |
String |
否 | 同行类型标识 |
id |
String |
否 | 单条数据 ID |
| 字段 | 类型 | 含义 |
|---|---|---|
personName |
String |
被调查对象姓名 |
companionName |
String |
同行人姓名 |
count |
Integer |
同行次数 |
idList |
List<String> |
关联详细记录的 ID 列表 |
idList 进一步拉取同行明细,用于时间线可视化。章节来源
POST/track/togetherTravel/statSecondTogetherTravelTrackTogetherTravelQueryResult<List<TravelRecordDTO>>| 字段 | 类型 | 含义 |
|---|---|---|
tripDate |
String |
出行日期 |
data |
List<TravelDataDTO> |
该日期的出行数据列表 |
章节来源
POST/track/togetherTravel/statThreeTogetherTravelTrackTogetherTravelQueryResult<Object>该接口返回泛型对象,主要用于更复杂的三人或多人员同行分析。调用方应根据实际业务上下文解析返回结构。
章节来源
POST/track/togetherLive/statFirstTrackTogetherLiveTrackTogetherLiveQueryResult<List<TrackPersonTogetherLiveDTO>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
search |
List<String> |
否 | 调查对象姓名或身份证号模糊匹配 |
ids |
List<String> |
否 | 数据 ID 列表 |
togHotel |
String |
否 | 同住酒店名称 |
outCount |
Integer |
否 | 同住次数阈值 |
outCountSymbol |
SymbolEnum |
否 | 比较符号:大于等于或小于等于 |
timeGap |
Integer |
否 | 同住时间窗口,单位分钟 |
personName |
String |
否 | 被调查对象名称 |
liveWithName |
String |
否 | 同住人名称 |
liveWithCertNo |
String |
否 | 同住人身份证号 |
suspectedTogether |
Integer |
否 | 疑似同住标记 |
hotelName |
String |
否 | 旅店名称精确过滤 |
hasTogether |
Integer |
否 | 同住判定标记 |
外层为被调查对象维度的统计结果,内部包含同住人列表。常用字段包括:
personCertNopersonNamephotographlist:TogetherLiveDTO 列表TogetherLiveDTO 关键字段:
personNamepersonCertNoliveWithNameliveWithCertNoliveCounthotelNamehasTogetherinDateTime其中 hasTogether 表示确定同住或疑似同住状态。
章节来源
POST/track/togetherLive/statSecondTrackTogetherLiveTrackTogetherLiveQueryResult<Page<TogetherLiveDTO>>返回分页的同住关系视图,适合在前端表格中展示并支持翻页。
章节来源
POST/track/togetherLive/hotelStayInfoDetailTogetherLiveDetailQueryResult<Page<HotelStayInfo>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
hotelName |
String |
否 | 酒店名称 |
personName |
String |
否 | 被调查对象名称 |
personCertNo |
String |
否 | 被调查对象身份证号 |
liveWithName |
String |
否 | 同住人名称 |
liveWithCertNo |
String |
否 | 同住人身份证号 |
search |
String |
否 | 旅店名称模糊查询 |
inStartTime |
LocalDateTime |
否 | 入住开始时间 |
inEndTime |
LocalDateTime |
否 | 入住结束时间 |
outStartTime |
LocalDateTime |
否 | 退房开始时间 |
outEndTime |
LocalDateTime |
否 | 退房结束时间 |
timeGap |
Integer |
否 | 疑似同住时间窗口,单位小时 |
hasTogether |
Integer |
否 | 疑似同住标记 |
HotelStayInfo 关键字段:
personNamepersonCertNopersonCertNamegenderaddressCityaddressDetailhotelNamehotelAddressroomNoinDateTimeoutDateTime章节来源
POST/track/togetherLive/togetherLiveInfoDetailTogetherLiveDetailQueryResult<Page<TogetherLiveInfo>>TogetherLiveInfo 关键字段:
queryNametogetherCertNoqueryCertTypequeryGenderqueryAgequeryEthnicityqueryOriginhotelNameroomNoinDateTimeoutDateTimecoTypestayCountremarkqueryCertNo章节来源
POST/track/meet/statFirstTrackMeetTrackMeetQueryResult<List<TrackMeetSummeryDTO>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
timeInterval |
Integer |
否 | 碰面时间窗口,单位分钟 |
lac |
String |
否 | 基站区域 ID |
cid |
String |
否 | 基站小区 ID |
persona |
String |
否 | 人员 A |
personb |
String |
否 | 人员 B |
| 字段 | 类型 | 含义 |
|---|---|---|
persona |
String |
人员 A |
personb |
String |
人员 B |
meetCount |
Integer |
碰面次数 |
meets |
List<TrackMeetDTO> |
碰面明细列表 |
章节来源
POST/track/meet/statSecondTrackMeetTrackMeetQueryResult<List<TrackMeetDTO>>| 字段 | 类型 | 含义 |
|---|---|---|
persona |
String |
人员 A |
personb |
String |
人员 B |
lac |
String |
基站区域 ID |
cid |
String |
基站小区 ID |
stationName |
String |
基站名称 |
meetCount |
Integer |
碰面次数 |
meetDateTime |
LocalDateTime |
碰面时间 |
meetId |
String |
碰面记录 ID |
gapMinutes |
String |
间隔分钟数 |
章节来源
POST/track/enLocal/statFirstTrackEnLocalTrackEnLocalQueryResult<Map<String, List<TrackEnLocalDTO>>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
dayNightTotal |
Integer |
否 | 昼夜活动总次数阈值 |
morningTime |
Integer |
否 | 白天时段阈值 |
nightTime |
Integer |
否 | 夜晚时段阈值 |
nightTimeStr |
String |
否 | 夜晚时段字符串表达 |
morningTimeStr |
String |
否 | 白天时段字符串表达 |
personRegionId |
String |
否 | 人员区域标识 |
personCellId |
String |
否 | 人员小区标识 |
personStationName |
String |
否 | 基站名称 |
nightTempFlag |
Integer |
否 | 夜间临时标志 |
返回以人员姓名为键的映射,值为该人员在本地活动的轨迹列表。轨迹项包含:
personNamepersonRegionIdpersonCellIdpersonStationNamedayNightTotal章节来源
POST/track/enLocal/statSecondTrackEnLocalTrackEnLocalQueryResult<Page<CallRecord>>该接口返回分页的通话记录实体,适用于将本地活动轨迹与通话行为联合分析。
章节来源
POST/track/cellTower/statFirstTrackCellTowerTrackCellTowerQueryResult<Page<TrackCellTowerDTO>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
personStationName |
String |
否 | 基站名称模糊匹配 |
personRegionId |
String |
否 | LAC |
personCellId |
String |
否 | CID |
otherPhone |
String |
否 | 对方号码模糊匹配 |
| 字段 | 类型 | 含义 |
|---|---|---|
personStationName |
String |
基站名称 |
personStationLongitude |
String |
基站经度 |
personStationLatitude |
String |
基站纬度 |
personName |
String |
通信人姓名 |
callCount |
Integer |
通信次数 |
personRegionId |
String |
LAC |
personCellId |
String |
CID |
startDate |
LocalDate |
最早通信日期 |
endDate |
LocalDate |
最晚通信日期 |
章节来源
POST/track/cellTower/statSecondTrackCellTowerTrackCellTowerQueryResult<Page<TrackCellTowerSecondDTO>>| 字段 | 类型 | 含义 |
|---|---|---|
personStationName |
String |
基站名称 |
personName |
String |
通信人姓名 |
callCount |
Integer |
通信次数 |
personPhone |
String |
本人电话 |
otherPhone |
String |
对方电话 |
otherName |
String |
对方姓名 |
章节来源
POST/expressInfo/statFirstExpressInfoExpressInfoQueryResult<Page<ExpressDTO>>| 字段 | 类型 | 必填 | 含义 |
|---|---|---|---|
ids |
List<String> |
否 | 快递 ID 列表 |
location |
String |
否 | 地理位置模糊匹配 |
recipientName |
String |
否 | 收件人姓名模糊匹配 |
senderName |
String |
否 | 寄件人姓名模糊匹配 |
departurePlace |
String |
否 | 出发地模糊匹配 |
destinationPlace |
String |
否 | 目的地模糊匹配 |
personPhones |
List<String> |
否 | 人员电话号码列表 |
| 字段 | 类型 | 含义 |
|---|---|---|
ids |
Set<String> |
相关快递 ID 集合 |
sendIds |
Set<String> |
发件 ID 集合 |
rcpId |
Set<String> |
收件 ID 集合 |
personName |
String |
被调查对象姓名 |
location |
String |
快递收发地点 |
recipientCount |
Integer |
收快递次数 |
senderCount |
Integer |
发快递次数 |
注意:recipientCount 和 senderCount 会根据对应 ID 集合大小计算,空集合时返回 0。
章节来源
POST/expressInfo/statSecondExpressInfoExpressInfoQueryResult<Page<ExpressInfo>>| 字段 | 类型 | 含义 |
|---|---|---|
recipientName |
String |
收件人姓名 |
recipientCurrentAddress |
String |
收件人现住址 |
recipientPhone |
String |
收件人联系电话 |
senderName |
String |
寄件人姓名 |
senderPhone |
String |
寄件人电话 |
sendDate |
LocalDateTime |
寄件日期 |
senderCurrentAddress |
String |
寄件人现住址 |
waybillNumber |
String |
运单号 |
departurePlace |
String |
始发地名称 |
destinationPlace |
String |
目的地名称 |
recipientCompany |
String |
收件单位名称 |
expressCompanyCode |
String |
快递公司编号 |
goodsName |
String |
物品名称 |
章节来源
轨迹数据以人员为核心维度。多数查询都支持通过姓名、身份证号、电话号码或基站定位对象进行筛选。典型关联路径:
时空调查中,先通过轨迹锁定“关键人物+关键地点+关键时间”,再沿治理树向上溯源组织关系、向下追踪执行节点。
graph TB
Person["人员"] --> TrackTogether["同行"]
Person --> TrackTogetherLive["同住"]
Person --> TrackMeet["见面"]
Person --> TrackEnLocal["本地活动"]
Person --> TrackCellTower["基站"]
Person --> Express["快递"]
TrackCellTower --> Call["通话"]
Express --> Transaction["交易"]
TrackTogetherLive --> GovernanceTree["治理树"]
TrackMeet --> GovernanceTree
TrackEnLocal --> GovernanceTree
TrackCellTower --> GovernanceTree
Express --> GovernanceTree
[本图为概念关系图,不直接映射具体源码文件]
POST /track/togetherTravel/statTogetherTravelpersonCertNo 或 personCertNos 指定人员。type 或 id 缩小数据来源。POST /track/cellTower/statFirstTrackCellTowerpersonName 或 personNames 指定人员。startDate、endDate 限定日期范围。personStationName、personRegionId、personCellId 限定基站。POST /track/togetherLive/hotelStayInfoDetailpersonName、personCertNo 指定被调查对象。liveWithName、liveWithCertNo 指定同住人。hotelName、inStartTime、inEndTime 限定酒店和时间。POST /track/meet/statSecondTrackMeetpersona、personb 指定两人。lac、cid 指定基站区域。timeInterval 设置碰面时间窗口。POST /expressInfo/statSecondExpressInforecipientName、senderName、personPhones 指定人员。location、departurePlace、destinationPlace 辅助定位地址。章节来源
所有接口返回统一结构 Result<T>,包含以下字段:
| 字段 | 类型 | 含义 |
|---|---|---|
code |
int |
状态码 |
message |
String |
状态描述 |
data |
T |
业务数据 |
常用状态码:
200:成功。400:未知失败或明确失败。当接口正常完成时,code 通常为 200,data 为业务数据;异常情况应检查 code 和 message。
flowchart TD
Start["发起轨迹请求"] --> Send["发送 POST 请求"]
Send --> Response["接收 Result 响应"]
Response --> CheckCode{"code 是否为 200"}
CheckCode -->|是| UseData["读取 data 字段"]
CheckCode -->|否| HandleError["根据 message 处理错误"]
UseData --> End["完成"]
HandleError --> End
图表来源
章节来源
现象:接口返回空列表或分页结果为空。
排查步骤:
personName、personCertNo、personPhones 或 ids。page、limit 是否过大导致无数据。hotelName、location、personStationName 是否过于严格。涉及接口:
现象:基站轨迹返回的经纬度为空、不可用或地图显示异常。
排查步骤:
personStationLongitude、personStationLatitude。personRegionId、personCellId 是否正确。涉及接口:
章节来源
现象:时间过滤无效、返回数据不在预期范围内,或出现跨年、跨月异常。
排查步骤:
startDate、endDate 是否传入,且格式为日期类型。inStartTime、inEndTime、outStartTime、outEndTime。timeGap、timeInterval 的单位:同住详情为小时,见面为分钟。morningTime、nightTime、nightTempFlag 是否符合业务语义。涉及接口:
章节来源
现象:同住统计中出现大量疑似同住,或与旅馆住宿明细不一致。
排查步骤:
hasTogether、suspectedTogether 是否被设置为疑似同住。timeGap 是否过小或过大,影响疑似同住判定。statFirstTrackTogetherLive 与 hotelStayInfoDetail、togetherLiveInfoDetail 的结果。章节来源
limit,避免单次返回过多数据。[本节为通用建议,不直接分析具体源码文件]
轨迹数据接口围绕“人—时间—地点—关系”构建,既支持高层聚合统计,也支持明细数据查询。通过同行、同住、见面、本地活动、基站、快递六类轨迹,系统能够支撑人员关联分析与时空调查,并与通话、交易、治理树形成互补证据链。使用时应重点关注人员标识、时间范围、基站定位和分页控制,并在数据缺失、坐标无效、时间异常时按排查清单逐步定位问题。