From e2236bdb285884a32b8c58f0873deb603261f4c3 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Thu, 10 May 2018 15:17:39 +0800 Subject: [PATCH] 获取 报警levels,提供 mpID监控点id,orgId组织id,皆为可选参数 --- src/main/java/com/moral/controller/ScreenController.java | 88 ++++++++++++++++++++++++++++++++----------- 1 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 8ea576f..8cc897a 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -7,17 +7,13 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.InputStreamReader; -import java.net.InetAddress; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import com.moral.entity.alarm.AlarmConfig; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.net.ftp.FTPClient; import org.apache.log4j.Logger; @@ -25,6 +21,7 @@ import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cglib.beans.BeanMap; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.ObjectUtils; @@ -56,7 +53,7 @@ import com.moral.entity.alarm.AlarmSensorLevel; import com.moral.service.AccountService; import com.moral.service.AlarmConfigService; -import com.moral.service.AlarmService; +import com.moral.service.AlarmDailyService; import com.moral.service.AreaService; import com.moral.service.DeviceService; import com.moral.service.HistoryMinutelyService; @@ -114,7 +111,7 @@ private String levelKey = "alarm_"; @Resource - private AlarmService alarmService; + private AlarmDailyService alarmDailyService; /** * Screen login. ������������ * @@ -158,17 +155,49 @@ * @return the alarm levels */ @GetMapping("alarm-levels") - public Object getAlarmLevels(HttpServletRequest request, Integer orgId) { + public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId) { List<Map<String,Object>> sensorAlarmList = null; - try { - AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId).get(); - Map<String,AlarmSensorLevel> alarmLevelMap = alarmConfigValue.getAlarmLevels(); - sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> { - AlarmSensorLevel alarmSensorLevel = alarmLevelMap.get(key); - JSONObject alarmSensorLevelMap = (JSONObject) JSON.toJSON(alarmSensorLevel); - alarmSensorLevelMap.put("key",key); - return alarmSensorLevelMap; - }).collect(Collectors.toList()); + Map<String,AlarmSensorLevel> alarmLevelMap = null; + try { + if(orgId.isPresent()){ + AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId.get()).get(); + alarmLevelMap = alarmConfigValue.getAlarmLevels(); + }else if(mpId.isPresent()){ + AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get(); + alarmLevelMap = alarmConfig.getValue().getAlarmLevels(); + // ������������������������������������������������������ + if(alarmConfig.getId()!=null){ + AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue(); + Map<String,AlarmSensorLevel> defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels(); + Map<String,AlarmSensorLevel> alarmSensorLevelMapNotZO = alarmLevelMap.entrySet().stream().collect( + HashMap::new, + (map,entry) -> { + AlarmSensorLevel alarmSensorLevel = entry.getValue(); + if(alarmSensorLevel.isEnable()||alarmSensorLevel.isDegressEnable()){ + map.put(entry.getKey(),entry.getValue()); + } + }, + (oMap,nMap) -> { + oMap.putAll(nMap); + } + ); + // ������������������������������������ + defaultSensorLevelMap.putAll(alarmSensorLevelMapNotZO); + alarmLevelMap = defaultSensorLevelMap; + } + } + if(alarmLevelMap!=null){ + //map to list + Map<String, AlarmSensorLevel> finalAlarmLevelMap = alarmLevelMap; + sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> { + AlarmSensorLevel alarmSensorLevel = finalAlarmLevelMap.get(key); + Map<String,Object> alarmSensorLevelMap = new HashMap<>(BeanMap.create(alarmSensorLevel)); + alarmSensorLevelMap.put("key",key); + return alarmSensorLevelMap; + }).collect(Collectors.toList()); + }else{ + return new ResultBean<>("���������������������������������������������",ResultBean.FAIL); + } } catch (Exception e) { e.printStackTrace(); Map<String, Object> err = new LinkedHashMap<String, Object>(); @@ -277,10 +306,9 @@ ftpClient.connect(ip, port); ftpClient.login(userName, userPwd); ftpClient.changeWorkingDirectory(path); - //ftpClient.enterRemotePassiveMode(); - //ftpClient.enterLocalPassiveMode(); + ftpClient.enterLocalPassiveMode(); //ftpClient.enterLocalActiveMode(); - //ftpClient.enterRemoteActiveMode(InetAddress.getByName(ip), port); + InputStream ins = ftpClient.retrieveFileStream(fileName); BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8")); String line; @@ -298,6 +326,19 @@ ftpClient.logout(); ftpClient.disconnect(); } + +// String urlStr = "http://www.7drlb.com/apps/Version.xml"; +// URL realUrl = new URL(urlStr); +// URLConnection connection = realUrl.openConnection(); +// connection.connect(); +// StringBuffer result = new StringBuffer(); +// BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); +// String line; +// while ((line = in.readLine()) != null) { +// result.append(line); +// } +// String content = result.toString(); + SAXReader saxReader = new SAXReader(); Document document = saxReader.read(new InputSource(new ByteArrayInputStream(content.getBytes("utf-8")))); Element root = document.getRootElement(); @@ -312,7 +353,8 @@ public static void main(String[] args) { ScreenController sc = new ScreenController(); - sc.index(); + Version a = sc.index(); + System.out.println(a.getVer()); } /** @@ -478,7 +520,7 @@ parameters.remove("organizationId"); } } - Map pieData = alarmService.getPieData(parameters); + Map pieData = alarmDailyService.getPieData(parameters); List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey); return new ResultBean<List<Map<String, Object>>>(list); } -- Gitblit v1.8.0