From a0341d4100c15c57fb645fd1f23225563e306712 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 28 Feb 2018 10:55:55 +0800
Subject: [PATCH] 设备和监控点 两模块修改,同步reids里的信息。数据字典功能添加

---
 src/main/java/com/moral/controller/ScreenController.java |  205 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 172 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 6a1e617..eeac838 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -6,41 +6,60 @@
 import static com.moral.common.util.WebUtils.getParametersStartingWith;
 
 import java.io.*;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.lang.reflect.InvocationTargetException;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import com.alibaba.fastjson.*;
+import com.moral.common.bean.JsonData;
+import com.moral.common.bean.PageResult;
 import com.moral.common.xml.Version;
+import com.moral.entity.Account;
+import com.moral.entity.Device;
+import com.moral.entity.MapBounds;
+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.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONReader;
-import com.alibaba.fastjson.TypeReference;
 import com.moral.common.bean.ResultBean;
 import com.moral.common.util.ValidateUtil;
-import com.moral.service.AccountService;
-import com.moral.service.DataService;
-import com.moral.service.DeviceService;
-import com.moral.service.HistoryService;
-import com.moral.service.MachineActivateService;
+import org.springframework.web.servlet.ModelAndView;
 import org.xml.sax.InputSource;
 
 /**
  * The Class ScreenController.������������
  */
 @RestController
-@RequestMapping("screen")
-@CrossOrigin(origins = "*", maxAge = 3600)
+@RequestMapping("/screen")
+//@CrossOrigin(origins = "*", maxAge = 3600)
 public class ScreenController {
+	public  static Logger log = Logger.getLogger(ScreenController.class);
+    @Resource
+	AlarmConfigService alarmConfigService;
+	@Resource
+	AreaService areaService;
+
+	@Resource
+	SensorService sensorService;
+	@Resource
+	MonitorPointService monitorPointService;
 
 	/** The screen service. */
 	@Resource
@@ -55,7 +74,7 @@
 	private DeviceService deviceService;
 
 	@Resource
-	private DataService dataService;
+	private HistoryMinutelyService historyMinutelyService;
 
 	@Resource
 	private MachineActivateService machineActivateService;
@@ -99,7 +118,8 @@
 	 *            the request
 	 * @return the equipment states
 	 */
-	@GetMapping("equipment-state")
+	@GetMapping("/equipment-state")
+	@PreAuthorize("hasAnyRole('USER', 'ADMIN')")
 	public Map<String, Object> getDeviceStatesByAccount(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
 		return deviceService.getDeviceStatesByAccount(parameters);
@@ -114,29 +134,30 @@
 	 */
 	@SuppressWarnings("resource")
 	@GetMapping("alarm-levels")
-	public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) {
-		Map<String, Object> result = new LinkedHashMap<String, Object>();
-		String key = levelKey + orgId;
+	public Object getAlarmLevels(HttpServletRequest request, Integer orgId) {
+        List<Map<String,Object>> sensorAlarmList = null;
 		try {
-			if (hasKey(redisTemplate, key)) {
-				String levelConfigStr = get(redisTemplate, key);
-				result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {});
-			} else {
-				InputStreamReader reader = new InputStreamReader(resource.getInputStream());
-				result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String, Object>>() {});
-			}
-			
-		} catch (IOException e) {
+			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());
+		} catch (Exception e) {
 			e.printStackTrace();
-			result.put("msg", "���������������������������������������������������" + e.getMessage());
+			Map<String, Object> err = new LinkedHashMap<String, Object>();
+			err.put("msg", "���������������������������������������������������" + e.getMessage());
+			return  err;
 		}
-		return result;
+		return sensorAlarmList;
 	}
 
 	/**
 	 * Gets the standard by sensor.���������������������������
 	 *
-	 * @param request
+	 * @param macKey
 	 *            the request
 	 * @return the standard by sensor
 	 */
