From 82e98b24e0871366a5fc8bddab07bbabfc321eb3 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期一, 17 三月 2025 14:54:29 +0800 Subject: [PATCH] 构造样本优化 --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java | 50 +++++++++++++++++--------------------------------- 1 files changed, 17 insertions(+), 33 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java index c01e92a..6d12d13 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java @@ -61,48 +61,18 @@ switch (ModelParamType.getEumByCode(paramType)) { case NORMALITEM: case MERGEITEM: - // 预测值 - oneMin = granularity * 1000L; // 设置时间偏移量 - if (granularity >= 24*60*60) { - // 如果时间粒度大于等于一天,因为时区问题,特殊处理,否则时间为8:00,而非0:00 - start = start - ((start+8*60*60*1000) % oneMin); - end = end - ((end+8*60*60*1000) % oneMin); - } else { - start = start - (start % oneMin); - end = end - (end % oneMin); - } - mins = ((end - start) / oneMin); + mins = calMins(start, end, granularity); break; case DATAPOINT: case PLAN: - // 测点值 - oneMin = 1000L * granularity; // 设置时间偏移量 - if (granularity >= 24*60*60) { - // 如果时间粒度大于等于一天,因为时区问题,特殊处理,否则时间为8:00,而非0:00 - start = start - ((start+8*60*60*1000) % oneMin); - end = end - ((end+8*60*60*1000) % oneMin); - } else { - start = start - (start % oneMin); - end = end - (end % oneMin); - } - mins = ((end - start) / oneMin); + mins = calMins(start, end, granularity); break; case IND: case IND_ASCII: - // 测点值 - oneMin = 1000L * granularity; // 设置时间偏移量 - if (granularity >= 24*60*60) { - // 如果时间粒度大于等于一天,因为时区问题,特殊处理,否则时间为8:00,而非0:00 - start = start - ((start+8*60*60*1000) % oneMin); - end = end - ((end+8*60*60*1000) % oneMin); - } else { - start = start - (start % oneMin); - end = end - (end % oneMin); - } - mins = ((end - start) / oneMin) + 1; + mins = calMins(start, end, granularity) + 1; break; default: break; @@ -142,6 +112,20 @@ return completionDataEntityList; } + private long calMins(long start, long end, Integer granularity) { + long oneMin = granularity * 1000L; + // 设置时间偏移量 + if (granularity >= 24 * 60 * 60) { + // 如果时间粒度大于等于一天,因为时区问题,特殊处理,否则时间为8:00,而非0:00 + start = start - ((start + 8 * 60 * 60 * 1000) % oneMin); + end = end - ((end + 8 * 60 * 60 * 1000) % oneMin); + } else { + start = start - (start % oneMin); + end = end - (end % oneMin); + } + return ((end - start) / oneMin); + } + /** * getFirstValue * -- Gitblit v1.9.3