From edea93ff8d1011f42fef3167e67f7d487ede000c Mon Sep 17 00:00:00 2001
From: LHN <31457034@qq.com>
Date: 星期一, 17 十月 2022 17:26:57 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java | 85 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 81 insertions(+), 4 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java
index 69a0b9e..d354621 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/RemoteUpdateController.java
@@ -16,8 +16,13 @@
import com.sandu.ximon.admin.vo.RemoteUpgradeProgress;
import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
/**
* 鍥轰欢鍗囩骇Controller
@@ -88,28 +93,39 @@
}
String orderType;
boolean UpdateFlag = false;
+ String deviceType;
+ if(remotePrarm.getDeviceType()==null){
+ throw new BusinessException("鍗囩骇纭欢璁惧绫诲瀷鎸囦护鏈夎锛岃纭锛�");
+ }
if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(remotePrarm.getDeviceType())) {
//MQTT涓绘澘
orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.MQTT_MAIN;
} else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(remotePrarm.getDeviceType())) {
//MQTT鏍稿績鏉�
orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.MQTT_CORE;
} else if (RemoteUpdateTypeEnum.LIGHT.equals(remotePrarm.getDeviceType())) {
//鍗曠伅妯″潡
orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.LIGHT;
} else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(remotePrarm.getDeviceType())) {
//C3鍏呯數妗╂ā鍧�
orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.C3_CHARGING;
} else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(remotePrarm.getDeviceType())) {
//Cat.1涓绘澘
orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.CAT1_MAIN;
} else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(remotePrarm.getDeviceType())) {
//鐏潌鍊炬枩妯″潡
orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.LIGHT_POLE_HELING;
} else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(remotePrarm.getDeviceType())) {
//澶ф皵璁惧妯″潡
orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.AIR_EQUIPMENT;
} else {
throw new BusinessException("鍗囩骇纭欢璁惧绫诲瀷鎸囦护鏈夎锛岃纭锛�");
}
@@ -119,7 +135,7 @@
, remotePrarm.getSoftwareVersion(), remotePrarm.getUpdateFlag());
//瀛樺叆鍗囩骇杩涘害
RemoteUpgradeProgress progress = new RemoteUpgradeProgress();
- RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
+ RedisUtils.getBean().set(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
if (startRemoteUpdateFlag) {
//鏈嶅姟鍣ㄤ笅鍙戝崌绾ф枃浠朵俊鎭�
@@ -134,7 +150,7 @@
remoteUpdateService.UpdateData(orderType, remotePrarm.getMac(), i, remoteFileDto.getList().get(i));
progress.setCurrentProgress(i + 1);
if (i != remoteFileDto.getList().size()) {
- RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
+ RedisUtils.getBean().set(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
}
}
@@ -142,7 +158,7 @@
boolean searchLoseDataFlag = remoteUpdateService.SearchLoseData(orderType, remotePrarm.getMac(), remoteFileDto, 0);
if (searchLoseDataFlag) {
//鏃犳紡鍖呮儏鍐� 鏇存柊鏈�鍚庤繘搴︿负100% 鍚﹀垯鏈�楂樺崱鍦�99%
- RedisUtils.getBean().set(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
+ RedisUtils.getBean().set(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac(), JSON.toJSON(progress));
//鏈嶅姟鍣ㄤ笅鍙戠粨鏉熷崌绾у抚
boolean finishUpdateFlag = remoteUpdateService.FinishUpdate(orderType, remotePrarm.getMac());
UpdateFlag = finishUpdateFlag;
@@ -150,7 +166,7 @@
}
}
- RedisUtils.getBean().delete(remotePrarm.getDeviceType() + ":" + SecurityUtils.getUserId() + remotePrarm.getMac());
+ RedisUtils.getBean().delete(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac());
if (UpdateFlag) {
return ResponseUtil.success("鍗囩骇鎴愬姛锛�");
} else {
@@ -158,6 +174,67 @@
}
}
+ @PostMapping("/getRemoteUpgradeProgress")
+ public ResponseVO<Object> getRemoteUpgradeProgress(@RequestBody RemotePrarm remotePrarm) {
+// if (!permissionConfig.check(MenuEnum.REMOTE_UPDATE_START.getCode())) {
+// return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+// }
+ String orderType;
+ String deviceType;
+
+ if(remotePrarm.getDeviceType()==null){
+ throw new BusinessException("鍗囩骇纭欢璁惧绫诲瀷鎸囦护鏈夎锛岃纭锛�");
+ }
+ if (RemoteUpdateTypeEnum.MQTT_MAIN.equals(remotePrarm.getDeviceType())) {
+ //MQTT涓绘澘
+ orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.MQTT_MAIN;
+ } else if (RemoteUpdateTypeEnum.MQTT_CORE.equals(remotePrarm.getDeviceType())) {
+ //MQTT鏍稿績鏉�
+ orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.MQTT_CORE;
+ } else if (RemoteUpdateTypeEnum.LIGHT.equals(remotePrarm.getDeviceType())) {
+ //鍗曠伅妯″潡
+ orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.LIGHT;
+ } else if (RemoteUpdateTypeEnum.C3_CHARGING.equals(remotePrarm.getDeviceType())) {
+ //C3鍏呯數妗╂ā鍧�
+ orderType = A5OrderEnum.REQUEST_C3_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.C3_CHARGING;
+ } else if (RemoteUpdateTypeEnum.CAT1_MAIN.equals(remotePrarm.getDeviceType())) {
+ //Cat.1涓绘澘
+ orderType = A5OrderEnum.REQUEST_LIGHT_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.CAT1_MAIN;
+ } else if (RemoteUpdateTypeEnum.LIGHT_POLE_HELING.equals(remotePrarm.getDeviceType())) {
+ //鐏潌鍊炬枩妯″潡
+ orderType = A5OrderEnum.REQUEST_POLE_MONITOR_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.LIGHT_POLE_HELING;
+ } else if (RemoteUpdateTypeEnum.AIR_EQUIPMENT.equals(remotePrarm.getDeviceType())) {
+ //澶ф皵璁惧妯″潡
+ orderType = A5OrderEnum.REQUEST_ATMOSPHERE_DATA.getCode();
+ deviceType=RemoteUpdateTypeEnum.AIR_EQUIPMENT;
+ } else {
+ throw new BusinessException("鍗囩骇纭欢璁惧绫诲瀷鎸囦护鏈夎锛岃纭锛�");
+ }
+
+ RemoteUpgradeProgress progress = new RemoteUpgradeProgress();
+ String s = RedisUtils.getBean().get(deviceType + ":" + SecurityUtils.getUserId() + remotePrarm.getMac());
+ if (s != null) {
+ RemoteUpgradeProgress temp = JSON.parseObject(s, RemoteUpgradeProgress.class);
+ BeanUtils.copyProperties(temp, progress);
+ }
+ Map map = new HashMap<>();
+ if (progress.getTotalProgress() != 0) {
+ //璇存槑寮�濮嬪崌绾ф垚鍔� 瀛樺湪闈�0杩涘害
+ BigDecimal divide = BigDecimal.valueOf(progress.getCurrentProgress()).divide(BigDecimal.valueOf(progress.getTotalProgress()), 2, BigDecimal.ROUND_HALF_UP);
+ map.put("progress", divide);
+
+ return ResponseUtil.success(map);
+ } else {
+ map.put("progress", BigDecimal.valueOf(0.0));
+ return ResponseUtil.success(map);
+ }
+ }
/**
* 鏌ヨ鍥轰欢鐗堟湰鍙�
--
Gitblit v1.9.3