From 8489ee9f8d25d41a91061934e102ccc9b39d5b05 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 16 Nov 2020 13:15:57 +0800
Subject: [PATCH] 更改获取数据时间值
---
src/main/java/com/moral/controller/ScreenController.java | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 287 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index b86fa8d..beb5867 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -4,6 +4,7 @@
import java.lang.reflect.Array;
import java.text.DateFormat;
import java.text.DecimalFormat;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -43,6 +44,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
import jdk.nashorn.internal.runtime.regexp.joni.Regex;
import net.sf.json.JSONString;
import org.apache.commons.collections.CollectionUtils;
@@ -164,6 +166,7 @@
@Resource
private ScreenVersionService screenVersionService;
+
/**
* Screen login. ������������
*
@@ -701,13 +704,32 @@
parameters.put("sensors", Arrays.asList(sensorKey));
// monitorPointService.isCompensateCalculation(parameters);
list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
+ list.remove(0);
+ if (list.size() == 23) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+ //���������������������yyyy-MM-dd HH:mm:ss
+ time1 = time1 + " 00:00:00";
+ Date date = sdf.parse(time1);
+ date = DateUtil.rollDay(date, 1);
+ //������������������������
+ String time2 = sdf2.format(date);
+ parameters.put("time", time2);
+ List<Map<String, Object>> nextDayList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
+ if(!ObjectUtils.isEmpty(nextDayList)){
+ time1=time1.replaceAll(" 00:00:00"," 24");
+ Map<String, Object> datas = nextDayList.get(0);
+ datas.put("time",time1);
+ list.add(datas);
+ }
+ }
for (Map<String, Object> map : list) {
String time = map.get("time").toString();
time = time.substring(time.length() - 2);
map.put("time", Integer.valueOf(time));
- if (parameters.get("type").equals("day")) {
+ /* if (parameters.get("type").equals("day")) {
map.put("time", Integer.valueOf(time) + 1);
- }
+ }*/
map.put("value", map.remove(sensorKey));
}
}
@@ -2244,24 +2266,281 @@
return alarmData;
}
- @GetMapping("multiDeviceSensor")
+ @GetMapping("multiDeviceContrast")
@ApiOperation(value = "���������������������", notes = "���������������������")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "monitorPoint", value = "���������id", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "macs", value = "������mac,���������������������������", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "time", value = "������,������(���������2018-03-12)", required = true, paramType = "query", dataType = "String"),})
public ResultBean<List<Map<String, Object>>> multiDeviceSensor(HttpServletRequest request) throws Exception {
Map<String, Object> parameters = getParametersStartingWith(request, null);
ParameterUtils.getTimeType4Time(parameters);
- List<Map<String, Object>> multiDeviceSensorData = historyMinutelyService.getMultiDeviceSensorData(parameters);
- return new ResultBean<List<Map<String, Object>>>(multiDeviceSensorData);
+ List<Map<String, Object>> list = historyMinutelyService.getMultiDeviceSensorData(parameters);
+ return new ResultBean<List<Map<String, Object>>>(list);
}
+
+ @PostMapping("/tellAlarm")
+ @ResponseBody
+ public List<List> tellAlarm(String states, String orgId, String accountId, String states1, String regionCode) {
+ JSONArray stateList = JSONArray.parseArray(states);//���������������������
+ JSONArray stateList1 = JSONArray.parseArray(states1);//���10������������������
+ List<List> lookList = new ArrayList<>();
+ Map params = new HashMap();
+ String lookString = "";
+ //������������������������������������������������������������������������������
+ //���������������������������������������null
+ if (stateList1 != null && !states.equals(states1)) {
+ List<Map> listDevice = JSONObject.parseArray(stateList.toJSONString(), Map.class);
+ List<Map> listDevice1 = JSONObject.parseArray(stateList1.toJSONString(), Map.class);
+ //���������������������������������������
+ List<Map> deviceList = new ArrayList<Map>();
+ List<Map> deviceList1 = new ArrayList<Map>();
+ //���������������������id
+ List orgList = new ArrayList();
+ for (Map devices : listDevice) {
+ int monitorId = Integer.parseInt((String) devices.get("id"));
+ MonitorPoint monitorPoint = monitorPointService.byIdGetMonitorPoint(monitorId);
+ int org_id = monitorPoint.getOrganizationId();
+ orgList.add(org_id);
+ List<Map> devicesList = (List<Map>) devices.get("devices");
+ if (!devicesList.isEmpty()) {
+ if (devicesList.size() > 1) {
+ for (Map map : devicesList) {
+ deviceList.add(map);
+ }
+ } else {
+ deviceList.add((Map) ((List) devices.get("devices")).get(0));
+ }
+ }
+ }
+ for (Map devices1 : listDevice1) {
+ int monitorId = Integer.parseInt((String) devices1.get("id"));
+ MonitorPoint monitorPoint = monitorPointService.byIdGetMonitorPoint(monitorId);
+ int org_id = monitorPoint.getOrganizationId();
+ List<Map> devicesList = (List<Map>) devices1.get("devices");
+ if (!devicesList.isEmpty()) {
+ if (devicesList.size() > 1) {
+ for (Map map : devicesList) {
+ deviceList1.add(map);
+ }
+ } else {
+ deviceList1.add((Map) ((List) devices1.get("devices")).get(0));
+ }
+ }
+ }
+ List<String> macList = new ArrayList<String>();
+ //������������������������������������������mac���
+ for (Map map : deviceList) {
+ String state = (String) map.get("state");
+ String mac = (String) map.get("mac");
+ for (Map map1 : deviceList1) {
+ String state1 = (String) map1.get("state");
+ String mac1 = (String) map1.get("mac");
+ if (mac.equals(mac1)) {
+ if (Integer.parseInt(state) > Integer.parseInt(state1) && Integer.parseInt(state) != 4 /*&& Integer.parseInt(state1) == 0*/) {
+ macList.add(mac + "-" + state + "-" + state1);
+ }
+ }
+ }
+ }
+ //������������������������
+ LinkedHashSet<Integer> orgS = new LinkedHashSet<Integer>(orgList);
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date date = new Date(System.currentTimeMillis());
+ Date date1 = new Date(System.currentTimeMillis() - 1000);
+ //������������������
+ String time = formatter.format(date);
+ //������������������������������
+ String time1 = formatter.format(date1);
+ List<Map> alarmList = new ArrayList<Map>();
+ for (Integer org : orgS) {
+ int orgNum = alarmConfigService.containOrgId(org);
+ Map<String, Object> eMap = new HashMap<String, Object>();
+ if (orgNum == 1) {
+ String alarmConfig = alarmConfigService.getValueByOrganizationId(Integer.parseInt(String.valueOf(org)));
+ Map hashMap = JSON.parseObject(alarmConfig, HashMap.class);
+ Map alarmLevels = (Map) hashMap.get("alarmLevels");
+ //������������������������106���������
+ for (int i = 1; i < 106; i++) {
+ if (alarmLevels.containsKey("e" + i)) {
+ Map map = (Map) alarmLevels.get("e" + i);
+ if (!map.isEmpty()) {
+ Integer enable = (Integer) map.get("enable");
+ List increment = (List) map.get("increment");
+ if (enable == 1) {
+ if (!(increment.get(0).toString().equals("0") && increment.get(1).toString().equals("0"))) {
+ eMap.put("e" + i, increment);
+ } else {
+ continue;
+ }
+ } else {
+ continue;
+ }
+ }
+ }
+ }
+ } else {
+ String defultAlarm = dictionaryDataService.getDefultAlarm();
+ Map hashMap = JSON.parseObject(defultAlarm, HashMap.class);
+ Map alarmLevels = (Map) hashMap.get("alarmLevels");
+ //������������������������106���������
+ for (int i = 1; i < 106; i++) {
+ if (alarmLevels.containsKey("e" + i)) {
+ Map map = (Map) alarmLevels.get("e" + i);
+ if (!map.isEmpty()) {
+ Integer enable = (Integer) map.get("enable");
+ List increment = (List) map.get("increment");
+ if (enable == 1) {
+ if (!(increment.get(0).toString().equals("0") && increment.get(1).toString().equals("0"))) {
+ eMap.put("e" + i, increment);
+ } else {
+ continue;
+ }
+ } else {
+ continue;
+ }
+ }
+ }
+ }
+ }
+ Map map = new HashMap();
+ map.put("eMap", eMap);
+ map.put("org", org);
+ alarmList.add(map);
+ }
+ for (Map aEMap : alarmList) {
+ List<Map> values = new ArrayList<Map>();
+ if (macList.size() > 0) {
+ for (String sMac : macList) {
+ String[] aMac = sMac.split("-");
+ String mac = aMac[0];
+ //������������������������������������������������������������������������������������������������������������������������������������������������
+ String value = historyService.getValueByMacAndTime(mac, time, time1);
+ Map<String, String> map = new HashMap<String, String>();
+ if (value == null) {
+ Date date2 = new Date(System.currentTimeMillis() - 2000);
+ //������������������������������
+ String time2 = formatter.format(date1);
+ value = historyService.getValueByMacAndTime(mac, time, time2);
+ if (value == null) {
+ Date date3 = new Date(System.currentTimeMillis() - 3000);
+ //������������������������������
+ String time3 = formatter.format(date1);
+ value = historyService.getValueByMacAndTime(mac, time, time3);
+ }
+ }
+ if (value != null) {
+ map.put("mac", mac);
+ map.put("value", value);
+ map.put("state", aMac[1]);
+ map.put("state1", aMac[2]);
+ values.add(map);
+ } else {
+ continue;
+ }
+ }
+ }
+
+ if (values.size() > 0 && values.size() == macList.size()) {
+ for (Map dataMap : values) {
+ String oId = deviceService.byMacGetOrgId((String) dataMap.get("mac"));
+ if (!(aEMap.get("org").toString()).equals(oId)) {
+ continue;
+ }
+ List<String> list = new ArrayList<String>();
+ Map sensorMap = JSONObject.parseObject((String) dataMap.get("value"));
+ Iterator<String> iter = sensorMap.keySet().iterator();
+ while (iter.hasNext()) {
+ String key = iter.next();
+ list.add(key);
+ }
+ String state = (String) dataMap.get("state");
+ String state1 = (String) dataMap.get("state1");
+ List<Map> mapList = new ArrayList();
+ for (String key : list) {
+ if (((Map) aEMap.get("eMap")).containsKey(key)) {
+ Double val = Double.valueOf(sensorMap.get(key).toString());
+ List valueList = (List) ((Map) aEMap.get("eMap")).get(key);
+ Device device = deviceService.byMacGetDevice((String) dataMap.get("mac"));
+ Map<String, Object> sensors = sensorService.getSensorBySensorKey(key);
+ if (key.equals("e1") || key.equals("e2") || key.equals("e10") || key.equals("e11") || key.equals("e15") || key.equals("e16")) {
+ //������������������������
+ if ((state1.equals("0") || state1.equals("1")) && Integer.parseInt(state) > 1) {
+ if (val > Double.valueOf(String.valueOf(valueList.get(1)))) {
+ Map lookMap = new HashMap();
+ lookMap.put("time", time);
+ lookMap.put("name", device.getName());
+ lookMap.put("sensor", sensors.get("description"));
+ lookMap.put("value", val + "" + sensors.get("unit"));
+ mapList.add(lookMap);
+ //lookString = time+" "+device.getName()+sensors.get("description")+"="+val + sensors.get("unit")+"������";
+ //System.out.println(time + "====" + device.getName() + "=====" + sensors.get("description") + "======" + val + sensors.get("unit"));
+ }
+ }
+ } else {//���������������������������
+ if (state1.equals("0")) {
+ if (val > Double.valueOf(String.valueOf(valueList.get(0)))) {
+ Map lookMap = new HashMap();
+ lookMap.put("time", time);
+ lookMap.put("name", device.getName());
+ lookMap.put("sensor", sensors.get("description"));
+ lookMap.put("value", val + "" + sensors.get("unit"));
+ mapList.add(lookMap);
+ }
+ }
+ }
+
+ }
+ }
+ if (mapList.size() > 0) {
+ lookList.add(mapList);
+ } else {
+ continue;
+ }
+ }
+ }
+ }
+ }
+ return lookList;
+ }
+
+ /* @GetMapping("/lianxian")
+ @ApiOperation(value = "������", notes = "������" )
+ @GetMapping("multiDeviceContrast")
+ @ApiOperation(value = "���������������������", notes = "���������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "macs", value = "������mac,���������������������������", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "time", value = "������,������(���������2018-03-12)", required = true, paramType = "query", dataType = "String"),})
+ public ResultBean<List<Map<String, Object>>> multiDeviceSensor(HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = getParametersStartingWith(request, null);
+ ParameterUtils.getTimeType4Time(parameters);
+ List<Map<String, Object>> list = historyMinutelyService.getMultiDeviceSensorData(parameters);
+ return new ResultBean<List<Map<String, Object>>>(list);
+ }
+
+ /*
+ * ���������������������������������������������
+ */
@GetMapping("screenVersion")
- public Map<String, Object> getScreenVersion(HttpServletRequest request) {
+ public Map<String, Object> getScreenVersion(HttpServletRequest request) {
Map<String, Object> parameters = getParametersStartingWith(request, null);
String version = parameters.get("version").toString();
return screenVersionService.getScreenVersion(version);
}
-}
+
+ @GetMapping("allDeviceExcel")
+ @ApiOperation(value = "���������������������������������", notes = "���������������������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "monitorPoint", value = "������������id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key,������������������", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "startTime", value = "������������(���������2020-08-03)", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "endTime", value = "������������(���������2020-08-04)", required = false, paramType = "query", dataType = "String")})
+ public ResultBean<List<Map<String, Object>>> getAllDeviceDataToExcel(HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ ParameterUtils.getTimeType4Time(parameters);
+ List<Map<String, Object>> list = historyMinutelyService.getAllDeviceDataToExcel(parameters);
+ return new ResultBean<List<Map<String, Object>>>(list);
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0