From f2b8a2fc1b360eb757cf9f8e2ed9f5d19f1f7f4c Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 12 五月 2022 16:02:46 +0800
Subject: [PATCH] fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java | 152 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 100 insertions(+), 52 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index b54253a..c2715b2 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -4,26 +4,30 @@
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.param.MonitorParam;
import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
+import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.MonitorBo;
import com.sandu.ximon.dao.domain.Monitor;
import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
import com.sandu.ximon.admin.dto.YSY_MonitorDto;
import com.sandu.ximon.dao.domain.PoleBinding;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
import com.sandu.ximon.dao.mapper.MonitorMapper;
import lombok.AllArgsConstructor;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.CountDownLatch;
@Service
@AllArgsConstructor
@@ -53,47 +57,58 @@
/**
* 妯$硦鏌ヨ
*/
- public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
- List<Monitor> list;
- if (SecurityUtils.getClientId() == null) {
- list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword());
- } else {
- list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword());
- }
-
- //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
- if (list.size() == 0 || list == null) {
- List<MonitorBo> nullList = new ArrayList<>();
- return nullList;
- }
- List<String> device_serialList = new ArrayList<>(list.size());
- for (Monitor demo : list) {
- device_serialList.add(demo.getDeviceSerial());
-
- YSY_MonitorDto.MonitorDto monitorInfo = getMonitorInfo_Async(demo.getDeviceSerial());
- if (monitorInfo != null) {
- demo.setEquipmentState(monitorInfo.getStatus());
- }
- }
- updateBatchById(list);
-
- if (baseConditionVO != null) {
- PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
- }
- List<MonitorBo> monitorList;
+ public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
//缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
if (monitorParam.getBindingState() == null) {
//鍏ㄩ儴
monitorParam.setBindingState(2);
+ }
+ List<MonitorBo> list;
+ if (SecurityUtils.getClientId() == null) {
+ list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState());
+ } else {
+ list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState());
+ }
+
+ //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+ if (list.size() == 0 || list == null) {
+ return new CommonPage();
+ }
+ List<String> device_serialList = new ArrayList<>(list.size());
+ CountDownLatch latch = new CountDownLatch(list.size());
+ for (Monitor demo : list) {
+ device_serialList.add(demo.getDeviceSerial());
+ getMonitorInfo_Async(demo, latch);
+ }
+ try {
+ latch.await();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
}
if (monitorParam.getEquipmentState() == null) {
//鍏ㄩ儴
monitorParam.setEquipmentState(2);
}
- monitorList = monitorMapper.listMonitorByIds(device_serialList, monitorParam.getBindingState(), monitorParam.getEquipmentState());
+ List<MonitorBo> temp = new ArrayList<>();
+ if (monitorParam.getEquipmentState() == 2) {
+ temp.addAll(list);
+ } else {
+ for (MonitorBo monitorBo : list) {
+ //绛涢�夌姸鎬佹暟鎹�
+ if (monitorBo.getEquipmentState().equals(monitorParam.getEquipmentState())) {
+ temp.add(monitorBo);
+ }
+ }
+ }
- return monitorList;
+ if (baseConditionVO == null) {
+ baseConditionVO = new BaseConditionVO();
+ baseConditionVO.setPageSize(null);
+ baseConditionVO.setPageNo(null);
+ }
+ CommonPage commonPage = ListPagingUtils.pages(temp, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ return commonPage;
}
public Monitor getYSYMonitorInfoAndaddMonitorToTable(String deviceSerial) {
@@ -169,21 +184,29 @@
*
* @return
*/
- @Async("taskExecutor")
- public YSY_MonitorDto.MonitorDto getMonitorInfo_Async(String deviceSerial) {
- String token = getAccessToken();
- Map<String, Object> paramMap = new HashMap<>();
- paramMap.put("accessToken", token);
- paramMap.put("deviceSerial", deviceSerial);
- String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
- YSY_MonitorDto monitorDto = null;
- try {
- monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
- return monitorDto.getData();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
+ public void getMonitorInfo_Async(Monitor monitor, CountDownLatch countDownLatch) {
+ Thread t = new Thread() {
+ @Override
+ public void run() {
+ String token = getAccessToken();
+ Map<String, Object> paramMap = new HashMap<>();
+ paramMap.put("accessToken", token);
+ paramMap.put("deviceSerial", monitor.getDeviceSerial());
+ String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+ YSY_MonitorDto monitorDto = null;
+ try {
+ monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+ System.out.println(s + " ----------");
+ monitor.setEquipmentState(monitorDto.getData().getStatus());
+ countDownLatch.countDown();
+ } catch (Exception e) {
+ monitor.setEquipmentState(0);
+ countDownLatch.countDown();
+ }
+ }
+ };
+ t.start();
+
}
/**
@@ -191,20 +214,40 @@
*
* @return
*/
- public YSY_MonitorDto.MonitorDto getMonitorInfo(String deviceSerial) {
+ public EquipmentInfomation getMonitorInfo(String deviceSerial) {
+ EquipmentInfomation equipmentInfo = new EquipmentInfomation();
+ equipmentInfo.setEquipmentType("鎽勫儚澶�");
+ if (deviceSerial == null || deviceSerial.trim().length() == 0) {
+ return equipmentInfo;
+ }
+
+ Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
+ if (one != null) {
+ equipmentInfo.setEquipmentCreateTime(one.getAddTime());
+ equipmentInfo.setEquipmentMac(one.getDeviceSerial());
+ equipmentInfo.setEquipmentName(one.getDeviceName());
+ }
+
String token = getAccessToken();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("accessToken", token);
paramMap.put("deviceSerial", deviceSerial);
String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
- YSY_MonitorDto monitorDto = null;
+
try {
- monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
- return monitorDto.getData();
+ YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+ if (monitorDto != null) {
+ //鍦ㄧ嚎鐘舵�侊細0-涓嶅湪绾匡紝1-鍦ㄧ嚎
+ if (monitorDto.getData().getStatus() == 1) {
+ equipmentInfo.setEquipmentState("鍦ㄧ嚎");
+ } else {
+ equipmentInfo.setEquipmentState("绂荤嚎");
+ }
+ }
} catch (Exception e) {
e.printStackTrace();
}
- return null;
+ return equipmentInfo;
}
/**
@@ -356,6 +399,11 @@
throw new BusinessException("淇敼澶囨敞鍙傛暟鏈夎锛�");
}
Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
+
+ boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(one.getDeviceSerial(), PoleBindingEnums.MONITOR);
+ if (!belong) {
+ throw new BusinessException("璇ヨ澶囦笉灞炰簬鎮�,涓嶈兘淇敼璁惧淇℃伅");
+ }
if (one != null) {
one.setNote(notes);
return updateById(one);
--
Gitblit v1.9.3