From e7bc156f901b06e5af54cfe86fe53e7491af7b7f Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 20 May 2021 10:22:27 +0800
Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into dev

---
 screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java            |    2 
 screen-manage/src/main/java/com/moral/api/service/DeviceService.java          |   40 ++
 screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java        |   41 ++
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java |  198 +++++++++++++++-
 screen-manage/src/main/resources/mapper/DeviceMapper.xml                      |  137 ++++++++--
 screen-manage/src/main/resources/mapper/SensorMapper.xml                      |   32 ++
 screen-common/src/main/java/com/moral/constant/Constants.java                 |   21 +
 screen-manage/src/main/java/com/moral/api/entity/Sensor.java                  |   15 +
 screen-manage/src/main/java/com/moral/api/controller/DeviceController.java    |  175 +++++++++++---
 screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java |   36 ++
 10 files changed, 591 insertions(+), 106 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 07e4cb1..fb9db76 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -62,7 +62,7 @@
     /*
      * ���������������
      * */
-    public static final String WEB_CHANNEL = "1";
+    public static final String WEB_CHANNEL = "0";
 
     /*
      * ������������������
@@ -94,6 +94,25 @@
     * */
     public static final String SYSTEM_DICT_TYPE_UNIT = "unit";
 
+    /*
+    * ������������������
+    * */
+    public static final String SYSTEM_DICT_TYPE_PROFESSION = "profession";
+
+    /*
+     * ������������������������
+     * */
+    public static final String SYSTEM_DICT_TYPE_TECH = "tech";
+
+    /*
+     * ���������������������������
+     * */
+    public static final String SYSTEM_DICT_TYPE_DETECTOR = "detector";
+
+    /*
+     * ���������������������
+     * */
+    public static final String SYSTEM_DICT_TYPE_PURCHASER = "purchaser";
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
index 16691cf..780deaa 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java
@@ -14,14 +14,11 @@
 import java.util.List;
 import java.util.Map;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.moral.api.entity.Device;
-import com.moral.api.entity.ManageAccount;
-import com.moral.api.entity.Organization;
-import com.moral.api.entity.User;
-import com.moral.api.pojo.vo.device.DeviceVO;
+
 import com.moral.api.service.DeviceService;
-import com.moral.api.service.OrganizationService;
+import com.moral.constant.Constants;
 import com.moral.constant.ResultMessage;
 import com.moral.util.PageResult;
 
@@ -34,27 +31,113 @@
     @Autowired
     private DeviceService deviceService;
 
-    @Autowired
-    private OrganizationService organizationService;
-
     @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
     @RequestMapping(value = "insert", method = RequestMethod.POST)
