From 7014fd76c199e676159ac30da6f4dbb91e3a137e Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 06 Feb 2018 16:50:31 +0800
Subject: [PATCH] 地图相关
---
src/main/resources/mapper/DeviceMapper.xml | 59 +++++-
src/main/java/com/moral/common/bean/JsonData.java | 124 +++++++++++++
src/main/webapp/js/moralmap.js | 13
src/main/webapp/view/map.jsp | 17 -
src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 118 +++++++++++++
src/main/java/com/moral/entity/Device.java | 3
src/main/java/com/moral/service/DeviceService.java | 6
src/main/resources/system/sysConfig.properties | 3
src/main/java/com/moral/common/bean/Constants.java | 34 +++
src/main/java/com/moral/mapper/DeviceMapper.java | 4
src/main/java/com/moral/service/MonitorPointService.java | 2
src/main/java/com/moral/controller/ScreenController.java | 81 ++++++++-
src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 28 ++
src/main/java/com/moral/common/exception/Exceptions.java | 45 +++++
14 files changed, 493 insertions(+), 44 deletions(-)
diff --git a/src/main/java/com/moral/common/bean/Constants.java b/src/main/java/com/moral/common/bean/Constants.java
index 01d5455..644f7d0 100644
--- a/src/main/java/com/moral/common/bean/Constants.java
+++ b/src/main/java/com/moral/common/bean/Constants.java
@@ -1,8 +1,19 @@
package com.moral.common.bean;
+import com.moral.common.util.ResourceUtil;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
* ������������.
*/
+@Component
public class Constants {
/** The Constant IS_DELETE_TRUE. */
@@ -17,16 +28,35 @@
public static final String IS_USED_FALSE = "0";
public static final String IS_USED_TRUE = "1";
- private static final Integer[] specialOrgIds = new Integer[]{-1};
+ private static Integer[] specialOrgIds;
+ @PostConstruct
+ private void loadSpecialOrgIds(){
+ String orgIds = ResourceUtil.getValue("specialOrgIds");
+ if(!StringUtils.isBlank(orgIds)){
+ String [] orgIdArray = orgIds.split(",");
+ if(!ArrayUtils.isEmpty(orgIdArray)){
+ List<Integer> orgIdList = Arrays.asList(orgIdArray).stream().map(Integer::new).collect(Collectors.toList());
+ specialOrgIds = orgIdList.toArray(new Integer[orgIdList.size()]);
+ }
+ }
+ }
public static final Boolean isNotSpecialOrgId(Integer orgId) {
+ if(ArrayUtils.isEmpty(specialOrgIds)){
+ return true;
+ }
for(int i = 0; i < specialOrgIds.length; ++i) {
if (specialOrgIds[i].equals(orgId)) {
return false;
}
}
-
return true;
}
+ //device ������
+ public static final String DEVICE_STATE_NORMAL ="0";
+ public static final String DEVICE_STATE_MILD = "1";
+ public static final String DEVICE_STATE_MIDDLE ="2";
+ public static final String DEVICE_STATE_SERIOUS ="3";
+ public static final String DEVICE_STATE_OFFLINE ="4";
}
diff --git a/src/main/java/com/moral/common/bean/JsonData.java b/src/main/java/com/moral/common/bean/JsonData.java
new file mode 100644
index 0000000..0d9c792
--- /dev/null
+++ b/src/main/java/com/moral/common/bean/JsonData.java
@@ -0,0 +1,124 @@
+package com.moral.common.bean;
+
+import com.moral.common.exception.Exceptions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by dgw on 2017/4/10.
+ */
+public class JsonData {
+ private Integer total;//���������������������
+ private List rows = new ArrayList();// ������
+ private boolean success = true;//������������������
+ private String msg = "";//������������
+ private String errorTrace;//���������������������
+ private Object extData ;//������������
+
+ /**
+ * ���������������
+ * @return
+ */
+ public Integer getTotal() {
+ return total;
+ }
+
+ /**
+ * ���������������
+ * @return
+ */
+ public void setTotal(Integer total) {
+ this.total = total;
+ }
+
+ /**
+ * ������������������
+ * @return
+ */
+ public List getRows() {
+ return rows;
+ }
+
+ /**
+ * ������������������
+ * @return
+ */
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ /**
+ * ������������������
+ * @param success
+ */
+ public void setSuccess(boolean success){
+ this.success = success;
+ }
+
+ /**
+ * ������������������
+ * @param
+ */
+ public boolean getSuccess(){
+ return success;
+ }
+
+
+ /**
+ * ������������
+ * @param msg
+ */
+ public void setMsg(String msg){
+ this.msg = msg;
+ }
+
+ /**
+ * ������������
+ * @param
+ */
+ public String getMsg() {
+ return msg;
+ }
+
+ /**
+ * ������������������
+ * @return
+ */
+ public String getErrorTrace() {
+ return errorTrace;
+ }
+
+ /**
+ * ������������������
+ * @return
+ */
+ public void setErrorTrace(String errorTrace) {
+ this.errorTrace = errorTrace;
+ }
+
+ /**
+ * ������������
+ * @return
+ */
+ public Object getExtData() {
+ return extData;
+ }
+
+ /**
+ * ������������
+ * @return
+ */
+ public void setExtData(Object extData) {
+ this.extData = extData;
+ }
+
+ /**
+ * ���������������������������������������������������������������������errorTrace
+ * @param e
+ */
+ public void setException(Exception e){
+ this.errorTrace = Exceptions.getStackTraceAsString(e);
+ }
+
+}
diff --git a/src/main/java/com/moral/common/exception/Exceptions.java b/src/main/java/com/moral/common/exception/Exceptions.java
new file mode 100644
index 0000000..cb2b5d5
--- /dev/null
+++ b/src/main/java/com/moral/common/exception/Exceptions.java
@@ -0,0 +1,45 @@
+package com.moral.common.exception;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+/**
+ * Created by dgw on 2017/4/10.
+ */
+public class Exceptions {
+ /**
+ * ���CheckedException���������UncheckedException.
+ */
+ public static RuntimeException unchecked(Exception e) {
+ if (e instanceof RuntimeException) {
+ return (RuntimeException) e;
+ } else {
+ return new RuntimeException(e);
+ }
+ }
+
+ /**
+ * ���ErrorStack���������String.
+ */
+ public static String getStackTraceAsString(Exception e) {
+ StringWriter stringWriter = new StringWriter();
+ e.printStackTrace(new PrintWriter(stringWriter));
+ return stringWriter.toString();
+ }
+
+ /**
+ * ������������������������������������������������.
+ */
+ public static boolean isCausedBy(Exception ex, Class<? extends Exception>... causeExceptionClasses) {
+ Throwable cause = ex.getCause();
+ while (cause != null) {
+ for (Class<? extends Exception> causeClass : causeExceptionClasses) {
+ if (causeClass.isInstance(cause)) {
+ return true;
+ }
+ }
+ cause = cause.getCause();
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 86f52d9..c1c9fdb 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -6,21 +6,22 @@
import static com.moral.common.util.WebUtils.getParametersStartingWith;
import java.io.*;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.*;
+import com.moral.common.bean.JsonData;
import com.moral.common.bean.PageResult;
import com.moral.common.xml.Version;
import com.moral.entity.Account;
+import com.moral.entity.Device;
import com.moral.entity.MapBounds;
import com.moral.entity.MonitorPoint;
import com.moral.service.*;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;
import org.dom4j.Document;
@@ -32,9 +33,6 @@
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONReader;
-import com.alibaba.fastjson.TypeReference;
import com.moral.common.bean.ResultBean;
import com.moral.common.util.ValidateUtil;
import org.springframework.web.servlet.ModelAndView;
@@ -277,7 +275,17 @@
}
return version;
}
-
+ /**
+ * ������������
+ * ������
+ */
+ /**
+ * ������������
+ * @param model
+ * @param code
+ * @param accountId
+ * @return
+ */
@RequestMapping(value = "/map-page", method = RequestMethod.GET)
public ModelAndView map(ModelAndView model, @RequestParam("areaCode")int code, @RequestParam("accountId")int accountId){
Account account = accountService.getAccountById(accountId);
@@ -317,6 +325,18 @@
resultBean.setCode(ResultBean.SUCCESS);
return resultBean;
}
+ @RequestMapping(value="/get-devices",method = RequestMethod.GET)
+ @ResponseBody
+ public ResultBean getDevices(@RequestParam("orgId")Integer orgId,MapBounds mapBounds){
+ ResultBean<List<Device>> resultBean = new ResultBean();
+ Map<String,Object> paramMap = new HashMap<String, Object>();
+ paramMap.put("orgId", orgId);
+ paramMap.put("mapBounds",mapBounds);
+ List<Device> list = deviceService.query(paramMap);
+ resultBean.setData(list);
+ resultBean.setCode(ResultBean.SUCCESS);
+ return resultBean;
+ }
@RequestMapping(value = "get-devices-for-popup",method = RequestMethod.GET)
@ResponseBody
public PageResult getDevicesForPopup(
@@ -327,4 +347,47 @@
){
return deviceService.query(orgId,name,pageSize,pageNo);
}
+ @RequestMapping(value = "get-devices-by-mid-oid",method = RequestMethod.GET)
+ @ResponseBody
+ public PageResult getDevicesByMidOid(
+ @RequestParam("orgId")Integer orgId,
+ @RequestParam("mpId")Integer mpId,
+ Integer pageSize,
+ Integer pageNo
+ ){
+ return deviceService.query(orgId,mpId,pageSize,pageNo);
+ }
+ @RequestMapping(value="/get-real-state-data",method = RequestMethod.POST)
+ @ResponseBody
+ public JsonData getRealStateAndData(@RequestBody JSONObject paramMap){
+ JsonData jsonData = new JsonData();
+ Map<String,Object> returnMap = new HashMap<String, Object>();
+ returnMap.put("layer", paramMap.getString("layer"));
+ //���������������������������
+ if(!CollectionUtils.isEmpty(paramMap.getJSONArray("markerKeys"))) {
+ JSONArray markerKeys = paramMap.getJSONArray("markerKeys");
+ List<Map<String, String>> markers = null;
+ if("equipments".equals(paramMap.getString("layer"))) {
+ markers = deviceService.queryDevicesState(markerKeys.toJavaList(String.class),true);
+ }else {//���������������id���state
+ String orgId= paramMap.getString("orgId");
+ String areaCode= paramMap.getString("areaCode");
+ for(Object mPointId:markerKeys) {
+ markers = monitorPointService.queryMonitroPointsState(markerKeys.toJavaList(Integer.class));
+ }
+ }
+ returnMap.put("markers", markers);
+ }
+ if(paramMap.getJSONArray("popupEquMacs")!=null&¶mMap.getJSONArray("popupEquMacs").size()>0) {
+ JSONArray popupEquMacs = paramMap.getJSONArray("popupEquMacs");
+ List<Map<String, String>> popupEquWithStates = null;
+ for(Object mac:popupEquMacs) {
+ popupEquWithStates = deviceService.queryDevicesState(popupEquMacs.toJavaList(String.class),false);
+ }
+ //���������������������������
+ returnMap.put("popupEquStates", popupEquWithStates);
+ }
+ jsonData.setExtData(returnMap);
+ return jsonData;
+ }
}
diff --git a/src/main/java/com/moral/entity/Device.java b/src/main/java/com/moral/entity/Device.java
index ec0b15f..d607954 100644
--- a/src/main/java/com/moral/entity/Device.java
+++ b/src/main/java/com/moral/entity/Device.java
@@ -1,6 +1,7 @@
package com.moral.entity;
import java.util.Date;
+import java.util.List;
import javax.persistence.Id;
import javax.persistence.Transient;
@@ -117,4 +118,6 @@
private DeviceVersion deviceVersion;
@Transient
private MonitorPoint monitorPoint;
+ @Transient
+ private List<Integer> organizationIds;
}
\ 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 44650c0..c96da66 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -17,5 +17,9 @@
List<String> getDeviceMacByMonitorPointAndDeviceVersion(@Param("monitorPointId")Integer monitorPointId,@Param("deviceVersionId")Integer deviceVersionId);
List<Map<String, Object>> getDeviceVersionIdByMonitorPoint(Integer monitorPointId);
+
List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId,@Param("devName")String devName);
+ List<Device> selectByOrgIdAndMpId(@Param("orgId")Integer orgId,@Param("mpId")Integer mpId);
+ List<Device> selectByMap(Map<String, Object> params);
+ Device selectWithOrgIdsByMac(String mac);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java
index afde4ea..a4501a4 100644
--- a/src/main/java/com/moral/service/DeviceService.java
+++ b/src/main/java/com/moral/service/DeviceService.java
@@ -4,6 +4,7 @@
import java.util.Map;
import com.moral.common.bean.PageBean;
import com.moral.common.bean.PageResult;
+import com.moral.common.bean.ResultBean;
import com.moral.entity.Device;
public interface DeviceService {
@@ -16,7 +17,10 @@
Device getDeviceByMac(String mac);
+ List<Device> query(Map<String,Object> map);
PageResult query(Integer orgId, String deviceName,Integer pageSize,Integer pageNo);
+
+ PageResult query(Integer orgId, Integer mpId, Integer pageSize, Integer pageNo);
PageBean queryByPageBean(PageBean pageBean);
@@ -25,4 +29,6 @@
void addOrModify(Device device);
List<Device> getDevicesByMonitorPointId(Integer monitorPointId);
+
+ List<Map<String,String>> queryDevicesState(List<String> macList,Boolean withData);
}
diff --git a/src/main/java/com/moral/service/MonitorPointService.java b/src/main/java/com/moral/service/MonitorPointService.java
index 5d8905f..992091b 100644
--- a/src/main/java/com/moral/service/MonitorPointService.java
+++ b/src/main/java/com/moral/service/MonitorPointService.java
@@ -21,5 +21,5 @@
public void deleteByIds(Integer... ids);
List<MonitorPoint> getMonitorPointsByName(String name);
-
+ List<Map<String,String>> queryMonitroPointsState(List<Integer> idList);
}
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 0462992..e8c755f 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -1,14 +1,19 @@
package com.moral.service.impl;
import java.util.*;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
+import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.Page;
import com.moral.common.bean.Constants;
import com.moral.common.bean.PageBean;
import com.moral.common.bean.PageResult;
import com.moral.common.util.ExampleUtil;
+import com.moral.common.util.RedisUtils;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.BooleanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
@@ -30,6 +35,8 @@
@Resource
private AccountService accountService;
private Class ENTITY_CLASS = Device.class;
+ @Resource
+ RedisUtils redisUtils;
@Override
public Map<String, Object> getDeviceStatesByAccount(Map<String, Object> parameters) {
ValidateUtil.notNull(parameters.get("accountId"), "param.is.null");
@@ -98,16 +105,96 @@
return device;
}
+ /**
+ *
+ * @param map
+ * map��� ������ ������id���4������������
+ * @return
+ */
+ @Override
+ public List<Device> query(Map<String, Object> map) {
+ List <Device> list = deviceMapper.selectByMap(map);
+ loadDeviceState(list);
+ return list;
+ }
+
+ /**
+ * ������������id��������������� ������������������
+ * @param orgId
+ * @param deviceName
+ * @param pageSize
+ * @param pageNo
+ * @return
+ */
@Override
public PageResult query(Integer orgId, String deviceName, Integer pageSize, Integer pageNo) {
if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
PageHelper.startPage(pageNo,pageSize);
}
- List list = deviceMapper.selectByOrgIdAndDevName(orgId,deviceName);
+ List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,deviceName);
+ //���redis������������
+ loadDeviceState(list);
if(list instanceof Page){
return new PageResult(((Page) list).getTotal(),list);
}
return new PageResult(null,list);
+ }
+
+ /**
+ * ������������id������������id ������������������
+ * @param orgId
+ * @param mpId
+ * @param pageSize
+ * @param pageNo
+ * @return
+ */
+ @Override
+ public PageResult query(Integer orgId, Integer mpId, Integer pageSize, Integer pageNo) {
+ if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
+ PageHelper.startPage(pageNo,pageSize);
+ }
+ List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,mpId);
+ //���redis������������
+ loadDeviceState(list);
+ if(list instanceof Page){
+ return new PageResult(((Page) list).getTotal(),list);
+ }
+ return new PageResult(null,list);
+ }
+ private void loadDeviceState(List<Device> list){
+ //���redis������������
+ list.stream().map( device -> {
+ String state = getSateFromRedis(device.getMonitorPointId(),device.getMac());
+ device.setState(state);
+ return device;
+ }).count();
+ }
+ private String getSateFromRedis(Integer mpId,String mac){
+
+ Map<String,String> states = getStateMapFromRedis(mpId,mac);
+ String state = null;
+ if(states != null){
+ state = states.get("state");
+ }
+ state = state == null ?Constants.DEVICE_STATE_OFFLINE:state;
+ return state;
+ }
+ public Map<String,String> getStateMapFromRedis(Integer mpId,String mac){
+ StringBuilder key = new StringBuilder();
+ //������key
+ key.append("state_").append(mpId).append("_").append(mac);
+ return redisUtils.get(key.toString(),new TypeReference<Map<String,String>>(){});
+ }
+ private Device getDeviceWithOrgIdsByMac(String mac) {
+ String key = "device_"+mac;
+ Device device = redisUtils.get(key,Device.class);
+ if(device==null) {
+ device = deviceMapper.selectWithOrgIdsByMac(mac);
+ if(device!=null){
+ redisUtils.set(key,device);
+ }
+ }
+ return device;
}
@Override
@@ -168,4 +255,33 @@
return deviceMapper.select(device);
}
+ /**
+ * ������map{mac������state���}
+ * @param macList
+ * @return
+ */
+ @Override
+ public List<Map<String,String>> queryDevicesState(List<String> macList,Boolean withData) {
+ List<Map<String,String>> list = macList.stream().map(mac->{
+ Device device = getDeviceWithOrgIdsByMac(mac);
+ Map<String,String> resultMap = new HashMap<>();
+ Map<String,String> stateMap = getStateMapFromRedis(device.getMonitorPointId(),mac);
+ if(!MapUtils.isEmpty(stateMap)){
+ resultMap.putAll(stateMap);
+ }else{
+ resultMap.put("state",Constants.DEVICE_STATE_OFFLINE);
+ }
+ if(BooleanUtils.isTrue(withData)){
+ String dataKey = "data_"+mac;
+ Map<String,String> dataMap = redisUtils.get(dataKey,new TypeReference<Map<String,String>>(){});
+ if(!MapUtils.isEmpty(dataMap)){
+ resultMap.putAll(dataMap);
+ }
+ }else{
+ resultMap.put("mac",mac);
+ }
+ return resultMap;
+ }).collect(Collectors.toList());
+ return list;
+ }
}
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index 79cf204..509b9d3 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -1,8 +1,10 @@
package com.moral.service.impl;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -34,13 +36,14 @@
public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){
List<MonitorPoint> monitorPointList = monitorPointMapper.selectByMap(params);
for(MonitorPoint monitorPoint:monitorPointList){
- loadStateFromRedis(monitorPoint);
+ Integer state = getStateFromRedis(monitorPoint.getId());
+ monitorPoint.setState(state);
}
return monitorPointList;
}
- private void loadStateFromRedis(MonitorPoint monitorPoint){
+ private Integer getStateFromRedis(Integer monitorPointId){
StringBuilder key = new StringBuilder();
- key.append("*_").append(monitorPoint.getId()).append("_*");
+ key.append("state_").append(monitorPointId).append("_*");
List<Map> stateList = redisUtils.getList(key.toString(),Map.class);
int state = -1;
if(stateList!=null){
@@ -50,7 +53,7 @@
}
}
state = state==-1?4:state;
- monitorPoint.setState(state);
+ return state;
}
@Override
public PageBean queryByPageBean(PageBean pageBean) {
@@ -117,4 +120,21 @@
List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example);
return monitorPoints;
}
+
+ /**
+ *
+ * @param idList
+ * @return {id:,state:}
+ */
+ @Override
+ public List<Map<String, String>> queryMonitroPointsState(List<Integer> idList) {
+ List<Map<String, String>> list = idList.stream().map( id -> {
+ Integer state = getStateFromRedis(id);
+ Map<String,String> stateMap = new HashMap<>();
+ stateMap.put("id",id.toString());
+ stateMap.put("state",state.toString());
+ return stateMap;
+ }).collect(Collectors.toList());
+ return list;
+ }
}
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index bd99802..27f05e1 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -98,15 +98,6 @@
</if>
GROUP BY d.state
</select>
- <select id="selectByOrgIdAndDevName" resultMap="BaseResultMap">
- SELECT * from device dev
- left join monitor_point mpt on dev.monitor_point_id = mpt.id
- where
- mpt.organization_id = #{orgId}
- <if test="devName!=null and ''!=devName">
- and dev.name like #{devName}
- </if>
- </select>
<select id="getSensorsByDevice" resultType="java.util.Map">
SELECT
s.`key`,
@@ -141,4 +132,54 @@
monitor_point_id = #{monitorPointId}
AND device_version_id = #{deviceVersionId}
</select>
+ <select id="selectByOrgIdAndDevName" resultMap="BaseResultMap">
+ SELECT * 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)">
+ mpt.organization_id = #{orgId}
+ </if>
+ <if test="devName!=null and ''!=devName">
+ and dev.name like CONCAT('%',#{devName},'%')
+ </if>
+ </where>
+ </select>
+ <select id="selectByOrgIdAndMpId" resultMap="BaseResultMap">
+ SELECT * 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)">
+ mpt.organization_id = #{orgId}
+ </if>
+ and dev.monitor_point_id = #{mpId}
+ </where>
+ </select>
+ <select id="selectByMap" parameterType="java.util.Map" resultMap="BaseResultMap">
+ SELECT dev.* 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)">
+ mpt.organization_id = #{orgId,jdbcType=VARCHAR}
+ </if>
+ <![CDATA[
+ AND dev.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}
+ AND dev.longitude > #{mapBounds.Le,jdbcType=NUMERIC}
+ AND dev.latitude < #{mapBounds.Fe,jdbcType=NUMERIC}
+ AND dev.latitude > #{mapBounds.Ke,jdbcType=NUMERIC}
+ ]]>
+ </where>
+ </select>
+ <resultMap id="BaseResultWithOrgIdsMap" type="com.moral.entity.Device" extends="BaseResultMap">
+ <collection property="organizationIds" column="id" select="selectOrganizationIds"></collection>
+ </resultMap>
+ <!-- resultMap������ -->
+ <select id="selectOrganizationIds" resultType="INTEGER">
+ call proc_organization_id_select(#{id,jdbcType=INTEGER});
+ </select>
+ <select id="selectWithOrgIdsByMac" parameterType="java.lang.String" resultMap="BaseResultWithOrgIdsMap">
+ select
+ id,device_version_id,mac,monitor_point_id
+ from device
+ where mac = #{mac,jdbcType=VARCHAR}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/system/sysConfig.properties b/src/main/resources/system/sysConfig.properties
index 82f508b..cae11b1 100644
--- a/src/main/resources/system/sysConfig.properties
+++ b/src/main/resources/system/sysConfig.properties
@@ -27,4 +27,5 @@
e19-standard=50
orgId=-1
password=123456
-noFilters=/screen/**,/**/*.jsp,/**/*.js,/**/*.png,/**/*.ico
\ No newline at end of file
+noFilters=/screen/**,/**/*.jsp,/**/*.js,/**/*.png,/**/*.ico
+specialOrgIds=-1
\ No newline at end of file
diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index c28f4b8..fd71c22 100644
--- a/src/main/webapp/js/moralmap.js
+++ b/src/main/webapp/js/moralmap.js
@@ -370,7 +370,6 @@
async: true,
success: function(res) {
if(res!=null&&res.total!=null) {
- debugger;
var rows = res.data;
if(rows==null||rows.length == 0) {
$(option['id']).html("������������������������������");
@@ -569,7 +568,7 @@
//��������������� ������MoralMark������
moralMap.Equipment = function(option) {
var icon = {};
- icon["stateIcons"] = ["img/ico_coo00.png", "img/ico_coo01.png", "img/ico_coo02.png", "img/ico_coo03.png", "img/ico_coo04.png"];
+ icon["stateIcons"] = ["/img/ico_coo00.png", "/img/ico_coo01.png", "/img/ico_coo02.png", "/img/ico_coo03.png", "/img/ico_coo04.png"];
icon["width"] = 50;
icon["height"] = 60;
option["icon"] = icon;
@@ -633,18 +632,22 @@
},
_getSensorState: function(data, key) {
var grade="grade";
+ var levels;
if(data["level3"]!=null){
- if($.inArray(key,data["level3"])!=-1){
+ levels = data["level3"] instanceof Array ? data["level3"]:JSON.parse(data["level3"]);
+ if($.inArray(key,levels)!=-1){
return grade+"03";
}
}
if(data["level2"] !=null){
- if($.inArray(key,data["level2"])!=-1){
+ levels = data["level2"] instanceof Array ? data["level2"]:JSON.parse(data["level2"]);
+ if($.inArray(key,levels)!=-1){
return grade+"02";
}
}
if(data["level1"] !=null){
- if($.inArray(key,data["level1"])!=-1){
+ levels = data["level1"] instanceof Array ? data["level1"]:JSON.parse(data["level1"]);
+ if($.inArray(key,levels)!=-1){
return grade+"01";
}
}
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index 6473019..55f7a75 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -264,7 +264,7 @@
function showEqus(obj) {
var params = moralMap['params'];
var mpoint = obj.currentTarget.getOption();
- var url = 'get-devices?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
+ var url = 'get-devices-by-mid-oid?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
listView.load(url);
moralMap.showPopupbox("#popup_box");
}
@@ -310,7 +310,7 @@
}
function addOverEquipments(jsonData){
if(moralMap.layer()=="equipments"){
- var objs = jsonData["rows"]==null?[]:jsonData["rows"];
+ var objs = jsonData = null?[]:jsonData;
for(var i in objs) {
var obj = objs[i];
if(moralMap.getEquipment(obj["mac"])==null){
@@ -367,13 +367,6 @@
});
//��������������������� ���������������,���������
moralMap.addEventListener("tilesloaded", function(type, target) {
-// var endZoom = this.getZoom();
-// if(endZoom>=moralMap.getZooMConfine()){//������������������������
-// loadOverlays("getequipments",addOverEquipments);
-// }else{
-// loadOverlays("get-monitorpoints",addOverMpoints);
-// }
-// moralMap.closePopupbox("#popup_box");
});
//������������������������������������������
moralMap.addEventListener('zoomstart', function(type) {});
@@ -381,7 +374,7 @@
moralMap.addEventListener('zoomend', function(type) {
var endZoom = this.getZoom();
if(endZoom>=moralMap.getZooMConfine()){//������������������������
- loadOverlays("getequipments",addOverEquipments);
+ loadOverlays("get-devices",addOverEquipments);
}else{
loadOverlays("get-monitorpoints",addOverMpoints);
}
@@ -390,7 +383,7 @@
moralMap.addEventListener('moveend', function(type) {
var endZoom = this.getZoom();
if(endZoom>=moralMap.getZooMConfine()){//������������������������
- loadOverlays("getequipments",addOverEquipments);
+ loadOverlays("get-devices",addOverEquipments);
}else{
loadOverlays("get-monitorpoints",addOverMpoints);
}
@@ -449,7 +442,7 @@
parma["orgId"] = moralMap['params']["orgId"];
$.ajax({
type: "post",
- url: "getstatesformap",
+ url: "get-real-state-data",
data:JSON.stringify(parma),
dataType:"json",
contentType:"application/json;charset=utf-8",
--
Gitblit v1.8.0