From 21ff37f83f27364720bb890cce4b6aa7ffc40562 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Wed, 21 Oct 2020 16:53:27 +0800
Subject: [PATCH] 报警
---
src/main/resources/mapper/AlarmConfigMapper.xml | 9
src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java | 5
src/main/resources/mapper/DictionaryDataMapper.xml | 4
src/main/java/com/moral/mapper/DictionaryDataMapper.java | 1
src/main/resources/mapper/DeviceMapper.xml | 14 +
src/main/java/com/moral/service/DictionaryDataService.java | 2
src/main/java/com/moral/service/AlarmConfigService.java | 2
src/main/java/com/moral/mapper/HistoryMapper.java | 1
src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java | 11
src/main/webapp/js/newmoralmap.js | 62 ++++
src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 13 +
src/main/webapp/view/newmap.jsp | 64 +++--
src/main/java/com/moral/service/DeviceService.java | 2
src/main/java/com/moral/service/HistoryService.java | 2
src/main/webapp/view/lianxian.jsp | 133 +++++++++++
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 4
src/main/java/com/moral/mapper/DeviceMapper.java | 94 ++++---
src/main/resources/mapper/HistoryMapper.xml | 5
src/main/java/com/moral/controller/ScreenController.java | 253 ++++++++++++++++++++
src/main/java/com/moral/mapper/AlarmConfigMapper.java | 5
20 files changed, 610 insertions(+), 76 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 40c2ba1..c55bbdf 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;
@@ -39,14 +40,13 @@
import com.rabbitmq.client.*;
import com.rabbitmq.client.Channel;
-
import io.swagger.annotations.Api;
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;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.net.ftp.FTPClient;
@@ -71,7 +71,6 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import org.xml.sax.InputSource;
-
import static com.moral.common.util.ResourceUtil.getValue;
import static com.moral.common.util.WebUtils.getParametersStartingWith;
import static java.util.Calendar.*;
@@ -2228,6 +2227,7 @@
}
+
@GetMapping("/contrastFactor")
@ApiOperation(value = "������������", notes = "������������")
@ApiImplicitParams(value = {
@@ -2248,6 +2248,251 @@
return alarmData;
}
+ @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("/tellAlarm")
+ @ResponseBody
+ public List<List> tellAlarm(@Param("states") String states,
+ @Param("orgId") String orgId,
+ @Param("accountId") String accountId,
+ @Param("states1") String states1,
+ @Param("regionCode") 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 = {
@@ -2297,4 +2542,4 @@
List<Map<String, Object>> list = historyMinutelyService.getDevicesSensorsToExcel(parameters);
return new ResultBean<List<Map<String, Object>>>(list);
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/AlarmConfigMapper.java b/src/main/java/com/moral/mapper/AlarmConfigMapper.java
index 848dd0a..0df0801 100644
--- a/src/main/java/com/moral/mapper/AlarmConfigMapper.java
+++ b/src/main/java/com/moral/mapper/AlarmConfigMapper.java
@@ -4,6 +4,7 @@
import java.util.Map;
import com.moral.entity.alarm.AlarmConfig;
+import org.apache.ibatis.annotations.Param;
public interface AlarmConfigMapper {
int deleteByPrimaryKey(Integer id);
@@ -23,4 +24,8 @@
AlarmConfig selectByMonitorPointId(Integer mpId);
AlarmConfig selectByDeviceMac(String mac);
+
+ public String getValueByOrganizationId(@Param("organizationId") int organizationId);
+
+ int containOrgId(@Param("orgId")Integer orgId);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java
index f5f97ac..3e19f58 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -11,66 +11,80 @@
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.entity.Example;
-public interface DeviceMapper extends BaseMapper<Device>{
+public interface DeviceMapper extends BaseMapper<Device> {
- List<Map<String, Object>> getDeviceStatesByAccount(Map<String, Object> parameters);
- List<Device> selectWithRelationData(Example example);
- List<Map<String, Object>> getSensorsByDevice(@Param("mac")String mac);
- List<String> getDeviceMacByMonitorPointAndDeviceVersion(@Param("monitorPointId")Integer monitorPointId,@Param("deviceVersionId")Integer deviceVersionId);
+ List<Map<String, Object>> getDeviceStatesByAccount(Map<String, Object> parameters);
- List<Map<String, Object>> getDeviceVersionIdByMonitorPoint(Integer monitorPointId);
+ List<Device> selectWithRelationData(Example example);
- List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId, @Param("orgIds")List<Integer> orgIds,@Param("devState") String state,@Param("name")String name);
+ List<Map<String, Object>> getSensorsByDevice(@Param("mac") String mac);
- /**
- *
- * @param orgId
- * @param mpId
- * @return ���������������������
- */
- List<Device> selectByOrgIdAndMpId(@Param("orgId")Integer orgId,@Param("orgIds")List<Integer> orgIds,@Param("mpId")Integer mpId);
- List<Device> selectByMap(Map<String, Object> params);
- Device selectWithOrgIdsByMac(String mac);
- List<Integer> getDeviceVersionIdByAreaCode(Map<String, Object> parameters);
- Integer getDeviceCountByRegion(Map<String, Object> parameters);
- List<Map> countByTimes(@Param("start")Date start,@Param("end")Date end,@Param("format")String format);
+ List<String> getDeviceMacByMonitorPointAndDeviceVersion(@Param("monitorPointId") Integer monitorPointId, @Param("deviceVersionId") Integer deviceVersionId);
- List<Device> getDevicesByProfession(Map<String, Object> parameters);
+ List<Map<String, Object>> getDeviceVersionIdByMonitorPoint(Integer monitorPointId);
- List<Device> getDevicesByOrganizationId(Map<String, Object> parameters);
- List<Map<String, Object>> getDevicesStateByRegion(Map<String, Object> parameters);
+ List<Device> selectByOrgIdAndDevName(@Param("orgId") Integer orgId, @Param("orgIds") List<Integer> orgIds, @Param("devState") String state, @Param("name") String name);
- List<Device> getDeviceList(Example example);
- String getLimitDataByDevice(Map<String, Object> parameters);
+ /**
+ * @param orgId
+ * @param mpId
+ * @return ���������������������
+ */
+ List<Device> selectByOrgIdAndMpId(@Param("orgId") Integer orgId, @Param("orgIds") List<Integer> orgIds, @Param("mpId") Integer mpId);
+
+ List<Device> selectByMap(Map<String, Object> params);
+
+ Device selectWithOrgIdsByMac(String mac);
+
+ List<Integer> getDeviceVersionIdByAreaCode(Map<String, Object> parameters);
+
+ Integer getDeviceCountByRegion(Map<String, Object> parameters);
+
+ List<Map> countByTimes(@Param("start") Date start, @Param("end") Date end, @Param("format") String format);
+
+ List<Device> getDevicesByProfession(Map<String, Object> parameters);
+
+ List<Device> getDevicesByOrganizationId(Map<String, Object> parameters);
+
+ List<Map<String, Object>> getDevicesStateByRegion(Map<String, Object> parameters);
+
+ List<Device> getDeviceList(Example example);
+
+ String getLimitDataByDevice(Map<String, Object> parameters);
List<String> getMacsByOrganizationId(@Param("organizationIdList") List<Object> organizationIdList);
- List<Device> getDeviceById1(@Param("id") int id);
+ List<Device> getDeviceById1(@Param("id") int id);
- //������������������
- List<Device> getDeviceById2(@Param("id") int id);
+ //������������������
+ List<Device> getDeviceById2(@Param("id") int id);
- List<Device> getDeviceById3(@Param("id") int id);
+ List<Device> getDeviceById3(@Param("id") int id);
- List<Integer> getHasWindDirAndWindSpeedDeviceVersion();
+ List<Integer> getHasWindDirAndWindSpeedDeviceVersion();
- List<Device> selectDevicesAll(Map<String, Object> params);
+ List<Device> selectDevicesAll(Map<String, Object> params);
- List<DeviceAndWind> getAllDevice();
+ List<DeviceAndWind> getAllDevice();
- List<String> getAllMac();
+ List<String> getAllMac();
- Device byMacGetDevice(@Param("mac") String mac);
+ Device byMacGetDevice(@Param("mac") String mac);
- DeviceAndWind getDeviceAndWindByMac(@Param("mac") String mac,@Param("time") String time,
- @Param("table") String table);
+ DeviceAndWind getDeviceAndWindByMac(@Param("mac") String mac, @Param("time") String time,
+ @Param("table") String table);
- List<DeviceAndWind> byMonitorIdGetDeviceAndWind(@Param("id") int id,@Param("time") String time, @Param("table") String table);
- DeviceAndWind byMacGetDeviceAndWind(@Param("mac") String mac,@Param("time") String time, @Param("table") String table);
+ List<DeviceAndWind> byMonitorIdGetDeviceAndWind(@Param("id") int id, @Param("time") String time, @Param("table") String table);
- List<String> getMacsByMonitorPointIds(List<Integer> list);
+ DeviceAndWind byMacGetDeviceAndWind(@Param("mac") String mac, @Param("time") String time, @Param("table") String table);
- Map<String, Object> selectAllFieldByMac(Map<String, Object> params);
+ List<String> getMacsByMonitorPointIds(List<Integer> list);
- List getDeviceByCode(Map<String, Object> params);
+ Map<String, Object> selectAllFieldByMac(Map<String, Object> params);
+
+ List getDeviceByCode(Map<String, Object> params);
+
+ List<Device> getDeviceByCodeAndId(@Param("code") String code, @Param("id") String id);
+
+ String byMacGetOrgId(String mac);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/DictionaryDataMapper.java b/src/main/java/com/moral/mapper/DictionaryDataMapper.java
index f1720de..4ada8d1 100644
--- a/src/main/java/com/moral/mapper/DictionaryDataMapper.java
+++ b/src/main/java/com/moral/mapper/DictionaryDataMapper.java
@@ -7,4 +7,5 @@
public interface DictionaryDataMapper extends BaseMapper<DictionaryData> {
public Integer selectSupperOrgId();
public boolean isSupperOrgId(Integer orgId);
+ String getDefultAlarm();
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 3b6d2ea..5ab081a 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -8,6 +8,7 @@
public interface HistoryMapper{
String selectValueByMacAndTime(@Param("mac")String mac, @Param("time")Date time);
+ String getValueByMacAndTime(@Param("mac")String mac, @Param("time")String time,@Param("time1")String time1);
List<Map<String, Object>> getAreaAllDataByAccount(Map<String, Object> parameters);
List<Map<String, Object>> getRegionRankingData(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/AlarmConfigService.java b/src/main/java/com/moral/service/AlarmConfigService.java
index e34dad5..55ee66e 100644
--- a/src/main/java/com/moral/service/AlarmConfigService.java
+++ b/src/main/java/com/moral/service/AlarmConfigService.java
@@ -8,6 +8,7 @@
public interface AlarmConfigService {
public Optional<AlarmConfig> queryValueByOrganizationId(int organizationId);
public Optional<AlarmConfig> queryByOrganizationId(int organizationId);
+ public String getValueByOrganizationId(int organizationId);
public Optional<AlarmConfig> queryByMonitorPointId(int mpId);
public AlarmConfigValue getDefaultAlarmConfigValue();
@@ -15,4 +16,5 @@
void addOrModify(AlarmConfig alarmConfig);
+ int containOrgId(Integer orgId);
}
diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java
index cc47109..ca06f17 100644
--- a/src/main/java/com/moral/service/DeviceService.java
+++ b/src/main/java/com/moral/service/DeviceService.java
@@ -83,5 +83,7 @@
List<DeviceAndWind> byMonitorIdGetDeviceAndWind(String id,String time,String tab);
List<DeviceAndWind> byMonitorIdGetDeviceAndWindSpecial(String id,String time,String tab);
+ List<Device> getDeviceByCodeAndId(String code,String id);
+ String byMacGetOrgId(String mac);
}
diff --git a/src/main/java/com/moral/service/DictionaryDataService.java b/src/main/java/com/moral/service/DictionaryDataService.java
index a4ed7ca..762e457 100644
--- a/src/main/java/com/moral/service/DictionaryDataService.java
+++ b/src/main/java/com/moral/service/DictionaryDataService.java
@@ -8,4 +8,6 @@
List<DictionaryData> queryByKey(String dictDataKey);
Integer querySupperOrgId();
+
+ String getDefultAlarm();
}
diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java
index ebcae1f..3ed919d 100644
--- a/src/main/java/com/moral/service/HistoryService.java
+++ b/src/main/java/com/moral/service/HistoryService.java
@@ -13,6 +13,8 @@
String queryValueByMacAndTime(String mac, Date time);
+ String getValueByMacAndTime(String mac, String time,String time1);
+
List<Map<String, Object>> getRegionRankingData(Map<String, Object> parameters);
List<Map<String, Object>> getSensorsDataByDevice(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
index 6ea34b6..a5ca8e6 100644
--- a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -75,6 +75,11 @@
}
@Override
+ public String getValueByOrganizationId(int organizationId) {
+ return alarmConfigMapper.getValueByOrganizationId(organizationId);
+ }
+
+ @Override
public Optional<AlarmConfig> queryByMonitorPointId(int mpId) {
AlarmConfig alarmConfig = alarmConfigMapper.selectByMonitorPointId(mpId);
if(alarmConfig==null){
@@ -112,6 +117,12 @@
throw ex;
}
}
+
+ @Override
+ public int containOrgId(Integer orgId) {
+ return alarmConfigMapper.containOrgId(orgId);
+ }
+
public AlarmConfigValue simplifyAlarmConfigValue(AlarmConfigValue value){
Map<String,AlarmSensorLevel> alarmSensorLevelMap = value.getAlarmLevels();
List<String> cleanKeys = new ArrayList<>();
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index f31a2d0..6fbd69f 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -212,6 +212,7 @@
Integer orgId = Integer.parseInt(orgIdObj.toString());
List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
params.put("orgIds", orgIds);
+ System.out.println(params);
deviceList = deviceMapper.selectByMap(params);
// loadDeviceState(deviceList);
}
@@ -998,7 +999,7 @@
if (tvoc==null){
tvoc=0.0;
}
- Double dir = (270.0 - windDir * Math.PI / 180.0);
+ Double dir = (270.0 + windDir * Math.PI / 180.0);
U = windSpeed * Math.cos(dir);
V = windSpeed * Math.sin(dir);
@@ -1077,4 +1078,14 @@
return list;
}
+ @Override
+ public List<Device> getDeviceByCodeAndId(String code, String id) {
+ return deviceMapper.getDeviceByCodeAndId(code,id);
+ }
+
+ @Override
+ public String byMacGetOrgId(String mac) {
+ return deviceMapper.byMacGetOrgId(mac);
+ }
+
}
diff --git a/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java b/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java
index 867a90e..c187601 100644
--- a/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DictionaryDataServiceImpl.java
@@ -22,4 +22,9 @@
public Integer querySupperOrgId() {
return dataMapper.selectSupperOrgId();
}
+
+ @Override
+ public String getDefultAlarm() {
+ return dataMapper.getDefultAlarm();
+ }
}
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index f46c6ea..343cdd3 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -117,7 +117,9 @@
public String queryValueByMacAndTime(String mac, Date time) {
return historyMapper.selectValueByMacAndTime(mac, time);
}
-
+ public String getValueByMacAndTime(String mac, String time,String time1) {
+ return historyMapper.getValueByMacAndTime(mac, time,time1);
+ }
@Override
public List<Map<String, Object>> getRegionRankingData(Map<String, Object> parameters) {
ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null");
diff --git a/src/main/resources/mapper/AlarmConfigMapper.xml b/src/main/resources/mapper/AlarmConfigMapper.xml
index f8c95ff..a0b35de 100644
--- a/src/main/resources/mapper/AlarmConfigMapper.xml
+++ b/src/main/resources/mapper/AlarmConfigMapper.xml
@@ -114,4 +114,13 @@
where dev.mac = #{mac,jdbcType=VARCHAR}
limit 0,1
</select>
+ <select id="getValueByOrganizationId" resultType="java.lang.String">
+ select `value`
+ from alarm_config
+ where organization_id = #{organizationId,jdbcType=INTEGER}
+ limit 0,1
+ </select>
+ <select id="containOrgId" resultType="java.lang.Integer">
+ select COUNT(*) from alarm_config where id=#{orgId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index 6df8406..79771cb 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -484,7 +484,8 @@
</select>
<select id="selectDevicesAll" parameterType="java.util.Map" resultType="com.moral.entity.Device">
- SELECT dev.name,dev.address,dev.id,dev.state,dev.mac,dev.longitude,dev.latitude,dev.device_version_id deviceVersionId from device dev
+ SELECT dev.name,dev.address,dev.id,dev.state,dev.mac,dev.longitude,dev.latitude,dev.device_version_id
+ deviceVersionId from device dev
left join monitor_point mpt on dev.monitor_point_id = mpt.id
<where>
<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
@@ -549,4 +550,15 @@
where d.mac=h.mac and h.time=#{time}
and d.mac=#{mac}
</select>
+ <select id="getDeviceByCodeAndId" resultType="com.moral.entity.Device" resultMap="BaseResultMap">
+ select * from device where monitor_point_id in(
+ SELECT mpt.id
+ FROM monitor_point mpt,organization org
+ where mpt.organization_id=org.id
+ and org.id=#{id}
+ )
+ </select>
+ <select id="byMacGetOrgId" resultType="java.lang.String">
+ SELECT organization_id FROM `monitor_point` as mt ,device as d where d.monitor_point_id=mt.id and mac=#{mac}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DictionaryDataMapper.xml b/src/main/resources/mapper/DictionaryDataMapper.xml
index 9e18298..1cb67b9 100644
--- a/src/main/resources/mapper/DictionaryDataMapper.xml
+++ b/src/main/resources/mapper/DictionaryDataMapper.xml
@@ -24,4 +24,8 @@
select count(*) from dictionary_data
where dict_data_key = 'auth_config_super_org' and dict_data_value = #{orgId,jdbcType=INTEGER}
</select>
+ <select id="getDefultAlarm" resultType="java.lang.String">
+ select dict_data_value from dictionary_data
+ where dict_data_key = 'default_alarm_config_value'
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 4ed149c..8af3236 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -292,5 +292,10 @@
select `json` from ${table}
where time = #{time} and mac = #{mac}
</select>
+ <select id="getValueByMacAndTime" resultType="java.lang.String">
+ select `value` from history
+ where mac = #{mac} and time >= #{time1} and time <=#{time}
+ limit 0,1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/webapp/js/newmoralmap.js b/src/main/webapp/js/newmoralmap.js
index 45f5ed1..204c461 100644
--- a/src/main/webapp/js/newmoralmap.js
+++ b/src/main/webapp/js/newmoralmap.js
@@ -698,16 +698,18 @@
})
}
+
moralMap.WindMarker = function (option, moralMap) {
var _option = option;
var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']);
- var _iconObj = _getWindIcon(1);
+ var _iconObj = _getWindIcon(0);
this._point = _pointObj;
function _getWindIcon(speedLevel) {
speedLevel = speedLevel == null ? 0 : speedLevel;
var windIcon = _option["windIcon"];
var windUrl = windIcon["url"] + speedLevel + ".png";
+
return new BMap.Icon(windUrl, new BMap.Size(windIcon["width"], windIcon["height"]), {
imageSize: new BMap.Size(windIcon["width"], windIcon["height"])
});
@@ -718,6 +720,8 @@
offset: new BMap.Size(0, -11),
enableMassClear: true
})
+
+
return $.extend(this, {
refreshWindDir: function (windDir, windSpeed) {
//���������������������������������������������
@@ -747,7 +751,6 @@
if (speedLevel == 0) {
moralMap.removeOverlay(this);
} else {
- moralMap.addOverlay(this);
var iconObj = _getWindIcon(speedLevel);
this.setIcon(iconObj);
this.setRotation(windDir);
@@ -759,7 +762,8 @@
},
setOption: function (option) {
_option = option;
- }
+ },
+
})
}
@@ -1202,7 +1206,57 @@
var deviceStates;
var monitorPointStates;
- moralMap.refreshState = function (states) {
+ moralMap.refreshState = function (states, orgId, regionCode, accountId) {
+ var state = JSON.stringify(states);
+ var state1 = $(".pp2").html()
+ var paramMap = {};
+ var abc = '';
+ paramMap["orgId"] = orgId;
+ paramMap["regionCode"] = regionCode;
+ paramMap["accountId"] = accountId;
+ paramMap["states"] = state;
+ paramMap["states1"] = state1;
+ $.ajax({
+ url: "/screen/tellAlarm",
+ type: "get",
+ dataType: "json",
+ data: paramMap,
+ success: function (info) {
+ var alarm = JSON.parse(JSON.stringify(info));
+ if (alarm.length > 0) {
+ $("#box").attr("style", "display:block;");//������div
+ $("#tou").attr("style", "display:block;color: #d9534f;font-size: 20px;");//������div
+ for (var i = 0; i < alarm.length; i++) {
+ var text = "<span style='line-height: 25px><p style='line-height: 25px'>";
+ var lookString = alarm[i][0]["time"] + " " + alarm[i][0]["name"];
+ for (var j = 0; j < alarm[i].length; j++) {
+ var value = "";
+ if (alarm[i].length > 1) {
+ if (j == 0) {
+ value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"];
+ lookString = lookString + value;
+ } else {
+ value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"];
+ lookString = lookString + "," + value;
+ }
+ } else {
+ value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"];
+ lookString = lookString + value;
+ }
+ text = text + lookString + "������" + "</p><hr></hr></span>";
+ $("#box1").prepend(text);
+ }
+
+ }
+ for (var j = 0; j < $("#box1").children("span").length; j++) {
+ if ($("#box1").children("span").length > 50) {
+ $("#box1 span:last").remove() ;
+ }
+ }
+ }
+ },
+ })
+ state1 = $(".pp2").html(state);
monitorPointStates = states;
deviceStates = [];
for (var i in states) {
diff --git a/src/main/webapp/view/lianxian.jsp b/src/main/webapp/view/lianxian.jsp
new file mode 100644
index 0000000..390b43f
--- /dev/null
+++ b/src/main/webapp/view/lianxian.jsp
@@ -0,0 +1,133 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@page isELIgnored="false" %>
+
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
+ <style type="text/css">
+ body, html, #allmap {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ margin: 0;
+ font-family: "������������";
+ }
+ #box {
+ width:300px;
+ height:400px;
+ top:30px;
+ right:30px;
+ position:absolute;
+ z-index:1;
+ border:2px solid red;
+ background-color:gainsboro;
+ opacity: 0.8;
+ }
+ #cpm,#cpm1{
+ width: 300px;
+ height: 100px;
+ position: absolute;
+ background-color: #ffffff;
+ display: none;
+ left: 50%;
+ top: 50%;
+ margin-left: -150px;
+ margin-top: -50px;
+ z-index: 11;
+ color: #000000;
+ border: 2px solid #FF7F50;
+ font-size: 14px;
+ line-height: 100px;
+ text-align: center;
+ }
+ </style>
+ <script type="text/javascript"
+ src="http://api.map.baidu.com/api?v=2.0&ak=rER1sgBIcQxkfNSlm2wmBGZGgEERrooM"></script>
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/utils.js"></script>
+ <script type="text/javascript">
+ if (typeof (JSON) == 'undefined') {
+ $.getScript("js/json2.js");
+ }
+ </script>
+ <script type="text/javascript" src="/js/paging.js"></script>
+ <title>������������</title>
+</head>
+<body>
+<div id="allmap" style="z-index: 0" ;>
+</div>
+
+<div id="mapParams" style="display: none;">
+ ${requestScope.params}
+</div>
+</body>
+
+</html>
+<script type="text/javascript">
+ // ������������API������
+ var map = new BMap.Map("allmap",{minZoom:14,maxZoom:19}); // ������Map������
+ map.enableScrollWheelZoom(true); //������������������������
+ var params = $.parseJSON($("#mapParams").html());
+ var point=new BMap.Point(params["ll"][0], params["ll"][1]);
+ map.centerAndZoom(point, 18.5); // ���������������,������������������������������������
+
+ var icon1 = new BMap.Icon("/img/ico00.png", new BMap.Size(48, 48));
+ var mark1 = new BMap.Marker(new BMap.Point(params["ll"][0], params["ll"][1]), {icon: icon1});
+ map.addOverlay(mark1);
+
+
+ var icon2 = new BMap.Icon("/img/ico05.png", new BMap.Size(48, 48));
+ var mark2 = new BMap.Marker(new BMap.Point(116.885217,38.299148), {icon: icon2});
+ map.addOverlay(mark2);
+ var label = new BMap.Label("���������������������������������--distance="+params["mt"],{offset:new BMap.Size(20,-10)});
+ mark2.setLabel(label);
+ var icon3 = new BMap.Icon("/img/ico05.png", new BMap.Size(48, 48));
+ var mark3 = new BMap.Marker(new BMap.Point(116.87061,38.322828), {icon: icon3});
+ map.addOverlay(mark3);
+
+ var label = new BMap.Label("���������������������������--distance="+params["mt1"],{offset:new BMap.Size(20,-10)});
+ mark3.setLabel(label);
+
+ var icon4 = new BMap.Icon("/img/ico05.png", new BMap.Size(48, 48));
+ var mark4 = new BMap.Marker(new BMap.Point(116.855206,38.325162), {icon: icon4});
+ map.addOverlay(mark4);
+
+ var label = new BMap.Label("������������������������������ --distance="+params["mt2"],{offset:new BMap.Size(20,-10)});
+ mark4.setLabel(label);
+
+ var polyline1 = new BMap.Polyline([
+ new BMap.Point(params["ll"][0], params["ll"][1]),
+ new BMap.Point(116.885217,38.299148)
+ ], {strokeColor:"red", strokeWeight:8, strokeOpacity:0.5}); //������������
+
+
+ var polyline2 = new BMap.Polyline([
+ new BMap.Point(params["ll"][0], params["ll"][1]),
+ new BMap.Point(116.87061,38.322828)
+ ], {strokeColor:"yellow", strokeWeight:8, strokeOpacity:0.5}); //������������
+ var polyline3 = new BMap.Polyline([
+ new BMap.Point(params["ll"][0], params["ll"][1]),
+ new BMap.Point(116.855206,38.325162)
+ ], {strokeColor:"blue", strokeWeight:8, strokeOpacity:0.5}); //������������
+ map.addOverlay(polyline1); //������������
+ map.addOverlay(polyline2); //������������
+ map.addOverlay(polyline3); //������������
+
+
+ //������������������������
+ map.addControl(new BMap.MapTypeControl({
+ mapTypes: [
+ BMAP_HYBRID_MAP,
+ BMAP_NORMAL_MAP
+ ]
+ }));
+ map.setMapType(BMAP_NORMAL_MAP);
+
+
+
+
+</script>
+
diff --git a/src/main/webapp/view/newmap.jsp b/src/main/webapp/view/newmap.jsp
index 4302057..469610d 100644
--- a/src/main/webapp/view/newmap.jsp
+++ b/src/main/webapp/view/newmap.jsp
@@ -363,6 +363,19 @@
.wind_explain li img {
vertical-align: top;
}
+ #box {
+ overflow: auto;
+ width: 300px;
+ height: 400px;
+ top: 30px;
+ right: 30px;
+ position: absolute;
+ z-index: 1;
+ border: 1px solid gainsboro;
+ background-color: gainsboro;
+ opacity: 0.8;
+ display: none;
+ }
</style>
<body>
<div>
@@ -370,7 +383,7 @@
<textarea id="close" hidden></textarea>
<div class="main_body">
- <div class="tools_box">
+ <%-- <div class="tools_box">
<div class="charts_btn">
</div>
</div>
@@ -385,15 +398,14 @@
<li><img src="/img/icoWind07.png" width="25" height="25"><span>7������</span></li>
<li><img src="/img/icoWind08.png" width="25" height="25"><span>8���������������</span></li>
</ul>
+ </div>--%>
+
+ <div id="box">
+ <span id="tou">������������������</span>
+ <div id="box1" style="margin-top: 15px"></div>
</div>
- <%-- <div class="search_box">
- <button id="searchBtn" type="button">������</button>
- <textarea style="width: 300px;height:400px;" id="searchParam"></textarea>
- </div>--%>
- <!-- <div id="popup_box">
- <div id="equ_list" class="listview">
- </div>
- </div> -->
+ <div class="pp1" style="display:none;" ></div>
+ <div class="pp2" style="display:none;" ></div>
<div id="mapCanvas"></div>
<div id="mapParams" style="display: none;">
${requestScope.mapParams}
@@ -404,14 +416,17 @@
</html>
<script>
//���������������
+ var orgId;
+ var regionCode;
+ var accountId;
(function ($) {
var hostAndPort = document.location.host;
var moralMap = window.moralMap;
var params = $.parseJSON($("#mapParams").html());
moralMap['params'] = params;
- var orgId = params["orgId"];
- var regionCode = params["regionCode"];
- var accountId = params["accountId"];
+ orgId = params["orgId"];
+ regionCode = params["regionCode"];
+ accountId = params["accountId"];
var provinceCode = regionCode.toString().substring(0, 2) + "0000";
var mapType = getUrlParam("mapType");
var mapOption = {};
@@ -424,7 +439,6 @@
//������������
var listView = moralMap.initListView({id: "#equ_list", pageSize: 12});
window["listView"] = listView;
-
//���������������������click������������
function showEqus(obj) {
@@ -460,7 +474,6 @@
});
}
}, 500);
-
}
function loadOverlays(url, callback) {
@@ -704,7 +717,7 @@
//������������������
ws.onmessage = function (msg) {
// $("#searchParam").val(JSON.parse(msg.data));
- //moralMap.getRoad(JSON.parse(JSON.parse(msg.data)),regionCode);
+ // moralMap.getRoad(JSON.parse(JSON.parse(msg.data)),regionCode);
moralMap.refreshWindDir(JSON.parse(JSON.parse(msg.data)));
/* if (moralMap.showSensors && typeof (moralMap.showSensors) == "function") {
moralMap.showSensors(JSON.parse(JSON.parse(msg.data)));
@@ -715,19 +728,18 @@
moralMap.showSensors(JSON.parse(JSON.parse(msg.data)));
};
- //������������
- ws.onclose = function () {
- $("#close").html("websocket������������");
- };
- //���������������������
- ws.onerror = function () {
- $("#close").html("websocket������������");
- };
+ //������������
+ ws.onclose = function () {
+ $("#close").html("websocket������������");
+ };
+ //���������������������
+ ws.onerror = function () {
+ $("#close").html("websocket������������");
+ };
}
})(jQuery);
var _intervalNum = -1;
-
function startRefreshPage() {
if (_intervalNum == -1) {
_intervalNum = self.setInterval(function () {
@@ -779,6 +791,7 @@
cache: false,
async: true,
success: function (data) {
+ console.log(data)
if (data != null && typeof data === 'object') {
var resultMap = data["extData"];
if (resultMap == null) {
@@ -838,7 +851,8 @@
moralMap.callJS(jsonData);
} else if ("RefreshState" == methodName) {
var states = jsonData.states;
- moralMap.refreshState(states);
+ $(".pp1").html(JSON.stringify(states))
+ moralMap.refreshState(states,orgId,regionCode,accountId);
} else if ("CloseMq" == methodName) {
$("#close").html(methodName);
}
--
Gitblit v1.8.0