From 60fc84976142a9019effbbb79c4d43bc4a4a3b36 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期四, 15 九月 2022 18:26:56 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java | 21 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java | 7 +
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PushAirDataToNovaParam.java | 22 ++++
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaWeatherVO.java | 110 ++++++++++++++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java | 15 +-
ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java | 79 +++++++++++----
7 files changed, 222 insertions(+), 34 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
index 14ff9b9..fe64536 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
@@ -17,6 +17,8 @@
public static String CHANGE_BRIGHTNESS = "/v1/player/immediateControl/brightness";
// 鏅�氳妭鐩�
public static String NORMAL_PROGRAM = "/v1/player/program/normal";
+ //鎺ㄩ�佸ぉ姘斾娇鐢� 鍗曢〉绱ф�ヤ换鍔�
+ public static String EMERGENCY_PROGRAM = "/v1/player/program/emergency";
// 鎴浘
public static String SCREEN_SHOT = "/v1/player/control/screenshot";
// 閲嶅惎
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
index 823041d..4da3f81 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -6,15 +6,13 @@
import com.github.pagehelper.PageHelper;
import com.sandu.common.domain.CommonPage;
import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.dto.DeviceStatus;
import com.sandu.ximon.admin.dto.DeviceStatusDto;
-import com.sandu.ximon.admin.param.PoleBindParam;
-import com.sandu.ximon.admin.param.PoleBindingParam;
-import com.sandu.ximon.admin.param.PoleParam;
-import com.sandu.ximon.admin.param.PoleStatesParam;
+import com.sandu.ximon.admin.param.*;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.AirEquipmentService;
import com.sandu.ximon.admin.service.IpVolumeService;
@@ -388,12 +386,15 @@
/**
* 鎺ㄩ�佸ぇ姘旇澶囧埌璇虹摝
*/
- @GetMapping("/pushAidDataToNova/{poleId}")
- public ResponseVO<Object> pushAirDataToNova(@PathVariable Long poleId) {
+ @GetMapping("/pushAidDataToNova")
+ public ResponseVO<Object> pushAirDataToNova(@RequestBody @Validated PushAirDataToNovaParam param) {
if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_NOVA.getCode())) {
return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
}
- return ResponseUtil.success(poleService.pushAirDataToNova(poleId));
+ if (param.getDuration() <= 0 || param.getDuration() > 86400000) {
+ throw new BusinessException("鎾斁鏃堕棿闇�澶т簬闆朵笖灏忎簬86400000 !");
+ }
+ return ResponseUtil.success(poleService.pushAirDataToNova(param));
}
/**
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PushAirDataToNovaParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PushAirDataToNovaParam.java
new file mode 100644
index 0000000..61ad741
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/PushAirDataToNovaParam.java
@@ -0,0 +1,22 @@
+package com.sandu.ximon.admin.param;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/15
+ * 鎺ㄩ�佸ぇ姘旀暟鎹埌鐔欒鍙傛暟鎺ユ敹
+ */
+@Data
+public class PushAirDataToNovaParam {
+
+ @NotNull(message = "鐏潌鏃堕棿涓嶈兘涓虹┖")
+ private Long poleId;
+
+ @NotNull(message = "鎾斁鏃堕棿(姣)涓嶈兘涓虹┖涓斿ぇ浜�0")
+// @Min(value = 0, message = "鎾斁鏃堕棿(姣)涓嶈兘涓虹┖涓斿ぇ浜�0")
+ private Long duration;
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index c65a4ff..fb5656d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -32,6 +32,7 @@
import com.sandu.ximon.admin.param.PoleBindingParam;
import com.sandu.ximon.admin.param.PoleParam;
import com.sandu.ximon.admin.param.PoleStatesParam;
+import com.sandu.ximon.admin.param.PushAirDataToNovaParam;
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.admin.utils.LightemitUtils;
@@ -937,7 +938,8 @@
/**
* 鎺ㄩ�佸ぇ姘旂洃娴嬫暟鎹埌novaLED
*/
- public VnnoxResult pushAirDataToNova(Long poleId) {
+ public VnnoxResult pushAirDataToNova(PushAirDataToNovaParam param) {
+ Long poleId=param.getPoleId();
Pole pole = getById(poleId);
PoleBinding air = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 3));
PoleBinding nova = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getPoleId, poleId).eq(PoleBinding::getDeviceType, 1));
@@ -954,7 +956,8 @@
//鑾峰彇澶ф皵鐩戞祴鏁版嵁
A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage data = SpringContextHolder.getBean(AirDataService.class).getDataByPoleid(poleId);
//鎺ㄩ�佹暟鎹�
- return SpringContextHolder.getBean(VnnoxService.class).publishWaterData(LED.getPlayerId(), data);
+// return SpringContextHolder.getBean(VnnoxService.class).publishWaterData(LED.getPlayerId(),param.getDuration(), data);
+ return SpringContextHolder.getBean(VnnoxService.class).WaterData(LED.getPlayerId(),param.getDuration(), data);
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
index 9c399f8..c845b76 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -18,6 +18,7 @@
import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
import com.sandu.ximon.admin.vo.NovaPushResultVO;
import com.sandu.ximon.admin.vo.NovaScreenShorUrlVO;
+import com.sandu.ximon.admin.vo.NovaWeatherVO;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
import com.sandu.ximon.dao.domain.LedPlayerInfoEntity;
import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
@@ -173,7 +174,7 @@
VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), vol);
// 鏍规嵁闊抽噺璋冩暣REDIS鏍囪瘑浣�
for (String playerId : vnnoxResult.getSuccess()) {
- redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol,VnnoxConstant.STATUS_TIME);
+ redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol, VnnoxConstant.STATUS_TIME);
}
List<String> success = vnnoxResult.getSuccess();
List<String> fail = vnnoxResult.getFail();
@@ -563,35 +564,27 @@
}
- public VnnoxResult publishWaterData(String playerId, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage poleSensorEntity) {
+ public VnnoxResult WaterData(String playerId, Long duration, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage poleSensorEntity) {
List<String> playerIds = new ArrayList<>();
playerIds.add(playerId);
- AirDataProgram playerProgram = new AirDataProgram();
+ NovaWeatherVO playerProgram = new NovaWeatherVO();
playerProgram.setPlayerIds(playerIds);
- PlayerPage playerPage = new PlayerPage();
- playerPage.setName("AirData page");
- List<PlayerWidget> widgetList = generateWaterAndSensorWidget(poleSensorEntity);
- playerPage.setWidgets(widgetList);
- List<PlayerPage> list = new ArrayList<>();
- list.add(playerPage);
- playerProgram.setPages(list);
- playerProgram.setNoticeUrl(VnnoxConstant.NOTIFY_URL);
- /**
- * 璇虹摝鎺ㄩ�佸ぇ姘旀暟鎹� 鏃ュ織璁板綍寮�濮�
- //// */
-// String content = "{璇虹摝playerId锛�" + playerId + ",鑺傜洰鍐呭锛�" + JSON.toJSONString(playerProgram) + " }";
-// StoreOperationRecordsUtils.storeOperationData(null, null, "澶ф皵鏁版嵁鎺ㄩ�佸埌璇虹摝", content);
- /**
- * 璇虹摝鎺ㄩ�佸ぇ姘旀暟鎹� 鏃ュ織璁板綍缁撴潫
- */
- return vnnoxProgramAPIUtil.normalProgram(playerProgram).getData();
+ NovaWeatherVO.AttributeDTO attributeDTO = new NovaWeatherVO.AttributeDTO();
+ attributeDTO.setDuration(duration);
+ playerProgram.setAttribute(attributeDTO);
+ List<NovaWeatherVO.PageDTO.WidgetsDTO> widgets = setWeather(duration, poleSensorEntity);
+ NovaWeatherVO.PageDTO page = new NovaWeatherVO.PageDTO();
+ page.setWidgets(widgets);
+ playerProgram.setPage(page);
+
+ return vnnoxProgramAPIUtil.emergencyProgram(playerProgram).getData();
}
- private List<PlayerWidget> generateWaterAndSensorWidget(A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage poleSensorEntity) {
+ private List<NovaWeatherVO.PageDTO.WidgetsDTO> setWeather(Long duration, A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage poleSensorEntity) {
- List widgetList = new ArrayList<>();
+ List<NovaWeatherVO.PageDTO.WidgetsDTO> widgets = new ArrayList<>();
List<String> list = new ArrayList<>();
if (Objects.nonNull(poleSensorEntity)) {
list.add("鐜鐩戞祴锛�");
@@ -601,11 +594,49 @@
list.add("pm10锛�" + poleSensorEntity.getPm10() + "渭g/m鲁");
list.add("鐢查啗锛�" + poleSensorEntity.getEch2o() + "渭g/m鲁");
list.add("CO2锛�" + poleSensorEntity.getCo2() + "ppm");
+ } else {
+ list.add("澶ф皵璁惧涓嶅湪绾�");
+ list.add("鐩墠鏄浐瀹氭暟鎹細");
+ list.add("鐜鐩戞祴锛�");
+ list.add("娓╁害锛� 40掳");
+ list.add("婀垮害锛� 60%");
+ list.add("pm25锛�0.58 渭g/m鲁");
+ list.add("pm10锛�0.58 渭g/m鲁");
+ list.add("鐢查啗锛�99.9 渭g/m鲁");
+ list.add("CO2锛�200 ppm");
}
- widgetList.add(new PlayerWidget().generateScrollUpTextWidget("weather", 1, 100000L, list, "#FFFFFF", 15, new PlayerLayout("0%", "5%", "100%", "100%")));
- return widgetList;
+ List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO> lines = new ArrayList<>();
+
+ list.forEach(
+ txt -> {
+ List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO> textAttributes = new ArrayList<>();
+
+ NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO linesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO();
+ NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO textAttributesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO();
+ textAttributesDTO.setContent(txt);
+ textAttributes.add(textAttributesDTO);
+ System.out.println(txt + "鏂囨湰鍐呭");
+ linesDTO.setTextAttributes(textAttributes);
+ lines.add(linesDTO);
+ }
+ );
+
+ NovaWeatherVO.PageDTO.WidgetsDTO widgetsDTO = new NovaWeatherVO.PageDTO.WidgetsDTO();
+ NovaWeatherVO.PageDTO.WidgetsDTO.ScrollAttributeDTO scrollAttribute = new NovaWeatherVO.PageDTO.WidgetsDTO.ScrollAttributeDTO();
+
+ NovaWeatherVO.PageDTO.WidgetsDTO.LayoutDTO layout = new NovaWeatherVO.PageDTO.WidgetsDTO.LayoutDTO();
+
+ widgetsDTO.setScrollAttribute(scrollAttribute);
+ widgetsDTO.setLayout(layout);
+ widgetsDTO.setLines(lines);
+
+ widgetsDTO.setDuration(duration);
+ widgets.add(widgetsDTO);
+ System.out.println(lines + "鎾斁鍐呭");
+
+ return widgets;
}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
index 3f5f0d8..e1c7df7 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
@@ -7,6 +7,7 @@
import com.sandu.ximon.admin.dto.nova.ProgramSchedule;
import com.sandu.ximon.admin.utils.request.CommonHeader;
import com.sandu.ximon.admin.utils.response.VnnoxResultResponse;
+import com.sandu.ximon.admin.vo.NovaWeatherVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -28,7 +29,25 @@
* @param
* @return
*/
- public VnnoxResultResponse normalProgram(AirDataProgram program) {
+ public VnnoxResultResponse emergencyProgram(NovaWeatherVO program) {
+
+ String result = VnnoxRequestUtil.PostWithHeader(
+ VnnoxUrl.getUrl(VnnoxUrl.EMERGENCY_PROGRAM),
+ program.toJson(),
+ new CommonHeader(CommonHeader.JSON, true)
+ );
+ System.out.println(program.toJson());
+ LogUtils.error("鑺傜洰鎾斁response:" + result);
+ return JSON.parseObject(result, VnnoxResultResponse.class);
+ }
+
+ /**
+ * 澶ф皵淇℃伅鎺ㄩ��
+ *
+ * @param
+ * @return
+ */
+ public VnnoxResultResponse emergencyProgram(AirDataProgram program) {
String result = VnnoxRequestUtil.PostWithHeader(
VnnoxUrl.getUrl(VnnoxUrl.NORMAL_PROGRAM),
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaWeatherVO.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaWeatherVO.java
new file mode 100644
index 0000000..272d8a0
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaWeatherVO.java
@@ -0,0 +1,110 @@
+package com.sandu.ximon.admin.vo;
+
+import com.sandu.ximon.admin.config.VnnoxConstant;
+import com.sandu.ximon.admin.utils.request.VnnoxRequest;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author LiuHaoNan
+ * @date 2022/9/15
+ */
+@NoArgsConstructor
+@Data
+public class NovaWeatherVO implements VnnoxRequest {
+
+ private List<String> playerIds;
+
+ private AttributeDTO attribute;
+
+ private PageDTO page;
+
+ @NoArgsConstructor
+ @Data
+ public static class AttributeDTO {
+
+ private String spotsType = "IMMEDIATELY";
+
+ private String normalProgramStatus = "PAUSE";
+
+ private Long duration;
+ }
+
+
+ @Data
+ public static class PageDTO {
+
+ private String name = "weateher_page";
+
+ private List<WidgetsDTO> widgets;
+
+ @NoArgsConstructor
+ @Data
+ public static class WidgetsDTO {
+
+ private String type = "ARCH_TEXT";
+
+ private String displayType = "SCROLL";
+
+ private String backgroundColor = "#00000000";
+
+ private ScrollAttributeDTO scrollAttribute;
+
+ private Long duration;
+
+ private List<LinesDTO> lines;
+
+ private LayoutDTO layout;
+
+ @NoArgsConstructor
+ @Data
+ public static class ScrollAttributeDTO {
+
+ private String animation = "MARQUEE_UP";
+
+ private Integer speed = 1;
+ }
+
+ @NoArgsConstructor
+ @Data
+ public static class LayoutDTO {
+
+ private String x = "0%";
+
+ private String y = "5%";
+
+ private String width = "100%";
+
+ private String height = "100%";
+ }
+
+ @NoArgsConstructor
+ @Data
+ public static class LinesDTO {
+
+ private List<TextAttributesDTO> textAttributes;
+
+ @NoArgsConstructor
+ @Data
+ public static class TextAttributesDTO {
+
+ private String content;
+
+ private Integer fontSize = 15;
+
+ private String textColor = "#FFFFFF";
+
+ private Boolean isUnderline = false;
+
+ }
+ }
+ }
+ }
+
+ @Override
+ public String toJson() {
+ return VnnoxConstant.GSON.toJson(this);
+ }
+}
--
Gitblit v1.9.3