随笔- 100  文章- 0  评论- 3  阅读- 30413 

  上代码:

复制代码
public void zeroPowerData() throws IOException, ExecutionException, InterruptedException {
        // 读取所有的电力数据
        List<DataTypeDTO> dataTypeList = stoneDataTypeDao.getDataTypeList();
        if (CollectionUtils.isEmpty(dataTypeList)) {
            return;
        }
        dataTypeList.removeIf(data -> !Objects.equals(DataCategoryEnums.POWER.getCode(), data.getFacilityCategory()));

        for (DataTypeDTO dataTypeDTO : dataTypeList) {
            log.info("执行dataTypeDTO={}", JSON.toJSONString(dataTypeDTO));
            String startTime = "2023-07-12 00:00:00";
            LocalDateTime start = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            LocalDateTime now = LocalDateTime.now();
            while (start.isBefore(now)) {
                // 查询所有的metric
                Long begin = start.toEpochSecond(ZoneOffset.of("+8"));
                Long end = start.plusDays(1).toEpochSecond(ZoneOffset.of("+8"));
                Query query = Query.begin(begin)
                        .end(end)
                        .sub(SubQuery.metric(dataTypeDTO.getProcessNo() + "_" + dataTypeDTO.getTitleNo())
                                .aggregator(SubQuery.Aggregator.NONE)
                                .tag("customer_id", dataTypeDTO.getCustomerId().toString())
                                .rollupUsage(SubQuery.RollupUsage.ROLLUP_NOFALLBACK.getUsage())
                                .build())
                        .build();
                List<QueryResult> QueryResultList = originalClient.query(query);
                if (!CollectionUtils.isEmpty(QueryResultList)) {
                    QueryResult queryResult = QueryResultList.get(0);
                    LinkedHashMap<Long, Number> dps = queryResult.getDps();

                    // 将其置为0
                    dps.forEach((timeStamp, value) -> {
                        Point point = Point.metric(dataTypeDTO.getProcessNo() + "_" + dataTypeDTO.getTitleNo())
                                .tag("customer_id", String.valueOf(dataTypeDTO.getCustomerId()))
                                .value(timeStamp, 0)
                                .build();
                        try {
                            log.info("将要覆盖的Point===>{}", JSON.toJSONString(point));
                            originalClient.putSync(point);
                        } catch (Exception e) {
                            log.error("原料数据入库异常", e);
                        }
                    });
                }

                start = start.plusDays(1);
            }

        }


    }
复制代码

 

 posted on   曹军  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2022-09-15 关于Bio与Nio
点击右上角即可分享
微信分享提示