From 1bd6a5e7678477f5b1fab449c6d618aae9041611 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Wed, 13 Feb 2019 11:13:19 +0800
Subject: [PATCH] 设备 相关更新

---
 src/main/java/com/moral/controller/DeviceController.java          |   36 +++
 src/main/resources/mapper/DensityMapper.xml                       |   17 ++
 src/main/resources/mapper/DeviceMapper.xml                        |  129 +++++++++------
 src/main/java/com/moral/entity/DeviceProperty.java                |   32 ++++
 src/main/java/com/moral/controller/MobileController.java          |    9 +
 src/main/java/com/moral/entity/Profession.java                    |    8 
 src/main/resources/mapper/ProfessionMapper.xml                    |   19 +-
 src/main/java/com/moral/mapper/DensityMapper.java                 |    8 +
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java       |   64 ++++++-
 src/main/java/com/moral/entity/Density.java                       |   30 +++
 src/main/java/com/moral/entity/Device.java                        |    4 
 src/main/java/com/moral/service/impl/ProfessionServiceImpl.java   |   29 +++
 src/main/java/com/moral/service/DeviceService.java                |    7 
 src/main/resources/mapper/DevicePropertyMapper.xml                |   18 ++
 src/main/java/com/moral/service/impl/HistoryServiceImpl.java      |    7 
 src/main/java/com/moral/mapper/DeviceMapper.java                  |    3 
 src/main/java/com/moral/service/ProfessionService.java            |    7 
 src/main/java/com/moral/mapper/DevicePropertyMapper.java          |    8 +
 src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java |    8 
 19 files changed, 349 insertions(+), 94 deletions(-)

diff --git a/src/main/java/com/moral/controller/DeviceController.java b/src/main/java/com/moral/controller/DeviceController.java
index 1fad118..5febfa5 100644
--- a/src/main/java/com/moral/controller/DeviceController.java
+++ b/src/main/java/com/moral/controller/DeviceController.java
@@ -1,11 +1,5 @@
 package com.moral.controller;
 
-import com.moral.common.bean.PageBean;
-import com.moral.common.bean.ResultBean;
-import com.moral.entity.Device;
-import com.moral.service.DeviceService;
-import org.springframework.web.bind.annotation.*;
-
 import static com.moral.common.util.WebUtils.getParametersStartingWith;
 
 import java.util.Date;
@@ -14,6 +8,21 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSONObject;
+import com.moral.common.bean.PageBean;
+import com.moral.common.bean.ResultBean;
+import com.moral.entity.Device;
+import com.moral.entity.DeviceProperty;
+import com.moral.service.DeviceService;
 
 @RestController
 @RequestMapping("device")
@@ -59,4 +68,19 @@
     	List<Device> devices = deviceService.getDevicesByProfessionId(parameters);
         return new ResultBean<List<Device>>(devices);
     }
+    
+    @PostMapping("save-or-update")
+    public ResultBean saveOrUpdate(@RequestBody String jsonString){
+    	Device device = JSONObject.parseObject(jsonString, Device.class);
+    	DeviceProperty deviceProperty = JSONObject.parseObject(jsonString, DeviceProperty.class);
+    	deviceService.saveOrUpdate(device,deviceProperty);
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS);
+        return resultBean;
+    }
+
+    @GetMapping("device-list")
+    public PageBean getDeviceList(PageBean pageBean) {
+        return deviceService.getDeviceList(pageBean);
+    }
+
 }
diff --git a/src/main/java/com/moral/controller/MobileController.java b/src/main/java/com/moral/controller/MobileController.java
index a15ddaf..de362b3 100644
--- a/src/main/java/com/moral/controller/MobileController.java
+++ b/src/main/java/com/moral/controller/MobileController.java
@@ -20,6 +20,7 @@
 import com.moral.common.bean.AppData;
 import com.moral.common.bean.ResultBean;
 import com.moral.common.util.Crypto;
