yeg
5 天以前 99935242ecccd94e76978e2b71cbc46b87d31dc6
battery-business/src/main/java/com/battery/business/mapper/TDeviceIngestRecordMapper.java
@@ -19,6 +19,13 @@
    /** 心跳行按来源唯一,用 upsert 覆盖接收时间:它承载"取数程序还在推"这一条事实。 */
    int upsertHeartbeat(TDeviceIngestRecord record);
    /**
     * 拓扑行是**声明**而不是设备事实,按来源通道唯一并刷新声明内容:
     * 重复上报补上来源自己的通道号时不追加新行,也不需要把已声明过的通道清掉重来。
     * 设备数据行(SAMPLE)仍然只追加、不改写。
     */
    int upsertTopology(TDeviceIngestRecord record);
    /** 返回该来源行已落库的内容摘要(小写十六进制);没有这一行时为空。 */
    String selectIngestRecordHashByKey(@Param("adapterCode") String adapterCode,
            @Param("payloadKind") String payloadKind, @Param("recordKey") String recordKey);
@@ -34,6 +41,16 @@
            @Param("devtype") int devtype, @Param("devid") int devid, @Param("subdevid") int subdevid,
            @Param("chlid") int chlid);
    /**
     * 某个来源库(厂商侧一次测试)在该通道上的全部采样行,按 (设备时间, 协议序号) 升序。
     *
     * <p>推式来源没有设备侧工步层,工步与循环由这些采样行按「来源库 + 循环号 + 工步号」分段推导
     * (ADR-0067);读取范围限于一个来源库,也就是一次厂商测试,不随落地表无限增长。
     */
    List<TDeviceIngestRecord> selectSamplesOfSource(@Param("adapterCode") String adapterCode,
            @Param("devtype") int devtype, @Param("devid") int devid, @Param("subdevid") int subdevid,
            @Param("chlid") int chlid, @Param("sourceRef") String sourceRef);
    /** 严格晚于 (设备时间, 协议序号) 的采样行,按二元组升序;水位为空表示不取数据。 */
    List<TDeviceIngestRecord> selectSamplesSince(@Param("adapterCode") String adapterCode,
            @Param("devtype") int devtype, @Param("devid") int devid, @Param("subdevid") int subdevid,