From c976fedb4d58a23aff930188d4031adac54a3037 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Thu, 10 May 2018 17:18:37 +0800 Subject: [PATCH] 获取报警 阀值 --- src/main/java/com/moral/controller/ScreenController.java | 207 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 167 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index e8bd1c8..0968946 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -1,21 +1,49 @@ package com.moral.controller; -import static com.moral.common.util.RedisUtil.get; -import static com.moral.common.util.RedisUtil.hasKey; import static com.moral.common.util.ResourceUtil.getValue; import static com.moral.common.util.WebUtils.getParametersStartingWith; -import java.io.*; -import java.lang.reflect.InvocationTargetException; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import com.alibaba.fastjson.*; +import com.moral.entity.alarm.AlarmConfig; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.log4j.Logger; +import org.dom4j.Document; +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; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; +import org.xml.sax.InputSource; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.moral.common.bean.Constants; import com.moral.common.bean.JsonData; import com.moral.common.bean.PageResult; +import com.moral.common.bean.ResultBean; +import com.moral.common.util.ValidateUtil; import com.moral.common.xml.Version; import com.moral.entity.Account; import com.moral.entity.Device; @@ -23,25 +51,16 @@ import com.moral.entity.MonitorPoint; import com.moral.entity.alarm.AlarmConfigValue; import com.moral.entity.alarm.AlarmSensorLevel; -import com.moral.service.*; -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.net.ftp.FTPClient; -import org.apache.log4j.Logger; -import org.dom4j.Document; -import org.dom4j.Element; -import org.dom4j.io.SAXReader; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.*; - -import com.moral.common.bean.ResultBean; -import com.moral.common.util.ValidateUtil; -import org.springframework.web.servlet.ModelAndView; -import org.xml.sax.InputSource; +import com.moral.service.AccountService; +import com.moral.service.AlarmConfigService; +import com.moral.service.AlarmDailyService; +import com.moral.service.AreaService; +import com.moral.service.DeviceService; +import com.moral.service.HistoryMinutelyService; +import com.moral.service.HistoryService; +import com.moral.service.MachineActivateService; +import com.moral.service.MonitorPointService; +import com.moral.service.SensorService; /** * The Class ScreenController.������������ @@ -49,6 +68,7 @@ @RestController @RequestMapping("/screen") //@CrossOrigin(origins = "*", maxAge = 3600) +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) public class ScreenController { public static Logger log = Logger.getLogger(ScreenController.class); @Resource @@ -90,6 +110,8 @@ /** The level key. */ private String levelKey = "alarm_"; + @Resource + private AlarmDailyService alarmDailyService; /** * Screen login. ������������ * @@ -132,20 +154,51 @@ * the request * @return the alarm levels */ - @SuppressWarnings("resource") @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; - AlarmConfigValue alarmConfigValue = null; - try { - 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()); + try { + AlarmConfig alarmConfig = null; + if(orgId.isPresent()){ + alarmConfig = alarmConfigService.queryValueByOrganizationId(orgId.get()).get(); + }else if(mpId.isPresent()){ + alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get(); + } + //��������������� + if(alarmConfig.getValue()!=null&&alarmConfig.getValue().getAlarmLevels()!=null){ + Map<String, AlarmSensorLevel> alarmLevelMap = alarmConfig.getValue().getAlarmLevels(); + // ������������������������������������������������������ + Map<String,AlarmSensorLevel> defaultSensorLevelMap = null; + if(alarmConfig.getId()!=null){ + AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue(); + defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels(); + } + Map<String, AlarmSensorLevel> finalDefaultSensorLevelMap = defaultSensorLevelMap; + alarmLevelMap.entrySet().stream().forEach(entry -> { + //��� increment������0������������������������ + AlarmSensorLevel alarmSensorLevel = entry.getValue(); + boolean isAllZero = alarmSensorLevel.getIncrement().stream().allMatch(item -> item == 0); + if(isAllZero){ + AlarmSensorLevel defaultAlarmSensorLevel = finalDefaultSensorLevelMap==null?null:finalDefaultSensorLevelMap.get(entry.getKey()); + if(defaultAlarmSensorLevel!=null){ + alarmSensorLevel.setIncrement(defaultAlarmSensorLevel.getIncrement()); + }else{ + List<Float> tempList = Arrays.asList(0.0f,200.0f,500.0f); + alarmSensorLevel.setIncrement(tempList); + } + } + }); + //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>(); @@ -189,9 +242,10 @@ * @param request * the request * @return the average by all + * @throws Exception */ @GetMapping("all-average") - public Map<String, Object> getAllSensorAverageByDevice(HttpServletRequest request) { + public Map<String, Object> getAllSensorAverageByDevice(HttpServletRequest request) throws Exception { Map<String, Object> parameters = getParametersStartingWith(request, null); return historyService.getAllSensorAverageByDevice(parameters); } @@ -239,7 +293,7 @@ * ������������������������������������ *********************************************/ private String fileName = "Version.xml"; - private String ip = "121.40.92.176"; + private String ip = "47.96.19.115"; private String userName = "ftp_user"; private String userPwd = "qwer1234"; private int port = 21; @@ -253,8 +307,9 @@ ftpClient.connect(ip, port); ftpClient.login(userName, userPwd); ftpClient.changeWorkingDirectory(path); - //ftpClient.enterRemotePassiveMode(); ftpClient.enterLocalPassiveMode(); + //ftpClient.enterLocalActiveMode(); + InputStream ins = ftpClient.retrieveFileStream(fileName); BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"utf-8")); String line; @@ -272,6 +327,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(); @@ -283,6 +351,13 @@ } return version; } + + public static void main(String[] args) { + ScreenController sc = new ScreenController(); + Version a = sc.index(); + System.out.println(a.getVer()); + } + /** * ������������ * ������ @@ -299,6 +374,8 @@ Account account = accountService.getAccountById(accountId); String regionName = areaService.selectFullNameByCode(code); if(account!=null&®ionName!=null){ + //������������ + regionName = regionName.replace(" ",""); Object sensors = sensorService.queryAll(); JSONObject params = new JSONObject(); params.put("regionCode",code); @@ -317,7 +394,7 @@ msg.append(" param[0] accountId:"); msg.append(accountId); log.warn(msg); - model.setViewName("401"); + model.setViewName("403"); return model; } } @@ -398,4 +475,54 @@ jsonData.setExtData(returnMap); return jsonData; } + + @GetMapping("monitor_points") + public ResultBean<List<MonitorPoint>> getMonitorPointsByOrganizationId(Integer orgId) { + //Map<String, Object> parameters = getParametersStartingWith(request, null); + List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsByOrganizationId(orgId); + return new ResultBean<List<MonitorPoint>>(monitorPoints); + } + + @GetMapping("report_avg_datas") + public ResultBean<List<Map<String, Object>>> getMonitorPointOrDeviceAvgData(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = getParametersStartingWith(request, null); + parameters.put("type", "month"); + parameters.put("monitorPointId", parameters.remove("monitorPoint")); + String sensorKey = parameters.remove("sensorKey").toString(); + List<String> sensorKeys = new ArrayList<String>(); + sensorKeys.add(sensorKey); + parameters.put("sensors", sensorKeys); + List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters); + + for (Map<String, Object> map : list) { + String time = map.get("time").toString(); + time = time.substring(time.length() - 2); + map.put("time", Integer.valueOf(time)); + map.put("value", map.remove(sensorKey)); + } + return new ResultBean<List<Map<String, Object>>>(list); + } + + @GetMapping("report_alarm_datas") + public ResultBean<List<Map<String, Object>>> getAlarmData(HttpServletRequest request) throws Exception { + Map<String, Object> parameters = getParametersStartingWith(request, null); + parameters.put("type", "month"); + String sensorKey = "list"; + if (ObjectUtils.isEmpty(parameters.get("sensorKey"))) { + parameters.put("description", "description"); + } else { + sensorKey = parameters.remove("sensorKey").toString(); + List<String> sensorKeys = new ArrayList<String>(); + sensorKeys.add(sensorKey); + parameters.put("sensors", sensorKeys); + } + if (!ObjectUtils.isEmpty(parameters.get("organizationId"))) { + if (!Constants.isNotSpecialOrgId(Integer.valueOf(parameters.get("organizationId").toString()))) { + parameters.remove("organizationId"); + } + } + 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