From 6205c22a959fbb3b69735f34af8d3316c4082a5d Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期四, 27 二月 2025 16:00:28 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java | 53 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 33 insertions(+), 20 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 5f5befc..c01e92a 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 @@ -63,8 +63,15 @@ case MERGEITEM: // 预测值 oneMin = granularity * 1000L; - start = start - (start % oneMin); - end = end - (end % oneMin); + // 设置时间偏移量 + 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); break; case DATAPOINT: @@ -72,33 +79,39 @@ // 测点值 oneMin = 1000L * granularity; // 设置时间偏移量 - start = start - (start % oneMin) + oneMin; - end = end - (end % oneMin) + oneMin; + 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); break; case IND: - // 指标数据 - oneMin = 24 * 60 * 60 * 1000; - Calendar calendar2 = Calendar.getInstance(); - calendar2.setTime(startTime); - calendar2.set(Calendar.HOUR_OF_DAY, 0); - calendar2.set(Calendar.MINUTE, 0); - calendar2.set(Calendar.SECOND, 0); - start = calendar2.getTime().getTime(); - - calendar2.setTime(endTime); - calendar2.set(Calendar.HOUR_OF_DAY, 0); - calendar2.set(Calendar.MINUTE, 0); - calendar2.set(Calendar.SECOND, 0); - end = calendar2.getTime().getTime(); - mins = ((end - start) / oneMin); + 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; break; default: break; } Map<Long, Double> sourceDataMap = new HashMap<>(dataEntityList.size()); for (DataValueVO dataEntity : dataEntityList) { - sourceDataMap.put(dataEntity.getDataTime().getTime(), dataEntity.getDataValue()); + if (null != dataEntity.getDataTime()) { + sourceDataMap.put(dataEntity.getDataTime().getTime(), dataEntity.getDataValue()); + } } //找出缺少项 -- Gitblit v1.9.3