+import com.moral.common.util.WebUtils;
 import com.moral.entity.Account;
 import com.moral.entity.Device;
 import com.moral.entity.MonitorPoint;
@@ -327,4 +328,12 @@
 		List<Map<String, Object>> sensors = historyService.getSensorDataBySensorKey(parameters);
 		return new ResultBean<List<Map<String, Object>>>(sensors);
 	}
+	
+	@RequestMapping("profession-provincecode")
+	public ResultBean<List<Profession>> getProfessionByProvinceCode(HttpServletRequest request){
+		Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+		List<Profession> professions = professionService.getProfessiontList(parameters);
+		return new ResultBean<List<Profession>>(professions);
+	}
+
 }
diff --git a/src/main/java/com/moral/entity/Density.java b/src/main/java/com/moral/entity/Density.java
new file mode 100644
index 0000000..360e724
--- /dev/null
+++ b/src/main/java/com/moral/entity/Density.java
@@ -0,0 +1,30 @@
+package com.moral.entity;
+
+import java.io.Serializable;
+
+import javax.persistence.Id;
+
+import lombok.Data;
+@Data
+public class Density implements Serializable {
+
+	@Id
+	private Integer id;
+
+    private Integer provinceCode;
+
+    private Integer professionId;
+
+    private Byte tech;
+
+    private String limitVal;
+
+    private String valUnit;
+
+    private String extA;
+
+    private Integer extB;
+
+    private static final long serialVersionUID = 1L;
+
+}
\ 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 dae7f3d..1c01911 100644
--- a/src/main/java/com/moral/entity/Device.java
+++ b/src/main/java/com/moral/entity/Device.java
@@ -3,6 +3,7 @@
 import java.util.Date;
 import java.util.List;
 
+import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Transient;
 
@@ -19,6 +20,7 @@
 	 * @mbggenerated  Wed Nov 29 16:17:59 CST 2017
 	 */
 	@Id
+	@GeneratedValue(generator = "JDBC")
 	private Integer id;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column device.name
@@ -115,4 +117,6 @@
 	private List<Integer> organizationIds;
     @Transient
     private Profession profession;