@@ -158,7 +179,7 @@
 	@GetMapping("day-aqi")
 	public Map<String, Object> getDayAQIByDevice(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
-		return dataService.getDayAQIByDevice(parameters);
+		return historyMinutelyService.getDayAQIByDevice(parameters);
 	}
 
 	/**
@@ -167,9 +188,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);
 	}
@@ -197,7 +219,7 @@
 	@GetMapping("month-sensor-average")
 	public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
-		return historyService.getMonthAverageBySensor(parameters);
+		return historyMinutelyService.getMonthAverageBySensor(parameters);
 	}
 
 	@GetMapping("check-activate")
@@ -261,4 +283,121 @@
 		}
 		return version;
 	}
+	/**
+	 * ������������
+	 * ������
+	 */
+	/**
+	 * ������������
+	 * @param model
+	 * @param code
+	 * @param accountId
+	 * @return
+	 */
+	@RequestMapping(value = "/map-page", method = RequestMethod.GET)
+	public ModelAndView map(ModelAndView model, @RequestParam("areaCode")int code, @RequestParam("accountId")int accountId){
+		Account account = accountService.getAccountById(accountId);
+		String regionName = areaService.selectFullNameByCode(code);
+		if(account!=null&&regionName!=null){
+		    //������������
+            regionName = regionName.replace(" ","");
+			Object sensors = sensorService.queryAll();
+			JSONObject params = new JSONObject();
+			params.put("regionCode",code);
+			params.put("regionName",regionName);
+			params.put("accountId", accountId);
+			params.put("orgId", account.getOrganizationId());
+			params.put("sensors", sensors);
+			String paramsJson = params.toJSONString();
+			model.addObject("mapParams",paramsJson);
+			model.setViewName("map");
+			return model;
+		} else {
+			StringBuilder msg = new StringBuilder();
+			msg.append(" param[0] areaCode:");
+			msg.append(code);
+			msg.append(" param[0] accountId:");
+			msg.append(accountId);
+			log.warn(msg);
+			model.setViewName("401");
+			return model;
+		}
+	}
+	@RequestMapping(value="/get-monitorpoints",method = RequestMethod.GET)
+	@ResponseBody
+	public ResultBean getMonitorpointList(@RequestParam("orgId")String orgId,MapBounds mapBounds){
+		ResultBean<List<MonitorPoint>> resultBean = new ResultBean();
+		Map<String,Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("orgId", orgId);
+		paramMap.put("mapBounds",mapBounds);
+		List<MonitorPoint> list = monitorPointService.queryWithStateByMap(paramMap);
+		resultBean.setData(list);
+		resultBean.setCode(ResultBean.SUCCESS);
+		return resultBean;
+	}
+	@RequestMapping(value="/get-devices",method = RequestMethod.GET)
+	@ResponseBody
+	public ResultBean getDevices(@RequestParam("orgId")Integer orgId,MapBounds mapBounds){
+		ResultBean<List<Device>> resultBean = new ResultBean();
+		Map<String,Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("orgId", orgId);
+		paramMap.put("mapBounds",mapBounds);
+		List<Device> list = deviceService.query(paramMap);
+		resultBean.setData(list);
+		resultBean.setCode(ResultBean.SUCCESS);
+		return resultBean;
+	}
+	@RequestMapping(value = "get-devices-for-popup",method = RequestMethod.GET)
+	@ResponseBody
+	public PageResult getDevicesForPopup(
+			@RequestParam("orgId")Integer orgId,
+			String name,
+			Integer pageSize,
+			Integer pageNo
+	){
+		return  deviceService.query(orgId,name,pageSize,pageNo);
+	}
+	@RequestMapping(value = "get-devices-by-mid-oid",method = RequestMethod.GET)
+	@ResponseBody
+	public PageResult getDevicesByMidOid(
+			@RequestParam("orgId")Integer orgId,
+			@RequestParam("mpId")Integer mpId,
+			Integer pageSize,
+			Integer pageNo
+	){
+	   return deviceService.query(orgId,mpId,pageSize,pageNo);
+	}
+	@RequestMapping(value="/get-real-state-data",method = RequestMethod.POST)
+	@ResponseBody
+	public JsonData getRealStateAndData(@RequestBody JSONObject paramMap){
+		JsonData jsonData = new JsonData();
+		Map<String,Object> returnMap = new HashMap<String, Object>();
+		returnMap.put("layer", paramMap.getString("layer"));
+		//���������������������������
+		if(!CollectionUtils.isEmpty(paramMap.getJSONArray("markerKeys"))) {
+			JSONArray markerKeys = paramMap.getJSONArray("markerKeys");
+			List<Map<String, String>> markers = null;
+			if("equipments".equals(paramMap.getString("layer"))) {
+				markers = deviceService.queryDevicesState(markerKeys.toJavaList(String.class),true);
+			}else {//���������������id���state
+				String orgId= paramMap.getString("orgId");
+				String areaCode= paramMap.getString("areaCode");
+				for(Object mPointId:markerKeys) {
+					markers = monitorPointService.queryMonitroPointsState(markerKeys.toJavaList(Integer.class));
+				}
+			}
+			returnMap.put("markers", markers);
+		}
+		if(paramMap.getJSONArray("popupEquMacs")!=null&&paramMap.getJSONArray("popupEquMacs").size()>0) {
+			JSONArray popupEquMacs = paramMap.getJSONArray("popupEquMacs");
+			List<Map<String, String>> popupEquWithStates = null;
+			for(Object mac:popupEquMacs) {
+				popupEquWithStates = deviceService.queryDevicesState(popupEquMacs.toJavaList(String.class),false);
+			}
+			//���������������������������
+			returnMap.put("popupEquStates", popupEquWithStates);
+		}
+		jsonData.setExtData(returnMap);
+		return jsonData;
+	}
 }

--
Gitblit v1.8.0