From ea94079e74182be590b9fff356c97f522d9a7828 Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期二, 18 十月 2022 09:26:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java | 533 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 495 insertions(+), 38 deletions(-)
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 fb5656d..ad0af4e 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
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
import com.aliyuncs.iot.model.v20180120.QueryDeviceDetailResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -18,40 +19,45 @@
import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder;
import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
+import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3HeartbeatReportInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.A1TernaryCodeReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightResetReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.EmptyRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1DeviceMacRespInnerFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1TernaryCodeRespInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
-import com.sandu.ximon.admin.manager.iot.rrpc.enums.A1OrderEnum;
-import com.sandu.ximon.admin.manager.iot.rrpc.enums.A2OrderEnum;
-import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum;
-import com.sandu.ximon.admin.manager.iot.rrpc.enums.DeviceStateEnum;
+import com.sandu.ximon.admin.manager.iot.rrpc.enums.*;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
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.DeviceRedisKey;
import com.sandu.ximon.admin.redis.LightKey;
import com.sandu.ximon.admin.security.SecurityUtils;
-import com.sandu.ximon.admin.utils.LightemitUtils;
-import com.sandu.ximon.admin.utils.ListPagingUtils;
-import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
+import com.sandu.ximon.admin.utils.*;
import com.sandu.ximon.admin.utils.response.VnnoxResult;
+import com.sandu.ximon.admin.vo.DeviceOnLineCountVO;
+import com.sandu.ximon.admin.vo.OnLineCountVO;
import com.sandu.ximon.admin.vo.PoleBindVO;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
import com.sandu.ximon.dao.bo.*;
import com.sandu.ximon.dao.domain.*;
import com.sandu.ximon.dao.enums.OrderByEnums;
import com.sandu.ximon.dao.mapper.PoleMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.RandomStringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
import java.util.*;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@@ -69,6 +75,8 @@
private final PoleGroupRelationService groupRelationService;
private final ClientService clientService;
private final PoleMapper poleMapper;
+ private final RedisUtils redisUtils;
+ private final CountDownLatchUtil countDownLatchUtil;
public boolean addPole(PoleParam param) {
Pole pole = new Pole();
@@ -166,7 +174,7 @@
*
* @return
*/
- public Map<String, Integer> poleCount() {
+ public Map<String, Integer> poleCount1() {
Map<String, Integer> result = new HashMap<>();
LambdaQueryWrapper<Pole> wrapper;
if (SecurityUtils.getClientId() == null) {
@@ -223,6 +231,361 @@
return result;
}
+
+
+ /**
+ * 缁熻鍦ㄧ嚎鐏潌鏁伴噺
+ *
+ * @return
+ */
+ public OnLineCountVO poleCount() {
+ System.out.println("璇锋眰鏃堕棿: " + LocalDateTime.now());
+ OnLineCountVO onLineCountVO = new OnLineCountVO();
+ CountDownLatch countDownLatch = new CountDownLatch(9);//todo
+ //鑾峰彇涓�涓�7浣嶉殢鏈烘暟
+ String str = RandomStringUtils.randomAlphanumeric(7);
+ countDownLatchUtil.push(str, countDownLatch);
+ //璇虹摝
+ List<LedPlayerEntity> ledPlayerEntities = SpringContextHolder.getBean(LedPlayerEntityService.class).ledPlayerEntityListOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+
+
+ //ip闊虫煴
+
+ DeviceOnLineCountVO ledNova = new DeviceOnLineCountVO();
+ ledPlayerEntities.forEach(
+ Volume -> {
+ String s = redisUtils.get(DeviceRedisKey.NOVA + Volume.getId());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ } else {
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ ledNova.setTotalCount(ledPlayerEntities.size());
+ ledNova.setOnlineCount(onLine.get());
+ ledNova.setOfflineCount(offLine.get());
+
+ onLineCountVO.setLedNova(ledNova);
+ System.out.println("璇虹摝鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+ //闊虫煴
+ List<BroadcastTerminalV2EntityBo> broadcastTerminalList = SpringContextHolder.getBean(IpVolumeService.class).getBroadcastTerminalListOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+
+
+ //ip闊虫煴
+
+ DeviceOnLineCountVO ipVolume = new DeviceOnLineCountVO();
+ broadcastTerminalList.forEach(
+ Volume -> {
+ String s = redisUtils.get(DeviceRedisKey.IP_BROADCAST + Volume.getId());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ } else {
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ ipVolume.setTotalCount(broadcastTerminalList.size());
+ ipVolume.setOnlineCount(onLine.get());
+ ipVolume.setOfflineCount(offLine.get());
+
+ onLineCountVO.setBroadcast(ipVolume);
+ System.out.println("闊虫煴鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+ //鎽勫儚澶�
+ List<MonitorBo> monitorBos = SpringContextHolder.getBean(MonitorService.class).listMonitorOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+
+ DeviceOnLineCountVO Monitor = new DeviceOnLineCountVO();
+ monitorBos.forEach(
+ device -> {
+ String s = redisUtils.get(DeviceRedisKey.MONITOR + device.getDeviceSerial());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ } else {
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ Monitor.setTotalCount(monitorBos.size());
+ Monitor.setOnlineCount(onLine.get());
+ Monitor.setOfflineCount(offLine.get());
+
+ onLineCountVO.setMonitor(Monitor);
+ System.out.println("鎽勫儚澶存墽琛屾椂闂�: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+
+ //鍗曠伅
+ List<LightBo> lights = SpringContextHolder.getBean(LightService.class).listLightOnHome();
+ BaseConditionVO baseConditionVO = new BaseConditionVO();
+ baseConditionVO.setPageNo(1);
+ baseConditionVO.setPageSize(999);
+ System.out.println("鍗曠伅鏁呴殰缁熻鏃堕棿: " + LocalDateTime.now());
+ CommonPage commonPage = SpringContextHolder.getBean(LightReportErrorService.class).queryErrorCode(baseConditionVO);
+ System.out.println("鍗曠伅鏁呴殰缁熻鏃堕棿: " + LocalDateTime.now());
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+ AtomicInteger error = new AtomicInteger(commonPage.getList().size());
+
+
+ DeviceOnLineCountVO light = new DeviceOnLineCountVO();
+ lights.forEach(
+ device -> {
+ String s = redisUtils.get(DeviceRedisKey.LIGHT_DEVICE + device.getDeviceCode());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ } else {
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ light.setTotalCount(lights.size());
+ light.setOnlineCount(onLine.get());
+ light.setOfflineCount(offLine.get());
+ light.setErrorCount(error.get());
+
+ onLineCountVO.setLight(light);
+ System.out.println("鍗曠伅鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+
+ //鍏呯數妗�
+ List<C3ChargingBo> c3mChargings = SpringContextHolder.getBean(C3ChargingService.class).getC3ChargingList();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+ AtomicInteger error = new AtomicInteger(0);
+
+
+ DeviceOnLineCountVO c3m = new DeviceOnLineCountVO();
+ c3mChargings.forEach(
+ device -> {
+ String s = redisUtils.get(C3mRedisConstant.C3_STATUS.getCode() + device.getC3Mac());
+ RedisDeviceStatus redisDeviceStatus = new RedisDeviceStatus();
+ redisDeviceStatus.setDeviceId(device.getC3Id().toString());
+ if (s != null) {
+ A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage heartBeatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
+ // 鍏呯數妗╁彛鐘舵�佷綅 1.绌洪棽 2.鍏呯數涓� 3.鍏呯數涓柇锛岀瓑寰呮湇鍔″櫒纭 4.鍏呯數缁撴潫锛岀瓑寰呮湇鍔″櫒纭 5.鏈夋晠闅� 6.涓庡厖鐢垫々瀵规帴涓�
+ if ("5".equals(heartBeatDataPackage.getStatusBit())) {
+ //鏁呴殰
+ onLine.getAndIncrement();
+ error.getAndIncrement();
+ } else {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ }
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ c3m.setTotalCount(c3mChargings.size());
+ c3m.setOnlineCount(onLine.get());
+ c3m.setOfflineCount(offLine.get());
+ c3m.setErrorCount(error.get());
+
+ onLineCountVO.setC3m(c3m);
+ System.out.println("鍏呯數妗╂墽琛屾椂闂�: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+
+ //澶ф皵
+ List<AirEquipmentBo> airEquipments = SpringContextHolder.getBean(AirEquipmentService.class).listAirEquipmentOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+ AtomicInteger error = new AtomicInteger(0);
+
+
+ DeviceOnLineCountVO air = new DeviceOnLineCountVO();
+ airEquipments.forEach(
+ device -> {
+ String s = redisUtils.get(DeviceRedisKey.AIR + device.getAirMac());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else if (redisDeviceStatus.getStatus() == 1) {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ } else {
+ error.getAndIncrement();
+ }
+ } else {
+ error.getAndIncrement();
+ }
+ }
+ );
+
+ air.setTotalCount(airEquipments.size());
+ air.setOnlineCount(onLine.get());
+ air.setOfflineCount(offLine.get());
+ air.setErrorCount(error.get());
+
+ onLineCountVO.setAirEquipment(air);
+ System.out.println("澶ф皵鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+
+ //澶ф皵(鍐滆��)
+// List<AirEquipmentNongGengBo> airEquipmentNongGengBos = SpringContextHolder.getBean(AirEquipmentNongGengService.class).listAirEquipmentOnHome();
+// result.put("AirEquipmentNongGengTotalCount", airEquipmentNongGengBos.size());
+
+ //姘磋川
+ List<WaterQualityEquipmentBo> waterQualityEquipments = SpringContextHolder.getBean(WaterQualityEquipmentService.class).listWaterQualityEquipmentByKeyword(null, null);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+
+ DeviceOnLineCountVO water = new DeviceOnLineCountVO();
+ water.setTotalCount(waterQualityEquipments.size());
+ water.setOnlineCount(waterQualityEquipments.size());
+ water.setOfflineCount(0);
+ water.setErrorCount(0);
+ onLineCountVO.setWaterEquipment(water);
+ System.out.println("姘磋川鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+
+ //鐏潌鍊炬枩
+ List<LightPoleHeelingEquipmentBo> lightPoleHeelingEquipmentBos = SpringContextHolder.getBean(LightPoleHeelingEquipmentService.class).LightPoleHeelingEquipmentListOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+
+ DeviceOnLineCountVO PoleHeeling = new DeviceOnLineCountVO();
+ PoleHeeling.setTotalCount(lightPoleHeelingEquipmentBos.size());
+ PoleHeeling.setOnlineCount(lightPoleHeelingEquipmentBos.size());
+ PoleHeeling.setOfflineCount(0);
+ PoleHeeling.setErrorCount(0);
+ onLineCountVO.setLightPoleHeeling(PoleHeeling);
+ System.out.println("鐏潌鍊炬枩鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+
+ //鐔欒
+ List<PoleLightemitEntity> xiXuns = SpringContextHolder.getBean(PoleLightemitService.class).listLedOnHome();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ AtomicInteger onLine = new AtomicInteger(0);
+ AtomicInteger offLine = new AtomicInteger(0);
+
+ DeviceOnLineCountVO xixunLed = new DeviceOnLineCountVO();
+ xiXuns.forEach(
+ device -> {
+ String s = redisUtils.get(DeviceRedisKey.XIXUN + device.getLightemitControlCode());
+ if (s != null) {
+ RedisDeviceStatus redisDeviceStatus = JSON.parseObject(s, RedisDeviceStatus.class);
+ if (redisDeviceStatus.getStatus() == 0) {
+ //鍦ㄧ嚎
+ onLine.getAndIncrement();
+ } else {
+ //绂荤嚎
+ offLine.getAndIncrement();
+ }
+ } else {
+ offLine.getAndIncrement();
+ }
+ }
+ );
+
+ xixunLed.setTotalCount(xiXuns.size());
+ xixunLed.setOnlineCount(onLine.get());
+ xixunLed.setOfflineCount(offLine.get());
+
+ onLineCountVO.setLedXiXun(xixunLed);
+ System.out.println("鐔欐睕鎵ц鏃堕棿: " + LocalDateTime.now());
+ countDownLatchUtil.countDown(str);
+ }
+ }).start();
+ try {
+ countDownLatch.await(20000, TimeUnit.MILLISECONDS);
+ countDownLatchUtil.remove(str);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ System.out.println("鍝嶅簲鏃堕棿: " + LocalDateTime.now());
+ return onLineCountVO;
+ }
+
public CommonPage queryAllStatesAndList(Integer pageNo, Integer pageSize, PoleStatesParam param, Integer order, Integer seq) {
if (param == null) {
@@ -364,24 +727,24 @@
* @param param
* @return
*/
- public List<Pole> isBind(List<Pole> list, PoleStatesParam param) {
- List<Pole> bindList = new ArrayList<>();//宸茬粦瀹氬鎴�
- List<Pole> unbindList = new ArrayList<>();//鏈粦瀹氬鎴�
- list.forEach(bindwarpper -> {
-// Long clientId = bindwarpper.getClientId();
- if (bindwarpper.getClientId() == null) {//鍒ゆ柇鏄惁缁戝畾
- unbindList.add(bindwarpper);
- } else {
- bindList.add(bindwarpper);
- }
- });
- if (param.getBingStates() == 0) {
- return bindList;
- } else if (param.getBingStates() == 1) {
- return unbindList;
- }
- return list;
- }
+// public List<Pole> isBind(List<Pole> list, PoleStatesParam param) {
+// List<Pole> bindList = new ArrayList<>();//宸茬粦瀹氬鎴�
+// List<Pole> unbindList = new ArrayList<>();//鏈粦瀹氬鎴�
+// list.forEach(bindwarpper -> {
+//// Long clientId = bindwarpper.getClientId();
+// if (bindwarpper.getClientId() == null) {//鍒ゆ柇鏄惁缁戝畾
+// unbindList.add(bindwarpper);
+// } else {
+// bindList.add(bindwarpper);
+// }
+// });
+// if (param.getBingStates() == 0) {
+// return bindList;
+// } else if (param.getBingStates() == 1) {
+// return unbindList;
+// }
+// return list;
+// }
public List<Pole> isTrue(List<Pole> list, PoleStatesParam param) {
//瀹炰綋鐏潌
@@ -519,7 +882,7 @@
}
String deviceName = byId.getDeviceCode();
if (deviceName.isEmpty()) {
- throw new BusinessException("璇ョ伅鏉哅ca涓虹┖");
+ throw new BusinessException("璇ョ伅鏉哅ac涓虹┖");
}
IRequestFrame build = FrameBuilder.builderA5().orderType(A5OrderEnum.REQUEST_LIGHT_DATA.getCode()).innerFrame(new A5LightResetReqInnerFrame()).build();
CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, build);
@@ -746,7 +1109,11 @@
if (pole == null) {
throw new BusinessException("鐏潌涓嶅瓨鍦�");
}
+
+ //涓�绾у鎴� -1 userId
+ //浜岀骇瀹㈡埛 涓婄骇瀹㈡埛id userId
pole.setClientId(-1L);
+ pole.setUserId(-1L);
r = updateById(pole);
if (!r) {
@@ -760,22 +1127,15 @@
public List<Pole> getOwnerPole(BaseConditionVO baseConditionVO, String keyword, Long cilentId) {
LambdaQueryWrapper<Pole> eq;
-// if(SecurityUtils.getClientId()!=null){
- PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
if (clientService.findClientId(cilentId)) {
- eq = Wrappers.lambdaQuery(Pole.class).eq(Pole::getUserId, cilentId);
+ eq = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, cilentId);
} else {
- PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
eq = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, cilentId).or(pole -> {
pole.eq(Pole::getUserId, cilentId);
});
}
-// }else {
-// PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
-// eq = Wrappers.lambdaQuery(Pole.class);
-// }
- PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+
if (!keyword.isEmpty()) {
eq.like(Pole::getPoleName, keyword).or(code -> {
code.like(Pole::getPoleCode, keyword);
@@ -783,6 +1143,7 @@
deviceCode.like(Pole::getDeviceCode, keyword);
});
}
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
List<Pole> list;
list = list(eq);
setCount(list);
@@ -939,7 +1300,7 @@
* 鎺ㄩ�佸ぇ姘旂洃娴嬫暟鎹埌novaLED
*/
public VnnoxResult pushAirDataToNova(PushAirDataToNovaParam param) {
- Long poleId=param.getPoleId();
+ 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));
@@ -957,8 +1318,104 @@
A5AtmosphereHeartbeatReportInnerFrame.HeartBeatDataPackage data = SpringContextHolder.getBean(AirDataService.class).getDataByPoleid(poleId);
//鎺ㄩ�佹暟鎹�
// return SpringContextHolder.getBean(VnnoxService.class).publishWaterData(LED.getPlayerId(),param.getDuration(), data);
- return SpringContextHolder.getBean(VnnoxService.class).WaterData(LED.getPlayerId(),param.getDuration(), data);
+ return SpringContextHolder.getBean(VnnoxService.class).WaterData(LED.getPlayerId(), param.getDuration(), data);
}
+ /**
+ * 缁熻璁惧鐘舵�佸瓨鍏edis
+ */
+ public void setRedis() {
+
+ // redisStatusKeyTimeout涓虹┖ 浠h〃涓婃璋冪敤鍦�15鍒嗛挓鍓�
+ if (redisUtils.get("redisStatusKeyTimeout") != null) {
+ //涓嶄负绌� 璇存槑鐭椂闂村唴璋冪敤杩� 鐩存帴杩斿洖
+ System.out.println("15鍒嗛挓鍐呭凡缁忔洿鏂拌繃鏁版嵁");
+ return;
+ }
+
+ //璁剧疆瑙﹀彂鏉′欢 瀛樺叆Redis 15鍒嗛挓瓒呮椂 15鍒嗛挓鍐呭啀娆¤皟鐢ㄧ洿鎺ヨ繑鍥�
+ redisUtils.set("redisStatusKeyTimeout", System.currentTimeMillis(), 60 * 15);
+
+ CountDownLatch countDownLatch = new CountDownLatch(7);//todo
+ //鑾峰彇涓�涓�7浣嶉殢鏈烘暟
+ String str = RandomStringUtils.randomAlphanumeric(7);
+ countDownLatchUtil.push(str, countDownLatch);
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(IpVolumeService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("闊虫煴鎵ц");
+
+ }
+ }).start();
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(MonitorService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("鎽勫儚澶存墽琛�");
+ }
+ }).start();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(LightService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("鍗曠伅鎵ц");
+ }
+ }).start();
+// new Thread(new Runnable() {
+// @Override
+// public void run() {
+// SpringContextHolder.getBean(C3ChargingService.class).setCacheData();
+// countDownLatchUtil.countDown(str);
+// System.out.println("鍏呯數妗╂墽琛�");
+// }
+// }).start();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(AirEquipmentService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("澶ф皵鎵ц");
+ }
+ }).start();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("鐔欐睕鎵ц");
+ }
+ }).start();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(VnnoxService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("璇虹摝鎵ц"); //todo 璇虹摝鏁呴殰鏆傛棤
+ }
+ }).start();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SpringContextHolder.getBean(PoleLightemitService.class).setCacheData();
+ countDownLatchUtil.countDown(str);
+ System.out.println("鐔欐睕鎵ц");
+ }
+ }).start();
+
+
+ try {
+ countDownLatch.await(12000, TimeUnit.MILLISECONDS);
+ countDownLatchUtil.remove(str);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3