From 60163c2fb5098fc522f8e80b131128d2c9a33e42 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 26 Jan 2018 14:44:05 +0800
Subject: [PATCH] 组织配置
---
src/main/java/com/moral/entity/Area.java | 30 -
src/main/java/com/moral/controller/SensorController.java | 4
src/main/java/com/moral/service/SensorService.java | 7
src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java | 19
pom.xml | 18 +
src/main/java/com/moral/mapper/MonitorPointMapper.java | 2
src/main/java/com/moral/entity/Province.java | 22 -
src/main/java/com/moral/entity/MapBounds.java | 17 +
src/main/java/com/moral/entity/City.java | 29 -
src/main/java/com/moral/service/impl/SensorServiceImpl.java | 15
src/main/resources/mapper/SensorMapper.xml | 26 +
src/main/java/com/moral/controller/MapController.java | 51 ++
src/main/java/com/moral/service/MonitorPointService.java | 7
src/main/java/com/moral/common/bean/PageBean.java | 1
src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 8
src/main/webapp/js/json2.js | 519 ++++++++++++++++++++++++++++++++
src/main/java/com/moral/service/AccountService.java | 4
src/main/java/com/moral/service/impl/AccountServiceImpl.java | 5
src/main/java/com/moral/entity/MonitorPoint.java | 4
src/main/java/com/moral/service/AreaService.java | 2
src/main/java/com/moral/controller/MonitorPointController.java | 2
src/main/java/com/moral/service/impl/AreaServiceImpl.java | 31 +
src/main/java/com/moral/mapper/SensorMapper.java | 3
src/main/webapp/view/map.jsp | 27 +
src/main/java/com/moral/entity/alarm/AlarmSensorLevel.java | 4
src/main/java/com/moral/entity/Device.java | 4
src/main/resources/system/sysConfig.properties | 3
src/main/java/com/moral/common/bean/Constants.java | 11
src/main/resources/mapper/MonitorPointMapper.xml | 34 ++
29 files changed, 809 insertions(+), 100 deletions(-)
diff --git a/pom.xml b/pom.xml
index e0ddd4e..b72016f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,6 +71,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
@@ -138,7 +139,22 @@
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
- <version>3.3.9</version>
+ <version>3.4.6</version>
+ </dependency>
+ <dependency>
+ <groupId>jstl</groupId>
+ <artifactId>jstl</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>taglibs</groupId>
+ <artifactId>standard</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-jasper</artifactId>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git a/src/main/java/com/moral/common/bean/Constants.java b/src/main/java/com/moral/common/bean/Constants.java
index 6eef6c6..01d5455 100644
--- a/src/main/java/com/moral/common/bean/Constants.java
+++ b/src/main/java/com/moral/common/bean/Constants.java
@@ -17,5 +17,16 @@
public static final String IS_USED_FALSE = "0";
public static final String IS_USED_TRUE = "1";
+ private static final Integer[] specialOrgIds = new Integer[]{-1};
+
+ public static final Boolean isNotSpecialOrgId(Integer orgId) {
+ for(int i = 0; i < specialOrgIds.length; ++i) {
+ if (specialOrgIds[i].equals(orgId)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/com/moral/common/bean/PageBean.java b/src/main/java/com/moral/common/bean/PageBean.java
index 0232fbe..01a6f9f 100644
--- a/src/main/java/com/moral/common/bean/PageBean.java
+++ b/src/main/java/com/moral/common/bean/PageBean.java
@@ -45,6 +45,7 @@
this.size = page.size();
}else{
this.data = list;
+ this.total = Integer.toUnsignedLong(list.size());
}
}
diff --git a/src/main/java/com/moral/controller/MapController.java b/src/main/java/com/moral/controller/MapController.java
index 1bc9ade..c32d4b5 100644
--- a/src/main/java/com/moral/controller/MapController.java
+++ b/src/main/java/com/moral/controller/MapController.java
@@ -2,12 +2,23 @@
import com.alibaba.fastjson.JSONObject;
+import com.moral.common.bean.PageBean;
+import com.moral.common.bean.ResultBean;
+import com.moral.entity.Account;
+import com.moral.entity.MapBounds;
+import com.moral.entity.MonitorPoint;
+import com.moral.service.AccountService;
+import com.moral.service.AreaService;
+import com.moral.service.MonitorPointService;
+import com.moral.service.SensorService;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -16,9 +27,39 @@
@Controller
@RequestMapping("map")
public class MapController {
+ @Resource
+ AreaService areaService;
+ @Resource
+ AccountService accountService;
+ @Resource
+ SensorService sensorService;
+ @Resource
+ MonitorPointService monitorPointService;
@RequestMapping(value = "/main-page", method = RequestMethod.GET)
- public String map(){
- ModelAndView mv = new ModelAndView("map");
+ public String map(Model model,@RequestParam("areaCode")int code,@RequestParam("accountId")int accountId){
+ Account account = accountService.getAccountById(accountId);
+ String regionName = areaService.selectFullNameByCode(code);
+ Object sensors = sensorService.queryAll();
+ JSONObject params = new JSONObject();
+ params.put("regionCode",code);
+ params.put("regionName",regionName);
+ params.put("accountId", accountId);
+ params.put("orgId", account.getOrganizationId());
+ params.put("sensors", sensors);
+ String paramsJson = params.toJSONString();
+ model.addAttribute("mapParams",paramsJson);
return "map";
}
+ @RequestMapping(value="/getmonitorpoints",method = RequestMethod.GET)
+ @ResponseBody
+ public ResultBean getMonitorpointList(@RequestParam("orgId")String orgId,MapBounds mapBounds){
+ ResultBean< List<MonitorPoint>> resultBean = new ResultBean();
+ Map<String,Object> paramMap = new HashMap<String, Object>();
+ paramMap.put("orgId", orgId);
+ paramMap.put("mapBounds",mapBounds);
+ List<MonitorPoint> list = monitorPointService.queryWithStateByMap(paramMap);
+ resultBean.setData(list);
+ resultBean.setCode(ResultBean.SUCCESS);
+ return resultBean;
+ }
}
diff --git a/src/main/java/com/moral/controller/MonitorPointController.java b/src/main/java/com/moral/controller/MonitorPointController.java
index 73d7170..68c5c1b 100644
--- a/src/main/java/com/moral/controller/MonitorPointController.java
+++ b/src/main/java/com/moral/controller/MonitorPointController.java
@@ -33,7 +33,7 @@
*/
@GetMapping("get-by-id")
public ResultBean getById(Integer id){
- MonitorPoint monitorPoint = monitorPointService.selectWithRelationById(id);
+ MonitorPoint monitorPoint = monitorPointService.queryWithRelationById(id);
ResultBean resultBean = new ResultBean(ResultBean.SUCCESS);
resultBean.setData(monitorPoint);
return resultBean;
diff --git a/src/main/java/com/moral/controller/SensorController.java b/src/main/java/com/moral/controller/SensorController.java
index b64ee4f..f6f616d 100644
--- a/src/main/java/com/moral/controller/SensorController.java
+++ b/src/main/java/com/moral/controller/SensorController.java
@@ -19,6 +19,10 @@
public PageBean pageList(PageBean pageBean) {
return sensorService.queryByPageBean(pageBean);
}
+ @GetMapping("list-by-vid")
+ public PageBean pageListByVersionId(Integer versionId){
+ return sensorService.queryByVersionId(versionId);
+ }
@PostMapping("delete-by-ids")
public ResultBean deleteByIds(@RequestBody Integer [] ids){
sensorService.deleteByIds(ids);
diff --git a/src/main/java/com/moral/entity/Area.java b/src/main/java/com/moral/entity/Area.java
index 1b98b5b..2b9f150 100644
--- a/src/main/java/com/moral/entity/Area.java
+++ b/src/main/java/com/moral/entity/Area.java
@@ -1,36 +1,16 @@
package com.moral.entity;
+import lombok.Data;
import tk.mybatis.mapper.annotation.ColumnType;
-public class Area {
+import javax.persistence.Id;
+@Data
+public class Area {
+ @Id
private Integer areaCode;
private String areaName;
private Integer cityCode;
-
- public Integer getAreaCode() {
- return areaCode;
- }
-
- public void setAreaCode(Integer areaCode) {
- this.areaCode = areaCode;
- }
-
- public String getAreaName() {
- return areaName;
- }
-
- public void setAreaName(String areaName) {
- this.areaName = areaName == null ? null : areaName.trim();
- }
-
- public Integer getCityCode() {
- return cityCode;
- }
-
- public void setCityCode(Integer cityCode) {
- this.cityCode = cityCode;
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/City.java b/src/main/java/com/moral/entity/City.java
index 3214c82..23d3285 100644
--- a/src/main/java/com/moral/entity/City.java
+++ b/src/main/java/com/moral/entity/City.java
@@ -1,33 +1,16 @@
package com.moral.entity;
+import lombok.Data;
+
+import javax.persistence.Id;
+
+@Data
public class City {
+ @Id
private Integer cityCode;
private String cityName;
private Integer provinceCode;
- public Integer getCityCode() {
- return cityCode;
- }
-
- public void setCityCode(Integer cityCode) {
- this.cityCode = cityCode;
- }
-
- public String getCityName() {
- return cityName;
- }
-
- public void setCityName(String cityName) {
- this.cityName = cityName == null ? null : cityName.trim();
- }
-
- public Integer getProvinceCode() {
- return provinceCode;
- }
-
- public void setProvinceCode(Integer provinceCode) {
- this.provinceCode = provinceCode;
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/Device.java b/src/main/java/com/moral/entity/Device.java
index 757f78e..ec0b15f 100644
--- a/src/main/java/com/moral/entity/Device.java
+++ b/src/main/java/com/moral/entity/Device.java
@@ -32,12 +32,12 @@
* This field was generated by MyBatis Generator. This field corresponds to the database column device.longitude
* @mbggenerated Wed Nov 29 16:17:59 CST 2017
*/
- private double longitude;
+ private Double longitude;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column device.latitude
* @mbggenerated Wed Nov 29 16:17:59 CST 2017
*/
- private double latitude;
+ private Double latitude;
/**
* This field was generated by MyBatis Generator. This field corresponds to the database column device.mac
* @mbggenerated Wed Nov 29 16:17:59 CST 2017
diff --git a/src/main/java/com/moral/entity/MapBounds.java b/src/main/java/com/moral/entity/MapBounds.java
new file mode 100644
index 0000000..cec82bc
--- /dev/null
+++ b/src/main/java/com/moral/entity/MapBounds.java
@@ -0,0 +1,17 @@
+package com.moral.entity;
+
+import lombok.Data;
+
+/**
+ * @author fengxiang
+ * @Time���2017���11���13��� ������10:30:05
+ * @version 1.0
+ * ������������������������������������������������������������������������������������������
+ */
+@Data
+public class MapBounds {
+ private float Fe;//���������������
+ private float Ge;//���������������
+ private float Ke;//���������������
+ private float Le;//���������������
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/MonitorPoint.java b/src/main/java/com/moral/entity/MonitorPoint.java
index 92b0803..3075b6a 100644
--- a/src/main/java/com/moral/entity/MonitorPoint.java
+++ b/src/main/java/com/moral/entity/MonitorPoint.java
@@ -30,7 +30,7 @@
*
* @mbggenerated Thu Dec 07 16:40:22 CST 2017
*/
- private double longitude;
+ private Double longitude;
/**
* This field was generated by MyBatis Generator.
@@ -38,7 +38,7 @@
*
* @mbggenerated Thu Dec 07 16:40:22 CST 2017
*/
- private double latitude;
+ private Double latitude;
/**
* This field was generated by MyBatis Generator.
diff --git a/src/main/java/com/moral/entity/Province.java b/src/main/java/com/moral/entity/Province.java
index f1ca1b0..ff4a86e 100644
--- a/src/main/java/com/moral/entity/Province.java
+++ b/src/main/java/com/moral/entity/Province.java
@@ -1,23 +1,13 @@
package com.moral.entity;
+import lombok.Data;
+
+import javax.persistence.Id;
+
+@Data
public class Province {
+ @Id
private Integer provinceCode;
private String provinceName;
-
- public Integer getProvinceCode() {
- return provinceCode;
- }
-
- public void setProvinceCode(Integer provinceCode) {
- this.provinceCode = provinceCode;
- }
-
- public String getProvinceName() {
- return provinceName;
- }
-
- public void setProvinceName(String provinceName) {
- this.provinceName = provinceName == null ? null : provinceName.trim();
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/alarm/AlarmSensorLevel.java b/src/main/java/com/moral/entity/alarm/AlarmSensorLevel.java
index fd736d3..0ae05b7 100644
--- a/src/main/java/com/moral/entity/alarm/AlarmSensorLevel.java
+++ b/src/main/java/com/moral/entity/alarm/AlarmSensorLevel.java
@@ -14,6 +14,10 @@
*/
private boolean enable;
/*
+ ������������������������1���������0���������
+ */
+ private boolean degressEnable;
+ /*
������������������������ [100,200,300]
*/
private List<Float> increment;
diff --git a/src/main/java/com/moral/mapper/MonitorPointMapper.java b/src/main/java/com/moral/mapper/MonitorPointMapper.java
index e028c47..b0addba 100644
--- a/src/main/java/com/moral/mapper/MonitorPointMapper.java
+++ b/src/main/java/com/moral/mapper/MonitorPointMapper.java
@@ -10,4 +10,6 @@
public interface MonitorPointMapper extends BaseMapper<MonitorPoint>{
List<MonitorPoint> selectWithAreaNameByExample(Example example);
List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters);
+
+ List<MonitorPoint> selectWithStateByMap(Map<String, Object> params);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/SensorMapper.java b/src/main/java/com/moral/mapper/SensorMapper.java
index 94338a4..45f8e4c 100644
--- a/src/main/java/com/moral/mapper/SensorMapper.java
+++ b/src/main/java/com/moral/mapper/SensorMapper.java
@@ -3,5 +3,8 @@
import com.moral.common.mapper.BaseMapper;
import com.moral.entity.Sensor;
+import java.util.List;
+
public interface SensorMapper extends BaseMapper<Sensor> {
+ List<Sensor> selectByVersionId(Integer deviceVersionId);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/AccountService.java b/src/main/java/com/moral/service/AccountService.java
index c82b183..289adcf 100644
--- a/src/main/java/com/moral/service/AccountService.java
+++ b/src/main/java/com/moral/service/AccountService.java
@@ -12,7 +12,9 @@
Account getAccountByAccountName(String account);
- void setOrgIdsByAccount(Map<String, Object> parameters);
+ Account getAccountById(Integer id);
+
+ void setOrgIdsByAccount(Map<String, Object> parameters);
PageBean<Account> getAccountListByPage(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/AreaService.java b/src/main/java/com/moral/service/AreaService.java
index e98a868..104bcd8 100644
--- a/src/main/java/com/moral/service/AreaService.java
+++ b/src/main/java/com/moral/service/AreaService.java
@@ -10,4 +10,6 @@
List<Province> getProvinces();
List<City> getCities(int provinceCode);
List<Area> getAreas(int cityCode);
+
+ String selectFullNameByCode(Integer code);
}
diff --git a/src/main/java/com/moral/service/MonitorPointService.java b/src/main/java/com/moral/service/MonitorPointService.java
index 17e08e0..014cbc2 100644
--- a/src/main/java/com/moral/service/MonitorPointService.java
+++ b/src/main/java/com/moral/service/MonitorPointService.java
@@ -9,9 +9,12 @@
public interface MonitorPointService {
List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters);
- public PageBean queryByPageBean(PageBean pageBean);
- MonitorPoint selectWithRelationById(Integer id);
+ List<MonitorPoint> queryWithStateByMap(Map<String, Object> params);
+
+ public PageBean queryByPageBean(PageBean pageBean);
+
+ MonitorPoint queryWithRelationById(Integer id);
public void addOrModify(MonitorPoint monitorPoint);
diff --git a/src/main/java/com/moral/service/SensorService.java b/src/main/java/com/moral/service/SensorService.java
index d525564..b178088 100644
--- a/src/main/java/com/moral/service/SensorService.java
+++ b/src/main/java/com/moral/service/SensorService.java
@@ -3,8 +3,15 @@
import com.moral.common.bean.PageBean;
import com.moral.entity.Sensor;
+import java.util.List;
+
public interface SensorService {
+ List<Sensor> queryAll();
+
public PageBean queryByPageBean(PageBean pageBean);
+
+ PageBean queryByVersionId(Integer deviceVersionId);
+
public void addOrModify(Sensor sensor);
public void deleteByIds(Integer... ids);
}
diff --git a/src/main/java/com/moral/service/impl/AccountServiceImpl.java b/src/main/java/com/moral/service/impl/AccountServiceImpl.java
index 83484e0..be7b39a 100644
--- a/src/main/java/com/moral/service/impl/AccountServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AccountServiceImpl.java
@@ -75,7 +75,10 @@
account.setAccountName(accountName);
return accountMapper.selectOne(account);
}
-
+ @Override
+ public Account getAccountById(Integer id){
+ return accountMapper.selectByPrimaryKey(id);
+ }
@Override
public void setOrgIdsByAccount(Map<String, Object> parameters) {
String accountId = (String) parameters.get("accountId");
diff --git a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
index ff3a361..d4720d9 100644
--- a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -34,7 +34,7 @@
alarmConfig.setCreateTime(new Date());
alarmConfig.setUpdateTime(new Date());
alarmConfigMapper.insertSelective(alarmConfig);
- }else{
+ }else {
alarmConfig.setUpdateTime(new Date());
alarmConfigMapper.updateByPrimaryKeySelective(alarmConfig);
}
@@ -61,13 +61,18 @@
alarmSensorLevel.setIncrement(null);
}
}
- List<Float> degressions = alarmSensorLevel.getDegression();
- if(degressions!=null){
- boolean isDegression = degressions.size()<3||
- (degressions.get(0)==0&°ressions.get(1)==0&°ressions.get(2)==0);
- if(isDegression){
- alarmSensorLevel.setDegression(null);
+ if(alarmSensorLevel.isDegressEnable()){
+ List<Float> degressions = alarmSensorLevel.getDegression();
+ if(degressions!=null){
+ boolean isDegression = degressions.size()<3||
+ (degressions.get(0)==0&°ressions.get(1)==0&°ressions.get(2)==0);
+ if(isDegression){
+ alarmSensorLevel.setDegression(null);
+ }
}
+ }else{
+ //���������������������������������
+ alarmSensorLevel.setDegression(null);
}
}
}
diff --git a/src/main/java/com/moral/service/impl/AreaServiceImpl.java b/src/main/java/com/moral/service/impl/AreaServiceImpl.java
index 214f641..339ea54 100644
--- a/src/main/java/com/moral/service/impl/AreaServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AreaServiceImpl.java
@@ -41,4 +41,35 @@
example.or().andEqualTo("cityCode",cityCode);
return areaMapper.selectByExample(example);
}
+
+ /**
+ * ������������������������ ��������������������� ��������� ��������� ���������
+ * @param code ������������ ��� ��� ���������������
+ * @return
+ */
+ @Override
+ public String selectFullNameByCode(Integer code){
+ String codeStr = code.toString();
+ String fullName = "";
+ // ���������������code
+ if(!codeStr.endsWith("00")){
+ String provinceCode = codeStr.substring(0,2)+"0000";
+ Province province = provinceMapper.selectByPrimaryKey(Integer.valueOf(provinceCode));
+ String cityCode = codeStr.substring(0,4)+"00";
+ City city = cityMapper.selectByPrimaryKey(Integer.valueOf(cityCode));
+ Area area = areaMapper.selectByPrimaryKey(code);
+ fullName = province.getProvinceName()+city.getCityName()+area.getAreaName();
+ } else if(!codeStr.endsWith("0000")){
+ // ��������� ���������code
+ String provinceCode = codeStr.substring(0,2)+"0000";
+ Province province = provinceMapper.selectByPrimaryKey(Integer.valueOf(provinceCode));
+ City city = cityMapper.selectByPrimaryKey(code);
+ fullName = province.getProvinceName()+city.getCityName();
+ } else {
+ // ��������� ���code
+ Province province = provinceMapper.selectByPrimaryKey(code);
+ fullName = province.getProvinceName();
+ }
+ return fullName;
+ }
}
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index 8e2d6ce..f366b38 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -29,7 +29,10 @@
ValidateUtil.notNull(parameters.get("areaName"), "param.is.null");
return monitorPointMapper.getMonitorPointsByAreaName(parameters);
}
-
+ @Override
+ public List<MonitorPoint> queryWithStateByMap(Map<String, Object> params){
+ return monitorPointMapper.selectWithStateByMap(params);
+ }
@Override
public PageBean queryByPageBean(PageBean pageBean) {
Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
@@ -46,7 +49,7 @@
return new PageBean(monitorPointList);
}
@Override
- public MonitorPoint selectWithRelationById(Integer id){
+ public MonitorPoint queryWithRelationById(Integer id){
Example example = new Example(ENTITY_CLASS);
example.or().andEqualTo("id",id);
List<MonitorPoint> monitorPointList = monitorPointMapper.selectWithAreaNameByExample(example);
@@ -56,6 +59,7 @@
public void addOrModify(MonitorPoint monitorPoint) {
try{
if(monitorPoint.getId()==null){
+ monitorPoint.setIsDelete(Constants.IS_DELETE_FALSE);
monitorPointMapper.insertSelective(monitorPoint);
}else{
monitorPointMapper.updateByPrimaryKeySelective(monitorPoint);
diff --git a/src/main/java/com/moral/service/impl/SensorServiceImpl.java b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
index 92cb96f..7b410e2 100644
--- a/src/main/java/com/moral/service/impl/SensorServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
@@ -10,6 +10,7 @@
import javax.annotation.Resource;
import java.util.Arrays;
+import java.util.List;
@Service
public class SensorServiceImpl implements SensorService{
@@ -17,9 +18,23 @@
SensorMapper sensorMapper;
private static Class ENTITY_CLASS = Sensor.class;
+
+ /**
+ * ������������������������������
+ * @return
+ */
+ @Override
+ public List<Sensor> queryAll(){
+ return sensorMapper.selectByExample(null);
+ }
public PageBean queryByPageBean(PageBean pageBean){
return MyBatisBaseMapUtil.queryPage(sensorMapper,pageBean,ENTITY_CLASS);
}
+ @Override
+ public PageBean queryByVersionId(Integer deviceVersionId){
+ List<Sensor> sensorList = sensorMapper.selectByVersionId(deviceVersionId);
+ return new PageBean(sensorList);
+ }
public void addOrModify(Sensor sensor){
try{
if(sensor.getId()==null){
diff --git a/src/main/resources/mapper/MonitorPointMapper.xml b/src/main/resources/mapper/MonitorPointMapper.xml
index 8b2378a..652012a 100644
--- a/src/main/resources/mapper/MonitorPointMapper.xml
+++ b/src/main/resources/mapper/MonitorPointMapper.xml
@@ -100,4 +100,38 @@
AND mp.city_code = c.city_code
</if>
</select>
+ <select id="selectWithStateByMap" parameterType="java.util.Map" resultMap="BaseResultMap">
+
+ SELECT mpt.*,MAX(dev.state) as state from monitor_point mpt
+ LEFT JOIN device dev 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 mpt.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}
+ AND mpt.longitude > #{mapBounds.Le,jdbcType=NUMERIC}
+ AND mpt.latitude < #{mapBounds.Fe,jdbcType=NUMERIC}
+ AND mpt.latitude > #{mapBounds.Ke,jdbcType=NUMERIC}
+ and state<4
+ GROUP BY mpt.`id`
+ ]]>
+ </where>
+ UNION
+ SELECT mpt.*,MAX(dev.state) as state from monitor_point mpt
+ LEFT JOIN device dev 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 mpt.longitude < #{mapBounds.Ge,jdbcType=NUMERIC}
+ AND mpt.longitude > #{mapBounds.Le,jdbcType=NUMERIC}
+ AND mpt.latitude < #{mapBounds.Fe,jdbcType=NUMERIC}
+ AND mpt.latitude > #{mapBounds.Ke,jdbcType=NUMERIC}
+ and state>3
+ GROUP BY mpt.`id`
+ ]]>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/SensorMapper.xml b/src/main/resources/mapper/SensorMapper.xml
new file mode 100644
index 0000000..6fdcaee
--- /dev/null
+++ b/src/main/resources/mapper/SensorMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.moral.mapper.SensorMapper" >
+ <resultMap id="BaseResultMap" type="com.moral.entity.Sensor" >
+ <id column="id" property="id" jdbcType="INTEGER" />
+ <result column="name" property="name" jdbcType="VARCHAR" />
+ <result column="sensor_key" property="sensorKey" jdbcType="VARCHAR" />
+ <result column="upper" property="upper" jdbcType="DOUBLE" />
+ <result column="lower" property="lower" jdbcType="DOUBLE" />
+ <result column="unit" property="unit" jdbcType="VARCHAR" />
+ <result column="description" property="description" jdbcType="VARCHAR" />
+ </resultMap>
+ <sql id="Base_Column_List" >
+ id, name, sensor_key, upper, lower, unit, description
+ </sql>
+ <select id="selectByVersionId" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
+ select
+ <include refid="Base_Column_List" />
+ from sensor sen
+ where EXISTS
+ ( select id
+ from device_version_sensor dvs
+ where sen.id = dvs.sensor_id and dvs.device_version_id = #{deviceVersionId,jdbcType=INTEGER}
+ )
+ </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 649686b..cbc54af 100644
--- a/src/main/resources/system/sysConfig.properties
+++ b/src/main/resources/system/sysConfig.properties
@@ -25,4 +25,5 @@
e17-standard=150
e18-standard=9
e19-standard=50
-orgId=-1
\ No newline at end of file
+orgId=-1
+password=123456
\ No newline at end of file
diff --git a/src/main/webapp/js/json2.js b/src/main/webapp/js/json2.js
new file mode 100644
index 0000000..5838457
--- /dev/null
+++ b/src/main/webapp/js/json2.js
@@ -0,0 +1,519 @@
+/*
+ json2.js
+ 2015-05-03
+
+ Public Domain.
+
+ NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+ See http://www.JSON.org/js.html
+
+
+ This code should be minified before deployment.
+ See http://javascript.crockford.com/jsmin.html
+
+ USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+ NOT CONTROL.
+
+
+ This file creates a global JSON object containing two methods: stringify
+ and parse. This file is provides the ES5 JSON capability to ES3 systems.
+ If a project might run on IE8 or earlier, then this file should be included.
+ This file does nothing on ES5 systems.
+
+ JSON.stringify(value, replacer, space)
+ value any JavaScript value, usually an object or array.
+
+ replacer an optional parameter that determines how object
+ values are stringified for objects. It can be a
+ function or an array of strings.
+
+ space an optional parameter that specifies the indentation
+ of nested structures. If it is omitted, the text will
+ be packed without extra whitespace. If it is a number,
+ it will specify the number of spaces to indent at each
+ level. If it is a string (such as '\t' or ' '),
+ it contains the characters used to indent at each level.
+
+ This method produces a JSON text from a JavaScript value.
+
+ When an object value is found, if the object contains a toJSON
+ method, its toJSON method will be called and the result will be
+ stringified. A toJSON method does not serialize: it returns the
+ value represented by the name/value pair that should be serialized,
+ or undefined if nothing should be serialized. The toJSON method
+ will be passed the key associated with the value, and this will be
+ bound to the value
+
+ For example, this would serialize Dates as ISO strings.
+
+ Date.prototype.toJSON = function (key) {
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10
+ ? '0' + n
+ : n;
+ }
+
+ return this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z';
+ };
+
+ You can provide an optional replacer method. It will be passed the
+ key and value of each member, with this bound to the containing
+ object. The value that is returned from your method will be
+ serialized. If your method returns undefined, then the member will
+ be excluded from the serialization.
+
+ If the replacer parameter is an array of strings, then it will be
+ used to select the members to be serialized. It filters the results
+ such that only members with keys listed in the replacer array are
+ stringified.
+
+ Values that do not have JSON representations, such as undefined or
+ functions, will not be serialized. Such values in objects will be
+ dropped; in arrays they will be replaced with null. You can use
+ a replacer function to replace those with JSON values.
+ JSON.stringify(undefined) returns undefined.
+
+ The optional space parameter produces a stringification of the
+ value that is filled with line breaks and indentation to make it
+ easier to read.
+
+ If the space parameter is a non-empty string, then that string will
+ be used for indentation. If the space parameter is a number, then
+ the indentation will be that many spaces.
+
+ Example:
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}]);
+ // text is '["e",{"pluribus":"unum"}]'
+
+
+ text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+ // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+ text = JSON.stringify([new Date()], function (key, value) {
+ return this[key] instanceof Date
+ ? 'Date(' + this[key] + ')'
+ : value;
+ });
+ // text is '["Date(---current time---)"]'
+
+
+ JSON.parse(text, reviver)
+ This method parses a JSON text to produce an object or array.
+ It can throw a SyntaxError exception.
+
+ The optional reviver parameter is a function that can filter and
+ transform the results. It receives each of the keys and values,
+ and its return value is used instead of the original value.
+ If it returns what it received, then the structure is not modified.
+ If it returns undefined then the member is deleted.
+
+ Example:
+
+ // Parse the text. Values that look like ISO date strings will
+ // be converted to Date objects.
+
+ myData = JSON.parse(text, function (key, value) {
+ var a;
+ if (typeof value === 'string') {
+ a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+ if (a) {
+ return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+ +a[5], +a[6]));
+ }
+ }
+ return value;
+ });
+
+ myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+ var d;
+ if (typeof value === 'string' &&
+ value.slice(0, 5) === 'Date(' &&
+ value.slice(-1) === ')') {
+ d = new Date(value.slice(5, -1));
+ if (d) {
+ return d;
+ }
+ }
+ return value;
+ });
+
+
+ This is a reference implementation. You are free to copy, modify, or
+ redistribute.
+*/
+
+/*jslint
+ eval, for, this
+*/
+
+/*property
+ JSON, apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+ getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+ lastIndex, length, parse, prototype, push, replace, slice, stringify,
+ test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+if (typeof JSON !== 'object') {
+ JSON = {};
+}
+
+(function () {
+ 'use strict';
+
+ var rx_one = /^[\],:{}\s]*$/,
+ rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+ rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+ rx_four = /(?:^|:|,)(?:\s*\[)+/g,
+ rx_escapable = /[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+ rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
+
+ function f(n) {
+ // Format integers to have at least two digits.
+ return n < 10
+ ? '0' + n
+ : n;
+ }
+
+ function this_value() {
+ return this.valueOf();
+ }
+
+ if (typeof Date.prototype.toJSON !== 'function') {
+
+ Date.prototype.toJSON = function () {
+
+ return isFinite(this.valueOf())
+ ? this.getUTCFullYear() + '-' +
+ f(this.getUTCMonth() + 1) + '-' +
+ f(this.getUTCDate()) + 'T' +
+ f(this.getUTCHours()) + ':' +
+ f(this.getUTCMinutes()) + ':' +
+ f(this.getUTCSeconds()) + 'Z'
+ : null;
+ };
+
+ Boolean.prototype.toJSON = this_value;
+ Number.prototype.toJSON = this_value;
+ String.prototype.toJSON = this_value;
+ }
+
+ var gap,
+ indent,
+ meta,
+ rep;
+
+
+ function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+ rx_escapable.lastIndex = 0;
+ return rx_escapable.test(string)
+ ? '"' + string.replace(rx_escapable, function (a) {
+ var c = meta[a];
+ return typeof c === 'string'
+ ? c
+ : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ }) + '"'
+ : '"' + string + '"';
+ }
+
+
+ function str(key, holder) {
+
+// Produce a string from holder[key].
+
+ var i, // The loop counter.
+ k, // The member key.
+ v, // The member value.
+ length,
+ mind = gap,
+ partial,
+ value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+ if (value && typeof value === 'object' &&
+ typeof value.toJSON === 'function') {
+ value = value.toJSON(key);
+ }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+ if (typeof rep === 'function') {
+ value = rep.call(holder, key, value);
+ }
+
+// What happens next depends on the value's type.
+
+ switch (typeof value) {
+ case 'string':
+ return quote(value);
+
+ case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+ return isFinite(value)
+ ? String(value)
+ : 'null';
+
+ case 'boolean':
+ case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+ return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+ case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+ if (!value) {
+ return 'null';
+ }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+ gap += indent;
+ partial = [];
+
+// Is the value an array?
+
+ if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+ length = value.length;
+ for (i = 0; i < length; i += 1) {
+ partial[i] = str(i, value) || 'null';
+ }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+ v = partial.length === 0
+ ? '[]'
+ : gap
+ ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
+ : '[' + partial.join(',') + ']';
+ gap = mind;
+ return v;
+ }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+ if (rep && typeof rep === 'object') {
+ length = rep.length;
+ for (i = 0; i < length; i += 1) {
+ if (typeof rep[i] === 'string') {
+ k = rep[i];
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (
+ gap
+ ? ': '
+ : ':'
+ ) + v);
+ }
+ }
+ }
+ } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+ for (k in value) {
+ if (Object.prototype.hasOwnProperty.call(value, k)) {
+ v = str(k, value);
+ if (v) {
+ partial.push(quote(k) + (
+ gap
+ ? ': '
+ : ':'
+ ) + v);
+ }
+ }
+ }
+ }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+ v = partial.length === 0
+ ? '{}'
+ : gap
+ ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
+ : '{' + partial.join(',') + '}';
+ gap = mind;
+ return v;
+ }
+ }
+
+// If the JSON object does not yet have a stringify method, give it one.
+
+ if (typeof JSON.stringify !== 'function') {
+ meta = { // table of character substitutions
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '"': '\\"',
+ '\\': '\\\\'
+ };
+ JSON.stringify = function (value, replacer, space) {
+
+// The stringify method takes a value and an optional replacer, and an optional
+// space parameter, and returns a JSON text. The replacer can be a function
+// that can replace values, or an array of strings that will select the keys.
+// A default replacer method can be provided. Use of the space parameter can
+// produce text that is more easily readable.
+
+ var i;
+ gap = '';
+ indent = '';
+
+// If the space parameter is a number, make an indent string containing that
+// many spaces.
+
+ if (typeof space === 'number') {
+ for (i = 0; i < space; i += 1) {
+ indent += ' ';
+ }
+
+// If the space parameter is a string, it will be used as the indent string.
+
+ } else if (typeof space === 'string') {
+ indent = space;
+ }
+
+// If there is a replacer, it must be a function or an array.
+// Otherwise, throw an error.
+
+ rep = replacer;
+ if (replacer && typeof replacer !== 'function' &&
+ (typeof replacer !== 'object' ||
+ typeof replacer.length !== 'number')) {
+ throw new Error('JSON.stringify');
+ }
+
+// Make a fake root object containing our value under the key of ''.
+// Return the result of stringifying the value.
+
+ return str('', {'': value});
+ };
+ }
+
+
+// If the JSON object does not yet have a parse method, give it one.
+
+ if (typeof JSON.parse !== 'function') {
+ JSON.parse = function (text, reviver) {
+
+// The parse method takes a text and an optional reviver function, and returns
+// a JavaScript value if the text is a valid JSON text.
+
+ var j;
+
+ function walk(holder, key) {
+
+// The walk method is used to recursively walk the resulting structure so
+// that modifications can be made.
+
+ var k, v, value = holder[key];
+ if (value && typeof value === 'object') {
+ for (k in value) {
+ if (Object.prototype.hasOwnProperty.call(value, k)) {
+ v = walk(value, k);
+ if (v !== undefined) {
+ value[k] = v;
+ } else {
+ delete value[k];
+ }
+ }
+ }
+ }
+ return reviver.call(holder, key, value);
+ }
+
+
+// Parsing happens in four stages. In the first stage, we replace certain
+// Unicode characters with escape sequences. JavaScript handles many characters
+// incorrectly, either silently deleting them, or treating them as line endings.
+
+ text = String(text);
+ rx_dangerous.lastIndex = 0;
+ if (rx_dangerous.test(text)) {
+ text = text.replace(rx_dangerous, function (a) {
+ return '\\u' +
+ ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+ });
+ }
+
+// In the second stage, we run the text against regular expressions that look
+// for non-JSON patterns. We are especially concerned with '()' and 'new'
+// because they can cause invocation, and '=' because it can cause mutation.
+// But just to be safe, we want to reject all unexpected forms.
+
+// We split the second stage into 4 regexp operations in order to work around
+// crippling inefficiencies in IE's and Safari's regexp engines. First we
+// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
+// replace all simple value tokens with ']' characters. Third, we delete all
+// open brackets that follow a colon or comma or that begin the text. Finally,
+// we look to see that the remaining characters are only whitespace or ']' or
+// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
+
+ if (
+ rx_one.test(
+ text
+ .replace(rx_two, '@')
+ .replace(rx_three, ']')
+ .replace(rx_four, '')
+ )
+ ) {
+
+// In the third stage we use the eval function to compile the text into a
+// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
+// in JavaScript: it can begin a block or an object literal. We wrap the text
+// in parens to eliminate the ambiguity.
+
+ j = eval('(' + text + ')');
+
+// In the optional fourth stage, we recursively walk the new structure, passing
+// each name/value pair to a reviver function for possible transformation.
+
+ return typeof reviver === 'function'
+ ? walk({'': j}, '')
+ : j;
+ }
+
+// If the text is not JSON parseable, then a SyntaxError is thrown.
+
+ throw new SyntaxError('JSON.parse');
+ };
+ }
+}());
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index 35be11e..77896b8 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -1,7 +1,12 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page isELIgnored="false" %>
-<% String version ="1.000003";%>
+<%
+ String version ="1.000003";
+ response.setHeader("Cache-Control","no-store");
+ response.setHeader("Pragrma","no-cache");
+ response.setDateHeader("Expires",0);
+%>
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
@@ -237,8 +242,8 @@
</div>
</div>
<div id="mapCanvas"></div>
- <div id="map_params" style="display: none;">
- ${requestScope.map_params}
+ <div id="mapParams" style="display: none;">
+ ${requestScope.mapParams}
</div>
</div>
</body>
@@ -248,10 +253,10 @@
//���������������
(function($) {
var moralMap = window.moralMap;
- var params = $.parseJSON($("#map_params").html());
+ var params = $.parseJSON($("#mapParams").html());
moralMap['params'] = params;
//������������������������������
- moralMap.mapInit(params["area_name"]);
+ moralMap.mapInit(params["regionName"]);
//������������
var listView =moralMap.initListView({id: "#equ_list",pageSize:12});
window["listView"] = listView;
@@ -277,10 +282,10 @@
data:paramMap,
async:false,
cache: false,
- success:function(jsonData){
+ success:function(res){
if(callBack!=null){
- if(jsonData!=null&&typeof jsonData["rows"] ==='object'&&lazyKeyer(key)){
- callBack(jsonData);
+ if(res.code==1&&lazyKeyer(key)){
+ callBack(res.data);
}
}
}
@@ -334,9 +339,9 @@
}
}
}
- function addOverMpoints(jsonData){
+ function addOverMpoints(data){
if(moralMap.layer()=="monitorpoints"){
- var mpoints = jsonData["rows"]==null?[]:jsonData["rows"];
+ var mpoints = data = null?[]:data;
for(var i in mpoints) {
var mpParam = mpoints[i];
if(moralMap.getMpoint(mpParam["id"])==null){
@@ -357,7 +362,7 @@
paramMap["Ge"]= bounds['Ge'];//���������������������������
paramMap["Ke"]= bounds['Ke'];//���������������������������������
paramMap["Le"]= bounds['Le'];//���������������������������������
- loadLazy("getmonitorpoints",paramMap,addOverMpoints);
+ loadLazy("getMonitorpointList",paramMap,addOverMpoints);
startRefreshPage();
});
//��������������������� ���������������,���������
--
Gitblit v1.8.0