Browse Source

合并冲突

jwy
review512jwy@163.com 1 month ago
parent
commit
c77a58b174
  1. 46
      dongjian-dashboard-back-common/src/main/java/com/dongjian/dashboard/back/common/Constants.java
  2. 11
      dongjian-dashboard-back-common/src/main/java/com/dongjian/dashboard/back/common/DeviceAttrCode.java
  3. 2
      dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_cn.yml
  4. 2
      dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_en.yml
  5. 2
      dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_jp.yml
  6. 6
      dongjian-dashboard-back-controller/dockerfile
  7. 6
      dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceDataAccumulateController.java
  8. 9
      dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceDataMeasureController.java
  9. 27
      dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceGroupController.java
  10. 13
      dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/OverviewController.java
  11. 120
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DashboardNotificationMapper.java
  12. 32
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DashboardRealtimeMeasureMapper.java
  13. 24
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DeviceInfoMapper.java
  14. 17
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/DashboardNotificationMapperExt.java
  15. 2
      dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/DeviceGroupMapperExt.java
  16. 1
      dongjian-dashboard-back-dao/src/main/resources/mappers/aurora/DashboardRealtimeMeasureMapperExt.xml
  17. 423
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardNotificationMapper.xml
  18. 109
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardRealtimeMeasureMapper.xml
  19. 37
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardRecordAccumulateMapper.xml
  20. 29
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceGroupMapper.xml
  21. 205
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceInfoMapper.xml
  22. 27
      dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceRawdataRealtimeMapper.xml
  23. 17
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DashboardNotificationMapperExt.xml
  24. 36
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceGroupMapperExt.xml
  25. 37
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml
  26. 34
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceRawdataRealtimeMapperExt.xml
  27. 13
      dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml
  28. 5
      dongjian-dashboard-back-dao/src/main/resources/mybatis-generator/generatorConfig.xml
  29. 6
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/data/DataSearchParam.java
  30. 9
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/DeviceSearchParams.java
  31. 6
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/FavoritedDeviceSearchParams.java
  32. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/LineDataSearchParams.java
  33. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/OptDeviceFieldParams.java
  34. 9
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/devicegroup/DeviceGroupSearchParams.java
  35. 9
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/devicegroup/OptDeviceGroupParams.java
  36. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceAccumulateDataDTO.java
  37. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceBaStatusDataDTO.java
  38. 4
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceMeasureDataDTO.java
  39. 370
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardNotification.java
  40. 862
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardNotificationExample.java
  41. 34
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRealtimeMeasure.java
  42. 70
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRealtimeMeasureExample.java
  43. 34
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRecordAccumulate.java
  44. 70
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRecordAccumulateExample.java
  45. 34
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceGroup.java
  46. 60
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceGroupExample.java
  47. 136
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceInfo.java
  48. 190
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceInfoExample.java
  49. 34
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceRawdataRealtime.java
  50. 70
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceRawdataRealtimeExample.java
  51. 28
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/dashboardnotification/DashboardNotificationPageVO.java
  52. 18
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/BaseData.java
  53. 6
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceAccumulateData.java
  54. 11
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java
  55. 6
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceMeasureData.java
  56. 2
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/DeviceVO.java
  57. 6
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/FavoritedDeviceVO.java
  58. 3
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/LineData.java
  59. 11
      dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/devicegroup/DeviceGroupPageVO.java
  60. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceDataAccumulateService.java
  61. 2
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceDataMeasureService.java
  62. 5
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceGroupService.java
  63. 3
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/OverviewService.java
  64. 484
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java
  65. 69
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/LineDataHourAggregator.java
  66. 7
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/CommonServiceImpl.java
  67. 79
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAccumulateServiceImpl.java
  68. 5
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java
  69. 86
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java
  70. 137
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataMeasureServiceImpl.java
  71. 29
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceGroupServiceImpl.java
  72. 15
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceServiceImpl.java
  73. 18
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/FavoritedDeviceServiceImpl.java
  74. 5
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/MonitoringPointCategoryGroupServiceImpl.java
  75. 13
      dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/OverviewServiceImpl.java
  76. 86
      dongjian-dashboard-back-util/src/main/java/com/dongjian/dashboard/back/util/CommonUtil.java
  77. 6
      pom.xml

46
dongjian-dashboard-back-common/src/main/java/com/dongjian/dashboard/back/common/Constants.java

@ -32,21 +32,51 @@ public class Constants {
public static final int CATEGORY_MEASURE = 3;//计测
public static final int CATEGORY_STATUS= 4;//状态
// // 所有设备类型ID的总集合
// public static final List<Integer> ALL_DEVICE_TYPE_IDS = new ArrayList<>();
//
// // 定义分类与设备类型的映射
// public static final Map<Integer, List<Integer>> CATEGORY_DEVICE_TYPE_MAP = new HashMap<>();
//
// //温湿度
// public static final List<Integer> DEVICE_TYPE_TEMPERATURE_HUMIDITY = Arrays.asList(8888882,9999992);
//
// static {
// CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_ALARM, new ArrayList<>(Arrays.asList(46, 110)));
//
// CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_MEASURE, new ArrayList<>(Arrays.asList(47, 111, 121)));
// CATEGORY_DEVICE_TYPE_MAP.get(CATEGORY_MEASURE).addAll(DEVICE_TYPE_TEMPERATURE_HUMIDITY);
//
// CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_ACCUMULATE, new ArrayList<>(Arrays.asList(48, 112, 122)));
//
// CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_STATUS, new ArrayList<>(Arrays.asList(86, 113, 123)));
//
// // 收集所有的设备类型ID
// for (List<Integer> ids : CATEGORY_DEVICE_TYPE_MAP.values()) {
// ALL_DEVICE_TYPE_IDS.addAll(ids);
// }
// }
// 所有设备类型ID的总集合
public static final List<Integer> ALL_DEVICE_TYPE_IDS = new ArrayList<>();
public static final List<Long> ALL_CATEGORY_IDS = new ArrayList<>();
// 定义分类与设备类型的映射
public static final Map<Integer, List<Integer>> CATEGORY_DEVICE_TYPE_MAP = new HashMap<>();
public static final Map<Integer, List<Long>> CATEGORY_MAP = new HashMap<>();
//温湿度
public static final List<Long> DEVICE_TYPE_TEMPERATURE_HUMIDITY = Arrays.asList(8888882L,9999992L);
static {
CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_ALARM, Arrays.asList(46, 110));
CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_MEASURE, Arrays.asList(47, 111, 121));
CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_ACCUMULATE, Arrays.asList(48, 112, 122));
CATEGORY_DEVICE_TYPE_MAP.put(CATEGORY_STATUS, Arrays.asList(86, 113, 123));
CATEGORY_MAP.put(CATEGORY_ALARM, new ArrayList<>(List.of(1001L)));
CATEGORY_MAP.put(CATEGORY_MEASURE, new ArrayList<>(List.of(1003L)));
CATEGORY_MAP.put(CATEGORY_ACCUMULATE, new ArrayList<>(List.of(1002L)));
CATEGORY_MAP.put(CATEGORY_STATUS, new ArrayList<>(List.of(1004L)));
// 收集所有的设备类型ID
for (List<Integer> ids : CATEGORY_DEVICE_TYPE_MAP.values()) {
ALL_DEVICE_TYPE_IDS.addAll(ids);
for (List<Long> ids : CATEGORY_MAP.values()) {
ALL_CATEGORY_IDS.addAll(ids);
}
}

11
dongjian-dashboard-back-common/src/main/java/com/dongjian/dashboard/back/common/DeviceAttrCode.java

@ -0,0 +1,11 @@
package com.dongjian.dashboard.back.common;
public class DeviceAttrCode {
public static final String COMMON = "single";
public static final String MEASURE_TEMPERATURE = "temperature";
public static final String MEASURE_HUMIDITY = "humidity";
}

2
dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_cn.yml

@ -58,7 +58,7 @@ msgcn:
consecutiveLoginFail: 登录失败次数过多,请等待{0}分{1}秒后再登录
loginFailCount: 已登录失败{0}次,剩余尝试登录次数:{1}
deviceGroupNameHasExisted: 此设备组名称已存在
groupTypeNotMatch: 设备类型与分组类型不匹配
invalidDeviceCategory: 无效的设备类别
monitoringPointCategoryNameHasExisted: 此监控点分类名称已存在
monitoringPointCategoryGroupNameHasExisted: 此监控点分组名称已存在
alertLevel_1: 正常

2
dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_en.yml

@ -58,7 +58,7 @@ msgen:
consecutiveLoginFail: Too many failed login attempts. Please wait {0} minute(s) and {1} second(s) before trying again.
loginFailCount: Login failed {0} times. Remaining login attempts:{1}.
deviceGroupNameHasExisted: Device group name already exists.
groupTypeNotMatch: Device type does not match the group type
invalidDeviceCategory: Invalid device category
monitoringPointCategoryNameHasExisted: This monitoring point category name already exists
monitoringPointCategoryGroupNameHasExisted: The monitoring point group name already exists
alertLevel_1: Normal

2
dongjian-dashboard-back-common/src/main/resources/config/language/msg/msg_jp.yml

@ -58,7 +58,7 @@ msgjp:
consecutiveLoginFail: ログインの失敗が多すぎます。{0}分{1}秒待ってから再度ログインしてください。
loginFailCount: ログインに{0}回失敗しました。残りの試行回数:{1}回。
deviceGroupNameHasExisted: デバイスグループ名は既に存在しています。
groupTypeNotMatch: デバイスタイプがグループタイプと一致しません
invalidDeviceCategory: サポートされていないデバイスタイプ。
monitoringPointCategoryNameHasExisted: この監視ポイントカテゴリ名は既に存在します
monitoringPointCategoryGroupNameHasExisted: この監視ポイントグループ名は既に存在します
alertLevel_1: 通常

6
dongjian-dashboard-back-controller/dockerfile

@ -1,5 +1,9 @@
FROM registry.ap-northeast-1.aliyuncs.com/southwave/jdk17-template:latest
# FROM registry.ap-northeast-1.aliyuncs.com/southwave/jdk17-template:latest
# FROM openjdk:17-jdk
FROM amazoncorretto:17-alpine
# 安装 fontconfig 和 DejaVu 字体 (这是一个通用且免费的字体包)
RUN apk --no-cache add fontconfig ttf-dejavu
ENV TZ=Asia/Tokyo
WORKDIR /home/data-center-dashboard

6
dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceDataAccumulateController.java

@ -114,14 +114,14 @@ public class DeviceDataAccumulateController {
@OperationLog(operation = "getLineData", remark = "")
@Operation(summary = "获取7日趋势数据")
@RequestMapping(value = "/getLineData",method = RequestMethod.GET)
public SimpleDataResponse<LineData> getLineData(
@RequestMapping(value = "/getLineData",method = RequestMethod.POST)
public SimpleDataResponse<List<LineData>> getLineData(
@Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required=true) String LoginName,
@Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required=true) String AccessToken,
@Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required=true) Long UserId,
@Parameter(name = "CompanyId", description = "ID of the company to which the user belongs", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required=false) Long CompanyId,
@Parameter(name = "LanguageType", description = "Language type (0: Chinese, 1: English, 2: Japanese)", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required=true) Integer LanguageType,
LineDataSearchParams lineDataSearchParams
@RequestBody LineDataSearchParams lineDataSearchParams
) throws BusinessException {
return deviceDataAccumulateService.getLineData(lineDataSearchParams, CompanyId, UserId, LanguageType);
}

9
dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceDataMeasureController.java

@ -113,16 +113,17 @@ public class DeviceDataMeasureController {
@OperationLog(operation = "getLineData", remark = "")
@Operation(summary = "获取7日趋势数据")
@RequestMapping(value = "/getLineData",method = RequestMethod.GET)
public SimpleDataResponse<LineData> getLineData(
@RequestMapping(value = "/getLineData",method = RequestMethod.POST)
public SimpleDataResponse<List<LineData>> getLineData(
@Parameter(name = "searchType", description = "1-按小时,2-全部数据", required = true) Integer searchType,
@Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required=true) String LoginName,
@Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required=true) String AccessToken,
@Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required=true) Long UserId,
@Parameter(name = "CompanyId", description = "ID of the company to which the user belongs", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required=false) Long CompanyId,
@Parameter(name = "LanguageType", description = "Language type (0: Chinese, 1: English, 2: Japanese)", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required=true) Integer LanguageType,
LineDataSearchParams lineDataSearchParams
@RequestBody LineDataSearchParams lineDataSearchParams
) throws BusinessException {
return deviceDataMeasureService.getLineData(lineDataSearchParams, CompanyId, UserId, LanguageType);
return deviceDataMeasureService.getLineData(searchType, lineDataSearchParams, CompanyId, UserId, LanguageType);
}
}

27
dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/DeviceGroupController.java