-    public ResultMessage insert(@RequestBody Device device) {
+    public ResultMessage insert(Device device) {
         deviceService.insert(device);
         return ResultMessage.ok();
     }
 
-    @ApiOperation(value = "���������������", notes = "���������������")
+    @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "operators", method = RequestMethod.GET)
-    public ResultMessage selectOperators() {
-        List<ManageAccount> operators = deviceService.selectAllOperator();
-        return ResultMessage.ok(operators);
+    @RequestMapping(value = "delete", method = RequestMethod.GET)
+    public ResultMessage delete(Integer deviceId) {
+        deviceService.delete(deviceId);
+        return ResultMessage.ok();
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "update", method = RequestMethod.POST)
+    public ResultMessage update(Device device) {
+        deviceService.update(device);
+        return ResultMessage.ok();
+    }
+
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "���������", required = false, paramType = "query", dataType = "Integer"),
+            @ApiImplicitParam(name = "size", value = "������������", required = false, paramType = "query", dataType = "Integer"),
+            @ApiImplicitParam(name = "order", value = "������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "orderType", value = "������������������������0������������1", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
+            @ApiImplicitParam(name = "name", value = "������������������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "mac", value = "mac������������", required = false, paramType = "query", dataType = "String"),
+    })
+    @RequestMapping(value = "select", method = RequestMethod.POST)
+    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
+        IPage<Device> page = deviceService.selectDevices(parameters);
+        PageResult<Device> pageResult = new PageResult<>(
+                page.getTotal(), page.getPages(), page.getRecords()
+        );
+        return ResultMessage.ok(pageResult);
+    }
+
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "deviceInfo", method = RequestMethod.GET)
+    public ResultMessage selectDeviceInfoById(Integer deviceId) {
+        Map<String, Object> result = deviceService.selectDeviceInfoById(deviceId);
+        return ResultMessage.ok(result);
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "allOrganization", method = RequestMethod.GET)
+    public ResultMessage selectAllOrganization() {
+        List<Map<String, Object>> organizations = deviceService.selectAllOrganization();
+        return ResultMessage.ok(organizations);
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "allMonitorPoint", method = RequestMethod.GET)
+    public ResultMessage selectAllMonitorPoint() {
+        List<Map<String, Object>> organizations = deviceService.selectAllMonitorPoint();
+        return ResultMessage.ok(organizations);
+    }
+
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "monitorPoints", method = RequestMethod.GET)
+    public ResultMessage selectMonitorPoints(Integer orgId) {
+        List<Map<String, Object>> monitorPoints = deviceService.selectMonitorsByOrgId(orgId);
+        return ResultMessage.ok(monitorPoints);
+    }
+
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "devicesByOrgId", method = RequestMethod.GET)
+    public ResultMessage selectDevicesByOrg(Integer orgId) {
+        List<Map<String, Object>> devices = deviceService.selectDevicesByOrgId(orgId);
+        return ResultMessage.ok(devices);
+    }
+
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "devicesByMpId", method = RequestMethod.GET)
+    public ResultMessage selectDevicesByMp(Integer mpId) {
+        List<Map<String, Object>> devices = deviceService.selectDevicesByMpId(mpId);
+        return ResultMessage.ok(devices);
     }
 
     @ApiOperation(value = "������������", notes = "������������")
@@ -63,34 +146,52 @@
         return null;
     }
 
-    @ApiOperation(value = "������������", notes = "������������")
+    @ApiOperation(value = "���������������", notes = "���������������")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "organizations", method = RequestMethod.GET)
-    public ResultMessage selectOrganizations() {
-        List<Organization> organizations = deviceService.selectAllOrganization();
-        return ResultMessage.ok(organizations);
+    @RequestMapping(value = "operators", method = RequestMethod.GET)
+    public ResultMessage selectOperators() {
+        return ResultMessage.ok(deviceService.selectAllOperators());
     }
 
-    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "page", value = "���������", required = false, paramType = "query", dataType = "Integer"),
-            @ApiImplicitParam(name = "size", value = "������������", required = false, paramType = "query", dataType = "Integer"),
-            @ApiImplicitParam(name = "order", value = "������������", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "orderType", value = "������������������������0������������1", defaultValue = "0", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
-            @ApiImplicitParam(name = "organizationName", value = "������������������", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "monitorPointName", value = "������������������", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "deviceName", value = "������������������������", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "mac", value = "mac������������", required = false, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
     })
-    @RequestMapping(value = "select", method = RequestMethod.POST)
-    public ResultMessage select(@RequestBody Map<String, Object> parameters) {
-        Page<DeviceVO> userPage = deviceService.selectDevices(parameters);
-        PageResult<DeviceVO> pageResult = new PageResult<>(
-                userPage.getTotal(), userPage.getPages(), userPage.getRecords()
-        );
-        return ResultMessage.ok(pageResult);
+    @RequestMapping(value = "professions", method = RequestMethod.GET)
+    public ResultMessage selectProfessions() {
+        List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PROFESSION);
+        return ResultMessage.ok(professions);
+    }
+
+    @ApiOperation(value = "������������", notes = "������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "techs", method = RequestMethod.GET)
+    public ResultMessage selectTechs() {
+        List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_TECH);
+        return ResultMessage.ok(professions);
+    }
+
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "detectors", method = RequestMethod.GET)
+    public ResultMessage selectDetectors() {
+        List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_DETECTOR);
+        return ResultMessage.ok(professions);
+    }
+
+    @ApiOperation(value = "���������������", notes = "���������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @RequestMapping(value = "purchasers", method = RequestMethod.GET)
+    public ResultMessage selectPurchasers() {
+        List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PURCHASER);
+        return ResultMessage.ok(professions);
     }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
