Browse Source

main设备和sub设备,图表数据选择

jwy
review512jwy@163.com 4 days ago
parent
commit
df7c73dc7f
  1. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/LineDataSearchParams.java
  2. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/BaseData.java
  3. 9
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java
  4. 12
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java
  5. 13
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/LineDataSearchParams.java

@ -6,6 +6,9 @@ import lombok.Data;
@Data
public class LineDataSearchParams {
@Schema(description = "设备源,1-main,2-sub", example = "2")
private Integer deviceSource;
@Schema(description = "device ID")
private String deviceId;

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/BaseData.java

@ -65,4 +65,7 @@ public class BaseData {
@Schema(description = "数据小数位数", example = "2")
private Integer dashboardDecimalPlaces;
@Schema(description = "设备源,1-main,2-sub", example = "2")
private Integer deviceSource;
}

9
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java

@ -168,8 +168,10 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
//*** 填充今天/昨天/去年值 **//
// 今天值,要先看备用S设备,有S的话优先用这个
boolean subIsNewer = todayDeviceIds.contains(sDeviceId);
data.setDeviceSource(subIsNewer ? 2 : 1);
data.setCumulativeValue(CommonUtil.formatDecimal(
getIncrement(todayDeviceIds.contains(sDeviceId) ? todayMap.get(sDeviceId) : todayMap.get(deviceId), DeviceIncrement::getTodayIncrement),
getIncrement(subIsNewer ? todayMap.get(sDeviceId) : todayMap.get(deviceId), DeviceIncrement::getTodayIncrement),
data.getDashboardDecimalPlaces())
);
data.setYesterdayValue(CommonUtil.formatDecimal(getIncrement(yesterdayMap.get(deviceId), DeviceIncrement::getYesterdayIncrement), data.getDashboardDecimalPlaces()));
@ -197,6 +199,11 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
@Override
public SimpleDataResponse<List<LineData>> getLineData(Integer searchType, LineDataSearchParams lineDataSearchParams,
Long companyId, Long userId, Integer languageType) {
if (2 == lineDataSearchParams.getDeviceSource()) {
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(List.of(lineDataSearchParams.getDeviceId()));
lineDataSearchParams.setDeviceId(deviceId85ToSMap.get(lineDataSearchParams.getDeviceId()));
}
if (null == searchType) {
searchType = 2;//默认全部数据
}

12
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java

@ -159,7 +159,9 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper));
data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper));
if(sNewerDeviceIds.contains(sDeviceId)) {
boolean subIsNewer = sNewerDeviceIds.contains(sDeviceId);
data.setDeviceSource(subIsNewer ? 2 : 1);
if(subIsNewer) {
data.setRunningStatus(commonOpt.mapLastValue(objectMapper, sDeviceInfo.get(sDeviceId).getDataMapping(), realtimeSMap.get(sDeviceId)));
} else {
data.setRunningStatus(commonOpt.mapLastValue(objectMapper, data.getDataMapping(), realtime85Map.get(deviceId)));
@ -168,7 +170,7 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
// 判断设备是否在 favorited_device 表中
data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);
//停止、运行状态
if(sNewerDeviceIds.contains(sDeviceId)) {
if(subIsNewer) {
data.setStopRun(commonOpt.judgeStopRun(objectMapper, realtimeSMap.get(sDeviceId)));
} else {
data.setStopRun(commonOpt.judgeStopRun(objectMapper, realtime85Map.get(deviceId)));
@ -190,6 +192,12 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
@Override
public SimpleDataResponse<List<LineData>> getLineData(Integer searchType, LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType) {
if (2 == lineDataSearchParams.getDeviceSource()) {
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(List.of(lineDataSearchParams.getDeviceId()));
lineDataSearchParams.setDeviceId(deviceId85ToSMap.get(lineDataSearchParams.getDeviceId()));
}
List<LineData> lineDataList = new ArrayList<>();
LineData lineData = new LineData();

13
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java

@ -189,10 +189,9 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
}
// 获取所有 MeasurementValue 并用逗号连接(不需要日期过滤)
// 20260109需求,对测量值,要先看备用S设备,有S的话优先用这个,最大值最小值不需要
List<DashboardRealtimeMeasure> source =
(sortedRealtimeS != null && !sortedRealtimeS.isEmpty())
? sortedRealtimeS
: sortedRealtime;
boolean subIsNewer = (sortedRealtimeS != null && !sortedRealtimeS.isEmpty());
data.setDeviceSource(subIsNewer ? 2 : 1);
List<DashboardRealtimeMeasure> source = subIsNewer ? sortedRealtimeS : sortedRealtime;
String measurementValues = source.stream()
.map(DashboardRealtimeMeasure::getUploadValue) // 提取每个 UploadValue
.filter(StringUtils::isNotBlank) // 过滤空值
@ -235,6 +234,12 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
@Override
public SimpleDataResponse<List<LineData>> getLineData(Integer searchType, LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType) {
if (2 == lineDataSearchParams.getDeviceSource()) {
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(List.of(lineDataSearchParams.getDeviceId()));
lineDataSearchParams.setDeviceId(deviceId85ToSMap.get(lineDataSearchParams.getDeviceId()));
}
if (null == searchType) {
searchType = 2;//默认全部数据
}

Loading…
Cancel
Save