@ -1,6 +1,7 @@
package com.dongjian.dashboard.back.controller;
import com.dongjian.dashboard.back.configurator.aspect.OperationLog;
import com.dongjian.dashboard.back.dto.BaseSearchNoCompanysParams;
import com.dongjian.dashboard.back.dto.devicegroup.*;
import com.dongjian.dashboard.back.vo.device.DeviceVO;
import io.swagger.v3.oas.annotations.Hidden;
@ -23,6 +24,7 @@ import com.dongjian.dashboard.back.configurator.interceptor.AccessRequired;
import com.dongjian.dashboard.back.service.DeviceGroupService;
import com.dongjian.dashboard.back.vo.devicegroup.DeviceGroupPageVO;
import java.util.Collections;
import java.util.List;
@ -38,7 +40,6 @@ public class DeviceGroupController {
@Autowired
private DeviceGroupService deviceGroupService;
@Hidden
@OperationLog(operation = "addDeviceGroup", remark = "")
@Operation(summary = "Add deviceGroup")
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ -52,7 +53,6 @@ public class DeviceGroupController {
return deviceGroupService.add(optDeviceGroupParams, UserId, CompanyId, LanguageType);
}
@Hidden
@OperationLog(operation = "editDeviceGroup", remark = "")
@Operation(summary = "Edit deviceGroup")
@RequestMapping(value = "/edit", method = RequestMethod.POST)
@ -66,7 +66,6 @@ public class DeviceGroupController {
return deviceGroupService.edit(optDeviceGroupParams, UserId, CompanyId, LanguageType);
}
@Hidden
@OperationLog(operation = "deleteDeviceGroup", remark = "")
@Operation(summary = "Delete deviceGroup")
@RequestMapping(value = "/batchDelete", method = RequestMethod.POST)
@ -151,14 +150,32 @@ public class DeviceGroupController {
@Operation(summary = "根据设备组ID获取绑定的设备")
@RequestMapping(value = "/getBindedDeviceByGroup/{deviceGroupId}", method = RequestMethod.GET)
public SimpleDataResponse<List<DeviceVO>> getBindedDeviceByGroup(
public PageResponse<PageInfo<DeviceVO>> getBindedDeviceByGroup(
@PathVariable Long deviceGroupId,
BaseSearchNoCompanysParams BaseSearchNoCompanysParams,
@Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName,
@Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken,
@Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId,
@Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId,
@Parameter(name = "LanguageType", description = "Language type: 0 - Chinese, 1 - English, 2 - Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType) {
return deviceGroupService.getBindedDeviceByGroup(deviceGroupId, UserId, CompanyId, LanguageType);
DeviceGroupSearchParams pageSearchParam = new DeviceGroupSearchParams();
pageSearchParam.setPageNum(BaseSearchNoCompanysParams.getPageNum());
pageSearchParam.setPageSize(BaseSearchNoCompanysParams.getPageSize());
pageSearchParam.setUserId(UserId);
pageSearchParam.setDeviceGroupIdList(Collections.singletonList(deviceGroupId));
PageResponse<PageInfo<DeviceVO>> pageResponse = new PageResponse<>();
try {
pageResponse.setData(deviceGroupService.getBindedDeviceByGroup(pageSearchParam, UserId, CompanyId, LanguageType));
pageResponse.setCode(ResponseCode.SUCCESS);
pageResponse.setMsg("success");
} catch (Exception e) {
logger.error("Error querying list", e);
pageResponse.setCode(ResponseCode.SERVER_ERROR);
pageResponse.setMsg("service error");
}
return pageResponse;
}
@OperationLog(operation = "addDeviceForGroup", remark = "")

13
dongjian-dashboard-back-controller/src/main/java/com/dongjian/dashboard/back/controller/OverviewController.java

@ -3,6 +3,7 @@ package com.dongjian.dashboard.back.controller;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.configurator.interceptor.AccessRequired;
import com.dongjian.dashboard.back.service.OverviewService;
import com.dongjian.dashboard.back.vo.dashboardnotification.DashboardNotificationPageVO;
import com.dongjian.dashboard.back.vo.data.OverviewVO;
import com.dongjian.dashboard.back.weather.JpMeshHourlyForecasts;
import com.dongjian.dashboard.back.weather.QueryWeather;
@ -53,4 +54,16 @@ public class OverviewController {
@Parameter(name = "UTCOffset", description = "Time zone offset in minutes from GMT, e.g., +480 for UTC+8", required = true, schema = @Schema(defaultValue = "-480")) @RequestHeader(required = true) Integer UTCOffset) {
return overviewService.getWeatherInfo(queryWeather, UserId, CompanyId, LanguageType, UTCOffset);
}
@Operation(summary = "Get notification")
@RequestMapping(value = "/getNotification", method = RequestMethod.GET)
public SimpleDataResponse<DashboardNotificationPageVO> getNotification(
@Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName,
@Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken,
@Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId,
@Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId,
@Parameter(name = "LanguageType", description = "Language type: 0 - Chinese, 1 - English, 2 - Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType,
@Parameter(name = "UTCOffset", description = "Time zone offset in minutes from GMT, e.g., +480 for UTC+8", required = true, schema = @Schema(defaultValue = "-480")) @RequestHeader(required = true) Integer UTCOffset) {
return overviewService.getNotification(UserId, CompanyId, LanguageType, UTCOffset);
}
}

120
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DashboardNotificationMapper.java

@ -0,0 +1,120 @@
package com.dongjian.dashboard.back.dao.auto;
import com.dongjian.dashboard.back.model.DashboardNotification;
import com.dongjian.dashboard.back.model.DashboardNotificationExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface DashboardNotificationMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
long countByExample(DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int deleteByExample(DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int deleteByPrimaryKey(Long id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int insert(DashboardNotification record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int insertSelective(DashboardNotification record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
List<DashboardNotification> selectByExampleWithBLOBs(DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
List<DashboardNotification> selectByExample(DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
DashboardNotification selectByPrimaryKey(Long id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DashboardNotification record, @Param("example") DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByExampleWithBLOBs(@Param("record") DashboardNotification record, @Param("example") DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByExample(@Param("record") DashboardNotification record, @Param("example") DashboardNotificationExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DashboardNotification record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByPrimaryKeyWithBLOBs(DashboardNotification record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
int updateByPrimaryKey(DashboardNotification record);
}

32
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DashboardRealtimeMeasureMapper.java

@ -22,14 +22,6 @@ public interface DashboardRealtimeMeasureMapper {
*/
int deleteByExample(DashboardRealtimeMeasureExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
*
* @mbg.generated
*/
int deleteByPrimaryKey(String deviceId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
@ -54,14 +46,6 @@ public interface DashboardRealtimeMeasureMapper {
*/
List<DashboardRealtimeMeasure> selectByExample(DashboardRealtimeMeasureExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
*
* @mbg.generated
*/
DashboardRealtimeMeasure selectByPrimaryKey(String deviceId);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
@ -77,20 +61,4 @@ public interface DashboardRealtimeMeasureMapper {
* @mbg.generated
*/
int updateByExample(@Param("record") DashboardRealtimeMeasure record, @Param("example") DashboardRealtimeMeasureExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DashboardRealtimeMeasure record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_realtime_measure
*
* @mbg.generated
*/
int updateByPrimaryKey(DashboardRealtimeMeasure record);
}

24
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/auto/DeviceInfoMapper.java

@ -46,6 +46,14 @@ public interface DeviceInfoMapper {
*/
int insertSelective(DeviceInfo record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
*
* @mbg.generated
*/
List<DeviceInfo> selectByExampleWithBLOBs(DeviceInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
@ -70,6 +78,14 @@ public interface DeviceInfoMapper {
*/
int updateByExampleSelective(@Param("record") DeviceInfo record, @Param("example") DeviceInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
*
* @mbg.generated
*/
int updateByExampleWithBLOBs(@Param("record") DeviceInfo record, @Param("example") DeviceInfoExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
@ -86,6 +102,14 @@ public interface DeviceInfoMapper {
*/
int updateByPrimaryKeySelective(DeviceInfo record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
*
* @mbg.generated
*/
int updateByPrimaryKeyWithBLOBs(DeviceInfo record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info

17
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/DashboardNotificationMapperExt.java

@ -0,0 +1,17 @@
package com.dongjian.dashboard.back.dao.ex;
import java.util.List;
import com.dongjian.dashboard.back.dao.auto.DashboardNotificationMapper;
import com.dongjian.dashboard.back.dao.auto.UserBuildingRelationMapper;
import com.dongjian.dashboard.back.model.UserBuildingRelation;
import com.dongjian.dashboard.back.vo.building.BindedBuildingVO;
import com.dongjian.dashboard.back.vo.dashboardnotification.DashboardNotificationPageVO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DashboardNotificationMapperExt extends DashboardNotificationMapper {
DashboardNotificationPageVO getNotification(Long companyId);
}

2
dongjian-dashboard-back-dao/src/main/java/com/dongjian/dashboard/back/dao/ex/DeviceGroupMapperExt.java

@ -18,5 +18,5 @@ public interface DeviceGroupMapperExt extends DeviceGroupMapper {
List<DeviceGroupPageVO> getBindedGroupByDevice(Integer deviceInfoId);
List<DeviceVO> getBindedDeviceByGroup(Long deviceGroupId);
List<DeviceVO> getBindedDeviceByGroup(DeviceGroupSearchParams pageSearchParam);
}

1
dongjian-dashboard-back-dao/src/main/resources/mappers/aurora/DashboardRealtimeMeasureMapperExt.xml

@ -5,6 +5,7 @@
<select id="selectRealtimeMeasureByDevices" parameterType="map" resultType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasure">
SELECT
device_id,
attr_code,
upload_value,
max_value,
min_value,

423
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardNotificationMapper.xml

@ -0,0 +1,423 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dongjian.dashboard.back.dao.auto.DashboardNotificationMapper">
<resultMap id="BaseResultMap" type="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="company_id" jdbcType="BIGINT" property="companyId" />
<result column="demand_time" jdbcType="VARCHAR" property="demandTime" />
<result column="category" jdbcType="VARCHAR" property="category" />
<result column="flag" jdbcType="INTEGER" property="flag" />
<result column="created_at" jdbcType="BIGINT" property="createdAt" />
<result column="created_by" jdbcType="BIGINT" property="createdBy" />
<result column="updated_at" jdbcType="BIGINT" property="updatedAt" />
<result column="updated_by" jdbcType="BIGINT" property="updatedBy" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<result column="content" jdbcType="LONGVARCHAR" property="content" />
</resultMap>
<sql id="Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, company_id, demand_time, category, flag, created_at, created_by, updated_at,
updated_by
</sql>
<sql id="Blob_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
content
</sql>
<select id="selectByExampleWithBLOBs" parameterType="com.dongjian.dashboard.back.model.DashboardNotificationExample" resultMap="ResultMapWithBLOBs">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from dashboard_notification
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExample" parameterType="com.dongjian.dashboard.back.model.DashboardNotificationExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
from dashboard_notification
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="ResultMapWithBLOBs">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from dashboard_notification
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from dashboard_notification
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.dongjian.dashboard.back.model.DashboardNotificationExample">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from dashboard_notification
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into dashboard_notification (company_id, demand_time, category,
flag, created_at, created_by,
updated_at, updated_by, content
)
values (#{companyId,jdbcType=BIGINT}, #{demandTime,jdbcType=VARCHAR}, #{category,jdbcType=VARCHAR},
#{flag,jdbcType=INTEGER}, #{createdAt,jdbcType=BIGINT}, #{createdBy,jdbcType=BIGINT},
#{updatedAt,jdbcType=BIGINT}, #{updatedBy,jdbcType=BIGINT}, #{content,jdbcType=LONGVARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into dashboard_notification
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="companyId != null">
company_id,
</if>
<if test="demandTime != null">
demand_time,
</if>
<if test="category != null">
category,
</if>
<if test="flag != null">
flag,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="createdBy != null">
created_by,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="updatedBy != null">
updated_by,
</if>
<if test="content != null">
content,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="companyId != null">
#{companyId,jdbcType=BIGINT},
</if>
<if test="demandTime != null">
#{demandTime,jdbcType=VARCHAR},
</if>
<if test="category != null">
#{category,jdbcType=VARCHAR},
</if>
<if test="flag != null">
#{flag,jdbcType=INTEGER},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=BIGINT},
</if>
<if test="createdBy != null">
#{createdBy,jdbcType=BIGINT},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=BIGINT},
</if>
<if test="updatedBy != null">
#{updatedBy,jdbcType=BIGINT},
</if>
<if test="content != null">
#{content,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.dongjian.dashboard.back.model.DashboardNotificationExample" resultType="java.lang.Long">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select count(*) from dashboard_notification
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.companyId != null">
company_id = #{record.companyId,jdbcType=BIGINT},
</if>
<if test="record.demandTime != null">
demand_time = #{record.demandTime,jdbcType=VARCHAR},
</if>
<if test="record.category != null">
category = #{record.category,jdbcType=VARCHAR},
</if>
<if test="record.flag != null">
flag = #{record.flag,jdbcType=INTEGER},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=BIGINT},
</if>
<if test="record.createdBy != null">
created_by = #{record.createdBy,jdbcType=BIGINT},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=BIGINT},
</if>
<if test="record.updatedBy != null">
updated_by = #{record.updatedBy,jdbcType=BIGINT},
</if>
<if test="record.content != null">
content = #{record.content,jdbcType=LONGVARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExampleWithBLOBs" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
set id = #{record.id,jdbcType=BIGINT},
company_id = #{record.companyId,jdbcType=BIGINT},
demand_time = #{record.demandTime,jdbcType=VARCHAR},
category = #{record.category,jdbcType=VARCHAR},
flag = #{record.flag,jdbcType=INTEGER},
created_at = #{record.createdAt,jdbcType=BIGINT},
created_by = #{record.createdBy,jdbcType=BIGINT},
updated_at = #{record.updatedAt,jdbcType=BIGINT},
updated_by = #{record.updatedBy,jdbcType=BIGINT},
content = #{record.content,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
set id = #{record.id,jdbcType=BIGINT},
company_id = #{record.companyId,jdbcType=BIGINT},
demand_time = #{record.demandTime,jdbcType=VARCHAR},
category = #{record.category,jdbcType=VARCHAR},
flag = #{record.flag,jdbcType=INTEGER},
created_at = #{record.createdAt,jdbcType=BIGINT},
created_by = #{record.createdBy,jdbcType=BIGINT},
updated_at = #{record.updatedAt,jdbcType=BIGINT},
updated_by = #{record.updatedBy,jdbcType=BIGINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
<set>
<if test="companyId != null">
company_id = #{companyId,jdbcType=BIGINT},
</if>
<if test="demandTime != null">
demand_time = #{demandTime,jdbcType=VARCHAR},
</if>
<if test="category != null">
category = #{category,jdbcType=VARCHAR},
</if>
<if test="flag != null">
flag = #{flag,jdbcType=INTEGER},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=BIGINT},
</if>
<if test="createdBy != null">
created_by = #{createdBy,jdbcType=BIGINT},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=BIGINT},
</if>
<if test="updatedBy != null">
updated_by = #{updatedBy,jdbcType=BIGINT},
</if>
<if test="content != null">
content = #{content,jdbcType=LONGVARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
set company_id = #{companyId,jdbcType=BIGINT},
demand_time = #{demandTime,jdbcType=VARCHAR},
category = #{category,jdbcType=VARCHAR},
flag = #{flag,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=BIGINT},
created_by = #{createdBy,jdbcType=BIGINT},
updated_at = #{updatedAt,jdbcType=BIGINT},
updated_by = #{updatedBy,jdbcType=BIGINT},
content = #{content,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.dongjian.dashboard.back.model.DashboardNotification">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_notification
set company_id = #{companyId,jdbcType=BIGINT},
demand_time = #{demandTime,jdbcType=VARCHAR},
category = #{category,jdbcType=VARCHAR},
flag = #{flag,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=BIGINT},
created_by = #{createdBy,jdbcType=BIGINT},
updated_at = #{updatedAt,jdbcType=BIGINT},
updated_by = #{updatedBy,jdbcType=BIGINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

109
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardRealtimeMeasureMapper.xml

@ -6,7 +6,8 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<id column="device_id" jdbcType="VARCHAR" property="deviceId" />
<result column="device_id" jdbcType="VARCHAR" property="deviceId" />
<result column="attr_code" jdbcType="VARCHAR" property="attrCode" />
<result column="date_year" jdbcType="INTEGER" property="dateYear" />
<result column="date_month" jdbcType="INTEGER" property="dateMonth" />
<result column="date_day" jdbcType="INTEGER" property="dateDay" />
@ -89,7 +90,7 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
device_id, date_year, date_month, date_day, date_hour, date_minute, date_second,
device_id, attr_code, date_year, date_month, date_day, date_hour, date_minute, date_second,
upload_value, min_value, max_value, upload_at
</sql>
<select id="selectByExample" parameterType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasureExample" resultMap="BaseResultMap">
@ -111,24 +112,6 @@
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
from dashboard_realtime_measure
where device_id = #{deviceId,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from dashboard_realtime_measure
where device_id = #{deviceId,jdbcType=VARCHAR}
</delete>
<delete id="deleteByExample" parameterType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasureExample">
<!--
WARNING - @mbg.generated
@ -144,14 +127,16 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into dashboard_realtime_measure (device_id, date_year, date_month,
date_day, date_hour, date_minute,
date_second, upload_value, min_value,
max_value, upload_at)
values (#{deviceId,jdbcType=VARCHAR}, #{dateYear,jdbcType=INTEGER}, #{dateMonth,jdbcType=INTEGER},
#{dateDay,jdbcType=INTEGER}, #{dateHour,jdbcType=INTEGER}, #{dateMinute,jdbcType=INTEGER},
#{dateSecond,jdbcType=INTEGER}, #{uploadValue,jdbcType=VARCHAR}, #{minValue,jdbcType=VARCHAR},
#{maxValue,jdbcType=VARCHAR}, #{uploadAt,jdbcType=BIGINT})
insert into dashboard_realtime_measure (device_id, attr_code, date_year,
date_month, date_day, date_hour,
date_minute, date_second, upload_value,
min_value, max_value, upload_at
)
values (#{deviceId,jdbcType=VARCHAR}, #{attrCode,jdbcType=VARCHAR}, #{dateYear,jdbcType=INTEGER},
#{dateMonth,jdbcType=INTEGER}, #{dateDay,jdbcType=INTEGER}, #{dateHour,jdbcType=INTEGER},
#{dateMinute,jdbcType=INTEGER}, #{dateSecond,jdbcType=INTEGER}, #{uploadValue,jdbcType=VARCHAR},
#{minValue,jdbcType=VARCHAR}, #{maxValue,jdbcType=VARCHAR}, #{uploadAt,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasure">
<!--
@ -163,6 +148,9 @@
<if test="deviceId != null">
device_id,
</if>
<if test="attrCode != null">
attr_code,
</if>
<if test="dateYear != null">
date_year,
</if>
@ -198,6 +186,9 @@
<if test="deviceId != null">
#{deviceId,jdbcType=VARCHAR},
</if>
<if test="attrCode != null">
#{attrCode,jdbcType=VARCHAR},
</if>
<if test="dateYear != null">
#{dateYear,jdbcType=INTEGER},
</if>
@ -250,6 +241,9 @@
<if test="record.deviceId != null">
device_id = #{record.deviceId,jdbcType=VARCHAR},
</if>
<if test="record.attrCode != null">
attr_code = #{record.attrCode,jdbcType=VARCHAR},
</if>
<if test="record.dateYear != null">
date_year = #{record.dateYear,jdbcType=INTEGER},
</if>
@ -292,6 +286,7 @@
-->
update dashboard_realtime_measure
set device_id = #{record.deviceId,jdbcType=VARCHAR},
attr_code = #{record.attrCode,jdbcType=VARCHAR},
date_year = #{record.dateYear,jdbcType=INTEGER},
date_month = #{record.dateMonth,jdbcType=INTEGER},
date_day = #{record.dateDay,jdbcType=INTEGER},
@ -306,62 +301,4 @@
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasure">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_realtime_measure
<set>
<if test="dateYear != null">
date_year = #{dateYear,jdbcType=INTEGER},
</if>
<if test="dateMonth != null">
date_month = #{dateMonth,jdbcType=INTEGER},
</if>
<if test="dateDay != null">
date_day = #{dateDay,jdbcType=INTEGER},
</if>
<if test="dateHour != null">
date_hour = #{dateHour,jdbcType=INTEGER},
</if>
<if test="dateMinute != null">
date_minute = #{dateMinute,jdbcType=INTEGER},
</if>
<if test="dateSecond != null">
date_second = #{dateSecond,jdbcType=INTEGER},
</if>
<if test="uploadValue != null">
upload_value = #{uploadValue,jdbcType=VARCHAR},
</if>
<if test="minValue != null">
min_value = #{minValue,jdbcType=VARCHAR},
</if>
<if test="maxValue != null">
max_value = #{maxValue,jdbcType=VARCHAR},
</if>
<if test="uploadAt != null">
upload_at = #{uploadAt,jdbcType=BIGINT},
</if>
</set>
where device_id = #{deviceId,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.dongjian.dashboard.back.model.DashboardRealtimeMeasure">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update dashboard_realtime_measure
set date_year = #{dateYear,jdbcType=INTEGER},
date_month = #{dateMonth,jdbcType=INTEGER},
date_day = #{dateDay,jdbcType=INTEGER},
date_hour = #{dateHour,jdbcType=INTEGER},
date_minute = #{dateMinute,jdbcType=INTEGER},
date_second = #{dateSecond,jdbcType=INTEGER},
upload_value = #{uploadValue,jdbcType=VARCHAR},
min_value = #{minValue,jdbcType=VARCHAR},
max_value = #{maxValue,jdbcType=VARCHAR},
upload_at = #{uploadAt,jdbcType=BIGINT}
where device_id = #{deviceId,jdbcType=VARCHAR}
</update>
</mapper>

37
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DashboardRecordAccumulateMapper.xml

@ -8,6 +8,7 @@
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="device_id" jdbcType="VARCHAR" property="deviceId" />
<result column="attr_code" jdbcType="VARCHAR" property="attrCode" />
<result column="date_year" jdbcType="INTEGER" property="dateYear" />
<result column="date_month" jdbcType="INTEGER" property="dateMonth" />
<result column="date_day" jdbcType="INTEGER" property="dateDay" />
@ -90,8 +91,8 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, device_id, date_year, date_month, date_day, date_hour, date_minute, date_second,
upload_value, increment_today, increment_minute, upload_at
id, device_id, attr_code, date_year, date_month, date_day, date_hour, date_minute,
date_second, upload_value, increment_today, increment_minute, upload_at
</sql>
<select id="selectByExample" parameterType="com.dongjian.dashboard.back.model.DashboardRecordAccumulateExample" resultMap="BaseResultMap">
<!--
@ -148,14 +149,16 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into dashboard_record_accumulate (device_id, date_year, date_month,
date_day, date_hour, date_minute,
date_second, upload_value, increment_today,
increment_minute, upload_at)
values (#{deviceId,jdbcType=VARCHAR}, #{dateYear,jdbcType=INTEGER}, #{dateMonth,jdbcType=INTEGER},
#{dateDay,jdbcType=INTEGER}, #{dateHour,jdbcType=INTEGER}, #{dateMinute,jdbcType=INTEGER},
#{dateSecond,jdbcType=INTEGER}, #{uploadValue,jdbcType=VARCHAR}, #{incrementToday,jdbcType=VARCHAR},
#{incrementMinute,jdbcType=VARCHAR}, #{uploadAt,jdbcType=BIGINT})
insert into dashboard_record_accumulate (device_id, attr_code, date_year,
date_month, date_day, date_hour,
date_minute, date_second, upload_value,
increment_today, increment_minute, upload_at
)
values (#{deviceId,jdbcType=VARCHAR}, #{attrCode,jdbcType=VARCHAR}, #{dateYear,jdbcType=INTEGER},
#{dateMonth,jdbcType=INTEGER}, #{dateDay,jdbcType=INTEGER}, #{dateHour,jdbcType=INTEGER},
#{dateMinute,jdbcType=INTEGER}, #{dateSecond,jdbcType=INTEGER}, #{uploadValue,jdbcType=VARCHAR},
#{incrementToday,jdbcType=VARCHAR}, #{incrementMinute,jdbcType=VARCHAR}, #{uploadAt,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DashboardRecordAccumulate">
<!--
@ -170,6 +173,9 @@
<if test="deviceId != null">
device_id,
</if>
<if test="attrCode != null">
attr_code,
</if>
<if test="dateYear != null">
date_year,
</if>
@ -205,6 +211,9 @@
<if test="deviceId != null">
#{deviceId,jdbcType=VARCHAR},
</if>
<if test="attrCode != null">
#{attrCode,jdbcType=VARCHAR},
</if>
<if test="dateYear != null">
#{dateYear,jdbcType=INTEGER},
</if>
@ -260,6 +269,9 @@
<if test="record.deviceId != null">
device_id = #{record.deviceId,jdbcType=VARCHAR},
</if>
<if test="record.attrCode != null">
attr_code = #{record.attrCode,jdbcType=VARCHAR},
</if>
<if test="record.dateYear != null">
date_year = #{record.dateYear,jdbcType=INTEGER},
</if>
@ -303,6 +315,7 @@
update dashboard_record_accumulate
set id = #{record.id,jdbcType=BIGINT},
device_id = #{record.deviceId,jdbcType=VARCHAR},
attr_code = #{record.attrCode,jdbcType=VARCHAR},
date_year = #{record.dateYear,jdbcType=INTEGER},
date_month = #{record.dateMonth,jdbcType=INTEGER},
date_day = #{record.dateDay,jdbcType=INTEGER},
@ -327,6 +340,9 @@
<if test="deviceId != null">
device_id = #{deviceId,jdbcType=VARCHAR},
</if>
<if test="attrCode != null">
attr_code = #{attrCode,jdbcType=VARCHAR},
</if>
<if test="dateYear != null">
date_year = #{dateYear,jdbcType=INTEGER},
</if>
@ -367,6 +383,7 @@
-->
update dashboard_record_accumulate
set device_id = #{deviceId,jdbcType=VARCHAR},
attr_code = #{attrCode,jdbcType=VARCHAR},
date_year = #{dateYear,jdbcType=INTEGER},
date_month = #{dateMonth,jdbcType=INTEGER},
date_day = #{dateDay,jdbcType=INTEGER},

29
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceGroupMapper.xml

@ -9,6 +9,7 @@
<id column="id" jdbcType="BIGINT" property="id" />
<result column="company_id" jdbcType="BIGINT" property="companyId" />
<result column="building_id" jdbcType="BIGINT" property="buildingId" />
<result column="class_id" jdbcType="INTEGER" property="classId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="flag" jdbcType="INTEGER" property="flag" />
@ -86,7 +87,7 @@
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, company_id, building_id, `name`, remark, flag, created_by, created_at
id, company_id, building_id, class_id, `name`, remark, flag, created_by, created_at
</sql>
<select id="selectByExample" parameterType="com.dongjian.dashboard.back.model.DeviceGroupExample" resultMap="BaseResultMap">
<!--
@ -143,12 +144,12 @@
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
insert into dashboard_device_group (company_id, building_id, `name`,
remark, flag, created_by,
created_at)
values (#{companyId,jdbcType=BIGINT}, #{buildingId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{flag,jdbcType=INTEGER}, #{createdBy,jdbcType=BIGINT},
#{createdAt,jdbcType=BIGINT})
insert into dashboard_device_group (company_id, building_id, class_id,
`name`, remark, flag,
created_by, created_at)
values (#{companyId,jdbcType=BIGINT}, #{buildingId,jdbcType=BIGINT}, #{classId,jdbcType=INTEGER},
#{name,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{flag,jdbcType=INTEGER},
#{createdBy,jdbcType=BIGINT}, #{createdAt,jdbcType=BIGINT})
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DeviceGroup">
<!--
@ -166,6 +167,9 @@
<if test="buildingId != null">
building_id,
</if>
<if test="classId != null">
class_id,
</if>
<if test="name != null">
`name`,
</if>
@ -189,6 +193,9 @@
<if test="buildingId != null">
#{buildingId,jdbcType=BIGINT},
</if>
<if test="classId != null">
#{classId,jdbcType=INTEGER},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
@ -232,6 +239,9 @@
<if test="record.buildingId != null">
building_id = #{record.buildingId,jdbcType=BIGINT},
</if>
<if test="record.classId != null">
class_id = #{record.classId,jdbcType=INTEGER},
</if>
<if test="record.name != null">
`name` = #{record.name,jdbcType=VARCHAR},
</if>
@ -261,6 +271,7 @@
set id = #{record.id,jdbcType=BIGINT},
company_id = #{record.companyId,jdbcType=BIGINT},
building_id = #{record.buildingId,jdbcType=BIGINT},
class_id = #{record.classId,jdbcType=INTEGER},
`name` = #{record.name,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
flag = #{record.flag,jdbcType=INTEGER},
@ -283,6 +294,9 @@
<if test="buildingId != null">
building_id = #{buildingId,jdbcType=BIGINT},
</if>
<if test="classId != null">
class_id = #{classId,jdbcType=INTEGER},
</if>
<if test="name != null">
`name` = #{name,jdbcType=VARCHAR},
</if>
@ -309,6 +323,7 @@
update dashboard_device_group
set company_id = #{companyId,jdbcType=BIGINT},
building_id = #{buildingId,jdbcType=BIGINT},
class_id = #{classId,jdbcType=INTEGER},
`name` = #{name,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
flag = #{flag,jdbcType=INTEGER},

205
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceInfoMapper.xml

@ -16,6 +16,7 @@
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="building_id" jdbcType="BIGINT" property="buildingId" />
<result column="asset_id" jdbcType="BIGINT" property="assetId" />
<result column="gateway_client_id" jdbcType="INTEGER" property="gatewayClientId" />
<result column="flag" jdbcType="INTEGER" property="flag" />
<result column="company_id" jdbcType="BIGINT" property="companyId" />
<result column="created_by" jdbcType="BIGINT" property="createdBy" />
@ -30,6 +31,15 @@
<result column="gateway_info_id" jdbcType="BIGINT" property="gatewayInfoId" />
<result column="alarm_level" jdbcType="INTEGER" property="alarmLevel" />
<result column="retain_alert" jdbcType="INTEGER" property="retainAlert" />
<result column="unit" jdbcType="VARCHAR" property="unit" />
<result column="dashboard_decimal_places" jdbcType="INTEGER" property="dashboardDecimalPlaces" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.dongjian.dashboard.back.model.DeviceInfo">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<result column="data_mapping" jdbcType="LONGVARCHAR" property="dataMapping" />
</resultMap>
<sql id="Example_Where_Clause">
<!--
@ -103,10 +113,38 @@
This element is automatically generated by MyBatis Generator, do not modify.
-->
id, device_id, device_sn, type_id, wsclient_id, space_id, device_name, remark, building_id,
asset_id, flag, company_id, created_by, created_timestamp, updated_by, updated_timestamp,
project_id, floor_id, monitoring_point_name, monitoring_point_category_id, data_provider_id,
gateway_info_id, alarm_level, retain_alert
asset_id, gateway_client_id, flag, company_id, created_by, created_timestamp, updated_by,
updated_timestamp, project_id, floor_id, monitoring_point_name, monitoring_point_category_id,
data_provider_id, gateway_info_id, alarm_level, retain_alert, unit, dashboard_decimal_places
</sql>
<sql id="Blob_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
data_mapping
</sql>
<select id="selectByExampleWithBLOBs" parameterType="com.dongjian.dashboard.back.model.DeviceInfoExample" resultMap="ResultMapWithBLOBs">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from device_info
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByExample" parameterType="com.dongjian.dashboard.back.model.DeviceInfoExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
@ -126,13 +164,15 @@
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from device_info
where id = #{id,jdbcType=INTEGER}
</select>
@ -165,21 +205,23 @@
insert into device_info (device_id, device_sn, type_id,
wsclient_id, space_id, device_name,
remark, building_id, asset_id,
flag, company_id, created_by,
created_timestamp, updated_by, updated_timestamp,
project_id, floor_id, monitoring_point_name,
monitoring_point_category_id, data_provider_id,
gateway_info_id, alarm_level, retain_alert
)
gateway_client_id, flag, company_id,
created_by, created_timestamp, updated_by,
updated_timestamp, project_id, floor_id,
monitoring_point_name, monitoring_point_category_id,
data_provider_id, gateway_info_id, alarm_level,
retain_alert, unit, dashboard_decimal_places,
data_mapping)
values (#{deviceId,jdbcType=VARCHAR}, #{deviceSn,jdbcType=VARCHAR}, #{typeId,jdbcType=INTEGER},
#{wsclientId,jdbcType=INTEGER}, #{spaceId,jdbcType=BIGINT}, #{deviceName,jdbcType=VARCHAR},
#{remark,jdbcType=VARCHAR}, #{buildingId,jdbcType=BIGINT}, #{assetId,jdbcType=BIGINT},
#{flag,jdbcType=INTEGER}, #{companyId,jdbcType=BIGINT}, #{createdBy,jdbcType=BIGINT},
#{createdTimestamp,jdbcType=TIMESTAMP}, #{updatedBy,jdbcType=BIGINT}, #{updatedTimestamp,jdbcType=BIGINT},
#{projectId,jdbcType=BIGINT}, #{floorId,jdbcType=BIGINT}, #{monitoringPointName,jdbcType=VARCHAR},
#{monitoringPointCategoryId,jdbcType=BIGINT}, #{dataProviderId,jdbcType=BIGINT},
#{gatewayInfoId,jdbcType=BIGINT}, #{alarmLevel,jdbcType=INTEGER}, #{retainAlert,jdbcType=INTEGER}
)
#{gatewayClientId,jdbcType=INTEGER}, #{flag,jdbcType=INTEGER}, #{companyId,jdbcType=BIGINT},
#{createdBy,jdbcType=BIGINT}, #{createdTimestamp,jdbcType=TIMESTAMP}, #{updatedBy,jdbcType=BIGINT},
#{updatedTimestamp,jdbcType=BIGINT}, #{projectId,jdbcType=BIGINT}, #{floorId,jdbcType=BIGINT},
#{monitoringPointName,jdbcType=VARCHAR}, #{monitoringPointCategoryId,jdbcType=BIGINT},
#{dataProviderId,jdbcType=BIGINT}, #{gatewayInfoId,jdbcType=BIGINT}, #{alarmLevel,jdbcType=INTEGER},
#{retainAlert,jdbcType=INTEGER}, #{unit,jdbcType=VARCHAR}, #{dashboardDecimalPlaces,jdbcType=INTEGER},
#{dataMapping,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DeviceInfo">
<!--
@ -218,6 +260,9 @@
<if test="assetId != null">
asset_id,
</if>
<if test="gatewayClientId != null">
gateway_client_id,
</if>
<if test="flag != null">
flag,
</if>
@ -260,6 +305,15 @@
<if test="retainAlert != null">
retain_alert,
</if>
<if test="unit != null">
unit,
</if>
<if test="dashboardDecimalPlaces != null">
dashboard_decimal_places,
</if>
<if test="dataMapping != null">
data_mapping,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deviceId != null">
@ -289,6 +343,9 @@
<if test="assetId != null">
#{assetId,jdbcType=BIGINT},
</if>
<if test="gatewayClientId != null">
#{gatewayClientId,jdbcType=INTEGER},
</if>
<if test="flag != null">
#{flag,jdbcType=INTEGER},
</if>
@ -331,6 +388,15 @@
<if test="retainAlert != null">
#{retainAlert,jdbcType=INTEGER},
</if>
<if test="unit != null">
#{unit,jdbcType=VARCHAR},
</if>
<if test="dashboardDecimalPlaces != null">
#{dashboardDecimalPlaces,jdbcType=INTEGER},
</if>
<if test="dataMapping != null">
#{dataMapping,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.dongjian.dashboard.back.model.DeviceInfoExample" resultType="java.lang.Long">
@ -380,6 +446,9 @@
<if test="record.assetId != null">
asset_id = #{record.assetId,jdbcType=BIGINT},
</if>
<if test="record.gatewayClientId != null">
gateway_client_id = #{record.gatewayClientId,jdbcType=INTEGER},
</if>
<if test="record.flag != null">
flag = #{record.flag,jdbcType=INTEGER},
</if>
@ -422,11 +491,58 @@
<if test="record.retainAlert != null">
retain_alert = #{record.retainAlert,jdbcType=INTEGER},
</if>
<if test="record.unit != null">
unit = #{record.unit,jdbcType=VARCHAR},
</if>
<if test="record.dashboardDecimalPlaces != null">
dashboard_decimal_places = #{record.dashboardDecimalPlaces,jdbcType=INTEGER},
</if>
<if test="record.dataMapping != null">
data_mapping = #{record.dataMapping,jdbcType=LONGVARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExampleWithBLOBs" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update device_info
set id = #{record.id,jdbcType=INTEGER},
device_id = #{record.deviceId,jdbcType=VARCHAR},
device_sn = #{record.deviceSn,jdbcType=VARCHAR},
type_id = #{record.typeId,jdbcType=INTEGER},
wsclient_id = #{record.wsclientId,jdbcType=INTEGER},
space_id = #{record.spaceId,jdbcType=BIGINT},
device_name = #{record.deviceName,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
building_id = #{record.buildingId,jdbcType=BIGINT},
asset_id = #{record.assetId,jdbcType=BIGINT},
gateway_client_id = #{record.gatewayClientId,jdbcType=INTEGER},
flag = #{record.flag,jdbcType=INTEGER},
company_id = #{record.companyId,jdbcType=BIGINT},
created_by = #{record.createdBy,jdbcType=BIGINT},
created_timestamp = #{record.createdTimestamp,jdbcType=TIMESTAMP},
updated_by = #{record.updatedBy,jdbcType=BIGINT},
updated_timestamp = #{record.updatedTimestamp,jdbcType=BIGINT},
project_id = #{record.projectId,jdbcType=BIGINT},
floor_id = #{record.floorId,jdbcType=BIGINT},
monitoring_point_name = #{record.monitoringPointName,jdbcType=VARCHAR},
monitoring_point_category_id = #{record.monitoringPointCategoryId,jdbcType=BIGINT},
data_provider_id = #{record.dataProviderId,jdbcType=BIGINT},
gateway_info_id = #{record.gatewayInfoId,jdbcType=BIGINT},
alarm_level = #{record.alarmLevel,jdbcType=INTEGER},
retain_alert = #{record.retainAlert,jdbcType=INTEGER},
unit = #{record.unit,jdbcType=VARCHAR},
dashboard_decimal_places = #{record.dashboardDecimalPlaces,jdbcType=INTEGER},
data_mapping = #{record.dataMapping,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
<!--
WARNING - @mbg.generated
@ -443,6 +559,7 @@
remark = #{record.remark,jdbcType=VARCHAR},
building_id = #{record.buildingId,jdbcType=BIGINT},
asset_id = #{record.assetId,jdbcType=BIGINT},
gateway_client_id = #{record.gatewayClientId,jdbcType=INTEGER},
flag = #{record.flag,jdbcType=INTEGER},
company_id = #{record.companyId,jdbcType=BIGINT},
created_by = #{record.createdBy,jdbcType=BIGINT},
@ -456,7 +573,9 @@
data_provider_id = #{record.dataProviderId,jdbcType=BIGINT},
gateway_info_id = #{record.gatewayInfoId,jdbcType=BIGINT},
alarm_level = #{record.alarmLevel,jdbcType=INTEGER},
retain_alert = #{record.retainAlert,jdbcType=INTEGER}
retain_alert = #{record.retainAlert,jdbcType=INTEGER},
unit = #{record.unit,jdbcType=VARCHAR},
dashboard_decimal_places = #{record.dashboardDecimalPlaces,jdbcType=INTEGER}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -495,6 +614,9 @@
<if test="assetId != null">
asset_id = #{assetId,jdbcType=BIGINT},
</if>
<if test="gatewayClientId != null">
gateway_client_id = #{gatewayClientId,jdbcType=INTEGER},
</if>
<if test="flag != null">
flag = #{flag,jdbcType=INTEGER},
</if>
@ -537,9 +659,53 @@
<if test="retainAlert != null">
retain_alert = #{retainAlert,jdbcType=INTEGER},
</if>
<if test="unit != null">
unit = #{unit,jdbcType=VARCHAR},
</if>
<if test="dashboardDecimalPlaces != null">
dashboard_decimal_places = #{dashboardDecimalPlaces,jdbcType=INTEGER},
</if>
<if test="dataMapping != null">
data_mapping = #{dataMapping,jdbcType=LONGVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.dongjian.dashboard.back.model.DeviceInfo">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update device_info
set device_id = #{deviceId,jdbcType=VARCHAR},
device_sn = #{deviceSn,jdbcType=VARCHAR},
type_id = #{typeId,jdbcType=INTEGER},
wsclient_id = #{wsclientId,jdbcType=INTEGER},
space_id = #{spaceId,jdbcType=BIGINT},
device_name = #{deviceName,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
building_id = #{buildingId,jdbcType=BIGINT},
asset_id = #{assetId,jdbcType=BIGINT},
gateway_client_id = #{gatewayClientId,jdbcType=INTEGER},
flag = #{flag,jdbcType=INTEGER},
company_id = #{companyId,jdbcType=BIGINT},
created_by = #{createdBy,jdbcType=BIGINT},
created_timestamp = #{createdTimestamp,jdbcType=TIMESTAMP},
updated_by = #{updatedBy,jdbcType=BIGINT},
updated_timestamp = #{updatedTimestamp,jdbcType=BIGINT},
project_id = #{projectId,jdbcType=BIGINT},
floor_id = #{floorId,jdbcType=BIGINT},
monitoring_point_name = #{monitoringPointName,jdbcType=VARCHAR},
monitoring_point_category_id = #{monitoringPointCategoryId,jdbcType=BIGINT},
data_provider_id = #{dataProviderId,jdbcType=BIGINT},
gateway_info_id = #{gatewayInfoId,jdbcType=BIGINT},
alarm_level = #{alarmLevel,jdbcType=INTEGER},
retain_alert = #{retainAlert,jdbcType=INTEGER},
unit = #{unit,jdbcType=VARCHAR},
dashboard_decimal_places = #{dashboardDecimalPlaces,jdbcType=INTEGER},
data_mapping = #{dataMapping,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.dongjian.dashboard.back.model.DeviceInfo">
<!--
WARNING - @mbg.generated
@ -555,6 +721,7 @@
remark = #{remark,jdbcType=VARCHAR},
building_id = #{buildingId,jdbcType=BIGINT},
asset_id = #{assetId,jdbcType=BIGINT},
gateway_client_id = #{gatewayClientId,jdbcType=INTEGER},
flag = #{flag,jdbcType=INTEGER},
company_id = #{companyId,jdbcType=BIGINT},
created_by = #{createdBy,jdbcType=BIGINT},
@ -568,7 +735,9 @@
data_provider_id = #{dataProviderId,jdbcType=BIGINT},
gateway_info_id = #{gatewayInfoId,jdbcType=BIGINT},
alarm_level = #{alarmLevel,jdbcType=INTEGER},
retain_alert = #{retainAlert,jdbcType=INTEGER}
retain_alert = #{retainAlert,jdbcType=INTEGER},
unit = #{unit,jdbcType=VARCHAR},
dashboard_decimal_places = #{dashboardDecimalPlaces,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>

27
dongjian-dashboard-back-dao/src/main/resources/mappers/auto/DeviceRawdataRealtimeMapper.xml

@ -15,6 +15,7 @@
<result column="upload_year" jdbcType="INTEGER" property="uploadYear" />
<result column="upload_month" jdbcType="INTEGER" property="uploadMonth" />
<result column="upload_day" jdbcType="INTEGER" property="uploadDay" />
<result column="dashboard_status" jdbcType="VARCHAR" property="dashboardStatus" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.dongjian.dashboard.back.model.DeviceRawdataRealtime">
<!--
@ -97,7 +98,7 @@
This element is automatically generated by MyBatis Generator, do not modify.
-->
device_id, building_id, `status`, receive_ts, alert_title, alert_cancel_title, upload_year,
upload_month, upload_day
upload_month, upload_day, dashboard_status
</sql>
<sql id="Blob_Column_List">
<!--
@ -184,12 +185,12 @@
insert into device_rawdata_realtime (device_id, building_id, `status`,
receive_ts, alert_title, alert_cancel_title,
upload_year, upload_month, upload_day,
alert_content, alert_cancel_content,
dashboard_status, alert_content, alert_cancel_content,
raw_data)
values (#{deviceId,jdbcType=VARCHAR}, #{buildingId,jdbcType=BIGINT}, #{status,jdbcType=VARCHAR},
#{receiveTs,jdbcType=BIGINT}, #{alertTitle,jdbcType=VARCHAR}, #{alertCancelTitle,jdbcType=VARCHAR},
#{uploadYear,jdbcType=INTEGER}, #{uploadMonth,jdbcType=INTEGER}, #{uploadDay,jdbcType=INTEGER},
#{alertContent,jdbcType=LONGVARCHAR}, #{alertCancelContent,jdbcType=LONGVARCHAR},
#{dashboardStatus,jdbcType=VARCHAR}, #{alertContent,jdbcType=LONGVARCHAR}, #{alertCancelContent,jdbcType=LONGVARCHAR},
#{rawData,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.dongjian.dashboard.back.model.DeviceRawdataRealtime">
@ -226,6 +227,9 @@
<if test="uploadDay != null">
upload_day,
</if>
<if test="dashboardStatus != null">
dashboard_status,
</if>
<if test="alertContent != null">
alert_content,
</if>
@ -264,6 +268,9 @@
<if test="uploadDay != null">
#{uploadDay,jdbcType=INTEGER},
</if>
<if test="dashboardStatus != null">
#{dashboardStatus,jdbcType=VARCHAR},
</if>
<if test="alertContent != null">
#{alertContent,jdbcType=LONGVARCHAR},
</if>
@ -319,6 +326,9 @@
<if test="record.uploadDay != null">
upload_day = #{record.uploadDay,jdbcType=INTEGER},
</if>
<if test="record.dashboardStatus != null">
dashboard_status = #{record.dashboardStatus,jdbcType=VARCHAR},
</if>
<if test="record.alertContent != null">
alert_content = #{record.alertContent,jdbcType=LONGVARCHAR},
</if>
@ -348,6 +358,7 @@
upload_year = #{record.uploadYear,jdbcType=INTEGER},
upload_month = #{record.uploadMonth,jdbcType=INTEGER},
upload_day = #{record.uploadDay,jdbcType=INTEGER},
dashboard_status = #{record.dashboardStatus,jdbcType=VARCHAR},
alert_content = #{record.alertContent,jdbcType=LONGVARCHAR},
alert_cancel_content = #{record.alertCancelContent,jdbcType=LONGVARCHAR},
raw_data = #{record.rawData,jdbcType=LONGVARCHAR}
@ -369,7 +380,8 @@
alert_cancel_title = #{record.alertCancelTitle,jdbcType=VARCHAR},
upload_year = #{record.uploadYear,jdbcType=INTEGER},
upload_month = #{record.uploadMonth,jdbcType=INTEGER},
upload_day = #{record.uploadDay,jdbcType=INTEGER}
upload_day = #{record.uploadDay,jdbcType=INTEGER},
dashboard_status = #{record.dashboardStatus,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -405,6 +417,9 @@
<if test="uploadDay != null">
upload_day = #{uploadDay,jdbcType=INTEGER},
</if>
<if test="dashboardStatus != null">
dashboard_status = #{dashboardStatus,jdbcType=VARCHAR},
</if>
<if test="alertContent != null">
alert_content = #{alertContent,jdbcType=LONGVARCHAR},
</if>
@ -431,6 +446,7 @@
upload_year = #{uploadYear,jdbcType=INTEGER},
upload_month = #{uploadMonth,jdbcType=INTEGER},
upload_day = #{uploadDay,jdbcType=INTEGER},
dashboard_status = #{dashboardStatus,jdbcType=VARCHAR},
alert_content = #{alertContent,jdbcType=LONGVARCHAR},
alert_cancel_content = #{alertCancelContent,jdbcType=LONGVARCHAR},
raw_data = #{rawData,jdbcType=LONGVARCHAR}
@ -449,7 +465,8 @@
alert_cancel_title = #{alertCancelTitle,jdbcType=VARCHAR},
upload_year = #{uploadYear,jdbcType=INTEGER},
upload_month = #{uploadMonth,jdbcType=INTEGER},
upload_day = #{uploadDay,jdbcType=INTEGER}
upload_day = #{uploadDay,jdbcType=INTEGER},
dashboard_status = #{dashboardStatus,jdbcType=VARCHAR}
where device_id = #{deviceId,jdbcType=VARCHAR}
</update>
</mapper>

17
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DashboardNotificationMapperExt.xml

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dongjian.dashboard.back.dao.ex.DashboardNotificationMapperExt">
<select id="getNotification" resultType="com.dongjian.dashboard.back.vo.dashboardnotification.DashboardNotificationPageVO">
SELECT
id dashboardNotificationId,
demand_time,
category,
content,
created_at
FROM dashboard_notification
WHERE flag = 0 AND company_id = #{companyId}
ORDER BY id DESC limit 1
</select>
</mapper>

36
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceGroupMapperExt.xml

@ -6,30 +6,37 @@
SELECT
COUNT(1)
FROM
device_group
dashboard_device_group
WHERE
flag != 1 AND `name` = #{name} AND building_id = #{buildingId}
<if test="deviceGroupId != null">
AND id != #{deviceGroupId}
</if>
</select>
<select id="getListPage" resultType="com.dongjian.dashboard.back.vo.devicegroup.DeviceGroupPageVO">
SELECT
dg.id deviceGroupId,
dg.company_id,
dg.`name`,
dg.remark
dg.id deviceGroupId,
dg.company_id,
dg.`name`,
dg.remark,
dg.building_id,
dg.class_id,
basic_building.name AS buildingName
FROM
dashboard_device_group dg
WHERE
dg.flag != 1
inner join basic_building on dg.building_id = basic_building.building_id
WHERE
dg.flag != 1
<if test="deviceGroupIdList != null">
AND dg.id IN <foreach collection="deviceGroupIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
AND dg.id IN <foreach collection="deviceGroupIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
</if>
<if test="name != null">
AND dg.`name` LIKE CONCAT('%',#{name},'%')
AND dg.`name` LIKE CONCAT('%',#{name},'%')
</if>
<if test="classId != null">
AND dg.class_id = #{classId}
</if>
<if test="buildingId != null">
AND dg.`building_id` = #{buildingId}
@ -46,9 +53,9 @@
dg.name,
dg.remark
FROM
device_group_relation dgr
dashboard_device_group_relation dgr
LEFT JOIN
device_group dg ON dgr.device_group_id = dg.id
dashboard_device_group dg ON dgr.device_group_id = dg.id
WHERE
dgr.device_info_id = #{deviceInfoId}
AND dg.flag = 0
@ -63,6 +70,7 @@
device_info.device_id,
device_info.device_sn,
device_info.type_id,
type.device_category_id categoryId,
type.name as typeName,
basic_building.building_id,
basic_building.name as buildingName,
@ -94,7 +102,7 @@
left join data_provider_gateway_info on data_provider_gateway_info.id = device_info.gateway_info_id
left join type on device_info.type_id = type.id
left join basic_project on device_info.project_id = basic_project.id
where dashboard_device_group_relation.device_group_id = #{deviceGroupId}
where dashboard_device_group_relation.device_group_id IN <foreach collection="deviceGroupIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
</select>

37
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml

@ -8,8 +8,9 @@
basic_floor.name as floorName,
device_info.id,
device_info.device_id,
device_info.device_name,
device_info.device_sn,
device_info.type_id,
type.device_category_id categoryId,
device_info.retain_alert,
device_info.monitoring_point_name,
basic_asset_class_big.id monitoringPointCategoryId,
@ -18,7 +19,9 @@
data_provider.thumbnail_base64 as dataProviderThumbnailBase64,
device_info.gateway_info_id,
data_provider_gateway_info.name as gatewayInfoName,
type.unit
device_info.unit,
device_info.data_mapping,
device_info.dashboard_decimal_places
</sql>
<sql id="deviceDataFromAndJoin">
@ -49,10 +52,11 @@
#{deviceId}
</foreach>
</if>
and device_info.flag = 0 and basic_monitoring_asset.flag != 1 and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
and device_info.type_id in
<foreach collection="typeIdList" item="typeId" open="(" separator="," close=")">
#{typeId}
and device_info.flag = 0 and (device_info.device_id LIKE '%\_85' or device_info.device_id LIKE '%\_85_9003')
and basic_monitoring_asset.flag != 1 and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
and type.device_category_id in
<foreach collection="categoryIdList" item="categoryId" open="(" separator="," close=")">
#{categoryId}
</foreach>
</sql>
@ -73,7 +77,7 @@
drr.receive_ts
</when>
<otherwise>
device_info.id
drr.receive_ts
</otherwise>
</choose>
<choose>
@ -176,7 +180,7 @@
bss.latest_ts
</when>
<otherwise>
device_info.id
bss.latest_ts
</otherwise>
</choose>
<choose>
@ -196,7 +200,8 @@
bss.continuous_running_time,
bss.last_start_time,
bss.last_stop_time,
bss.is_running runningStatus,
bss.latest_ts,
# bss.is_running runningStatus,
4 as classId
<include refid="deviceDataFromAndJoin"/>
left join ba_status_statistics bss on bss.device_info_id = device_info.id
@ -217,7 +222,8 @@
bss.continuous_running_time,
bss.last_start_time,
bss.last_stop_time,
bss.is_running runningStatus,
bss.latest_ts,
# bss.is_running runningStatus,
4 as classId
<include refid="deviceDataFromAndJoin"/>
left join dashboard_device_group_relation ddgr on ddgr.device_info_id = device_info.id
@ -364,7 +370,7 @@
device_info.device_name,
device_info.device_id,
device_info.device_sn,
device_info.type_id,
type.device_category_id categoryId,
device_info.flag,
type.name as typeName,
basic_building.building_id,
@ -419,10 +425,11 @@
#{companyId}
</foreach>
</if>
and device_info.flag = 0 and basic_monitoring_asset.flag != 1 and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
and device_info.type_id in
<foreach collection="typeIdList" item="typeId" open="(" separator="," close=")">
#{typeId}
and device_info.flag = 0 and (device_info.device_id LIKE '%\_85' or device_info.device_id LIKE '%\_85_9003')
and basic_monitoring_asset.flag != 1 and basic_space.flag != 1 and basic_floor.flag != 1 and basic_building.flag != 1
and type.device_category_id in
<foreach collection="categoryIdList" item="categoryId" open="(" separator="," close=")">
#{categoryId}
</foreach>
</where>
<include refid="deviceOrder"/>

34
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/DeviceRawdataRealtimeMapperExt.xml

@ -5,25 +5,29 @@
<select id="getOverviewInfo" resultType="com.dongjian.dashboard.back.vo.data.OverviewInfo">
SELECT
drr.building_id,
bbuilding.building_id,
bbuilding.name AS buildingName,
drr.device_id,
drr.receive_ts,
ah.device_id,
ah.receive_ts,
basic_asset_class_big.id AS monitoringPointCategoryId,
basic_asset_class_big.class_name AS monitoringPointCategoryName
FROM
device_rawdata_realtime drr
INNER JOIN basic_building bbuilding ON drr.building_id = bbuilding.building_id
INNER JOIN device_info dinfo ON dinfo.device_id = drr.device_id
INNER JOIN basic_monitoring_asset on dinfo.asset_id = basic_monitoring_asset.equipment_id
INNER JOIN basic_asset_class_big on basic_asset_class_big.id = basic_monitoring_asset.class_big_id
FROM
basic_building bbuilding
INNER JOIN basic_floor on basic_floor.building_id = bbuilding.building_id
INNER JOIN basic_space on basic_space.floor_id = basic_floor.floor_id
INNER JOIN basic_monitoring_asset on basic_monitoring_asset.space_id = basic_space.space_id
INNER JOIN device_info dinfo ON dinfo.asset_id = basic_monitoring_asset.equipment_id
INNER JOIN alert_history ah ON dinfo.device_id = ah.device_id
LEFT JOIN basic_asset_class_big on basic_asset_class_big.id = basic_monitoring_asset.class_big_id
LEFT JOIN type ty ON dinfo.type_id = ty.id
WHERE
bbuilding.company_id = #{companyId} AND bbuilding.flag = 0 AND dinfo.flag = 0 AND basic_monitoring_asset.flag = 0 AND basic_asset_class_big.flag = 0
AND drr.status = 'alert'
AND dinfo.type_id in
<foreach collection="typeIdList" item="typeId" open="(" separator="," close=")">
#{typeId}
</foreach>
bbuilding.company_id = #{companyId} AND bbuilding.flag = 0 AND basic_floor.flag = 0 AND basic_space.flag = 0
AND basic_monitoring_asset.flag = 0 AND dinfo.flag = 0 AND basic_asset_class_big.flag = 0
AND ah.confirm_status = 0 AND ah.handle_status = 1
AND ty.device_category_id in
<foreach collection="categoryIdList" item="categoryId" open="(" separator="," close=")">
#{categoryId}
</foreach>
</select>
<select id="getBuildingInfo" resultType="com.dongjian.dashboard.back.vo.data.OverviewVO">

13
dongjian-dashboard-back-dao/src/main/resources/mappers/ex/FavoritedDeviceMapperExt.xml

@ -6,7 +6,7 @@
SELECT
fd.device_id,
fd.create_at,
dinfo.type_id,
ty.device_category_id categoryId,
dinfo.id,
dinfo.retain_alert
FROM
@ -16,15 +16,16 @@
left join basic_space on basic_monitoring_asset.space_id = basic_space.space_id
left join basic_floor on basic_space.floor_id = basic_floor.floor_id
left join basic_building on basic_floor.building_id = basic_building.building_id
left join type ty on ty.id = dinfo.type_id
WHERE
dinfo.flag != 1 AND basic_monitoring_asset.flag != 1
AND basic_space.flag != 1 AND basic_floor.flag != 1 AND basic_building.flag != 1
AND basic_building.building_id = #{buildingId}
AND dinfo.company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
<if test="typeIdList != null and typeIdList.size() > 0">
and dinfo.type_id in
<foreach collection="typeIdList" item="typeId" open="(" separator="," close=")">
#{typeId}
<if test="categoryIdList != null and categoryIdList.size() > 0">
and ty.device_category_id in
<foreach collection="categoryIdList" item="categoryId" open="(" separator="," close=")">
#{categoryId}
</foreach>
</if>
order by fd.create_at, fd.device_id desc
@ -59,7 +60,7 @@
</delete>
<select id="getFavoritedDeviceIds" resultType="java.lang.String">
SELECT device_id
SELECT lower(device_id)
FROM favorited_device
</select>

5
dongjian-dashboard-back-dao/src/main/resources/mybatis-generator/generatorConfig.xml

@ -149,5 +149,10 @@
<generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table>
<table tableName="dashboard_notification" domainObjectName="DashboardNotification" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<property name="useActualColumnNames" value="false" />
<generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table>
</context>
</generatorConfiguration>

6
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/data/DataSearchParam.java

@ -20,8 +20,10 @@ public class DataSearchParam extends BaseSearchParams {
@Schema(description = "设备分组ID",example = "122")
private Long deviceGroupId;
@Schema(description = "设备类型",example = "[]", hidden = true)
private List<Integer> typeIdList;
// @Schema(description = "设备类型",example = "[]", hidden = true)
// private List<Integer> typeIdList;
@Schema(description = "设备类别类型",example = "[]", hidden = true)
private List<Long> categoryIdList;
@Schema(description = "设备ID",example = "[]", hidden = true)
private List<String> deviceIdList;

9
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/DeviceSearchParams.java

@ -14,8 +14,13 @@ public class DeviceSearchParams extends BaseSearchParams {
@Schema(description = "building ID")
private Long buildingId;
@Schema(description = "device type",example = "[]", hidden = true)
private List<Integer> typeIdList;
// @Schema(description = "device type",example = "[]", hidden = true)
// private List<Integer> typeIdList;
@Schema(description = "设备类别类型",example = "[]", hidden = true)
private List<Long> categoryIdList;
@Schema(description = "设备分类ID,1-警报设备、2-积算、3-计测、4-状态",example = "1")
private Integer classId;
@Schema(description = "Monitoring point name", example = "Device-Monitoring")
private String monitoringPointName;

6
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/device/FavoritedDeviceSearchParams.java

@ -17,7 +17,9 @@ public class FavoritedDeviceSearchParams extends BaseSearchParams {
@Schema(description = "1-警报设备,2-积算设备,3-计测设备,4-运行状态设备",example = "1")
private Integer classId;
@Schema(description = "设备类型",example = "[]", hidden = true)
private List<Integer> typeIdList;
// @Schema(description = "设备类型",example = "[]", hidden = true)
// private List<Integer> typeIdList;
@Schema(description = "设备类别类型",example = "[]", hidden = true)
private List<Long> categoryIdList;
}

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

@ -9,4 +9,7 @@ public class LineDataSearchParams {
@Schema(description = "device ID")
private String deviceId;
@Schema(description = "属性编码, 默认:single,温湿度设备:temperature或者humidity")
private String[] attrCodeList;
}

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

@ -14,4 +14,7 @@ public class OptDeviceFieldParams {
@Schema(description = "dashboard自动恢复告警时是否保留告警:0-不保留,1-保留", example = "1")
private Integer retainAlert;
@Schema(description = "dashboard自动恢复告警时是否保留告警:0-不保留,1-保留", example = "1")
private String monitoringPointName;
}

9
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/devicegroup/DeviceGroupSearchParams.java

@ -14,13 +14,16 @@ public class DeviceGroupSearchParams extends BaseSearchParams {
@Schema(description = "楼宇ID",example = "222", hidden = true)
private Long buildingId;
@Schema(description = "设备组名",example = "张三李四")
private String name;
@Schema(description = "设备分类ID,2-积算、3-计测、4-状态",example = "2")
private Integer classId;
@Schema(description = "设备组id,多个逗号连接",example = "1,47")
private String deviceGroupIds;
@Schema(description = "设备组id", hidden = true)
private List<Long> deviceGroupIdList;

9
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/dto/devicegroup/OptDeviceGroupParams.java

@ -6,16 +6,19 @@ import lombok.Data;
@Data
public class OptDeviceGroupParams{
@Schema(description = "唯一标识ID,新增时无此参数",example = "2738967")
private Long deviceGroupId;
@Schema(description = "楼宇ID",example = "222")
private Long buildingId;
@Schema(description = "设备分类ID,2-积算、3-计测、4-状态",example = "2")
private Integer classId;
@Schema(description = "所属企业ID",example = "2738967", hidden = true)
private Long companyId;
@Schema(description = "设备组名",example = "testDeviceGroup1", required = true)
private String name;

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceAccumulateDataDTO.java

@ -25,6 +25,9 @@ public class ExportDeviceAccumulateDataDTO {
@ExcelProperty({"数据提供方名称", "Data Provider Name", "データソース"})
private String dataProviderName;
@ExcelProperty({"设备状态", "Device Status", "デバイス状態"})
private String status111;
@ExcelProperty({"累积值", "Cumulative Value", "計測値"})
private String cumulativeValue;

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceBaStatusDataDTO.java

@ -25,6 +25,9 @@ public class ExportDeviceBaStatusDataDTO {
@ExcelProperty({"数据提供方名称", "Data Provider Name", "データソース"})
private String dataProviderName;
@ExcelProperty({"设备状态", "Device Status", "デバイス状態"})
private String status111;
@ExcelProperty(value = {"运行状态", "Running status", "状態"}, converter = RunningStatusConverter.class)
private Integer runningStatus;

4
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/easyexcel/ExportDeviceMeasureDataDTO.java

@ -1,6 +1,7 @@
package com.dongjian.dashboard.back.easyexcel;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@ -24,6 +25,9 @@ public class ExportDeviceMeasureDataDTO {
@ExcelProperty({"数据提供方名称", "Data Provider Name", "データソース"})
private String dataProviderName;
@ExcelProperty({"设备状态", "Device Status", "デバイス状態"})
private String status111;
@ExcelProperty({"测量值", "Measurement value", "計測値"})
private String measurementValue;

370
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardNotification.java

@ -0,0 +1,370 @@
package com.dongjian.dashboard.back.model;
import java.io.Serializable;
public class DashboardNotification implements Serializable {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.id
*
* @mbg.generated
*/
private Long id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.company_id
*
* @mbg.generated
*/
private Long companyId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.demand_time
*
* @mbg.generated
*/
private String demandTime;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.category
*
* @mbg.generated
*/
private String category;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.flag
*
* @mbg.generated
*/
private Integer flag;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.created_at
*
* @mbg.generated
*/
private Long createdAt;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.created_by
*
* @mbg.generated
*/
private Long createdBy;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.updated_at
*
* @mbg.generated
*/
private Long updatedAt;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.updated_by
*
* @mbg.generated
*/
private Long updatedBy;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_notification.content
*
* @mbg.generated
*/
private String content;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
private static final long serialVersionUID = 1L;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.id
*
* @return the value of dashboard_notification.id
*
* @mbg.generated
*/
public Long getId() {
return id;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.id
*
* @param id the value for dashboard_notification.id
*
* @mbg.generated
*/
public void setId(Long id) {
this.id = id;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.company_id
*
* @return the value of dashboard_notification.company_id
*
* @mbg.generated
*/
public Long getCompanyId() {
return companyId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.company_id
*
* @param companyId the value for dashboard_notification.company_id
*
* @mbg.generated
*/
public void setCompanyId(Long companyId) {
this.companyId = companyId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.demand_time
*
* @return the value of dashboard_notification.demand_time
*
* @mbg.generated
*/
public String getDemandTime() {
return demandTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.demand_time
*
* @param demandTime the value for dashboard_notification.demand_time
*
* @mbg.generated
*/
public void setDemandTime(String demandTime) {
this.demandTime = demandTime == null ? null : demandTime.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.category
*
* @return the value of dashboard_notification.category
*
* @mbg.generated
*/
public String getCategory() {
return category;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.category
*
* @param category the value for dashboard_notification.category
*
* @mbg.generated
*/
public void setCategory(String category) {
this.category = category == null ? null : category.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.flag
*
* @return the value of dashboard_notification.flag
*
* @mbg.generated
*/
public Integer getFlag() {
return flag;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.flag
*
* @param flag the value for dashboard_notification.flag
*
* @mbg.generated
*/
public void setFlag(Integer flag) {
this.flag = flag;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.created_at
*
* @return the value of dashboard_notification.created_at
*
* @mbg.generated
*/
public Long getCreatedAt() {
return createdAt;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.created_at
*
* @param createdAt the value for dashboard_notification.created_at
*
* @mbg.generated
*/
public void setCreatedAt(Long createdAt) {
this.createdAt = createdAt;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.created_by
*
* @return the value of dashboard_notification.created_by
*
* @mbg.generated
*/
public Long getCreatedBy() {
return createdBy;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.created_by
*
* @param createdBy the value for dashboard_notification.created_by
*
* @mbg.generated
*/
public void setCreatedBy(Long createdBy) {
this.createdBy = createdBy;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.updated_at
*
* @return the value of dashboard_notification.updated_at
*
* @mbg.generated
*/
public Long getUpdatedAt() {
return updatedAt;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.updated_at
*
* @param updatedAt the value for dashboard_notification.updated_at
*
* @mbg.generated
*/
public void setUpdatedAt(Long updatedAt) {
this.updatedAt = updatedAt;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.updated_by
*
* @return the value of dashboard_notification.updated_by
*
* @mbg.generated
*/
public Long getUpdatedBy() {
return updatedBy;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.updated_by
*
* @param updatedBy the value for dashboard_notification.updated_by
*
* @mbg.generated
*/
public void setUpdatedBy(Long updatedBy) {
this.updatedBy = updatedBy;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_notification.content
*
* @return the value of dashboard_notification.content
*
* @mbg.generated
*/
public String getContent() {
return content;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_notification.content
*
* @param content the value for dashboard_notification.content
*
* @mbg.generated
*/
public void setContent(String content) {
this.content = content == null ? null : content.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", companyId=").append(companyId);
sb.append(", demandTime=").append(demandTime);
sb.append(", category=").append(category);
sb.append(", flag=").append(flag);
sb.append(", createdAt=").append(createdAt);
sb.append(", createdBy=").append(createdBy);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", updatedBy=").append(updatedBy);
sb.append(", content=").append(content);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

862
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardNotificationExample.java

@ -0,0 +1,862 @@
package com.dongjian.dashboard.back.model;
import java.util.ArrayList;
import java.util.List;
public class DashboardNotificationExample {
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
protected String orderByClause;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
protected boolean distinct;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
protected List<Criteria> oredCriteria;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public DashboardNotificationExample() {
oredCriteria = new ArrayList<Criteria>();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public String getOrderByClause() {
return orderByClause;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public boolean isDistinct() {
return distinct;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andCompanyIdIsNull() {
addCriterion("company_id is null");
return (Criteria) this;
}
public Criteria andCompanyIdIsNotNull() {
addCriterion("company_id is not null");
return (Criteria) this;
}
public Criteria andCompanyIdEqualTo(Long value) {
addCriterion("company_id =", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdNotEqualTo(Long value) {
addCriterion("company_id <>", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdGreaterThan(Long value) {
addCriterion("company_id >", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdGreaterThanOrEqualTo(Long value) {
addCriterion("company_id >=", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdLessThan(Long value) {
addCriterion("company_id <", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdLessThanOrEqualTo(Long value) {
addCriterion("company_id <=", value, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdIn(List<Long> values) {
addCriterion("company_id in", values, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdNotIn(List<Long> values) {
addCriterion("company_id not in", values, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdBetween(Long value1, Long value2) {
addCriterion("company_id between", value1, value2, "companyId");
return (Criteria) this;
}
public Criteria andCompanyIdNotBetween(Long value1, Long value2) {
addCriterion("company_id not between", value1, value2, "companyId");
return (Criteria) this;
}
public Criteria andDemandTimeIsNull() {
addCriterion("demand_time is null");
return (Criteria) this;
}
public Criteria andDemandTimeIsNotNull() {
addCriterion("demand_time is not null");
return (Criteria) this;
}
public Criteria andDemandTimeEqualTo(String value) {
addCriterion("demand_time =", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeNotEqualTo(String value) {
addCriterion("demand_time <>", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeGreaterThan(String value) {
addCriterion("demand_time >", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeGreaterThanOrEqualTo(String value) {
addCriterion("demand_time >=", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeLessThan(String value) {
addCriterion("demand_time <", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeLessThanOrEqualTo(String value) {
addCriterion("demand_time <=", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeLike(String value) {
addCriterion("demand_time like", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeNotLike(String value) {
addCriterion("demand_time not like", value, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeIn(List<String> values) {
addCriterion("demand_time in", values, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeNotIn(List<String> values) {
addCriterion("demand_time not in", values, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeBetween(String value1, String value2) {
addCriterion("demand_time between", value1, value2, "demandTime");
return (Criteria) this;
}
public Criteria andDemandTimeNotBetween(String value1, String value2) {
addCriterion("demand_time not between", value1, value2, "demandTime");
return (Criteria) this;
}
public Criteria andCategoryIsNull() {
addCriterion("category is null");
return (Criteria) this;
}
public Criteria andCategoryIsNotNull() {
addCriterion("category is not null");
return (Criteria) this;
}
public Criteria andCategoryEqualTo(String value) {
addCriterion("category =", value, "category");
return (Criteria) this;
}
public Criteria andCategoryNotEqualTo(String value) {
addCriterion("category <>", value, "category");
return (Criteria) this;
}
public Criteria andCategoryGreaterThan(String value) {
addCriterion("category >", value, "category");
return (Criteria) this;
}
public Criteria andCategoryGreaterThanOrEqualTo(String value) {
addCriterion("category >=", value, "category");
return (Criteria) this;
}
public Criteria andCategoryLessThan(String value) {
addCriterion("category <", value, "category");
return (Criteria) this;
}
public Criteria andCategoryLessThanOrEqualTo(String value) {
addCriterion("category <=", value, "category");
return (Criteria) this;
}
public Criteria andCategoryLike(String value) {
addCriterion("category like", value, "category");
return (Criteria) this;
}
public Criteria andCategoryNotLike(String value) {
addCriterion("category not like", value, "category");
return (Criteria) this;
}
public Criteria andCategoryIn(List<String> values) {
addCriterion("category in", values, "category");
return (Criteria) this;
}
public Criteria andCategoryNotIn(List<String> values) {
addCriterion("category not in", values, "category");
return (Criteria) this;
}
public Criteria andCategoryBetween(String value1, String value2) {
addCriterion("category between", value1, value2, "category");
return (Criteria) this;
}
public Criteria andCategoryNotBetween(String value1, String value2) {
addCriterion("category not between", value1, value2, "category");
return (Criteria) this;
}
public Criteria andFlagIsNull() {
addCriterion("flag is null");
return (Criteria) this;
}
public Criteria andFlagIsNotNull() {
addCriterion("flag is not null");
return (Criteria) this;
}
public Criteria andFlagEqualTo(Integer value) {
addCriterion("flag =", value, "flag");
return (Criteria) this;
}
public Criteria andFlagNotEqualTo(Integer value) {
addCriterion("flag <>", value, "flag");
return (Criteria) this;
}
public Criteria andFlagGreaterThan(Integer value) {
addCriterion("flag >", value, "flag");
return (Criteria) this;
}
public Criteria andFlagGreaterThanOrEqualTo(Integer value) {
addCriterion("flag >=", value, "flag");
return (Criteria) this;
}
public Criteria andFlagLessThan(Integer value) {
addCriterion("flag <", value, "flag");
return (Criteria) this;
}
public Criteria andFlagLessThanOrEqualTo(Integer value) {
addCriterion("flag <=", value, "flag");
return (Criteria) this;
}
public Criteria andFlagIn(List<Integer> values) {
addCriterion("flag in", values, "flag");
return (Criteria) this;
}
public Criteria andFlagNotIn(List<Integer> values) {
addCriterion("flag not in", values, "flag");
return (Criteria) this;
}
public Criteria andFlagBetween(Integer value1, Integer value2) {
addCriterion("flag between", value1, value2, "flag");
return (Criteria) this;
}
public Criteria andFlagNotBetween(Integer value1, Integer value2) {
addCriterion("flag not between", value1, value2, "flag");
return (Criteria) this;
}
public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null");
return (Criteria) this;
}
public Criteria andCreatedAtIsNotNull() {
addCriterion("created_at is not null");
return (Criteria) this;
}
public Criteria andCreatedAtEqualTo(Long value) {
addCriterion("created_at =", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotEqualTo(Long value) {
addCriterion("created_at <>", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThan(Long value) {
addCriterion("created_at >", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThanOrEqualTo(Long value) {
addCriterion("created_at >=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThan(Long value) {
addCriterion("created_at <", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThanOrEqualTo(Long value) {
addCriterion("created_at <=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtIn(List<Long> values) {
addCriterion("created_at in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotIn(List<Long> values) {
addCriterion("created_at not in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtBetween(Long value1, Long value2) {
addCriterion("created_at between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotBetween(Long value1, Long value2) {
addCriterion("created_at not between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedByIsNull() {
addCriterion("created_by is null");
return (Criteria) this;
}
public Criteria andCreatedByIsNotNull() {
addCriterion("created_by is not null");
return (Criteria) this;
}
public Criteria andCreatedByEqualTo(Long value) {
addCriterion("created_by =", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByNotEqualTo(Long value) {
addCriterion("created_by <>", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByGreaterThan(Long value) {
addCriterion("created_by >", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByGreaterThanOrEqualTo(Long value) {
addCriterion("created_by >=", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByLessThan(Long value) {
addCriterion("created_by <", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByLessThanOrEqualTo(Long value) {
addCriterion("created_by <=", value, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByIn(List<Long> values) {
addCriterion("created_by in", values, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByNotIn(List<Long> values) {
addCriterion("created_by not in", values, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByBetween(Long value1, Long value2) {
addCriterion("created_by between", value1, value2, "createdBy");
return (Criteria) this;
}
public Criteria andCreatedByNotBetween(Long value1, Long value2) {
addCriterion("created_by not between", value1, value2, "createdBy");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNull() {
addCriterion("updated_at is null");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNotNull() {
addCriterion("updated_at is not null");
return (Criteria) this;
}
public Criteria andUpdatedAtEqualTo(Long value) {
addCriterion("updated_at =", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotEqualTo(Long value) {
addCriterion("updated_at <>", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThan(Long value) {
addCriterion("updated_at >", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThanOrEqualTo(Long value) {
addCriterion("updated_at >=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThan(Long value) {
addCriterion("updated_at <", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThanOrEqualTo(Long value) {
addCriterion("updated_at <=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIn(List<Long> values) {
addCriterion("updated_at in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotIn(List<Long> values) {
addCriterion("updated_at not in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtBetween(Long value1, Long value2) {
addCriterion("updated_at between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotBetween(Long value1, Long value2) {
addCriterion("updated_at not between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedByIsNull() {
addCriterion("updated_by is null");
return (Criteria) this;
}
public Criteria andUpdatedByIsNotNull() {
addCriterion("updated_by is not null");
return (Criteria) this;
}
public Criteria andUpdatedByEqualTo(Long value) {
addCriterion("updated_by =", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByNotEqualTo(Long value) {
addCriterion("updated_by <>", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByGreaterThan(Long value) {
addCriterion("updated_by >", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByGreaterThanOrEqualTo(Long value) {
addCriterion("updated_by >=", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByLessThan(Long value) {
addCriterion("updated_by <", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByLessThanOrEqualTo(Long value) {
addCriterion("updated_by <=", value, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByIn(List<Long> values) {
addCriterion("updated_by in", values, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByNotIn(List<Long> values) {
addCriterion("updated_by not in", values, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByBetween(Long value1, Long value2) {
addCriterion("updated_by between", value1, value2, "updatedBy");
return (Criteria) this;
}
public Criteria andUpdatedByNotBetween(Long value1, Long value2) {
addCriterion("updated_by not between", value1, value2, "updatedBy");
return (Criteria) this;
}
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table dashboard_notification
*
* @mbg.generated do_not_delete_during_merge
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
/**
* This class was generated by MyBatis Generator.
* This class corresponds to the database table dashboard_notification
*
* @mbg.generated
*/
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

34
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRealtimeMeasure.java

@ -12,6 +12,15 @@ public class DashboardRealtimeMeasure implements Serializable {
*/
private String deviceId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_realtime_measure.attr_code
*
* @mbg.generated
*/
private String attrCode;
/**
*
* This field was generated by MyBatis Generator.
@ -134,6 +143,30 @@ public class DashboardRealtimeMeasure implements Serializable {
this.deviceId = deviceId == null ? null : deviceId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_realtime_measure.attr_code
*
* @return the value of dashboard_realtime_measure.attr_code
*
* @mbg.generated
*/
public String getAttrCode() {
return attrCode;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_realtime_measure.attr_code
*
* @param attrCode the value for dashboard_realtime_measure.attr_code
*
* @mbg.generated
*/
public void setAttrCode(String attrCode) {
this.attrCode = attrCode == null ? null : attrCode.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_realtime_measure.date_year
@ -387,6 +420,7 @@ public class DashboardRealtimeMeasure implements Serializable {
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", deviceId=").append(deviceId);
sb.append(", attrCode=").append(attrCode);
sb.append(", dateYear=").append(dateYear);
sb.append(", dateMonth=").append(dateMonth);
sb.append(", dateDay=").append(dateDay);

70
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRealtimeMeasureExample.java

@ -264,6 +264,76 @@ public class DashboardRealtimeMeasureExample {
return (Criteria) this;
}
public Criteria andAttrCodeIsNull() {
addCriterion("attr_code is null");
return (Criteria) this;
}
public Criteria andAttrCodeIsNotNull() {
addCriterion("attr_code is not null");
return (Criteria) this;
}
public Criteria andAttrCodeEqualTo(String value) {
addCriterion("attr_code =", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotEqualTo(String value) {
addCriterion("attr_code <>", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeGreaterThan(String value) {
addCriterion("attr_code >", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeGreaterThanOrEqualTo(String value) {
addCriterion("attr_code >=", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLessThan(String value) {
addCriterion("attr_code <", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLessThanOrEqualTo(String value) {
addCriterion("attr_code <=", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLike(String value) {
addCriterion("attr_code like", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotLike(String value) {
addCriterion("attr_code not like", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeIn(List<String> values) {
addCriterion("attr_code in", values, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotIn(List<String> values) {
addCriterion("attr_code not in", values, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeBetween(String value1, String value2) {
addCriterion("attr_code between", value1, value2, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotBetween(String value1, String value2) {
addCriterion("attr_code not between", value1, value2, "attrCode");
return (Criteria) this;
}
public Criteria andDateYearIsNull() {
addCriterion("date_year is null");
return (Criteria) this;

34
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRecordAccumulate.java

@ -21,6 +21,15 @@ public class DashboardRecordAccumulate implements Serializable {
*/
private String deviceId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_record_accumulate.attr_code
*
* @mbg.generated
*/
private String attrCode;
/**
*
* This field was generated by MyBatis Generator.
@ -167,6 +176,30 @@ public class DashboardRecordAccumulate implements Serializable {
this.deviceId = deviceId == null ? null : deviceId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_record_accumulate.attr_code
*
* @return the value of dashboard_record_accumulate.attr_code
*
* @mbg.generated
*/
public String getAttrCode() {
return attrCode;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_record_accumulate.attr_code
*
* @param attrCode the value for dashboard_record_accumulate.attr_code
*
* @mbg.generated
*/
public void setAttrCode(String attrCode) {
this.attrCode = attrCode == null ? null : attrCode.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_record_accumulate.date_year
@ -421,6 +454,7 @@ public class DashboardRecordAccumulate implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", deviceId=").append(deviceId);
sb.append(", attrCode=").append(attrCode);
sb.append(", dateYear=").append(dateYear);
sb.append(", dateMonth=").append(dateMonth);
sb.append(", dateDay=").append(dateDay);

70
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DashboardRecordAccumulateExample.java

@ -324,6 +324,76 @@ public class DashboardRecordAccumulateExample {
return (Criteria) this;
}
public Criteria andAttrCodeIsNull() {
addCriterion("attr_code is null");
return (Criteria) this;
}
public Criteria andAttrCodeIsNotNull() {
addCriterion("attr_code is not null");
return (Criteria) this;
}
public Criteria andAttrCodeEqualTo(String value) {
addCriterion("attr_code =", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotEqualTo(String value) {
addCriterion("attr_code <>", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeGreaterThan(String value) {
addCriterion("attr_code >", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeGreaterThanOrEqualTo(String value) {
addCriterion("attr_code >=", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLessThan(String value) {
addCriterion("attr_code <", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLessThanOrEqualTo(String value) {
addCriterion("attr_code <=", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeLike(String value) {
addCriterion("attr_code like", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotLike(String value) {
addCriterion("attr_code not like", value, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeIn(List<String> values) {
addCriterion("attr_code in", values, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotIn(List<String> values) {
addCriterion("attr_code not in", values, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeBetween(String value1, String value2) {
addCriterion("attr_code between", value1, value2, "attrCode");
return (Criteria) this;
}
public Criteria andAttrCodeNotBetween(String value1, String value2) {
addCriterion("attr_code not between", value1, value2, "attrCode");
return (Criteria) this;
}
public Criteria andDateYearIsNull() {
addCriterion("date_year is null");
return (Criteria) this;

34
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceGroup.java

@ -30,6 +30,15 @@ public class DeviceGroup implements Serializable {
*/
private Long buildingId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dashboard_device_group.class_id
*
* @mbg.generated
*/
private Integer classId;
/**
*
* This field was generated by MyBatis Generator.
@ -155,6 +164,30 @@ public class DeviceGroup implements Serializable {
this.buildingId = buildingId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_device_group.class_id
*
* @return the value of dashboard_device_group.class_id
*
* @mbg.generated
*/
public Integer getClassId() {
return classId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column dashboard_device_group.class_id
*
* @param classId the value for dashboard_device_group.class_id
*
* @mbg.generated
*/
public void setClassId(Integer classId) {
this.classId = classId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column dashboard_device_group.name
@ -290,6 +323,7 @@ public class DeviceGroup implements Serializable {
sb.append(", id=").append(id);
sb.append(", companyId=").append(companyId);
sb.append(", buildingId=").append(buildingId);
sb.append(", classId=").append(classId);
sb.append(", name=").append(name);
sb.append(", remark=").append(remark);
sb.append(", flag=").append(flag);

60
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceGroupExample.java

@ -374,6 +374,66 @@ public class DeviceGroupExample {
return (Criteria) this;
}
public Criteria andClassIdIsNull() {
addCriterion("class_id is null");
return (Criteria) this;
}
public Criteria andClassIdIsNotNull() {
addCriterion("class_id is not null");
return (Criteria) this;
}
public Criteria andClassIdEqualTo(Integer value) {
addCriterion("class_id =", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdNotEqualTo(Integer value) {
addCriterion("class_id <>", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdGreaterThan(Integer value) {
addCriterion("class_id >", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdGreaterThanOrEqualTo(Integer value) {
addCriterion("class_id >=", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdLessThan(Integer value) {
addCriterion("class_id <", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdLessThanOrEqualTo(Integer value) {
addCriterion("class_id <=", value, "classId");
return (Criteria) this;
}
public Criteria andClassIdIn(List<Integer> values) {
addCriterion("class_id in", values, "classId");
return (Criteria) this;
}
public Criteria andClassIdNotIn(List<Integer> values) {
addCriterion("class_id not in", values, "classId");
return (Criteria) this;
}
public Criteria andClassIdBetween(Integer value1, Integer value2) {
addCriterion("class_id between", value1, value2, "classId");
return (Criteria) this;
}
public Criteria andClassIdNotBetween(Integer value1, Integer value2) {
addCriterion("class_id not between", value1, value2, "classId");
return (Criteria) this;
}
public Criteria andNameIsNull() {
addCriterion("`name` is null");
return (Criteria) this;

136
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceInfo.java

@ -94,6 +94,15 @@ public class DeviceInfo implements Serializable {
*/
private Long assetId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column device_info.gateway_client_id
*
* @mbg.generated
*/
private Integer gatewayClientId;
/**
*
* This field was generated by MyBatis Generator.
@ -220,6 +229,33 @@ public class DeviceInfo implements Serializable {
*/
private Integer retainAlert;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column device_info.unit
*
* @mbg.generated
*/
private String unit;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column device_info.dashboard_decimal_places
*
* @mbg.generated
*/
private Integer dashboardDecimalPlaces;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column device_info.data_mapping
*
* @mbg.generated
*/
private String dataMapping;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table device_info
@ -468,6 +504,30 @@ public class DeviceInfo implements Serializable {
this.assetId = assetId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_info.gateway_client_id
*
* @return the value of device_info.gateway_client_id
*
* @mbg.generated
*/
public Integer getGatewayClientId() {
return gatewayClientId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column device_info.gateway_client_id
*
* @param gatewayClientId the value for device_info.gateway_client_id
*
* @mbg.generated
*/
public void setGatewayClientId(Integer gatewayClientId) {
this.gatewayClientId = gatewayClientId;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_info.flag
@ -804,6 +864,78 @@ public class DeviceInfo implements Serializable {
this.retainAlert = retainAlert;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_info.unit
*
* @return the value of device_info.unit
*
* @mbg.generated
*/
public String getUnit() {
return unit;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column device_info.unit
*
* @param unit the value for device_info.unit
*
* @mbg.generated
*/
public void setUnit(String unit) {
this.unit = unit == null ? null : unit.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_info.dashboard_decimal_places
*
* @return the value of device_info.dashboard_decimal_places
*
* @mbg.generated
*/
public Integer getDashboardDecimalPlaces() {
return dashboardDecimalPlaces;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column device_info.dashboard_decimal_places
*
* @param dashboardDecimalPlaces the value for device_info.dashboard_decimal_places
*
* @mbg.generated
*/
public void setDashboardDecimalPlaces(Integer dashboardDecimalPlaces) {
this.dashboardDecimalPlaces = dashboardDecimalPlaces;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_info.data_mapping
*
* @return the value of device_info.data_mapping
*
* @mbg.generated
*/
public String getDataMapping() {
return dataMapping;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column device_info.data_mapping
*
* @param dataMapping the value for device_info.data_mapping
*
* @mbg.generated
*/
public void setDataMapping(String dataMapping) {
this.dataMapping = dataMapping == null ? null : dataMapping.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table device_info
@ -826,6 +958,7 @@ public class DeviceInfo implements Serializable {
sb.append(", remark=").append(remark);
sb.append(", buildingId=").append(buildingId);
sb.append(", assetId=").append(assetId);
sb.append(", gatewayClientId=").append(gatewayClientId);
sb.append(", flag=").append(flag);
sb.append(", companyId=").append(companyId);
sb.append(", createdBy=").append(createdBy);
@ -840,6 +973,9 @@ public class DeviceInfo implements Serializable {
sb.append(", gatewayInfoId=").append(gatewayInfoId);
sb.append(", alarmLevel=").append(alarmLevel);
sb.append(", retainAlert=").append(retainAlert);
sb.append(", unit=").append(unit);
sb.append(", dashboardDecimalPlaces=").append(dashboardDecimalPlaces);
sb.append(", dataMapping=").append(dataMapping);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();

190
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceInfoExample.java

@ -835,6 +835,66 @@ public class DeviceInfoExample {
return (Criteria) this;
}
public Criteria andGatewayClientIdIsNull() {
addCriterion("gateway_client_id is null");
return (Criteria) this;
}
public Criteria andGatewayClientIdIsNotNull() {
addCriterion("gateway_client_id is not null");
return (Criteria) this;
}
public Criteria andGatewayClientIdEqualTo(Integer value) {
addCriterion("gateway_client_id =", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdNotEqualTo(Integer value) {
addCriterion("gateway_client_id <>", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdGreaterThan(Integer value) {
addCriterion("gateway_client_id >", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdGreaterThanOrEqualTo(Integer value) {
addCriterion("gateway_client_id >=", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdLessThan(Integer value) {
addCriterion("gateway_client_id <", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdLessThanOrEqualTo(Integer value) {
addCriterion("gateway_client_id <=", value, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdIn(List<Integer> values) {
addCriterion("gateway_client_id in", values, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdNotIn(List<Integer> values) {
addCriterion("gateway_client_id not in", values, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdBetween(Integer value1, Integer value2) {
addCriterion("gateway_client_id between", value1, value2, "gatewayClientId");
return (Criteria) this;
}
public Criteria andGatewayClientIdNotBetween(Integer value1, Integer value2) {
addCriterion("gateway_client_id not between", value1, value2, "gatewayClientId");
return (Criteria) this;
}
public Criteria andFlagIsNull() {
addCriterion("flag is null");
return (Criteria) this;
@ -1684,6 +1744,136 @@ public class DeviceInfoExample {
addCriterion("retain_alert not between", value1, value2, "retainAlert");
return (Criteria) this;
}
public Criteria andUnitIsNull() {
addCriterion("unit is null");
return (Criteria) this;
}
public Criteria andUnitIsNotNull() {
addCriterion("unit is not null");
return (Criteria) this;
}
public Criteria andUnitEqualTo(String value) {
addCriterion("unit =", value, "unit");
return (Criteria) this;
}
public Criteria andUnitNotEqualTo(String value) {
addCriterion("unit <>", value, "unit");
return (Criteria) this;
}
public Criteria andUnitGreaterThan(String value) {
addCriterion("unit >", value, "unit");
return (Criteria) this;
}
public Criteria andUnitGreaterThanOrEqualTo(String value) {
addCriterion("unit >=", value, "unit");
return (Criteria) this;
}
public Criteria andUnitLessThan(String value) {
addCriterion("unit <", value, "unit");
return (Criteria) this;
}
public Criteria andUnitLessThanOrEqualTo(String value) {
addCriterion("unit <=", value, "unit");
return (Criteria) this;
}
public Criteria andUnitLike(String value) {
addCriterion("unit like", value, "unit");
return (Criteria) this;
}
public Criteria andUnitNotLike(String value) {
addCriterion("unit not like", value, "unit");
return (Criteria) this;
}
public Criteria andUnitIn(List<String> values) {
addCriterion("unit in", values, "unit");
return (Criteria) this;
}
public Criteria andUnitNotIn(List<String> values) {
addCriterion("unit not in", values, "unit");
return (Criteria) this;
}
public Criteria andUnitBetween(String value1, String value2) {
addCriterion("unit between", value1, value2, "unit");
return (Criteria) this;
}
public Criteria andUnitNotBetween(String value1, String value2) {
addCriterion("unit not between", value1, value2, "unit");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesIsNull() {
addCriterion("dashboard_decimal_places is null");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesIsNotNull() {
addCriterion("dashboard_decimal_places is not null");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesEqualTo(Integer value) {
addCriterion("dashboard_decimal_places =", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesNotEqualTo(Integer value) {
addCriterion("dashboard_decimal_places <>", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesGreaterThan(Integer value) {
addCriterion("dashboard_decimal_places >", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesGreaterThanOrEqualTo(Integer value) {
addCriterion("dashboard_decimal_places >=", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesLessThan(Integer value) {
addCriterion("dashboard_decimal_places <", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesLessThanOrEqualTo(Integer value) {
addCriterion("dashboard_decimal_places <=", value, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesIn(List<Integer> values) {
addCriterion("dashboard_decimal_places in", values, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesNotIn(List<Integer> values) {
addCriterion("dashboard_decimal_places not in", values, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesBetween(Integer value1, Integer value2) {
addCriterion("dashboard_decimal_places between", value1, value2, "dashboardDecimalPlaces");
return (Criteria) this;
}
public Criteria andDashboardDecimalPlacesNotBetween(Integer value1, Integer value2) {
addCriterion("dashboard_decimal_places not between", value1, value2, "dashboardDecimalPlaces");
return (Criteria) this;
}
}
/**

34
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceRawdataRealtime.java

@ -84,6 +84,15 @@ public class DeviceRawdataRealtime implements Serializable {
*/
private Integer uploadDay;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column device_rawdata_realtime.dashboard_status
*
* @mbg.generated
*/
private String dashboardStatus;
/**
*
* This field was generated by MyBatis Generator.
@ -335,6 +344,30 @@ public class DeviceRawdataRealtime implements Serializable {
this.uploadDay = uploadDay;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_rawdata_realtime.dashboard_status
*
* @return the value of device_rawdata_realtime.dashboard_status
*
* @mbg.generated
*/
public String getDashboardStatus() {
return dashboardStatus;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column device_rawdata_realtime.dashboard_status
*
* @param dashboardStatus the value for device_rawdata_realtime.dashboard_status
*
* @mbg.generated
*/
public void setDashboardStatus(String dashboardStatus) {
this.dashboardStatus = dashboardStatus == null ? null : dashboardStatus.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column device_rawdata_realtime.alert_content
@ -428,6 +461,7 @@ public class DeviceRawdataRealtime implements Serializable {
sb.append(", uploadYear=").append(uploadYear);
sb.append(", uploadMonth=").append(uploadMonth);
sb.append(", uploadDay=").append(uploadDay);
sb.append(", dashboardStatus=").append(dashboardStatus);
sb.append(", alertContent=").append(alertContent);
sb.append(", alertCancelContent=").append(alertCancelContent);
sb.append(", rawData=").append(rawData);

70
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/model/DeviceRawdataRealtimeExample.java

@ -773,6 +773,76 @@ public class DeviceRawdataRealtimeExample {
addCriterion("upload_day not between", value1, value2, "uploadDay");
return (Criteria) this;
}
public Criteria andDashboardStatusIsNull() {
addCriterion("dashboard_status is null");
return (Criteria) this;
}
public Criteria andDashboardStatusIsNotNull() {
addCriterion("dashboard_status is not null");
return (Criteria) this;
}
public Criteria andDashboardStatusEqualTo(String value) {
addCriterion("dashboard_status =", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusNotEqualTo(String value) {
addCriterion("dashboard_status <>", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusGreaterThan(String value) {
addCriterion("dashboard_status >", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusGreaterThanOrEqualTo(String value) {
addCriterion("dashboard_status >=", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusLessThan(String value) {
addCriterion("dashboard_status <", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusLessThanOrEqualTo(String value) {
addCriterion("dashboard_status <=", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusLike(String value) {
addCriterion("dashboard_status like", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusNotLike(String value) {
addCriterion("dashboard_status not like", value, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusIn(List<String> values) {
addCriterion("dashboard_status in", values, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusNotIn(List<String> values) {
addCriterion("dashboard_status not in", values, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusBetween(String value1, String value2) {
addCriterion("dashboard_status between", value1, value2, "dashboardStatus");
return (Criteria) this;
}
public Criteria andDashboardStatusNotBetween(String value1, String value2) {
addCriterion("dashboard_status not between", value1, value2, "dashboardStatus");
return (Criteria) this;
}
}
/**

28
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/dashboardnotification/DashboardNotificationPageVO.java

@ -0,0 +1,28 @@
package com.dongjian.dashboard.back.vo.dashboardnotification;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @author Mr.Jiang
* @time 2022年7月21日 下午8:50:31
*/
@Data
public class DashboardNotificationPageVO {
@Schema(description = "Provider unique identifier ID, not required for new entries", example = "2738967")
private Long dashboardNotificationId;
@Schema(description = "demand time", example = "testProvider1")
private String demandTime;
@Schema(description = "category", example = "remark")
private String category;
@Schema(description ="content", example = "2")
private String content;
@Schema(description = "created time", example = "2738967")
private Long createdAt;
}

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

@ -12,6 +12,9 @@ public class BaseData {
@Schema(description = "deviceId", example = "12-34")
private String deviceId;
@Schema(description = "device name", example = "12-34")
private String deviceName;
@Schema(description = "upload timestamp", example = "1740033000234")
private Long uploadTimestamp;
@ -33,8 +36,10 @@ public class BaseData {
@Schema(description = "data provider icon", example = "")
private String dataProviderThumbnailBase64;
@Schema(description = "device type", example = "86")
private Integer typeId;
// @Schema(description = "device type", example = "86")
// private Integer typeId;
@Schema(description = "category id", example = "86")
private Long categoryId;
@Schema(description = "1-警报设备,2-积算设备,3-计测设备,4-运行状态设备",example = "1")
private Integer classId;
@ -45,4 +50,13 @@ public class BaseData {
@Schema(description = "dashboard自动恢复告警时是否保留告警:0-不保留,1-保留", example = "1")
private Integer retainAlert;
@Schema(description = "unit", example = "cm")
private String unit;
@Schema(description = "data mapping", example = "{\"default\":{\"1\":\"漏水\",\"2\":\"漏电\",\"3\":\"起火\"}")
private String dataMapping;
@Schema(description = "数据小数位数", example = "2")
private Integer dashboardDecimalPlaces;
}

6
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceAccumulateData.java

@ -17,10 +17,10 @@ public class DeviceAccumulateData extends BaseData{
@Schema(description = "Last Year's Value", example = "11")
private String lastYearValue;
@Schema(description = "unit", example = "cm")
private String unit;
@Schema(description = "raw data", example = "", hidden = true)
private String rawData;
@Schema(description = "device status", example = "障害")
private String status111;
}

11
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceBaStatusData.java

@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
public class DeviceBaStatusData extends BaseData{
@Schema(description = "running status: 0-停止, 1-运行", example = "1")
private Integer runningStatus;
private String runningStatus;
@Schema(description = "last start time", example = "1720000000000")
private Long lastStartTime;
@ -23,4 +23,13 @@ public class DeviceBaStatusData extends BaseData{
@Schema(description = "continuous running time", example = "0h 11m 45s")
private String continuousRunningTimeStr;
@Schema(description = "device status", example = "障害")
private String status111;
@Schema(description = "stop/running: 0-停止, 1-运行", example = "1")
private Integer stopRun;
@Schema(description = "last stop time", example = "1720000000000", hidden = true)
private String latestTs;
}

6
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/data/DeviceMeasureData.java

@ -17,10 +17,10 @@ public class DeviceMeasureData extends BaseData{
@Schema(description = "Minimum value", example = "11")
private String minValue;
@Schema(description = "unit", example = "cm")
private String unit;
@Schema(description = "raw data", example = "", hidden = true)
private String rawData;
@Schema(description = "device status", example = "障害")
private String status111;
}

2
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/DeviceVO.java

@ -69,4 +69,6 @@ public class DeviceVO {
@Schema(description = "gateway info", example = "33")
private String gatewayInfoName;
private Long categoryId;
}

6
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/FavoritedDeviceVO.java

@ -16,8 +16,10 @@ public class FavoritedDeviceVO {
@Schema(description = "Favorite time", example = "1760010000223")
private Long createAt;
@Schema(description = "type id", example = "46")
private Integer typeId;
// @Schema(description = "type id", example = "46")
// private Integer typeId;
@Schema(description = "category id", example = "1001")
private Long categoryId;
@Schema(description = "dashboard自动恢复告警时是否保留告警:0-不保留,1-保留", example = "1")
private Integer retainAlert;

3
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/device/LineData.java

@ -9,6 +9,9 @@ import java.util.List;
@Data
public class LineData {
@Schema(description = "属性编码, 默认:single,温湿度设备:temperature或者humidity")
private String attrCode;
@Schema(description = "X-axis data", example = "[]")
private List<Object> xData = new ArrayList<>();

11
dongjian-dashboard-back-model/src/main/java/com/dongjian/dashboard/back/vo/devicegroup/DeviceGroupPageVO.java

@ -5,20 +5,23 @@ import lombok.Data;
@Data
public class DeviceGroupPageVO {
@Schema(description = "项目唯一标识ID,新增时无此参数",example = "2738967")
private Long deviceGroupId;
@Schema(description = "楼宇ID",example = "222", hidden = true)
private Long buildingId;
@Schema(description = "设备分类ID,2-积算、3-计测、4-状态",example = "2")
private Integer classId;
@Schema(description = "楼宇名称",example = "楼宇222", hidden = true)
private String buildingName;
@Schema(description = "所属企业ID",example = "2738967", hidden = true)
private Long companyId;
@Schema(description = "项目名称",example = "testDeviceGroup1", required = true)
@Schema(description = "名称",example = "testDeviceGroup1", required = true)
private String name;
@Schema(description = "remark", example = "remark")

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceDataAccumulateService.java

@ -18,5 +18,5 @@ public interface DeviceDataAccumulateService {
List<DeviceAccumulateData> handleDeviceAccumulateData(AccumulateDataSearchParam pageSearchParam);
SimpleDataResponse<LineData> getLineData(LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType);
SimpleDataResponse<List<LineData>> getLineData(LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType);
}

2
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceDataMeasureService.java

@ -18,5 +18,5 @@ public interface DeviceDataMeasureService {
List<DeviceMeasureData> handleDeviceMeasureData(MeasureDataSearchParam pageSearchParam);
SimpleDataResponse<LineData> getLineData(LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType);
SimpleDataResponse<List<LineData>> getLineData(Integer searchType, LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType);
}

5
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/DeviceGroupService.java

@ -3,6 +3,7 @@ package com.dongjian.dashboard.back.service;
import com.dongjian.dashboard.back.common.response.PageInfo;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.dto.devicegroup.*;
import com.dongjian.dashboard.back.vo.device.DeviceVO;
import com.dongjian.dashboard.back.vo.devicegroup.DeviceGroupPageVO;
import java.util.List;
@ -28,9 +29,9 @@ public interface DeviceGroupService {
SimpleDataResponse getBindedGroupByDevice(Integer deviceInfoId, Long userId, Long companyId, Integer languageType);
SimpleDataResponse getBindedDeviceByGroup(Long deviceGroupId, Long userId, Long companyId, Integer languageType);
PageInfo<DeviceVO> getBindedDeviceByGroup(DeviceGroupSearchParams pageSearchParam, Long userId, Long companyId, Integer languageType);
SimpleDataResponse addDeviceForGroup(BindDeviceForGroupParams bindDeviceForGroupParams, Long userId, Long companyId, Integer languageType);
SimpleDataResponse addDeviceForGroup(BindDeviceForGroupParams bindDeviceForGroupParams, Long userId, Long companyId, Integer languageType);
SimpleDataResponse delDeviceForGroup(BindDeviceForGroupParams bindDeviceForGroupParams, Long userId, Long companyId, Integer languageType);
}

3
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/OverviewService.java

@ -1,6 +1,7 @@
package com.dongjian.dashboard.back.service;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.vo.dashboardnotification.DashboardNotificationPageVO;
import com.dongjian.dashboard.back.vo.data.OverviewVO;
import com.dongjian.dashboard.back.weather.JpMeshHourlyForecasts;
import com.dongjian.dashboard.back.weather.QueryWeather;
@ -15,4 +16,6 @@ public interface OverviewService {
SimpleDataResponse<List<OverviewVO>> getOverviewInfo(Long userId, Long companyId, Integer languageType, Integer UTCOffset);
SimpleDataResponse<JpMeshHourlyForecasts> getWeatherInfo(QueryWeather queryWeather, Long userId, Long companyId, Integer languageType, Integer utcOffset);
SimpleDataResponse<DashboardNotificationPageVO> getNotification(Long userId, Long companyId, Integer languageType, Integer utcOffset);
}

484
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/CommonOpt.java

@ -1,14 +1,13 @@
package com.dongjian.dashboard.back.service.common;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.math.BigDecimal;
import java.sql.*;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -16,10 +15,9 @@ import java.util.stream.Collectors;
import com.dongjian.dashboard.back.common.Constants;
import com.dongjian.dashboard.back.common.response.ResponseCode;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.dao.ex.BasicUserMapperExt;
import com.dongjian.dashboard.back.dao.ex.LevelMapperExt;
import com.dongjian.dashboard.back.dao.ex.UserBuildingRelationMapperExt;
import com.dongjian.dashboard.back.dao.ex.*;
import com.dongjian.dashboard.back.dto.device.LineDataSearchParams;
import com.dongjian.dashboard.back.model.*;
import com.dongjian.dashboard.back.util.DESUtil;
import com.dongjian.dashboard.back.vo.building.BindedBuildingVO;
import com.dongjian.dashboard.back.vo.company.AuroraInfo;
@ -34,8 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.dongjian.dashboard.back.dao.ex.BasicCompanyMapperExt;
import com.dongjian.dashboard.back.model.BasicCompany;
import com.dongjian.dashboard.back.util.CommonUtil;
/**
@ -47,6 +43,17 @@ public class CommonOpt {
private static Logger logger = LoggerFactory.getLogger(CommonOpt.class);
public enum ExtractStrategy {
FIRST,
LAST
}
public static final String SUFFIX_85 = "_85";
public static final String SUFFIX_85_9003 = "_85_9003";
public static final String SUFFIX_111 = "_111";
public static final String SUFFIX_111_9003 = "_111_9003";
public static final String SUFFIX_S = "_S";
@Value("${spring.datasource.url}")
private String dbUrl;
@ -58,6 +65,10 @@ public class CommonOpt {
private UserBuildingRelationMapperExt userBuildingRelationMapperExt;
@Autowired
private LevelMapperExt levelMapperExt;
@Autowired
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private DeviceInfoMapperExt deviceInfoMapperExt;
/**
@ -145,6 +156,23 @@ public class CommonOpt {
return dbUrl.replaceAll(regex, "$1" + auroraHost + "$3");
}
public String extractValue(ObjectMapper mapper, Long categoryId, String rawData) {
if (Constants.DEVICE_TYPE_TEMPERATURE_HUMIDITY.contains(categoryId)){
List<String> values = extractAllValues(mapper, rawData);
List<String> result = new ArrayList<>();
for (int i = 0; i < values.size(); i++){
if (0 == i){
result.add(values.get(i));
} else if (1 == i){
result.add(values.get(i));
}
}
return StringUtils.join(result, ",");
} else {
return extractFirstValue(mapper, rawData);
}
}
public String extractFirstValue(ObjectMapper mapper, String rawData) {
if (StringUtils.isBlank(rawData)){
return "";
@ -161,6 +189,53 @@ public class CommonOpt {
return "";
}
public String extractLastValue(ObjectMapper mapper, String rawData) {
if (StringUtils.isBlank(rawData)) {
return "";
}
try {
JsonNode node = mapper.readTree(rawData);
Iterator<Map.Entry<String, JsonNode>> fields = node.fields();
JsonNode lastValue = null;
while (fields.hasNext()) {
lastValue = fields.next().getValue();
}
return lastValue != null ? lastValue.asText() : "";
} catch (Exception e) {
logger.error("Failed to parse rawData JSON: " + rawData, e);
}
return "";
}
public List<String> extractAllValues(ObjectMapper mapper, String rawData) {
List<String> result = new ArrayList<>();
if (StringUtils.isBlank(rawData)) {
return result;
}
try {
JsonNode node = mapper.readTree(rawData);
if (!node.isObject()) {
return result;
}
Iterator<Map.Entry<String, JsonNode>> fields = node.fields();
while (fields.hasNext()) {
JsonNode valueNode = fields.next().getValue();
result.add(valueNode.isValueNode() ? valueNode.asText() : valueNode.toString());
}
} catch (Exception e) {
logger.error("Failed to parse multi rawData JSON: {}", rawData, e);
}
return result;
}
public List<Long> getBindBuildingIdList(Long userId) {
Integer buildingManager = basicUserMapperExt.checkBuildingManager(userId);
if (buildingManager > 0) {
@ -205,61 +280,143 @@ public class CommonOpt {
return dateList;
}
public LineData getLineData(Long companyId, LineDataSearchParams lineDataSearchParams) {
LineData lineData = new LineData();
try {
Map<String, Object> apikeyParamMap = new HashMap<>();
apikeyParamMap.put("companyId", companyId);
AuroraInfo apikeyInfo = getAuroraInfoByApikey(apikeyParamMap);
if (null == apikeyInfo) {
logger.error("Failed to get AuroraInfo for companyId: {}", companyId);
return lineData;
public List<LineData> getLineData(Long companyId, LineDataSearchParams lineDataSearchParams, int deviceType) {
List<LineData> lineDataList = new ArrayList<>();
for (String attrCode : lineDataSearchParams.getAttrCodeList()){
DeviceInfo deviceInfo = getDeviceInfoByDeviceId(lineDataSearchParams.getDeviceId());
if (null == deviceInfo){
continue;
}
LineData lineData = new LineData();
lineData.setAttrCode(attrCode);
try {
Map<String, Object> apikeyParamMap = new HashMap<>();
apikeyParamMap.put("companyId", companyId);
AuroraInfo apikeyInfo = getAuroraInfoByApikey(apikeyParamMap);
if (null == apikeyInfo) {
logger.error("Failed to get AuroraInfo for companyId: {}", companyId);
lineDataList.add(lineData);
}
if (StringUtils.isNotBlank(apikeyInfo.getAuroraUrl())) {
Class.forName("com.mysql.cj.jdbc.Driver");
if (StringUtils.isNotBlank(apikeyInfo.getAuroraUrl())) {
Class.forName("com.mysql.cj.jdbc.Driver");
String regex = "(jdbc:mysql://)([^/]+)(/data_center_aeon_admin.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(dbUrl);
String newJdbcUrl = "";
if (matcher.find()) {
newJdbcUrl = matcher.replaceAll("$1" + apikeyInfo.getAuroraUrl() + "$3");
}
String regex = "(jdbc:mysql://)([^/]+)(/data_center_aeon_admin.*)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(dbUrl);
String newJdbcUrl = "";
if (matcher.find()) {
newJdbcUrl = matcher.replaceAll("$1" + apikeyInfo.getAuroraUrl() + "$3");
}
try (Connection conn = DriverManager.getConnection(
newJdbcUrl.replace("data_center_aeon_admin", "aeon") + "&allowPublicKeyRetrieval=true",
DESUtil.decrypt(apikeyInfo.getAuroraUsername(), Constants.DES_SALT),
DESUtil.decrypt(apikeyInfo.getAuroraPassword(), Constants.DES_SALT))) {
List<String> dateList = getPreDay(1);
for (String date : dateList) {
//获取昨天的值,这里只针对累积设备
Double lastDayValue = null;
if (deviceType == 2) {
lastDayValue = getLastDayValue(conn, date, lineDataSearchParams.getDeviceId());
}
try (Connection conn = DriverManager.getConnection(
newJdbcUrl.replace("data_center_aeon_admin", "aeon") + "&allowPublicKeyRetrieval=true",
DESUtil.decrypt(apikeyInfo.getAuroraUsername(), Constants.DES_SALT),
DESUtil.decrypt(apikeyInfo.getAuroraPassword(), Constants.DES_SALT))) {
List<String> dateList = getPreDay(1);
for (String date : dateList) {
String baseSql = "SELECT rawData, receive_ts FROM rawData_" + date + " WHERE deviceId = ? order by receive_ts ";
String sql = baseSql;
logger.info("getLineData sql: {}", sql);
try (PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.setString(1, lineDataSearchParams.getDeviceId());
try (ResultSet result = preparedStatement.executeQuery()) {
if (result.next()) {
processResult(result, lineData);
// 提取年、月、日
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy_MM_dd");
LocalDate currentDate = LocalDate.parse(date, formatter);
int year = currentDate.getYear();
int month = currentDate.getMonthValue();
int day = currentDate.getDayOfMonth();
String sql = "";
if (deviceType == 2){
sql = "SELECT upload_value, upload_at FROM dashboard_record_accumulate " +
"WHERE device_id = ? AND attr_code = ? AND date_year = ? AND date_month = ? AND date_day = ? order by id ";
} else if (deviceType == 3){
sql = "SELECT upload_value, upload_at FROM dashboard_record_measure " +
"WHERE device_id = ? AND attr_code = ? AND date_year = ? AND date_month = ? AND date_day = ? order by id ";
}
logger.info("getLineData sql: {}", sql);
try (PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.setString(1, lineDataSearchParams.getDeviceId());
preparedStatement.setString(2, attrCode);
preparedStatement.setInt(3, year); // 设置年份
preparedStatement.setInt(4, month); // 设置月份
preparedStatement.setInt(5, day); // 设置日期
try (ResultSet result = preparedStatement.executeQuery()) {
if (result.next()) {
if (deviceType == 2) {
processResult(result, lineData, deviceInfo, lastDayValue);
} else if (deviceType == 3) {
processResult(result, lineData, deviceInfo);
}
}
}
}
}
} catch (Exception e) {
logger.error("getLineData processing aurora error", e);
}
} catch (Exception e) {
logger.error("getLineData processing aurora error", e);
}
} catch (Exception e) {
logger.error("getLineData error", e);
}
lineDataList.add(lineData);
}
return lineDataList;
}
} catch (Exception e) {
logger.error("getLineData error", e);
private DeviceInfo getDeviceInfoByDeviceId(String deviceId) {
DeviceInfoExample example = new DeviceInfoExample();
example.createCriteria()
.andDeviceIdEqualTo(deviceId)
.andFlagEqualTo(0);
List<DeviceInfo> list = deviceInfoMapperExt.selectByExample(example);
return list.isEmpty() ? null : list.get(0);
}
private Double getLastDayValue(Connection conn, String date, String deviceId) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy_MM_dd");
// 解析日期字符串为 LocalDate 对象
LocalDate previousDate = LocalDate.parse(date, formatter);
// 获取前一天的日期
LocalDate previousDay = previousDate.minusDays(1);
// 获取年、月、日
int year = previousDay.getYear();
int month = previousDay.getMonthValue();
int day = previousDay.getDayOfMonth();
String sql = "SELECT upload_value FROM dashboard_realtime_accumulate_day " +
"WHERE device_id = ? AND date_year = ? AND date_month = ? AND date_day = ?";
logger.info("getUploadValue sql: {}", sql);
try (PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.setString(1, deviceId); // 设置设备ID
preparedStatement.setInt(2, year); // 设置年份
preparedStatement.setInt(3, month); // 设置月份
preparedStatement.setInt(4, day); // 设置日期
try (ResultSet result = preparedStatement.executeQuery()) {
if (result.next()) {
String uploadValue = result.getString("upload_value");
logger.info("Found upload_value: {}", uploadValue);
return new BigDecimal(uploadValue).doubleValue();
} else {
logger.warn("No data found for deviceId: {} on {}/{}/{}", deviceId, year, month, day);
}
}
} catch (SQLException e) {
logger.error("Error getLastDayValue query: ", e);
}
return lineData;
return null;
}
private void processResult(ResultSet result, LineData lineData) {
private void processResult(ResultSet result, LineData lineData, DeviceInfo deviceInfo) {
try {
// 用于存储 xData 和 yData
List<Object> xDataList = new ArrayList<>();
@ -272,8 +429,8 @@ public class CommonOpt {
// 遍历查询结果
do {
// 获取 receive_ts 和 rawData
long receiveTs = result.getLong("receive_ts");
String rawData = result.getString("rawData");
long receiveTs = result.getLong("upload_at");
String value = result.getString("upload_value");
// 如果 receiveTs 为 0(表示无效时间戳),跳过当前行
if (receiveTs == 0) {
@ -289,11 +446,71 @@ public class CommonOpt {
xDataList.add(formattedDate);
// 将 rawData解析 添加到 yData
String value = extractFirstValue(mapper, rawData);
yDataList.add(StringUtils.isBlank(value) ? "0" : value);
// String value = extractFirstValue(mapper, rawData);
yDataList.add(CommonUtil.formatDecimal(StringUtils.isBlank(value) ? "0" : value, deviceInfo.getDashboardDecimalPlaces()));
} while (result.next());
lineData.getXData().addAll(xDataList);
lineData.getYData().addAll(yDataList);
} catch (Exception e) {
logger.error("Error processing result set", e);
}
}
private void processResult(ResultSet result, LineData lineData, DeviceInfo deviceInfo, Double lastDayValue) {
try {
// 用于存储 xData 和 yData
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
// 使用 DateTimeFormatter 来格式化时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
ObjectMapper mapper = new ObjectMapper();
// 用于存储每个小时最后一条数据(仅在 deviceType = 2 时使用)
Map<String, Double> lastHourData = new LinkedHashMap<>(); // 按插入顺序保存数据
// 遍历查询结果
do {
// 获取 receive_ts 和 rawData
long receiveTs = result.getLong("upload_at");
String value = result.getString("upload_value");
// 如果 receiveTs 为 0(表示无效时间戳),跳过当前行
if (receiveTs == 0) {
continue; // 跳过当前循环的剩余部分,继续处理下一行
}
// 将 long 时间戳转换为 LocalDateTime(日本时区)
Instant instant = Instant.ofEpochMilli(receiveTs);
String formattedDate = instant.atZone(ZoneId.of("Asia/Tokyo"))
.toLocalDateTime()
.format(formatter);
// 将 rawData解析 添加到 yData
// String value = extractFirstValue(mapper, rawData);
double todayValue = StringUtils.isBlank(value) ? 0.0 : new BigDecimal(value).doubleValue();
//计算差值
double yValue = todayValue;//默认今天值
if (null != lastDayValue && yValue >= lastDayValue){
yValue = todayValue - lastDayValue;
}
// 按小时分组,每个小时只保存最后一条数据
String hourKey = formattedDate.substring(0, 13) + ":00:00";
lastHourData.put(hourKey, yValue);
} while (result.next());
//只取每小时的最后一条数据
for (Map.Entry<String, Double> entry : lastHourData.entrySet()) {
xDataList.add(entry.getKey()); // 添加每小时的时间
yDataList.add(CommonUtil.formatDecimal(entry.getValue(), deviceInfo.getDashboardDecimalPlaces())); // 添加每小时最后一条数据的值
}
// 将处理后的数据加入到 lineData 中
lineData.getXData().addAll(xDataList);
lineData.getYData().addAll(yDataList);
@ -302,4 +519,163 @@ public class CommonOpt {
}
}
public Map<String, String> buildDeviceId85To111Map(List<String> deviceIds) {
return deviceIds.stream()
.filter(id -> id.endsWith(SUFFIX_85) || id.endsWith(SUFFIX_85_9003))
.collect(Collectors.toMap(
String::toLowerCase,
id -> {
if (id.endsWith(SUFFIX_85_9003)) {
return (id.substring(0, id.length() - SUFFIX_85_9003.length()) + SUFFIX_111_9003)
.toLowerCase();
} else {
return (id.substring(0, id.length() - SUFFIX_85.length()) + SUFFIX_111)
.toLowerCase();
}
},
(a, b) -> b
));
}
public Map<String, String> buildDeviceId85ToSMap(List<String> deviceIds) {
return deviceIds.stream()
.filter(id -> id.endsWith(SUFFIX_85) || id.endsWith(SUFFIX_85_9003))
.collect(Collectors.toMap(
String::toLowerCase,
id -> (id + SUFFIX_S).toLowerCase(),
(a, b) -> b
));
}
public Map<String, DeviceInfo> queryDeviceInfoMap(List<String> deviceIdList) {
if (CollectionUtils.isEmpty(deviceIdList)) {
return Collections.emptyMap();
}
DeviceInfoExample example = new DeviceInfoExample();
example.createCriteria().andDeviceIdIn(deviceIdList).andFlagEqualTo(0);
return deviceInfoMapperExt
.selectByExampleWithBLOBs(example)
.stream()
.collect(Collectors.toMap(
d -> d.getDeviceId().toLowerCase(),
Function.identity(),
(a, b) -> b
));
}
public Map<String, DeviceRawdataRealtime> queryRealtimeMap(List<String> deviceIdList) {
if (CollectionUtils.isEmpty(deviceIdList)) {
return Collections.emptyMap();
}
DeviceRawdataRealtimeExample example = new DeviceRawdataRealtimeExample();
example.createCriteria().andDeviceIdIn(deviceIdList);
return deviceRawdataRealtimeMapperExt
.selectByExampleWithBLOBs(example)
.stream()
.collect(Collectors.toMap(
r -> r.getDeviceId().toLowerCase(),
Function.identity(),
(a, b) -> b
));
}
public String buildStatus111(
String deviceId,
Map<String, String> deviceId85To111Map,
Map<String, DeviceInfo> deviceInfo111Map,
Map<String, DeviceRawdataRealtime> realtime111Map,
ObjectMapper objectMapper
) {
String deviceId111 = deviceId85To111Map.get(deviceId);
if (deviceId111 == null) {
return null;
}
DeviceRawdataRealtime realtime111 = realtime111Map.get(deviceId111);
String dataMapping111 = Optional.ofNullable(deviceInfo111Map.get(deviceId111))
.map(DeviceInfo::getDataMapping)
.orElse(null);
return mapFirstValue(objectMapper, dataMapping111, realtime111);
}
public String mapFirstValue(ObjectMapper mapper, String dataMapping, DeviceRawdataRealtime deviceRawdataRealtime) {
return mapValue(mapper, dataMapping, deviceRawdataRealtime, ExtractStrategy.FIRST);
}
public String mapLastValue(ObjectMapper mapper, String dataMapping, DeviceRawdataRealtime deviceRawdataRealtime) {
return mapValue(mapper, dataMapping, deviceRawdataRealtime, ExtractStrategy.LAST);
}
public String mapValue(ObjectMapper mapper, String dataMapping,
DeviceRawdataRealtime deviceRawdataRealtime, ExtractStrategy strategy) {
if (deviceRawdataRealtime == null) {
return null;
}
try {
String statusValue;
if (strategy == ExtractStrategy.FIRST) {
statusValue = extractFirstValue(mapper, deviceRawdataRealtime.getRawData());
} else {
statusValue = extractLastValue(mapper, deviceRawdataRealtime.getRawData());
}
if(StringUtils.isBlank(dataMapping)){
return statusValue;
}
JsonNode root = mapper.readTree(dataMapping);
JsonNode mappedNode = root.path("default").path(statusValue);
// default 里有映射值 → 返回映射值
if (!mappedNode.isMissingNode() && !mappedNode.isNull()) {
String mappedValue = mappedNode.asText();
if (StringUtils.isNotBlank(mappedValue)) {
return mappedValue;
}
}
// default 里取不到 → 返回原始值
return statusValue;
} catch (Exception e) {
logger.error("dataMapping parse error, mapping={}", dataMapping, e);
return null;
}
}
public String buildRawFirstValue(String deviceId, Map<String, String> deviceId85To111Map,
Map<String, DeviceRawdataRealtime> realtime111Map, ObjectMapper mapper) {
return Optional.ofNullable(deviceId85To111Map.get(deviceId))
.map(realtime111Map::get)
.map(DeviceRawdataRealtime::getRawData)
.map(data -> extractFirstValue(mapper, data))
.orElse(null);
}
public Integer judgeStopRun(ObjectMapper objectMapper, DeviceRawdataRealtime deviceRawdataRealtime) {
if (deviceRawdataRealtime == null) {
return null;
}
try {
String statusValue = extractLastValue(objectMapper, deviceRawdataRealtime.getRawData());
if ("0".equals(statusValue)){
return 0;
} else {
return 1;
}
} catch (Exception e) {
logger.error("judgeStopRun error", e);
return null;
}
}
}

69
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/common/LineDataHourAggregator.java

@ -0,0 +1,69 @@
package com.dongjian.dashboard.back.service.common;
import com.dongjian.dashboard.back.vo.device.LineData;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/**
* 给计测设备按小时聚合数据求平均值
*/
public class LineDataHourAggregator {
private static final DateTimeFormatter INPUT_FMT =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter HOUR_FMT =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:00");
public static void aggregateByHour(LineData lineData) {
List<Object> xData = lineData.getXData();
List<Object> yData = lineData.getYData();
if (xData == null || yData == null || xData.size() != yData.size()) {
return;
}
// hour -> List<Double>
Map<String, List<Double>> hourMap = new TreeMap<>();
for (int i = 0; i < xData.size(); i++) {
String timeStr = String.valueOf(xData.get(i));
Object yVal = yData.get(i);
if (yVal == null) {
continue;
}
LocalDateTime time = LocalDateTime.parse(timeStr, INPUT_FMT);
String hourKey = time.format(HOUR_FMT);
hourMap.computeIfAbsent(hourKey, k -> new ArrayList<>()).add(Double.parseDouble(String.valueOf(yVal)));
}
// 重新构建 xData / yData
List<Object> newX = new ArrayList<>();
List<Object> newY = new ArrayList<>();
for (Map.Entry<String, List<Double>> entry : hourMap.entrySet()) {
newX.add(entry.getKey());
double avg = entry.getValue()
.stream()
.mapToDouble(Double::doubleValue)
.average()
.orElse(0);
newY.add(avg);
}
lineData.setXData(newX);
lineData.setYData(newY);
}
}

7
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/CommonServiceImpl.java

@ -12,6 +12,7 @@ import com.dongjian.dashboard.back.common.response.ResponseCode;
import com.dongjian.dashboard.back.dto.common.BatchGetFileTemporaryParams;
import com.dongjian.dashboard.back.model.S3FileMapping;
import com.dongjian.dashboard.back.model.S3FileMappingExample;
import com.dongjian.dashboard.back.util.DESUtil;
import com.dongjian.dashboard.back.vo.common.TemporaryInfo;
import com.dongjian.dashboard.back.vo.company.AuroraInfo;
import org.apache.commons.collections.CollectionUtils;
@ -129,10 +130,10 @@ public class CommonServiceImpl implements CommonService {
DataSourceContextHolder.setCurrentDataSourceKey(Constants.DATASOURCE_PREFIX+ apikeyInfo.getId());
String bucketName = awsBucketAdress;
String accessKey = awsAccessKeyId;
String secretKey = awsAccessSecret;
AwsBasicCredentials awsCredentials = AwsBasicCredentials.create(accessKey, secretKey);
AwsBasicCredentials awsCredentials = AwsBasicCredentials.create(
DESUtil.decrypt(awsAccessKeyId, Constants.DES_SALT),
DESUtil.decrypt(awsAccessSecret, Constants.DES_SALT));
Region region = Region.AP_NORTHEAST_1;
S3Presigner presigner = null;

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

@ -15,11 +15,14 @@ import com.dongjian.dashboard.back.common.response.PageInfo;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.dao.aurora.DashboardRecordAccumulateMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceInfoMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt;
import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt;
import com.dongjian.dashboard.back.dto.data.AccumulateDataSearchParam;
import com.dongjian.dashboard.back.dto.device.LineDataSearchParams;
import com.dongjian.dashboard.back.model.DeviceRawdataRealtime;
import com.dongjian.dashboard.back.service.DeviceDataAccumulateService;
import com.dongjian.dashboard.back.service.common.CommonOpt;
import com.dongjian.dashboard.back.util.CommonUtil;
import com.dongjian.dashboard.back.util.DateUtil;
import com.dongjian.dashboard.back.vo.data.DeviceAccumulateData;
import com.dongjian.dashboard.back.vo.device.DeviceIncrement;
@ -38,12 +41,16 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
private static final Logger logger = LoggerFactory.getLogger(DeviceDataAccumulateServiceImpl.class);
private static final ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private DeviceInfoMapperExt deviceInfoMapperExt;
@Autowired
private FavoritedDeviceMapperExt favoritedDeviceMapperExt;
@Autowired
private DashboardRecordAccumulateMapperExt dashboardRecordAccumulateMapperExt;
@Autowired
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private MsgLanguageChange msgLanguageChange;
@Autowired
@ -80,7 +87,7 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
}
}
pageSearchParam.setTypeIdList(Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_ACCUMULATE));
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(Constants.CATEGORY_ACCUMULATE));
if (null != pageSearchParam.getDeviceGroupId()){
resultList = deviceInfoMapperExt.getDevice4AccumulateDataByGroup(pageSearchParam);
} else {
@ -93,7 +100,40 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
List<String> deviceIds = resultList.stream()
.map(DeviceAccumulateData::getDeviceId)
.collect(Collectors.toList());
.toList();
// 查询 111状态 数据
Map<String, String> deviceId85To111Map = commonOpt.buildDeviceId85To111Map(deviceIds);
List<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
// Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111);
// 查询S备用设备的数据,因为先看备用S设备,有S的话优先用这个
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(deviceIds);
List<String> deviceIdList_S = deviceId85ToSMap.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtimeSMap = commonOpt.queryRealtimeMap(deviceIdList_S);
// 筛选出S后缀里数据更新的设备,用于查今天的积算值
List<String> todayDeviceIds = new ArrayList<>(deviceIds);
for (DeviceAccumulateData data : resultList) {
String rawDeviceId = data.getDeviceId();
String sDeviceId = deviceId85ToSMap.get(rawDeviceId.toLowerCase());
DeviceRawdataRealtime sRealtime = realtimeSMap.get(sDeviceId);
if (sRealtime == null || sRealtime.getReceiveTs() == null) {
continue;
}
//sRealtime存在且有receive_ts时
Long uploadTs = data.getUploadTimestamp();
if (uploadTs == null || sRealtime.getReceiveTs() > uploadTs) {
todayDeviceIds.remove(rawDeviceId);
todayDeviceIds.add(sDeviceId);
}
}
LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Tokyo"));
LocalDate today = now.toLocalDate();
@ -103,22 +143,29 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
int targetSeconds = now.toLocalTime().toSecondOfDay();
// 批量查询增量数据并构建 Map
Map<String, DeviceIncrement> todayMap = dashboardRecordAccumulateMapperExt.selectTodayIncrement(deviceIds, today.getYear(), today.getMonthValue(), today.getDayOfMonth())
.stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity()));
Map<String, DeviceIncrement> todayMap = dashboardRecordAccumulateMapperExt.selectTodayIncrement(todayDeviceIds, today.getYear(), today.getMonthValue(), today.getDayOfMonth())
.stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity()));
Map<String, DeviceIncrement> yesterdayMap = dashboardRecordAccumulateMapperExt.selectYesterdayIncrement(deviceIds, yesterday.getYear(), yesterday.getMonthValue(), yesterday.getDayOfMonth(), targetSeconds)
.stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity()));
.stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity()));
Map<String, DeviceIncrement> lastYearMap = dashboardRecordAccumulateMapperExt.selectLastYearIncrement(deviceIds, lastYear.getYear(), lastYear.getMonthValue(), lastYear.getDayOfMonth(), targetSeconds)
.stream().collect(Collectors.toMap(DeviceIncrement::getDeviceId, Function.identity()));
ObjectMapper mapper = new ObjectMapper();
.stream().collect(Collectors.toMap(di -> di.getDeviceId().toLowerCase(), Function.identity()));
resultList.forEach(data -> {
String deviceId = data.getDeviceId();
// 填充今天/昨天/去年值
data.setCumulativeValue(getIncrement(todayMap.get(deviceId), DeviceIncrement::getTodayIncrement));
data.setYesterdayValue(getIncrement(yesterdayMap.get(deviceId), DeviceIncrement::getYesterdayIncrement));
data.setLastYearValue(getIncrement(lastYearMap.get(deviceId), DeviceIncrement::getLastYearIncrement));
String deviceId = data.getDeviceId().toLowerCase();
String sDeviceId = deviceId85ToSMap.get(deviceId);
//*** 填充今天/昨天/去年值 **//
// 今天值,要先看备用S设备,有S的话优先用这个
data.setCumulativeValue(CommonUtil.formatDecimal(
getIncrement(todayDeviceIds.contains(sDeviceId) ? todayMap.get(sDeviceId) : todayMap.get(deviceId), DeviceIncrement::getTodayIncrement),
data.getDashboardDecimalPlaces())
);
data.setYesterdayValue(CommonUtil.formatDecimal(getIncrement(yesterdayMap.get(deviceId), DeviceIncrement::getYesterdayIncrement), data.getDashboardDecimalPlaces()));
data.setLastYearValue(CommonUtil.formatDecimal(getIncrement(lastYearMap.get(deviceId), DeviceIncrement::getLastYearIncrement), data.getDashboardDecimalPlaces()));
//处理111状态映射
// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper));
data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper));
// favorited 判断
data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);
@ -136,9 +183,9 @@ public class DeviceDataAccumulateServiceImpl implements DeviceDataAccumulateServ
}
@Override
public SimpleDataResponse<LineData> getLineData(LineDataSearchParams lineDataSearchParams,
public SimpleDataResponse<List<LineData>> getLineData(LineDataSearchParams lineDataSearchParams,
Long companyId, Long userId, Integer languageType) {
return SimpleDataResponse.success(commonOpt.getLineData(companyId, lineDataSearchParams));
return SimpleDataResponse.success(commonOpt.getLineData(companyId, lineDataSearchParams, 2));
}

5
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataAlarmServiceImpl.java

@ -88,7 +88,7 @@ public class DeviceDataAlarmServiceImpl implements DeviceDataAlarmService {
}
}
pageSearchParam.setTypeIdList(Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_ALARM));
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(Constants.CATEGORY_ALARM));
if (null != pageSearchParam.getDeviceGroupId()){
resultList = deviceInfoMapperExt.getDevice4AlarmDataByGroup(pageSearchParam);
} else {
@ -99,8 +99,9 @@ public class DeviceDataAlarmServiceImpl implements DeviceDataAlarmService {
// 查询 favorited_device 表中所有设备的 device_id
List<String> favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds();
for (DeviceAlarmData data : resultList){
String deviceId = data.getDeviceId().toLowerCase();
// 判断设备是否在 favorited_device 表中
if (favoritedDeviceIds.contains(data.getDeviceId())) {
if (favoritedDeviceIds.contains(deviceId)) {
data.setCollected(1);
} else {
data.setCollected(0);

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

@ -4,12 +4,21 @@ import com.dongjian.dashboard.back.common.Constants;
import com.dongjian.dashboard.back.common.language.msg.MsgLanguageChange;
import com.dongjian.dashboard.back.common.response.PageInfo;
import com.dongjian.dashboard.back.dao.ex.DeviceInfoMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt;
import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt;
import com.dongjian.dashboard.back.dto.data.BaStatusDataSearchParam;
import com.dongjian.dashboard.back.easyexcel.SecondsToHMSConverter;
import com.dongjian.dashboard.back.model.DeviceInfo;
import com.dongjian.dashboard.back.model.DeviceInfoExample;
import com.dongjian.dashboard.back.model.DeviceRawdataRealtime;
import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample;
import com.dongjian.dashboard.back.service.DeviceDataBaStatusService;
import com.dongjian.dashboard.back.service.common.CommonOpt;
import com.dongjian.dashboard.back.vo.data.DeviceAccumulateData;
import com.dongjian.dashboard.back.vo.data.DeviceBaStatusData;
import com.dongjian.dashboard.back.vo.data.DeviceMeasureData;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@ -22,6 +31,8 @@ import org.springframework.stereotype.Service;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService {
@ -31,10 +42,14 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
@Value("${spring.datasource.url}")
private String dbUrl;
private static final ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private DeviceInfoMapperExt deviceInfoMapperExt;
@Autowired
private FavoritedDeviceMapperExt favoritedDeviceMapperExt;
@Autowired
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private MsgLanguageChange msgLanguageChange;
@Autowired
@ -72,7 +87,7 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
}
}
pageSearchParam.setTypeIdList(Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_STATUS));
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(Constants.CATEGORY_STATUS));
if (null != pageSearchParam.getDeviceGroupId()){
resultList = deviceInfoMapperExt.getDevice4BaStatusDataByGroup(pageSearchParam);
} else {
@ -80,15 +95,76 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService
}
if (CollectionUtils.isNotEmpty(resultList)) {
List<String> deviceIds = resultList.stream()
.map(DeviceBaStatusData::getDeviceId)
.toList();
// 查询 111状态 数据
Map<String, String> deviceId85To111Map = commonOpt.buildDeviceId85To111Map(deviceIds);
List<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
Map<String, DeviceRawdataRealtime> realtime85Map = commonOpt.queryRealtimeMap(deviceIds);
// Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111);
// 查询S备用设备的数据
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(deviceIds);
List<String> deviceIdList_S = deviceId85ToSMap.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtimeSMap = commonOpt.queryRealtimeMap(deviceIdList_S);
// 筛选出S后缀里,数据更新的设备,用于查状态
List<String> sNewerDeviceIds = new ArrayList<>();
for (DeviceBaStatusData data : resultList) {
String rawDeviceId = data.getDeviceId();
String sDeviceId = deviceId85ToSMap.get(rawDeviceId.toLowerCase());
DeviceRawdataRealtime sRealtime = realtimeSMap.get(sDeviceId);
if (sRealtime == null || sRealtime.getReceiveTs() == null) {
continue;
}
//sRealtime存在且有receive_ts时
Long uploadTs = data.getUploadTimestamp();
if (uploadTs == null || sRealtime.getReceiveTs() > uploadTs) {
sNewerDeviceIds.add(sDeviceId);
}
}
//找出s的数据映射
Map<String, DeviceInfo> sDeviceInfo = commonOpt.queryDeviceInfoMap(sNewerDeviceIds);
// 查询 favorited_device 表中所有设备的 device_id
List<String> favoritedDeviceIds = favoritedDeviceMapperExt.getFavoritedDeviceIds();
long currentTs = System.currentTimeMillis();
for (DeviceBaStatusData data : resultList){
data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime()));
String deviceId = data.getDeviceId().toLowerCase();
String sDeviceId = deviceId85ToSMap.get(deviceId);
//处理111状态映射
// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper));
data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper));
if(sNewerDeviceIds.contains(sDeviceId)) {
data.setRunningStatus(commonOpt.mapLastValue(objectMapper, sDeviceInfo.get(sDeviceId).getDataMapping(), realtimeSMap.get(sDeviceId)));
} else {
data.setRunningStatus(commonOpt.mapLastValue(objectMapper, data.getDataMapping(), realtime85Map.get(deviceId)));
}
// 判断设备是否在 favorited_device 表中
if (favoritedDeviceIds.contains(data.getDeviceId())) {
data.setCollected(1);
data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);
//停止、运行状态
if(sNewerDeviceIds.contains(sDeviceId)) {
data.setStopRun(commonOpt.judgeStopRun(objectMapper, realtimeSMap.get(sDeviceId)));
} else {
data.setCollected(0);
data.setStopRun(commonOpt.judgeStopRun(objectMapper, realtime85Map.get(deviceId)));
}
if (0 == data.getStopRun()) {
data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(data.getContinuousRunningTime()));
} else if (StringUtils.isNotBlank(data.getLatestTs()) && currentTs >= Long.parseLong(data.getLatestTs())) {
long diff = currentTs - Long.parseLong(data.getLatestTs());
data.setContinuousRunningTimeStr(SecondsToHMSConverter.covertSeconds(diff));
}
}
}

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

@ -1,19 +1,28 @@
package com.dongjian.dashboard.back.service.impl;
import com.dongjian.dashboard.back.common.Constants;
import com.dongjian.dashboard.back.common.DeviceAttrCode;
import com.dongjian.dashboard.back.common.language.msg.MsgLanguageChange;
import com.dongjian.dashboard.back.common.response.PageInfo;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.dao.aurora.DashboardRealtimeMeasureMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceInfoMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt;
import com.dongjian.dashboard.back.dao.ex.FavoritedDeviceMapperExt;
import com.dongjian.dashboard.back.dto.data.MeasureDataSearchParam;
import com.dongjian.dashboard.back.dto.device.LineDataSearchParams;
import com.dongjian.dashboard.back.model.DashboardRealtimeMeasure;
import com.dongjian.dashboard.back.model.DeviceInfo;
import com.dongjian.dashboard.back.model.DeviceRawdataRealtime;
import com.dongjian.dashboard.back.model.DeviceRawdataRealtimeExample;
import com.dongjian.dashboard.back.service.DeviceDataMeasureService;
import com.dongjian.dashboard.back.service.common.CommonOpt;
import com.dongjian.dashboard.back.service.common.LineDataHourAggregator;
import com.dongjian.dashboard.back.util.CommonUtil;
import com.dongjian.dashboard.back.vo.data.DeviceAccumulateData;
import com.dongjian.dashboard.back.vo.data.DeviceMeasureData;
import com.dongjian.dashboard.back.vo.device.LineData;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
@ -40,18 +49,28 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
@Value("${spring.datasource.url}")
private String dbUrl;
private static final ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private DeviceInfoMapperExt deviceInfoMapperExt;
@Autowired
private FavoritedDeviceMapperExt favoritedDeviceMapperExt;
@Autowired
private DashboardRealtimeMeasureMapperExt dashboardRealtimeMeasureMapperExt;
@Autowired
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private MsgLanguageChange msgLanguageChange;
@Autowired
private CommonOpt commonOpt;
private static final Comparator<DashboardRealtimeMeasure> TEMP_HUMIDITY_COMPARATOR =
Comparator.comparingInt(m -> {
if (DeviceAttrCode.MEASURE_TEMPERATURE.equals(m.getAttrCode())) return 0;
if (DeviceAttrCode.MEASURE_HUMIDITY.equals(m.getAttrCode())) return 1;
return 99;
});
@Override
@ -83,7 +102,7 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
}
}
pageSearchParam.setTypeIdList(Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_MEASURE));
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(Constants.CATEGORY_MEASURE));
if (null != pageSearchParam.getDeviceGroupId()){
resultList = deviceInfoMapperExt.getDevice4MeasureDataByGroup(pageSearchParam);
} else {
@ -98,6 +117,37 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
.map(DeviceMeasureData::getDeviceId)
.filter(Objects::nonNull).toList();
// 查询 111状态 数据
Map<String, String> deviceId85To111Map = commonOpt.buildDeviceId85To111Map(deviceIds);
List<String> deviceIdList_111 = deviceId85To111Map.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtime111Map = commonOpt.queryRealtimeMap(deviceIdList_111);
// Map<String, DeviceInfo> deviceInfo111Map = commonOpt.queryDeviceInfoMap(deviceIdList_111);
// 查询S备用设备的数据
Map<String, String> deviceId85ToSMap = commonOpt.buildDeviceId85ToSMap(deviceIds);
List<String> deviceIdList_S = deviceId85ToSMap.values()
.stream()
.toList();
Map<String, DeviceRawdataRealtime> realtimeSMap = commonOpt.queryRealtimeMap(deviceIdList_S);
// 筛选出S后缀里,数据更新的设备,用于查测量值
List<String> searchDeviceIds = new ArrayList<>(deviceIds);
for (DeviceMeasureData data : resultList) {
String rawDeviceId = data.getDeviceId();
String sDeviceId = deviceId85ToSMap.get(rawDeviceId.toLowerCase());
DeviceRawdataRealtime sRealtime = realtimeSMap.get(sDeviceId);
if (sRealtime == null || sRealtime.getReceiveTs() == null) {
continue;
}
//sRealtime存在且有receive_ts时
Long uploadTs = data.getUploadTimestamp();
if (uploadTs == null || sRealtime.getReceiveTs() > uploadTs) {
searchDeviceIds.add(sDeviceId);
}
}
ZoneId tokyoZone = ZoneId.of("Asia/Tokyo");
LocalDate tokyoToday = LocalDate.now(tokyoZone);
int year = tokyoToday.getYear();
@ -106,35 +156,73 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
// 查询 dashboard_realtime_measure 数据
List<DashboardRealtimeMeasure> realtimeList =
dashboardRealtimeMeasureMapperExt.selectRealtimeMeasureByDevices(deviceIds);
// 转 map:device_id -> 数据对象
Map<String, DashboardRealtimeMeasure> realtimeMap = realtimeList.stream()
.collect(Collectors.toMap(DashboardRealtimeMeasure::getDeviceId, Function.identity()));
ObjectMapper mapper = new ObjectMapper();
dashboardRealtimeMeasureMapperExt.selectRealtimeMeasureByDevices(searchDeviceIds);
Map<String, List<DashboardRealtimeMeasure>> realtimeMap = realtimeList.stream()
.collect(Collectors.groupingBy(m -> m.getDeviceId().toLowerCase()));
for (DeviceMeasureData data : resultList) {
String deviceId = data.getDeviceId();
String deviceId = data.getDeviceId().toLowerCase();
// 默认 measurementValue 从 rawData 提取
data.setMeasurementValue(commonOpt.extractFirstValue(mapper, data.getRawData()));
data.setMeasurementValue(commonOpt.extractValue(objectMapper, data.getCategoryId(), data.getRawData()));
// 如果在实时表中存在记录,则更新 measurementValue/max/min
DashboardRealtimeMeasure realtime = realtimeMap.get(deviceId);
if (realtime != null) {
// upload_value 始终作为 measurementValue
if (StringUtils.isNotBlank(realtime.getUploadValue())) {
data.setMeasurementValue(realtime.getUploadValue());
List<DashboardRealtimeMeasure> realtime = realtimeMap.get(deviceId);
List<DashboardRealtimeMeasure> realtimeS = realtimeMap.get(deviceId85ToSMap.get(deviceId));// 20260109需求,对测量值,要先看备用S设备,有S的话优先用这个
if (CollectionUtils.isNotEmpty(realtime)) {
List<DashboardRealtimeMeasure> sortedRealtime = realtime;
List<DashboardRealtimeMeasure> sortedRealtimeS = realtimeS;
if (Constants.DEVICE_TYPE_TEMPERATURE_HUMIDITY.contains(data.getCategoryId())){
// 根据 attrCode 排序,temperature 排在前,humidity 排在后
sortedRealtime = realtime.stream()
.sorted(TEMP_HUMIDITY_COMPARATOR)
.toList();
if (realtimeS != null) {
sortedRealtimeS = realtimeS.stream()
.sorted(TEMP_HUMIDITY_COMPARATOR)
.toList();
}
}
// 获取所有 MeasurementValue 并用逗号连接(不需要日期过滤)
// 20260109需求,对测量值,要先看备用S设备,有S的话优先用这个,最大值最小值不需要
List<DashboardRealtimeMeasure> source =
(sortedRealtimeS != null && !sortedRealtimeS.isEmpty())
? sortedRealtimeS
: sortedRealtime;
String measurementValues = source.stream()
.map(DashboardRealtimeMeasure::getUploadValue) // 提取每个 UploadValue
.filter(StringUtils::isNotBlank) // 过滤空值
.collect(Collectors.joining(","));
// 仅当日期 == 今天时才设置 max/min
if (year == realtime.getDateYear() && month == realtime.getDateMonth() && day == realtime.getDateDay()) {
data.setMaxValue(realtime.getMaxValue());
data.setMinValue(realtime.getMinValue());
}
List<DashboardRealtimeMeasure> todayMeasures = sortedRealtime.stream()
.filter(measure -> year == measure.getDateYear() &&
month == measure.getDateMonth() &&
day == measure.getDateDay())
.toList();
// 获取所有 MaxValue 并用逗号连接(仅限日期是今天的数据)
String maxValues = todayMeasures.stream()
.map(measure -> String.valueOf(measure.getMaxValue())) // 提取每个 MaxValue
.collect(Collectors.joining(","));
// 获取所有 MinValue 并用逗号连接(仅限日期是今天的数据)
String minValues = todayMeasures.stream()
.map(measure -> String.valueOf(measure.getMinValue())) // 提取每个 MinValue
.collect(Collectors.joining(","));
// 设置 data 中的属性
data.setMeasurementValue(CommonUtil.formatDecimal(measurementValues, data.getDashboardDecimalPlaces()));
data.setMaxValue(CommonUtil.formatDecimal(maxValues, data.getDashboardDecimalPlaces()));
data.setMinValue(CommonUtil.formatDecimal(minValues, data.getDashboardDecimalPlaces()));
}
//处理111状态映射
// data.setStatus111(commonOpt.buildStatus111(deviceId, deviceId85To111Map, deviceInfo111Map, realtime111Map, objectMapper));
data.setStatus111(commonOpt.buildRawFirstValue(deviceId, deviceId85To111Map, realtime111Map, objectMapper));
// 收藏状态
data.setCollected(favoritedDeviceIds.contains(deviceId) ? 1 : 0);
}
@ -144,8 +232,15 @@ public class DeviceDataMeasureServiceImpl implements DeviceDataMeasureService {
}
@Override
public SimpleDataResponse<LineData> getLineData(LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType) {
return SimpleDataResponse.success(commonOpt.getLineData(companyId, lineDataSearchParams));
public SimpleDataResponse<List<LineData>> getLineData(Integer searchType, LineDataSearchParams lineDataSearchParams, Long companyId, Long userId, Integer languageType) {
if (null == searchType) {
searchType = 2;//默认全部数据
}
List<LineData> lineDataList = commonOpt.getLineData(companyId, lineDataSearchParams, 3);
if (1 == searchType && CollectionUtils.isNotEmpty(lineDataList)) {
lineDataList.forEach(LineDataHourAggregator::aggregateByHour);
}
return SimpleDataResponse.success(lineDataList);
}
}

29
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceGroupServiceImpl.java

@ -110,6 +110,11 @@ public class DeviceGroupServiceImpl implements DeviceGroupService {
throw new MsgCodeException(msgLanguageChange.getParameterMapByCode(languageType, "noOperationAuth"));
}
}
if (null == param.getClassId()){
throw new MsgCodeException("Parameter error [classId]");
} else if (2 != param.getClassId() && 3 != param.getClassId() && 4 != param.getClassId() ){
throw new MsgCodeException("Parameter error [classId]");
}
}
private void commonVerifyOpt(OptDeviceGroupParams param, Long companyId, Integer languageType) {
@ -265,9 +270,8 @@ public class DeviceGroupServiceImpl implements DeviceGroupService {
}
}
public static boolean isNotTypeMatch(int groupType, int deviceTypeId) {
List<Integer> allowedTypes = Constants.CATEGORY_DEVICE_TYPE_MAP.get(groupType);
return allowedTypes == null || !allowedTypes.contains(deviceTypeId);
public static boolean isNotTypeMatch(Long categoryId) {
return !Constants.ALL_CATEGORY_IDS.contains(categoryId);
}
@Override
@ -281,10 +285,8 @@ public class DeviceGroupServiceImpl implements DeviceGroupService {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, "Device group not set");
}
// Integer groupType = deviceGroup.getGroupType();
Integer groupType = null;
Long groupBuildingId = deviceGroup.getBuildingId();
if (groupType == null || groupBuildingId == null) {
if (groupBuildingId == null) {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, "Invalid device group info");
}
@ -299,9 +301,9 @@ public class DeviceGroupServiceImpl implements DeviceGroupService {
}
// **类型不匹配**
Integer deviceTypeId = deviceVO.getTypeId();
if (deviceTypeId == null || isNotTypeMatch(groupType, deviceTypeId)) {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, msgLanguageChange.getParameterMapByCode(languageType, "groupTypeNotMatch"));
Long categoryId = deviceVO.getCategoryId();
if (categoryId == null || isNotTypeMatch(categoryId)) {
return new SimpleDataResponse(ResponseCode.MSG_ERROR, msgLanguageChange.getParameterMapByCode(languageType, "invalidDeviceCategory"));
}
// **building 不一致**
@ -342,8 +344,13 @@ public class DeviceGroupServiceImpl implements DeviceGroupService {
}
@Override
public SimpleDataResponse<List<DeviceVO>> getBindedDeviceByGroup(Long deviceGroupId, Long userId, Long companyId, Integer languageType) {
return SimpleDataResponse.success(deviceGroupMapperExt.getBindedDeviceByGroup(deviceGroupId));
public PageInfo<DeviceVO> getBindedDeviceByGroup(DeviceGroupSearchParams pageSearchParam, Long userId, Long companyId, Integer languageType) {
// return SimpleDataResponse.success(deviceGroupMapperExt.getBindedDeviceByGroup(deviceGroupId));
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(),
pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
List<DeviceVO> list = deviceGroupMapperExt.getBindedDeviceByGroup(pageSearchParam);
return new PageInfo<>(list);
}
@Override

15
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceServiceImpl.java

@ -46,7 +46,11 @@ public class DeviceServiceImpl implements DeviceService {
} else {
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
pageSearchParam.setTypeIdList(Constants.ALL_DEVICE_TYPE_IDS);
if (null == pageSearchParam.getClassId()) {
pageSearchParam.setCategoryIdList(Constants.ALL_CATEGORY_IDS);
} else {
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(pageSearchParam.getClassId()));
}
PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize());
@ -59,13 +63,18 @@ public class DeviceServiceImpl implements DeviceService {
@Transactional
public SimpleDataResponse editField(OptDeviceFieldParams optDeviceFieldParams, Long companyId, Long userId, Integer languageType) {
try {
if (1 != optDeviceFieldParams.getRetainAlert() && 0 != optDeviceFieldParams.getRetainAlert()){
if (null != optDeviceFieldParams.getRetainAlert() && 1 != optDeviceFieldParams.getRetainAlert() && 0 != optDeviceFieldParams.getRetainAlert()){
return new SimpleDataResponse(ResponseCode.MSG_ERROR, "Parameter [retainAlert] error");
}
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.setId(optDeviceFieldParams.getId());
deviceInfo.setRetainAlert(optDeviceFieldParams.getRetainAlert());
if (null != optDeviceFieldParams.getRetainAlert()){
deviceInfo.setRetainAlert(optDeviceFieldParams.getRetainAlert());
}
if (StringUtils.isNotBlank(optDeviceFieldParams.getMonitoringPointName())){
deviceInfo.setMonitoringPointName(optDeviceFieldParams.getMonitoringPointName());
}
deviceInfoMapperExt.updateByPrimaryKeySelective(deviceInfo);

18
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/FavoritedDeviceServiceImpl.java

@ -63,7 +63,7 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService {
pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds()));
}
if (null != pageSearchParam.getClassId()){
pageSearchParam.setTypeIdList(Constants.CATEGORY_DEVICE_TYPE_MAP.get(pageSearchParam.getClassId()));
pageSearchParam.setCategoryIdList(Constants.CATEGORY_MAP.get(pageSearchParam.getClassId()));
}
List<FavoritedDeviceVO> favoritedDeviceVOList = favoritedDeviceMapperExt.getListPage(pageSearchParam);
@ -79,12 +79,12 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService {
List<String> statusDeviceIds = new ArrayList<>();
for (FavoritedDeviceVO vo : favoritedDeviceVOList) {
Integer typeId = vo.getTypeId();
if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_ACCUMULATE).contains(typeId)) {
Long categoryId = vo.getCategoryId();
if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_ACCUMULATE).contains(categoryId)) {
accumulateDeviceIds.add(vo.getDeviceId());
} else if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_MEASURE).contains(typeId)) {
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_MEASURE).contains(categoryId)) {
measureDeviceIds.add(vo.getDeviceId());
} else if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_STATUS).contains(typeId)) {
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_STATUS).contains(categoryId)) {
statusDeviceIds.add(vo.getDeviceId());
}
}
@ -96,15 +96,15 @@ public class FavoritedDeviceServiceImpl implements FavoritedDeviceService {
// 按收藏顺序生成结果
for (FavoritedDeviceVO vo : favoritedDeviceVOList) {
Integer typeId = vo.getTypeId();
Long categoryId = vo.getCategoryId();
String deviceId = vo.getDeviceId();
Object data = null;
if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_ACCUMULATE).contains(typeId)) {
if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_ACCUMULATE).contains(categoryId)) {
data = accumulateDataMap.get(deviceId);
} else if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_MEASURE).contains(typeId)) {
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_MEASURE).contains(categoryId)) {
data = measureDataMap.get(deviceId);
} else if (Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_STATUS).contains(typeId)) {
} else if (Constants.CATEGORY_MAP.get(Constants.CATEGORY_STATUS).contains(categoryId)) {
data = statusDataMap.get(deviceId);
}

5
dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/MonitoringPointCategoryGroupServiceImpl.java

@ -256,11 +256,6 @@ public class MonitoringPointCategoryGroupServiceImpl implements MonitoringPointC
}
}
public static boolean isNotTypeMatch(int groupType, int deviceTypeId) {
List<Integer> allowedTypes = Constants.CATEGORY_DEVICE_TYPE_MAP.get(groupType);
return allowedTypes == null || !allowedTypes.contains(deviceTypeId);
}
@Override
@Transactional
public SimpleDataResponse bindCategoryForGroup(BindCategoryForGroupParams bindDeviceForGroupParams, Long userId, Long companyId, Integer languageType) {

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

@ -4,9 +4,13 @@ import com.dongjian.dashboard.back.common.Constants;
import com.dongjian.dashboard.back.common.language.msg.MsgLanguageChange;
import com.dongjian.dashboard.back.common.response.ResponseCode;
import com.dongjian.dashboard.back.common.response.SimpleDataResponse;
import com.dongjian.dashboard.back.dao.ex.DashboardNotificationMapperExt;
import com.dongjian.dashboard.back.dao.ex.DeviceRawdataRealtimeMapperExt;
import com.dongjian.dashboard.back.model.DashboardNotification;
import com.dongjian.dashboard.back.model.DashboardNotificationExample;
import com.dongjian.dashboard.back.service.OverviewService;
import com.dongjian.dashboard.back.service.common.CommonOpt;
import com.dongjian.dashboard.back.vo.dashboardnotification.DashboardNotificationPageVO;
import com.dongjian.dashboard.back.vo.data.OverviewInfo;
import com.dongjian.dashboard.back.vo.data.OverviewVO;
import com.dongjian.dashboard.back.weather.JpMeshHourlyForecasts;
@ -44,6 +48,8 @@ public class OverviewServiceImpl implements OverviewService {
@Autowired
private DeviceRawdataRealtimeMapperExt deviceRawdataRealtimeMapperExt;
@Autowired
private DashboardNotificationMapperExt dashboardNotificationMapperExt;
@Autowired
private MsgLanguageChange msgLanguageChange;
@Autowired
@ -60,7 +66,7 @@ public class OverviewServiceImpl implements OverviewService {
if (CollectionUtils.isNotEmpty(buildingInfoList)){
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("companyId", companyId);
paramMap.put("typeIdList", Constants.CATEGORY_DEVICE_TYPE_MAP.get(Constants.CATEGORY_ALARM));
paramMap.put("categoryIdList", Constants.CATEGORY_MAP.get(Constants.CATEGORY_ALARM));
List<OverviewInfo> alarmInfoList = deviceRawdataRealtimeMapperExt.getOverviewInfo(paramMap);
List<OverviewVO> overviewVOList = convert(alarmInfoList, utcOffset);
@ -194,4 +200,9 @@ public class OverviewServiceImpl implements OverviewService {
return SimpleDataResponse.fail(ResponseCode.SERVER_ERROR, ResponseCode.SERVER_ERROR_MSG);
}
@Override
public SimpleDataResponse<DashboardNotificationPageVO> getNotification(Long userId, Long companyId, Integer languageType, Integer utcOffset) {
return SimpleDataResponse.success(dashboardNotificationMapperExt.getNotification(companyId));
}
}

86
dongjian-dashboard-back-util/src/main/java/com/dongjian/dashboard/back/util/CommonUtil.java

@ -1,6 +1,8 @@
package com.dongjian.dashboard.back.util;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@ -10,6 +12,8 @@ import java.util.stream.Collectors;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
@ -20,6 +24,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class CommonUtil {
private static final Logger logger = LoggerFactory.getLogger(CommonUtil.class);
private static final String decimalsRegex = "[.](.*)";
private static final String hexStringRegex = "^[A-Fa-f0-9]+$";
@ -761,4 +767,84 @@ public class CommonUtil {
return multiValueMap;
}
/**
* 控制字符串数字的小数位数四舍五入
*
* @param number 数字 "12.3456"
* @param scale 保留的小数位数 2
* @return 处理后的字符串 "12.35"
*/
public static String formatDecimal(Object number, Integer scale) {
if (number == null) {
return null;
}
if (scale == null) {
scale = 2;
}
try {
// String 类型特殊处理(支持逗号分隔)
if (number instanceof String) {
String str = ((String) number).trim();
if (str.isEmpty()) {
return str;
}
// 逗号分隔的情况
if (str.contains(",")) {
String[] parts = str.split(",");
StringBuilder result = new StringBuilder();
for (int i = 0; i < parts.length; i++) {
String part = parts[i].trim();
if (!part.isEmpty()) {
result.append(formatDecimalSingle(part, scale));
}
if (i < parts.length - 1) {
result.append(",");
}
}
return result.toString();
}
// 单个数字字符串
return formatDecimalSingle(str, scale);
}
// BigDecimal
if (number instanceof BigDecimal) {
return ((BigDecimal) number)
.setScale(scale, RoundingMode.HALF_UP)
.toPlainString();
}
// Number(Double / Integer / Long / double 等)
if (number instanceof Number) {
BigDecimal bd = BigDecimal.valueOf(((Number) number).doubleValue());
return bd.setScale(scale, RoundingMode.HALF_UP).toPlainString();
}
// 其他类型,直接返回
return number.toString();
} catch (Exception e) {
logger.error("非法数字格式: {}", number, e);
return number.toString();
}
}
/**
* 处理单个数字字符串
*/
private static String formatDecimalSingle(String value, int scale) {
BigDecimal bd = new BigDecimal(value);
return bd.setScale(scale, RoundingMode.HALF_UP).toPlainString();
}
public static void main(String[] args) {
System.out.println(formatDecimal("123.456789", 2));
System.out.println(formatDecimal(123.456789, 2));
System.out.println(formatDecimal("123.456,7.898", 2));
}
}

6
pom.xml

@ -191,12 +191,12 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.25.2</version>
<version>2.25.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.25.2</version>
<version>2.25.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
@ -227,7 +227,7 @@
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>4.1.128.Final</version>
<version>4.2.9.Final</version>
<type>pom</type>
<scope>import</scope>
</dependency>

Loading…
Cancel
Save