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