index 649bfea..9a16d4d 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Sensor.java
@@ -49,6 +49,21 @@
     private String code;
 
     /**
+     * ������
+     */
+    private Double upper;
+
+    /**
+     * ������
+     */
+    private Double lower;
+
+    /**
+     * ������������
+     */
+    private String defaultUtil;
+
+    /**
      * ������������
      */
     private Date createTime;
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
index 0d2726a..ef59bb3 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/DeviceMapper.java
@@ -22,6 +22,6 @@
  */
 public interface DeviceMapper extends BaseMapper<Device> {
 
-    IPage<DeviceVO> selectAllDeviceInfo(Page<DeviceVO> page, @Param("ew") QueryWrapper<DeviceVO> queryWrapper);
+    DeviceVO selectDeviceInfoById(Integer deviceId);
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java
index d6b3ea6..ffb4c28 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java
@@ -7,27 +7,54 @@
 
 import com.moral.api.entity.Device;
 import com.moral.api.entity.ManageAccount;
+import com.moral.api.entity.MonitorPoint;
 import com.moral.api.entity.Organization;
+import com.moral.api.entity.Version;
 
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class DeviceVO extends Device {
 
     /*
-    * ������
-    * */
+     * ������
+     * */
     private String professionName;
 
+
     /*
-    * ������
-    * */
+     * ������
+     * */
+    private String techName;
+
+    /*
+     * ���������
+     * */
+    private String detectorName;
+
+    /*
+     * ���������
+     * */
+    private String purchaserName;
+
+    /*
+     * ������
+     * */
     private Organization organization;
 
     /*
-    * ���������
-    * */
-    private List<ManageAccount> operators;
+     * ������������
+     * */
+    private Version version;
 
+    /*
+     * ������
+     * */
+    private MonitorPoint monitorPoint;
+
+    /*
+     * ���������
+     * */
+    private List<ManageAccount> operators;
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/DeviceService.java b/screen-manage/src/main/java/com/moral/api/service/DeviceService.java
index a7d25e7..a6a8015 100644
--- a/screen-manage/src/main/java/com/moral/api/service/DeviceService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/DeviceService.java
@@ -3,12 +3,9 @@
 import java.util.List;
 import java.util.Map;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.moral.api.entity.Device;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.moral.api.entity.ManageAccount;
-import com.moral.api.entity.Organization;
-import com.moral.api.pojo.vo.device.DeviceVO;
 
 /**
  * <p>
@@ -20,11 +17,40 @@
  */
 public interface DeviceService extends IService<Device> {
 
+    //������������
     void insert(Device device);
 
-    List<ManageAccount> selectAllOperator();
+    //������������
+    void delete(Integer deviceId);
 
-    List<Organization> selectAllOrganization();
+    //������������
+    void update(Device device);
 
-    Page<DeviceVO> selectDevices(Map<String, Object> parameters);
+    //���������������
+    List<Map<String, Object>> selectAllOperators();
+
+    //������������������������
+    List<Map<String, Object>> selectDeviceDictData(String dictType);
+
+    //������������������
+    List<Map<String, Object>> selectAllOrganization();
+
+    //������������������
+    List<Map<String, Object>> selectAllMonitorPoint();
+
+    //������������������������
+    List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId);
+
+    //������������������������
+    List<Map<String, Object>> selectDevicesByOrgId(Integer orgId);
+
+    //������������������������
+    List<Map<String, Object>> selectDevicesByMpId(Integer orgId);
+
+    //������������������������������
+    IPage<Device> selectDevices(Map<String, Object> parameters);
+
+    //������������id������������������������������������������������������������������������������������������������
+    Map<String, Object> selectDeviceInfoById(Integer deviceId);
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index bb7f828..57be6cd 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -1,24 +1,36 @@
 package com.moral.api.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.Device;
 import com.moral.api.entity.ManageAccount;
+import com.moral.api.entity.MonitorPoint;
 import com.moral.api.entity.Organization;
-import com.moral.api.entity.User;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.SysDictType;
+import com.moral.api.entity.Version;
 import com.moral.api.mapper.DeviceMapper;
 import com.moral.api.mapper.ManageAccountMapper;
+import com.moral.api.mapper.MonitorPointMapper;
 import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.mapper.SysDictDataMapper;
+import com.moral.api.mapper.SysDictTypeMapper;
 import com.moral.api.pojo.vo.device.DeviceVO;
 import com.moral.api.service.DeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
+import com.moral.redis.RedisUtil;
+import com.moral.util.ConvertUtils;
+import com.moral.util.DateUtils;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -42,34 +54,190 @@
     @Autowired
     private OrganizationMapper organizationMapper;
 
+    @Autowired
+    private MonitorPointMapper monitorPointMapper;
+
+    @Autowired
+    private SysDictTypeMapper sysDictTypeMapper;
+
+    @Autowired
+    private SysDictDataMapper sysDictDataMapper;
+
     @Override
     @Transactional
     public void insert(Device device) {
         deviceMapper.insert(device);
+        Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId());
+        RedisUtil.set("device_" + device.getMac(), deviceInfo);
     }
 
     @Override
-    public List<ManageAccount> selectAllOperator() {
-        QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("id", "user_name").eq("is_delete", Constants.NOT_DELETE);
-        return manageAccountMapper.selectList(queryWrapper);
+    @Transactional
+    public void delete(Integer deviceId) {
+        UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id", deviceId).set("is_delete", Constants.DELETE);
+        deviceMapper.update(null, updateWrapper);
+        String mac = deviceMapper.selectById(deviceId).getMac();
+        //������redis
+        RedisUtil.del("device_" + mac);
     }
 
     @Override
-    public List<Organization> selectAllOrganization() {
-        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("id", "name").ge("expire_time", new Date()).eq("is_delete", Constants.NOT_DELETE);
-        return organizationMapper.selectList(queryWrapper);
+    @Transactional
+    public void update(Device device) {
+        deviceMapper.updateById(device);
+        //������redis
+        Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId());
+        RedisUtil.set("device_" + deviceInfo.get("mac"), deviceInfo);
     }
 
     @Override
-    public Page<DeviceVO> selectDevices(Map<String, Object> parameters) {
-        QueryWrapper<DeviceVO> queryWrapper = new QueryWrapper<>();
+    public List<Map<String, Object>> selectAllOperators() {
+        //���������������
+        QueryWrapper<ManageAccount> operatorWrapper = new QueryWrapper<>();
+        operatorWrapper.select("id", "user_name").eq("is_delete", Constants.NOT_DELETE);
+        return manageAccountMapper.selectMaps(operatorWrapper);
+    }
+
+    //������������������������������������
+    @Override
+    public List<Map<String, Object>> selectDeviceDictData(String dictType) {
+        QueryWrapper<SysDictType> typeQueryWrapper = new QueryWrapper<>();
+        typeQueryWrapper.select("id").eq("name", dictType);
+        SysDictType sysDictType = sysDictTypeMapper.selectOne(typeQueryWrapper);
+        QueryWrapper<SysDictData> dataQueryWrapper = new QueryWrapper<>();
+        dataQueryWrapper.select("dataKey", "dataValue").eq("dict_type_id", sysDictType.getId()).eq("is_delete", Constants.NOT_DELETE);
+        return sysDictDataMapper.selectMaps(dataQueryWrapper);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId) {
+        QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("id", "name").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE);
+        return monitorPointMapper.selectMaps(queryWrapper);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectDevicesByOrgId(Integer orgId) {
+        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("organization_id", orgId);
+        return deviceMapper.selectMaps(queryWrapper);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectDevicesByMpId(Integer mpId) {
+        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("monitor_point_id", mpId);
+        return deviceMapper.selectMaps(queryWrapper);
+    }
+
+    @Override
+    public IPage<Device> selectDevices(Map<String, Object> parameters) {
+        QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
         Integer page = (Integer) parameters.get("page");
         Integer size = (Integer) parameters.get("size");
-        Page<DeviceVO> pageData = new Page<>(page, size);
-        deviceMapper.selectAllDeviceInfo(pageData, queryWrapper);
-        return pageData;
+        Object order = parameters.get("order");
+        Object orderType = parameters.get("orderType");
+        Object name = parameters.get("name");
+        Object mac = parameters.get("mac");
+        if (name != null) {
+            queryWrapper.like("name", name);
+        }
+        if (mac != null) {
+            queryWrapper.like("mac", mac);
+        }
+
+        //������������,������create_time������
+        if (order != null && orderType != null) {
+            if (Constants.ORDER_ASC.equals(orderType)) {
+                queryWrapper.orderByAsc(ConvertUtils.toLine(order.toString()));
+            } else {
+                queryWrapper.orderByDesc(ConvertUtils.toLine(order.toString()));
+            }
+        } else {
+            queryWrapper.orderByDesc("create_time");
+        }
+        queryWrapper.eq("is_delete", Constants.NOT_DELETE);
+        Page<Device> devicePage = new Page<>(page, size);
+        deviceMapper.selectPage(devicePage, queryWrapper);
+        return devicePage;
+    }
+
+    @Override
+    public Map<String, Object> selectDeviceInfoById(Integer deviceId) {
+        Map<String, Object> result = new LinkedHashMap<>();
+        DeviceVO device = deviceMapper.selectDeviceInfoById(deviceId);
+        //������
+        result.put("id", device.getId());
+        result.put("name", device.getName());
+        result.put("mac", device.getMac());
+        result.put("address", device.getAddress());
+        result.put("longitude", device.getLongitude());
+        result.put("latitude", device.getLatitude());
+        result.put("createTime", DateUtils.dateToDateString(device.getCreateTime()));
+
+        //������
+        result.put("profession", device.getProfession());
+        result.put("professionName", device.getProfessionName());
+
+        //������
+        result.put("tech", device.getTech());
+        result.put("techName", device.getTechName());
+
+        //���������
+        result.put("detector", device.getDetector());
+        result.put("detectorName", device.getDetectorName());
+
+        //���������
+        result.put("purchaser", device.getPurchaser());
+        result.put("purchaserName", device.getPurchaserName());
+
+        //������
+        Map<String, Object> versionInfo = new LinkedHashMap<>();
+        Version version = device.getVersion();
+        versionInfo.put("id", version.getId());
+        versionInfo.put("name", version.getName());
+        result.put("version", versionInfo);
+
+        //���������
+        List<Map<String, Object>> operatorsInfo = new ArrayList<>();
+        List<ManageAccount> operators = device.getOperators();
+        for (ManageAccount operator : operators) {
+            Map<String, Object> operatorMap = new LinkedHashMap<>();
+            operatorMap.put("id", operator.getId());
+            operatorMap.put("name", operator.getUserName());
+            operatorsInfo.add(operatorMap);
+        }
+        result.put("operators", operatorsInfo);
+
+        //������
+        Map<String, Object> orgInfo = new LinkedHashMap<>();
+        Organization organization = device.getOrganization();
+        orgInfo.put("id", organization.getId());
+        orgInfo.put("name", organization.getName());
+        result.put("organization", orgInfo);
+
+        //������
+        Map<String, Object> mpInfo = new LinkedHashMap<>();
+        MonitorPoint monitorPoint = device.getMonitorPoint();
+        mpInfo.put("id", monitorPoint.getId());
+        mpInfo.put("name", monitorPoint.getName());
+        result.put("monitorPoint", mpInfo);
+        return result;
+    }
+
+    @Override
+    public List<Map<String, Object>> selectAllOrganization() {
+        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE);
+        return organizationMapper.selectMaps(queryWrapper);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectAllMonitorPoint() {
+        QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE);
+        return monitorPointMapper.selectMaps(queryWrapper);
     }
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
index 6ed59ca..d1da7a9 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
@@ -5,7 +5,9 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.ManageRole;
 import com.moral.api.entity.Sensor;
+import com.moral.api.entity.VersionSensorUnit;
 import com.moral.api.mapper.SensorMapper;
+import com.moral.api.mapper.VersionSensorUnitMapper;
 import com.moral.api.service.SensorService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.api.util.LogUtils;
@@ -41,6 +43,9 @@
 
     @Autowired(required = false)
     private SensorMapper sensorMapper;
+
+    @Autowired(required = false)
+    private VersionSensorUnitMapper versionSensorUnitMapper;
 
     @Autowired
     LogUtils logUtils;
@@ -123,14 +128,29 @@
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         String content = "������������:"+oldSensor.getName()+";";
         for (Object key:updateSensorMap.keySet()) {
-            if (key.toString().equals("name")){
-                content = content+"���������:"+oldSensor.getName()+"->"+updateSensorMap.get(key)+";";
+            if (key.toString().equals("name")&&updateSensorMap.get(key)!=null){
+                content = content+"���������:"+oldSensor.getName()+"->"+updateSensorMap.get(key)+";";
             }
-            if (key.toString().equals("code")){
+            if (key.toString().equals("code")&&updateSensorMap.get(key)!=null){
+                QueryWrapper<VersionSensorUnit> wrapper_Version = new QueryWrapper<>();
+                wrapper_Version.eq("sensor_code",oldSensor.getCode());
+                wrapper_Version.eq("is_delete","0");
+                VersionSensorUnit versionSensorUnit = new VersionSensorUnit();
+                versionSensorUnit.setSensorCode(updateSensorMap.get(key).toString());
+                versionSensorUnitMapper.update(versionSensorUnit,wrapper_Version);
                 content = content+"������:"+oldSensor.getCode()+"->"+updateSensorMap.get(key)+";";
             }
-            if (key.toString().equals("desc")){
+            if (key.toString().equals("desc")&&updateSensorMap.get(key)!=null){
                 content = content+"������:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";";
+            }
+            if (key.toString().equals("upper")&&updateSensorMap.get(key)!=null){
+                content = content+"������:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";";
+            }
+            if (key.toString().equals("lower")&&updateSensorMap.get(key)!=null){
+                content = content+"������:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";";
+            }
+            if (key.toString().equals("default_util")&&updateSensorMap.get(key)!=null){
+                content = content+"������������:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";";
             }
         }
         logUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE);
@@ -194,8 +214,14 @@
             return resultMap;
         }
         Sensor deleteSensor = new Sensor();
-        deleteSensor.setIsDelete("1");
+        deleteSensor.setIsDelete(Constants.DELETE);
         sensorMapper.update(deleteSensor,wrapper);
+        QueryWrapper<VersionSensorUnit> wrapper_Version = new QueryWrapper<>();
+        wrapper_Version.eq("sensor_code",sensor.getCode());
+        wrapper_Version.eq("is_delete","0");
+        VersionSensorUnit versionSensorUnit = new VersionSensorUnit();
+        versionSensorUnit.setIsDelete(Constants.DELETE);
+        versionSensorUnitMapper.update(versionSensorUnit,wrapper_Version);
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         String content = "������������:"+sensor.getName()+";";
diff --git a/screen-manage/src/main/resources/mapper/DeviceMapper.xml b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
index c4c9e00..ac23a91 100644
--- a/screen-manage/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
@@ -27,54 +27,127 @@
     </resultMap>
 
     <resultMap id="resultMap" type="com.moral.api.pojo.vo.device.DeviceVO" extends="BaseResultMap">
+        <!--������-->
         <result column="profession_name" property="professionName"/>
+
+        <!--������-->
+        <result column="tech_name" property="techName"/>
+
+        <!--���������������-->
+        <result column="detector_name" property="detectorName"/>
+
+        <!--���������-->
+        <result column="purchaser_name" property="purchaserName"/>
+
+        <!--������-->
         <association property="organization" javaType="com.moral.api.entity.Organization">
             <result column="org_id" property="id"/>
             <result column="org_name" property="name"/>
         </association>
+
+        <!--������-->
+        <association property="monitorPoint" javaType="com.moral.api.entity.MonitorPoint">
+            <result column="mp_id" property="id"/>
+            <result column="mp_name" property="name"/>
+            <result column="mp_address" property="address"/>
+        </association>
+
+        <!--������-->
+        <association property="version" javaType="com.moral.api.entity.Version">
+            <result column="version_id" property="id"/>
+            <result column="version_name" property="name"/>
+        </association>
+
         <!--���������������-->
         <collection property="operators" ofType="com.moral.api.entity.ManageAccount">
-            <id column="operate_id" property="id" jdbcType="INTEGER"/>
+            <result column="operate_id" property="id" jdbcType="INTEGER"/>
             <result column="operate_name" property="userName" jdbcType="VARCHAR"/>
         </collection>
     </resultMap>
 
-    <select id="selectAllDeviceInfo" resultMap="resultMap">
-        SELECT d.id,
-               d.`name`,
-               d.mac,
-               d.address,
-               d.longitude,
-               d.latitude,
-               d.operate_ids,
-               d.organization_id,
-               d.monitor_point_id,
-               d.organization_id,
-               d.device_version_id,
-               d.profession profession,
-               o.id org_id,
-               o.`name` org_name,
-               ma.id operate_id,
-               ma.user_name operate_name,
-               sd.dataValue profession_name
-        FROM `device` d
-        LEFT JOIN `organization` o
-        ON d.organization_id = o.id
-        LEFT JOIN `manage_account` ma
-        ON FIND_IN_SET(
-            ma.id, (SELECT operate_ids FROM device)
-            )
-        LEFT JOIN
+    <select id="selectDeviceInfoById" resultMap="resultMap">
+        SELECT
+            d.id,
+            d.`name`,
+            d.mac,
+            d.address,
+            d.longitude,
+            d.latitude,
+            d.operate_ids,
+            d.organization_id,
+            d.monitor_point_id,
+            d.device_version_id,
+            d.profession,
+            d.tech,
+            d.detector,
+            d.purchaser,
+            d.create_time,
+            d.extend,
+            o.id org_id,
+            o.`name` org_name,
+            mp.id mp_id,
+            mp.`name` mp_name,
+            mp.address mp_address,
+            ma.id operate_id,
+            v.id version_id,
+            v.`name` version_name,
+            ma.user_name operate_name,
+            profession.dataValue profession_name,
+            tech.dataValue tech_name,
+            detector.dataValue detector_name,
+            purchaser.dataValue purchaser_name
+        FROM device d
+                 LEFT JOIN version v
+                           on d.device_version_id=v.id
+                 LEFT JOIN `organization` o
+                           ON d.organization_id = o.id
+                 LEFT JOIN `monitor_point` mp
+                           ON mp.id = d.monitor_point_id
+                 LEFT JOIN `manage_account` ma
+                           ON FIND_IN_SET
+                               (
+                                   ma.id, (SELECT operate_ids FROM device WHERE id = d.id)
+                               )
+                 LEFT JOIN
              (
                  SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
                  FROM sys_dict_type sdt,
                       sys_dict_data sdd
                  WHERE sdt.id = sdd.dict_type_id
-             ) sd
-        on sd.`name` = 'profession'
-        and d.profession = sd.dataKey
-        AND d.is_delete = 0
-        ${ew.customSqlSegment}
+                   AND sdt.`name` = 'profession'
+             ) profession
+             ON d.profession = profession.dataKey
+
+                 LEFT JOIN
+             (
+                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
+                 FROM sys_dict_type sdt,
+                      sys_dict_data sdd
+                 WHERE sdt.id = sdd.dict_type_id
+                   AND sdt.`name` = 'tech'
+             ) tech
+             ON d.tech = tech.dataKey
+
+                 LEFT JOIN
+             (
+                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
+                 FROM sys_dict_type sdt,
+                      sys_dict_data sdd
+                 WHERE sdt.id = sdd.dict_type_id
+                   AND sdt.`name` = 'detector'
+             ) detector
+             ON d.detector = detector.dataKey
+
+                 LEFT JOIN
+             (
+                 SELECT sdt.`name`, sdd.dataKey, sdd.dataValue
+                 FROM sys_dict_type sdt,
+                      sys_dict_data sdd
+                 WHERE sdt.id = sdd.dict_type_id
+                   AND sdt.`name` = 'purchaser'
+             ) purchaser
+             ON d.purchaser = purchaser.dataKey
+        WHERE d.id = #{deviceId}
     </select>
 
 
diff --git a/screen-manage/src/main/resources/mapper/SensorMapper.xml b/screen-manage/src/main/resources/mapper/SensorMapper.xml
index 123dc80..71810cc 100644
--- a/screen-manage/src/main/resources/mapper/SensorMapper.xml
+++ b/screen-manage/src/main/resources/mapper/SensorMapper.xml
@@ -8,13 +8,16 @@
                     <result column="name" property="name" />
                     <result column="desc" property="desc" />
                     <result column="code" property="code" />
+                    <result column="upper" property="upper" />
+                    <result column="lower" property="lower" />
+                    <result column="default_util" property="defaultUtil" />
                     <result column="create_time" property="createTime" />
                     <result column="update_time" property="updateTime" />
                     <result column="is_delete" property="isDelete" />
         </resultMap>
 
     <sql id="Base_Column_List">
-            s.id,s.name,s.code,s.desc,s.create_time,s.update_time,s.is_delete
+            s.id,s.name,s.code,s.desc,s.upper,s.lower,s.default_util,s.create_time,s.update_time,s.is_delete
     </sql>
 
     <insert id="insertOne" parameterType="com.moral.api.entity.Sensor">
@@ -29,6 +32,15 @@
             <if test="desc != null">
                 `desc`,
             </if>
+            <if test="upper != null">
+                upper,
+            </if>
+            <if test="lower != null">
+                lower,
+            </if>
+            <if test="defaultUtil != null">
+                default_util,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="name != null">
@@ -39,6 +51,15 @@
             </if>
             <if test="desc != null">
                 #{desc},
+            </if>
+            <if test="upper != null">
+                #{upper},
+            </if>
+            <if test="lower != null">
+                #{lower},
+            </if>
+            <if test="defaultUtil != null">
+                #{defaultUtil},
             </if>
         </trim>
     </insert>
@@ -63,6 +84,15 @@
             <if test="code != null">
                 code = #{code},
             </if>
+            <if test="upper != null">
+                upper = #{upper},
+            </if>
+            <if test="lower != null">
+                lower = #{lower},
+            </if>
+            <if test="default_util != null">
+                default_util = #{default_util},
+            </if>
             <if test="isDelete != null">
                 is_delete = #{isDelete},
             </if>

--
Gitblit v1.8.0