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