时间轴获取值, 并且字段为动态的

业务场景:

  1. 动态字段显示通过字典表, 通过redisService 获取值
  2. 获取的值每5天推一条数据

实现步骤

1.从数据库中获取起始时间到结束时间的数据

SELECT info.point,
               info.data_time,
               mo.type,
               mo.`value`
        FROM agricultural_monitor_info info
                 LEFT JOIN agricultural_monitor mo ON info.id = mo.monitor_id
        WHERE info.point = #{point}
          AND info.data_time >= #{startTime}
          AND info.data_time <= #{endTime}
        ORDER BY info.data_time.

2. 对获取的数据进行遍历, 添加到新的数组里面(时间数组)

	for (AgrMonitorHistoryResp agr : agrMonitorHistory) {
            if (!stringList.contains(agr.getDataTime())) {
                stringList.add(agr.getDataTime());
            }
        }

3. 创建一个List<Map<String, Object>> list, 对时间数组进行遍历

	for (String time : stringList) {
            Map<String, Object> map = new HashMap<>();
            map.put("dateTime", time);
            for (AgrMonitorHistoryResp resp : agrMonitorHistory) {
                if (time.equals(resp.getDataTime())) {
                    map.put(resp.getType(), resp.getValue());
                }
            }
            list.add(map);
        }

不知道大家有什么好的方法, 热恋欢迎分享!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值