+    @Transient
+    private DeviceProperty deviceProperty;
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/DeviceProperty.java b/src/main/java/com/moral/entity/DeviceProperty.java
new file mode 100644
index 0000000..d66d904
--- /dev/null
+++ b/src/main/java/com/moral/entity/DeviceProperty.java
@@ -0,0 +1,32 @@
+package com.moral.entity;
+
+import java.io.Serializable;
+
+import javax.persistence.Id;
+
+import lombok.Data;
+@Data
+public class DeviceProperty implements Serializable {
+	
+	@Id
+    private Integer id;
+
+    private Byte deviceTech;
+
+    private Byte deviceCat;
+
+    private String deviceSource;
+
+    private Integer extA;
+
+    private Integer extB;
+
+    private String extC;
+
+    private String extD;
+
+    private String extE;
+
+    private static final long serialVersionUID = 1L;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/entity/Profession.java b/src/main/java/com/moral/entity/Profession.java
index 624a1ad..f49b325 100644
--- a/src/main/java/com/moral/entity/Profession.java
+++ b/src/main/java/com/moral/entity/Profession.java
@@ -3,10 +3,14 @@
 import lombok.Data;
 
 import javax.persistence.Id;
+import java.io.Serializable;
 
 @Data
-public class Profession {
-    @Id
+public class Profession implements Serializable {
+	private String provinceCode;
+
+	private static final long serialVersionUID = 1L;
+	@Id
     private Integer id;
 
     private String name;
diff --git a/src/main/java/com/moral/mapper/DensityMapper.java b/src/main/java/com/moral/mapper/DensityMapper.java
new file mode 100644
index 0000000..1379702
--- /dev/null
+++ b/src/main/java/com/moral/mapper/DensityMapper.java
@@ -0,0 +1,8 @@
+package com.moral.mapper;
+
+import com.moral.common.mapper.BaseMapper;
+import com.moral.entity.Density;
+
+public interface DensityMapper extends BaseMapper<Density>{
+	
+}
\ 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 8dd670a..70c23aa 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -8,6 +8,7 @@
 
 import com.moral.common.mapper.BaseMapper;
 import com.moral.entity.Device;
+
 import tk.mybatis.mapper.entity.Example;
 
 public interface DeviceMapper extends BaseMapper<Device>{
@@ -38,4 +39,6 @@
 
 	List<Device> getDevicesByOrganizationId(Map<String, Object> parameters);
 	List<Map<String, Object>> getDevicesStateByRegion(Map<String, Object> parameters);
+
+	List<Device> getDeviceList(Example example);
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/DevicePropertyMapper.java b/src/main/java/com/moral/mapper/DevicePropertyMapper.java
new file mode 100644
index 0000000..6eed6f6
--- /dev/null
+++ b/src/main/java/com/moral/mapper/DevicePropertyMapper.java
@@ -0,0 +1,8 @@
+package com.moral.mapper;
+
+import com.moral.common.mapper.BaseMapper;
+import com.moral.entity.DeviceProperty;
+
+public interface DevicePropertyMapper extends BaseMapper<DeviceProperty>{
+
+}
\ 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 9f29d35..cf06d71 100644
--- a/src/main/java/com/moral/service/DeviceService.java
+++ b/src/main/java/com/moral/service/DeviceService.java
@@ -3,10 +3,11 @@
 import java.util.Date;
 import java.util.List;
 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;
+import com.moral.entity.DeviceProperty;
 
 public interface DeviceService {
 
@@ -46,4 +47,8 @@
 	List<Device> getDevicesByOrganizationId(Map<String, Object> parameters);
 
     Map<String,Long> queryDeviceStateSummary(Integer orgId);
+
+	void saveOrUpdate(Device device, DeviceProperty deviceProperty);
+
+	PageBean getDeviceList(PageBean pageBean);
 }
diff --git a/src/main/java/com/moral/service/ProfessionService.java b/src/main/java/com/moral/service/ProfessionService.java
index 289dbc9..d57105c 100644
--- a/src/main/java/com/moral/service/ProfessionService.java
+++ b/src/main/java/com/moral/service/ProfessionService.java
@@ -1,12 +1,15 @@
 package com.moral.service;
 
-import com.moral.entity.Profession;
-
 import java.util.List;
+import java.util.Map;
+
+import com.moral.entity.Profession;
 
 public interface ProfessionService {
 
     List<Profession> queryByName(String nameLike);
 
     public List<Profession> getProfessiontList();
+
+    public List<Profession> getProfessiontList(Map<String, Object> parameters);
 }
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index f24a2b9..8e9366c 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -1,21 +1,16 @@
 package com.moral.service.impl;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 
-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.exception.BusinessException;
-import com.moral.common.util.ExampleUtil;
-import com.moral.common.util.RedisUtils;
-import com.moral.entity.DeviceVersion;
-import com.moral.mapper.*;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -24,11 +19,27 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import com.alibaba.fastjson.TypeReference;
+import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
+import com.moral.common.bean.Constants;
+import com.moral.common.bean.PageBean;
+import com.moral.common.bean.PageResult;
+import com.moral.common.exception.BusinessException;
+import com.moral.common.util.ExampleUtil;
+import com.moral.common.util.RedisUtils;
 import com.moral.common.util.ValidateUtil;
 import com.moral.entity.Device;
+import com.moral.entity.DeviceProperty;
+import com.moral.mapper.DeviceMapper;
+import com.moral.mapper.DevicePropertyMapper;
+import com.moral.mapper.DeviceVersionMapper;
+import com.moral.mapper.DictionaryDataMapper;
+import com.moral.mapper.MonitorPointMapper;
+import com.moral.mapper.OrganizationMapper;
 import com.moral.service.AccountService;
 import com.moral.service.DeviceService;
+
 import tk.mybatis.mapper.entity.Example;
 
 @Service
@@ -508,4 +519,35 @@
 		result.put("stop", stop);
 		return result;
 	}
+
+	@Resource
+	private DevicePropertyMapper devicePropertyMapper;
+	
+	@Override
+	@Transactional
+	public void saveOrUpdate(Device device, DeviceProperty deviceProperty) {
+		if (ObjectUtils.isEmpty(device.getId())) {
+			device.setState(Constants.DEVICE_STATE_OFFLINE);
+			device.setIsDelete(Constants.IS_DELETE_FALSE);
+			deviceMapper.insertSelective(device);
+			deviceProperty.setId(device.getId());
+		} else {
+			deviceMapper.updateByPrimaryKeySelective(device);
+			devicePropertyMapper.deleteByPrimaryKey(deviceProperty);
+		}
+		devicePropertyMapper.insertSelective(deviceProperty);
+		refreshDeviceInRedis(device.getMac());
+
+	}
+	
+	@Override
+	public PageBean getDeviceList(PageBean pageBean) {
+		Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
+		if(pageBean.getPageSize()>0){
+			PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize());
+		}
+		List<Device> deviceList = deviceMapper.getDeviceList(example);
+		return new PageBean(deviceList);
+	}
+
 }
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index 37b4d81..dfb1c44 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -30,10 +30,10 @@
 import com.moral.entity.Sensor;
 import com.moral.mapper.DeviceMapper;
 import com.moral.mapper.HistoryMapper;
-import com.moral.mapper.ProfessionMapper;
 import com.moral.mapper.SensorMapper;
 import com.moral.service.AccountService;
 import com.moral.service.HistoryService;
+import com.moral.service.ProfessionService;
 
 @Service
 public class HistoryServiceImpl implements HistoryService {
@@ -51,7 +51,7 @@
 	private SensorMapper sensorMapper;
 
     @Resource
-    private ProfessionMapper professionMapper;
+    private ProfessionService professionService;
 
 	@Override
 	public Map<String, Object> getAllSensorAverageByDevice(Map<String, Object> parameters) throws Exception {
@@ -111,6 +111,7 @@
 		ValidateUtil.notNull(parameters.get("accountId"), "param.is.null");
 
 		String regionCode = parameters.get("regionCode").toString();
+		parameters.put("provinceCode", regionCode.substring(0,2).concat("0000"));
 		String regionType = "village";
 		String nextLevel = "";
 		if (regionCode.length() == 6) {
@@ -168,7 +169,7 @@
 			}
 		}
 		if ("profession".equals(parameters.get("dimension"))) {
-			List<Profession> professions = professionMapper.selectAll();
+			List<Profession> professions = professionService.getProfessiontList(parameters);
 			for (Map<String, Object> map : result) {
 				for (Profession profession : professions) {
 					if (map.get("name").equals(profession.getName())) {
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index ffd22cb..0dfde57 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -73,10 +73,10 @@
             List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
             params.put("orgIds",orgIds);
             monitorPointList = monitorPointMapper.selectByMap(params);
-            for(MonitorPoint monitorPoint:monitorPointList){
-                Integer state = getStateFromRedis(monitorPoint.getId());
-                monitorPoint.setState(state);
-            }
+//            for(MonitorPoint monitorPoint:monitorPointList){
+//                Integer state = getStateFromRedis(monitorPoint.getId());
+//                monitorPoint.setState(state);
+//            }
         }
         return monitorPointList == null ? new ArrayList<>() : monitorPointList;
     }
diff --git a/src/main/java/com/moral/service/impl/ProfessionServiceImpl.java b/src/main/java/com/moral/service/impl/ProfessionServiceImpl.java
index c46fadd..ed049f6 100644
--- a/src/main/java/com/moral/service/impl/ProfessionServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/ProfessionServiceImpl.java
@@ -1,14 +1,19 @@
 package com.moral.service.impl;
 
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
 import com.moral.common.util.StringUtils;
 import com.moral.entity.Profession;
 import com.moral.mapper.ProfessionMapper;
 import com.moral.service.ProfessionService;
-import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Example;
 
-import javax.annotation.Resource;
-import java.util.List;
+import tk.mybatis.mapper.entity.Example;
 
 @Service
 public class ProfessionServiceImpl implements ProfessionService {
@@ -28,4 +33,20 @@
 
         return professionMapper.selectAll();
     }
+
+    @Override
+    public List<Profession> getProfessiontList(Map<String, Object> parameters) {
+    	List<Profession> professions = null;
+    	if (parameters.containsKey("provinceCode")) {
+    		Profession profession = new Profession();
+    		profession.setProvinceCode(parameters.get("provinceCode").toString());
+    		professions = professionMapper.select(profession);
+		}
+    	if (ObjectUtils.isEmpty(professions)) {
+    		Example example = new Example(Profession.class);
+    		example.and().andIsNull("provinceCode");
+    		professions = professionMapper.selectByExample(example);
+		}
+        return professions;
+    }
 }
diff --git a/src/main/resources/mapper/DensityMapper.xml b/src/main/resources/mapper/DensityMapper.xml
new file mode 100644
index 0000000..e8b7505
--- /dev/null
+++ b/src/main/resources/mapper/DensityMapper.xml
@@ -0,0 +1,17 @@
+<?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.DensityMapper">
+  <resultMap id="BaseResultMap" type="com.moral.entity.Density">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="province_code" jdbcType="INTEGER" property="provinceCode" />
+    <result column="profession_id" jdbcType="INTEGER" property="professionId" />
+    <result column="tech" jdbcType="TINYINT" property="tech" />
+    <result column="limit_val" jdbcType="CHAR" property="limitVal" />
+    <result column="val_unit" jdbcType="VARCHAR" property="valUnit" />
+    <result column="ext_a" jdbcType="VARCHAR" property="extA" />
+    <result column="ext_b" jdbcType="INTEGER" property="extB" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, province_code, profession_id, tech, limit_val, val_unit, ext_a, ext_b
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index 4b05ca1..5680b8d 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -1,39 +1,56 @@
 <?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.DeviceMapper">
-  <resultMap id="BaseResultMap" type="com.moral.entity.Device">
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <result column="name" jdbcType="VARCHAR" property="name" />
-    <result column="address" jdbcType="VARCHAR" property="address" />
-    <result column="longitude" jdbcType="REAL" property="longitude" />
-    <result column="latitude" jdbcType="REAL" property="latitude" />
-    <result column="mac" jdbcType="VARCHAR" property="mac" />
-    <result column="operate_user_id" jdbcType="INTEGER" property="operateUserId" />
-    <result column="state" jdbcType="CHAR" property="state" />
-    <result column="is_delete" jdbcType="CHAR" property="isDelete" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="install_time" jdbcType="TIMESTAMP" property="installTime" />
-    <result column="monitor_point_id" jdbcType="INTEGER" property="monitorPointId" />
-    <result column="device_version_id" jdbcType="INTEGER" property="deviceVersionId" />
-	<result column="profession_id" jdbcType="INTEGER" property="professionId" />
-	  <association property="operateUser" javaType="com.moral.entity.OperateUser">
-		  <result column="operate_user_id" property="id" jdbcType="INTEGER" />
-		  <result column="operate_user_name" property="name" jdbcType="VARCHAR" />
-	  </association>
-	  <association property="deviceVersion" javaType="com.moral.entity.DeviceVersion">
-		  <result column="device_version_id" property="id" jdbcType="INTEGER" />
-		  <result column="device_version_value" property="version" jdbcType="INTEGER" />
-		  <result column="device_version_name" property="name" jdbcType="VARCHAR" />
-	  </association>
-	  <association property="monitorPoint" javaType="com.moral.entity.MonitorPoint">
-		  <result column="monitor_point_id" property="id" jdbcType="INTEGER" />
-		  <result column="monitor_point_name" property="name" jdbcType="VARCHAR" />
-	  </association>
-	  <association property="profession" javaType="com.moral.entity.Profession">
-		  <result column="profession_id" property="id" jdbcType="INTEGER" />
-		  <result column="profession_name" property="name" jdbcType="VARCHAR" />
-	  </association>
-  </resultMap>
+	<resultMap id="ResultMap" type="com.moral.entity.Device">
+		<id column="id" jdbcType="INTEGER" property="id" />
+		<result column="name" jdbcType="VARCHAR" property="name" />
+		<result column="address" jdbcType="VARCHAR" property="address" />
+		<result column="longitude" jdbcType="DOUBLE" property="longitude" />
+		<result column="latitude" jdbcType="DOUBLE" property="latitude" />
+		<result column="mac" jdbcType="VARCHAR" property="mac" />
+		<result column="operate_user_id" jdbcType="INTEGER" property="operateUserId" />
+		<result column="state" jdbcType="CHAR" property="state" />
+		<result column="is_delete" jdbcType="CHAR" property="isDelete" />
+		<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+		<result column="install_time" jdbcType="TIMESTAMP" property="installTime" />
+		<result column="monitor_point_id" jdbcType="INTEGER" property="monitorPointId" />
+		<result column="device_version_id" jdbcType="INTEGER" property="deviceVersionId" />
+		<result column="profession_id" jdbcType="INTEGER" property="professionId" />
+	</resultMap>
+
+	<resultMap id="BaseResultMap" type="com.moral.entity.Device" extends="ResultMap">
+		<association property="operateUser" javaType="com.moral.entity.OperateUser">
+			<result column="operate_user_id" property="id" jdbcType="INTEGER" />
+			<result column="operate_user_name" property="name" jdbcType="VARCHAR" />
+		</association>
+		<association property="deviceVersion" javaType="com.moral.entity.DeviceVersion">
+			<result column="device_version_id" property="id" jdbcType="INTEGER" />
+			<result column="device_version_value" property="version" jdbcType="INTEGER" />
+			<result column="device_version_name" property="name" jdbcType="VARCHAR" />
+		</association>
+		<association property="monitorPoint" javaType="com.moral.entity.MonitorPoint">
+			<result column="monitor_point_id" property="id" jdbcType="INTEGER" />
+			<result column="monitor_point_name" property="name" jdbcType="VARCHAR" />
+			<result column="province_code" property="provinceCode" jdbcType="VARCHAR" />
+		</association>
+		<association property="profession" javaType="com.moral.entity.Profession">
+			<result column="profession_id" property="id" jdbcType="INTEGER" />
+			<result column="profession_name" property="name" jdbcType="VARCHAR" />
+		</association>
+	</resultMap>
+
+	<resultMap id="PropertyResultMap" type="com.moral.entity.Device" extends="BaseResultMap">
+		<association property="deviceProperty" javaType="com.moral.entity.DeviceProperty">
+			<result column="id" property="id" jdbcType="INTEGER" />
+			<result column="device_tech" property="deviceTech" jdbcType="TINYINT" />
+			<result column="device_cat" property="deviceCat" jdbcType="TINYINT" />
+			<result column="device_source" property="deviceSource" jdbcType="VARCHAR" />
+		</association>
+	</resultMap>
+
+	<resultMap id="BaseResultWithOrgIdsMap" type="com.moral.entity.Device" extends="BaseResultMap">
+		<collection property="organizationIds" column="id" select="selectOrganizationIds"></collection>
+	</resultMap>
 	<sql id="Example_Where_Clause">
 		<where>
 			<foreach collection="oredCriteria" item="criteria" separator="or">
@@ -244,9 +261,6 @@
 			AND dev.is_delete =0
 		</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="java.lang.Integer">
 		call proc_organizationIds_GetByDeviceId(#{id,jdbcType=INTEGER});
@@ -336,23 +350,6 @@
 			</if>
 	</select>
 
-	<resultMap id="ResultMap" type="com.moral.entity.Device">
-		<id column="id" jdbcType="INTEGER" property="id" />
-		<result column="name" jdbcType="VARCHAR" property="name" />
-		<result column="address" jdbcType="VARCHAR" property="address" />
-		<result column="longitude" jdbcType="DOUBLE" property="longitude" />
-		<result column="latitude" jdbcType="DOUBLE" property="latitude" />
-		<result column="mac" jdbcType="VARCHAR" property="mac" />
-		<result column="operate_user_id" jdbcType="INTEGER" property="operateUserId" />
-		<result column="state" jdbcType="CHAR" property="state" />
-		<result column="is_delete" jdbcType="CHAR" property="isDelete" />
-		<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-		<result column="install_time" jdbcType="TIMESTAMP" property="installTime" />
-		<result column="monitor_point_id" jdbcType="INTEGER" property="monitorPointId" />
-		<result column="device_version_id" jdbcType="INTEGER" property="deviceVersionId" />
-		<result column="profession_id" jdbcType="INTEGER" property="professionId" />
-	</resultMap>
-
 	<select id="getDevicesByOrganizationId" resultMap="ResultMap">
 		SELECT
 			d.* 
@@ -387,4 +384,30 @@
 		</if>
 		</where>
 	</select>
+
+	<select id="getDeviceList" resultMap="PropertyResultMap">
+		select
+			dev.*,
+			ouser.name as operate_user_name,
+			dvn.name as device_version_name,
+			mpt.name as monitor_point_name,
+			mpt.province_code,
+			dp.device_tech,
+			dp.device_cat,
+			dp.device_source
+		from device dev
+		left join operate_user ouser on dev.operate_user_id = ouser.id
+		left join device_version dvn on dev.device_version_id = dvn.id
+		left join monitor_point mpt on dev.monitor_point_id = mpt.id
+		left join device_property dp on dev.id = dp.id
+		where dev.id in (
+			select id from device
+			<if test="_parameter != null">
+				<include refid="Example_Where_Clause" />
+			</if>
+			<if test="orderByClause != null">
+				order by ${orderByClause}
+			</if>
+		)
+	</select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/DevicePropertyMapper.xml b/src/main/resources/mapper/DevicePropertyMapper.xml
new file mode 100644
index 0000000..2760fef
--- /dev/null
+++ b/src/main/resources/mapper/DevicePropertyMapper.xml
@@ -0,0 +1,18 @@
+<?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.DevicePropertyMapper">
+  <resultMap id="BaseResultMap" type="com.moral.entity.DeviceProperty">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="device_tech" jdbcType="TINYINT" property="deviceTech" />
+    <result column="device_cat" jdbcType="TINYINT" property="deviceCat" />
+    <result column="device_source" jdbcType="VARCHAR" property="deviceSource" />
+    <result column="ext_a" jdbcType="INTEGER" property="extA" />
+    <result column="ext_b" jdbcType="INTEGER" property="extB" />
+    <result column="ext_c" jdbcType="VARCHAR" property="extC" />
+    <result column="ext_d" jdbcType="VARCHAR" property="extD" />
+    <result column="ext_e" jdbcType="VARCHAR" property="extE" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, device_tech, device_cat, device_source, ext_a, ext_b, ext_c, ext_d, ext_e
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/ProfessionMapper.xml b/src/main/resources/mapper/ProfessionMapper.xml
index 2b6902b..a1e7a3a 100644
--- a/src/main/resources/mapper/ProfessionMapper.xml
+++ b/src/main/resources/mapper/ProfessionMapper.xml
@@ -1,9 +1,12 @@
-<?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.ProfessionMapper" >
-    <resultMap id="BaseResultMap" type="com.moral.entity.Profession" >
-        <id column="id" property="id" jdbcType="INTEGER" />
-        <result column="name" property="name" jdbcType="VARCHAR" />
-    </resultMap>
+<?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.ProfessionMapper">
+  <resultMap id="BaseResultMap" type="com.moral.entity.Profession">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="province_code" jdbcType="VARCHAR" property="provinceCode" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, name, province_code
+  </sql>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0