From 0aed1c0e6a91207c15fa34f49a7dfa9b6e2b64c5 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Tue, 14 Sep 2021 10:24:06 +0800
Subject: [PATCH] screen-api                  实时界面对数据进行保留小数位并且取整

---
 screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java                 |   11 
 screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java     |    2 
 screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java               |    5 
 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java            |   11 +
 screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java            |   21 ++
 screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java   |  119 ++++++-----
 screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java                      |    5 
 screen-api/src/main/java/com/moral/api/controller/CruiserController.java                 |   18 +
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java     |   18 +
 screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml                      |   23 ++
 screen-manage/src/main/java/com/moral/api/controller/DeviceController.java               |    3 
 screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java                         |   47 ++++
 screen-api/src/main/java/com/moral/api/entity/HistorySecondCruiser.java                  |   55 +++++
 screen-manage/src/main/java/com/moral/api/controller/TestController.java                 |   57 +++++
 screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java            |    4 
 screen-manage/src/main/java/com/moral/api/pojo/vo/device/DeviceVO.java                   |    6 
 screen-api/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java |   20 ++
 screen-manage/src/main/resources/mapper/DeviceMapper.xml                                 |   11 +
 screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java                   |    5 
 screen-manage/src/main/java/com/moral/api/entity/Device.java                             |    5 
 screen-api/src/main/java/com/moral/api/service/HistorySecondCruiserService.java          |   16 +
 screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java        |   37 ++-
 screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java      |   65 ++++--
 screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java                    |    1 
 24 files changed, 458 insertions(+), 107 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
index ee0ddcd..39012ba 100644
--- a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
@@ -43,6 +43,24 @@
     }
 
     /**
+     * @param mac ������mac
+     * @return ������������������������������������
+     */
+    @GetMapping("getDates")
+    @ApiOperation(value = "������������������������������", notes = "������������������������������")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
+            @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String")
+    })
+    public ResultMessage getDates(String mac) {
+        if (ObjectUtils.isEmpty(mac)) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        List<String> response = specialDeviceService.getDatesByMac(mac);
+        return ResultMessage.ok(response);
+    }
+
+    /**
      * @param request ������������
      * @return ������������������������������������
      */
diff --git a/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java b/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java
new file mode 100644
index 0000000..1e36dba
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/HistoryHourly.java
@@ -0,0 +1,47 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName HistoryHourly
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/9/14 8:53
+ * @Version TODO
+ **/
+@Data
+public class HistoryHourly extends Model<HistoryHourly> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ������mac
+     */
+    private String mac;
+
+    /**
+     * ������
+     */
+    private Date time;
+
+    /**
+     * ������
+     */
+    private String value;
+
+    /*
+    * ���������
+    * */
+    private Integer version;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/HistorySecondCruiser.java b/screen-api/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
new file mode 100644
index 0000000..f1cc0f9
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
@@ -0,0 +1,55 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * ���������������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HistorySecondCruiser extends Model<HistorySecondCruiser> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ������mac
+     */
+    private String mac;
+
+    /**
+     * ������������
+     */
+    private Date time;
+
+    /**
+     * ������
+     */
+    private String value;
+
+    /**
+     * ���������������������id
+     */
+    private Integer organizationId;
+
+    /**
+     * ������������
+     */
+    private Date batch;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
index 819edd9..0d9d380 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/HistoryHourlyMapper.java
@@ -1,5 +1,8 @@
 package com.moral.api.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.entity.HistoryHourly;
+
 import java.util.Map;
 
 /**
@@ -10,7 +13,7 @@
  * @author moral
  * @since 2021-07-14
  */
-public interface HistoryHourlyMapper{
+public interface HistoryHourlyMapper extends BaseMapper<HistoryHourly> {
 
     String selectHourlyData(Map<String,Object> params);
 
diff --git a/screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
new file mode 100644
index 0000000..e8feb8d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
@@ -0,0 +1,21 @@
+package com.moral.api.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * ��������������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-13
+ */
+public interface HistorySecondCruiserMapper extends BaseMapper<HistorySecondCruiser> {
+
+    List<String> getDates(Map<String,Object> params);
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/HistorySecondCruiserService.java b/screen-api/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
new file mode 100644
index 0000000..1068494
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
@@ -0,0 +1,16 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * ��������������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-13
+ */
+public interface HistorySecondCruiserService extends IService<HistorySecondCruiser> {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
index 18498ae..4a2f53a 100644
--- a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
@@ -31,13 +31,8 @@
             */
     SpecialDevice getSpecialDeviceMapByMac(String mac);
 
-    /**
-    * @Description: ������mac������������������������
-            * @Param: [mac]
-            * @return: com.moral.api.entity.SpecialDevice
-            * @Author: ���������
-            * @Date: 2021/9/8
-            */
-    SpecialDevice getSpecialDeviceByMac(String mac);
+
+    //���������������������������������������
+    List<String> getDatesByMac(String mac);
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
new file mode 100644
index 0000000..4583374
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
@@ -0,0 +1,20 @@
+package com.moral.api.service.impl;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.moral.api.mapper.HistorySecondCruiserMapper;
+import com.moral.api.service.HistorySecondCruiserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * ��������������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-13
+ */
+@Service
+public class HistorySecondCruiserServiceImpl extends ServiceImpl<HistorySecondCruiserMapper, HistorySecondCruiser> implements HistorySecondCruiserService {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
index 7b85f26..145895d 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -146,7 +146,7 @@
             //������������������batch
             value.forEach(listValue -> {
                 listValue.forEach((mKey, mValue) -> {
-                    Date slotStartDate = mValue.get(0).getTime();
+                    Date slotStartDate = mValue.    get(0).getTime();
                     Date slotEndDate = mValue.get(mValue.size() - 1).getTime();
                     Map<String, Object> dateMap = new HashMap<>();
                     dateMap.put("startTime", slotStartDate);
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 7fe9dd9..357a576 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -2,10 +2,9 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.moral.api.entity.HistorySecondSpecial;
-import com.moral.api.entity.Organization;
 import com.moral.api.entity.SpecialDevice;
 import com.moral.api.entity.SpecialDeviceHistory;
+import com.moral.api.mapper.HistorySecondCruiserMapper;
 import com.moral.api.mapper.HistorySecondSpecialMapper;
 import com.moral.api.mapper.SpecialDeviceMapper;
 import com.moral.api.service.OrganizationService;
@@ -14,6 +13,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
+import com.moral.util.DateUtils;
 import com.moral.util.GeodesyUtils;
 import com.moral.util.TokenUtils;
 
@@ -23,6 +23,8 @@
 import org.springframework.util.ObjectUtils;
 
 import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -48,6 +50,10 @@
 
     @Autowired
     SpecialDeviceMapper specialDeviceMapper;
+
+    @Autowired
+    private HistorySecondCruiserMapper historySecondCruiserMapper;
+
     @Autowired
     RedisTemplate redisTemplate;
 
@@ -97,22 +103,27 @@
         return filterData(data);
     }
 
-    @Override
+
     public SpecialDevice getSpecialDeviceMapByMac(String mac) {
-        //������������������
         QueryWrapper<SpecialDevice> wrapper = new QueryWrapper<>();
-        wrapper.eq("mac",mac);
-        wrapper.eq("is_delete",Constants.NOT_DELETE);
-       return specialDeviceMapper.selectOne(wrapper);
+        wrapper.eq("mac", mac);
+        wrapper.eq("is_delete", Constants.NOT_DELETE);
+        return specialDeviceMapper.selectOne(wrapper);
     }
 
+
     @Override
-    public SpecialDevice getSpecialDeviceByMac(String mac) {
-        QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper();
-        queryWrapper.eq("mac",mac);
-        queryWrapper.eq("is_delete",Constants.NOT_DELETE);
-        SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
-        return specialDevice;
+    public List<String> getDatesByMac(String mac) {
+        Map<String, Object> userInfo = (Map) TokenUtils.getUserInfo();
+        Map<String, Object> orgInfo = (Map) userInfo.get("organization");
+        Integer orgId = (Integer) orgInfo.get("id");
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("orgId", orgId);
+        params.put("mac", mac);
+        Date start = DateUtils.addMonths(new Date(), -6);
+        params.put("start", DateUtils.dateToDateString(start));
+        return historySecondCruiserMapper.getDates(params);
     }
 
 
diff --git a/screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml b/screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml
new file mode 100644
index 0000000..49a6cbc
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -0,0 +1,23 @@
+<?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.api.mapper.HistorySecondCruiserMapper">
+
+    <!-- ������������������������ -->
+    <resultMap id="BaseResultMap" type="com.moral.api.entity.HistorySecondCruiser">
+        <result column="mac" property="mac"/>
+        <result column="time" property="time"/>
+        <result column="value" property="value"/>
+        <result column="organization_id" property="organizationId"/>
+        <result column="batch" property="batch"/>
+    </resultMap>
+
+    <select id="getDates" resultType="java.lang.String">
+        SELECT DISTINCT DATE_FORMAT(`time`,'%Y-%m-%d') `time`
+        FROM history_second_cruiser
+        WHERE mac = #{mac}
+        AND organization_id = #{orgId}
+        AND `time` <![CDATA[>=]]> #{start}
+        ORDER BY `time`
+    </select>
+
+</mapper>
\ No newline at end of file
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 e86a967..fdfdb9d 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
@@ -6,6 +6,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -54,7 +55,7 @@
         String mac = device.getMac();
         Integer monitorPointId = device.getMonitorPointId();
         Integer versionId = device.getDeviceVersionId();
-        if (name == null || mac == null || monitorPointId == null || versionId == null) {
+        if (ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(mac) || ObjectUtils.isEmpty(monitorPointId) || ObjectUtils.isEmpty(versionId)) {
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
diff --git a/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java b/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java
index 6bfbc14..0757047 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/GovMonitorPoionController.java
@@ -9,12 +9,17 @@
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import com.moral.util.WebUtils;
+
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+
 import java.util.List;
 import java.util.Map;
 
@@ -39,31 +44,31 @@
     @RequestMapping(value = "getGovMonitorPointByCondition", method = RequestMethod.GET)
     @ResponseBody
     public ResultMessage getSpecialDeviceByCondition(HttpServletRequest request) {
-        Map<String,Object> parameters = WebUtils.getParametersStartingWith(request,null);
-        Map<String,Object> resultMap = govMonitorPointService.getDataByCondition(parameters);
-        if (!resultMap.containsKey("code")){
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+        Map<String, Object> resultMap = govMonitorPointService.getDataByCondition(parameters);
+        if (!resultMap.containsKey("code")) {
             return ResultMessage.ok(resultMap);
         }
-        return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
+        return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()), resultMap.get("msg").toString());
     }
 
     @RequestMapping(value = "insert", method = RequestMethod.POST)
     @ResponseBody
-    public ResultMessage insert(@RequestBody GovMonitorPoint govMonitorPoint){
+    public ResultMessage insert(@RequestBody GovMonitorPoint govMonitorPoint) {
         String guid = govMonitorPoint.getGuid();
         String name = govMonitorPoint.getName();
         double longitude = govMonitorPoint.getLongitude();
         double latitude = govMonitorPoint.getLatitude();
         String station_level = govMonitorPoint.getStationLevel();
-        if (ObjectUtils.isEmpty(guid) && ObjectUtils.isEmpty(name) && ObjectUtils.isEmpty(longitude) && ObjectUtils.isEmpty(latitude) && ObjectUtils.isEmpty(station_level)){
-            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        if (ObjectUtils.isEmpty(guid) && ObjectUtils.isEmpty(name) && ObjectUtils.isEmpty(longitude) && ObjectUtils.isEmpty(latitude) && ObjectUtils.isEmpty(station_level)) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
         QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
-        wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
-        wrapper_govMonitorPoint.eq("guid",guid).or().eq("name",name);
+        wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("guid", guid).or().eq("name", name);
         List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
-        if (govMonitorPoints.size()>0){
-            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getMsg());
+        if (govMonitorPoints.size() > 0) {
+            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getCode(), ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getMsg());
         }
         govMonitorPointService.insert(govMonitorPoint);
         return ResultMessage.ok();
@@ -71,17 +76,17 @@
 
     @RequestMapping(value = "update", method = RequestMethod.POST)
     @ResponseBody
-    public ResultMessage update(@RequestBody GovMonitorPoint govMonitorPoint){
+    public ResultMessage update(@RequestBody GovMonitorPoint govMonitorPoint) {
         int id = govMonitorPoint.getId();
-        if (ObjectUtils.isEmpty(id)){
-            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        if (ObjectUtils.isEmpty(id)) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
         QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
-        wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
-        wrapper_govMonitorPoint.eq("id",id);
+        wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("id", id);
         List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
-        if (govMonitorPoints.size()==0){
-            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
+        if (govMonitorPoints.size() == 0) {
+            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(), ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
         }
         govMonitorPointService.update(govMonitorPoint);
         return ResultMessage.ok();
@@ -89,19 +94,29 @@
 
     @RequestMapping(value = "delete", method = RequestMethod.POST)
     @ResponseBody
-    public ResultMessage delete(@RequestBody Map map){
+    public ResultMessage delete(@RequestBody Map map) {
         int id = Integer.parseInt(map.get("id").toString());
-        if (ObjectUtils.isEmpty(id)){
-            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        if (ObjectUtils.isEmpty(id)) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
         QueryWrapper<GovMonitorPoint> wrapper_govMonitorPoint = new QueryWrapper<>();
-        wrapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
-        wrapper_govMonitorPoint.eq("id",id);
+        wrapper_govMonitorPoint.eq("is_delete", Constants.NOT_DELETE);
+        wrapper_govMonitorPoint.eq("id", id);
         List<GovMonitorPoint> govMonitorPoints = govMonitorPointMapper.selectList(wrapper_govMonitorPoint);
-        if (govMonitorPoints.size()==0){
-            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(),ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
+        if (govMonitorPoints.size() == 0) {
+            return ResultMessage.fail(ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode(), ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg());
         }
         govMonitorPointService.delete(id);
         return ResultMessage.ok();
     }
+
+    @ApiOperation(value = "������������������������������/������/������������", notes = "������������������������������/������/������������")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String")
+    })
+    @GetMapping("govMonitorPoints")
+    public ResultMessage selectGovMonitorPoints(String regionCode) {
+        List<Map<String, Object>> response = govMonitorPointService.selectGovMonitorPoints(regionCode);
+        return ResultMessage.ok(response);
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/controller/TestController.java b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
index 43b908a..ae87dd1 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/TestController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/TestController.java
@@ -1,11 +1,15 @@
 package com.moral.api.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moral.api.entity.Sensor;
+import com.moral.api.entity.SysDictData;
 import com.moral.api.entity.Test;
 import com.moral.api.entity.UnitConversion;
+import com.moral.api.mapper.SysDictDataMapper;
 import com.moral.api.service.SensorService;
+import com.moral.api.service.SysDictDataService;
 import com.moral.api.service.TestService;
 import com.moral.api.service.impl.SensorServiceImpl;
 import com.moral.api.util.CacheUtils;
@@ -24,14 +28,21 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
 import java.io.*;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 
 @Slf4j
@@ -48,6 +59,7 @@
 
     @Autowired
     RedisTemplate redisTemplate;
+
 
     /**
      * name   ������
@@ -79,7 +91,7 @@
     @RequestMapping(value = "search/{page}/{size}", method = RequestMethod.GET)
     public ResultMessage findBypage(@PathVariable("page") Integer page, @PathVariable("size") Integer size) {
 
-        log.info("page is:" + page + " size is:" + size);
+        //log.info("page is:" + page + " size is:" + size);
         //������������������������
         Page<Test> userPage = testService.selectByPage(null, page, size);
         //������������������������
@@ -197,6 +209,8 @@
 
     @Autowired
     private SensorService sensorService;
+    @Autowired
+    SysDictDataMapper sysDictDataMapper;
 
     @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams({
@@ -213,9 +227,44 @@
     }
 
     @GetMapping("test")
-    public void test(){
-        List<UnitConversion> range = redisTemplate.opsForList().range(RedisConstants.UNIT_CONVERSION, 0, -1);
-        System.out.println(range);
+    public void test() throws IOException {
+        BufferedReader br = new BufferedReader(new FileReader(new File("C:\\Users\\cdl\\Desktop\\alarmLevels.json")));
+        StringBuilder sb = new StringBuilder();
+        String line = br.readLine();
+        while (line != null) {
+            sb.append(line + "\r\n");
+            line = br.readLine();
+        }
+
+        Map map = JSON.parseObject(sb.toString(), Map.class);
+        System.out.println(map);
+
+        Map<String,Object> sensorMap = (Map<String, Object>) map.get("alarmLevels");
+
+        Set<String> sets = sensorMap.keySet();
+
+        Map<String,String> alarmLevels = new HashMap<>();
+        for (String set : sets) {
+            Map<String,Object> map2 = (Map<String, Object>) sensorMap.get(set);
+            String increment =  map2.get("increment").toString();
+            alarmLevels.put(set,increment);
+        }
+        alarmLevels.remove("AQI");
+        Map<String,Object> resultMap = new HashMap<>();
+        Map<String, String> ecodeMap = testService.getMap();
+
+        alarmLevels.forEach((key,value)->{
+            resultMap.put(ecodeMap.get(key),value);
+        });
+
+        resultMap.forEach((key,value)->{
+            SysDictData sysDictData = new SysDictData();
+            sysDictData.setDataKey(key);
+            sysDictData.setDataValue(value.toString());
+            sysDictData.setDictTypeId(25);
+            sysDictDataMapper.insert(sysDictData);
+        });
+
     }
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Device.java b/screen-manage/src/main/java/com/moral/api/entity/Device.java
index f933fe0..c978a90 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Device.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Device.java
@@ -78,6 +78,11 @@
     private Integer organizationId;
 
     /**
+     * ���������/���������/���������������������gov_monitor_point���guid������
+     */
+    private String guid;
+
+    /**
      * ������������id
      */
     private Integer deviceVersionId;
diff --git a/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java b/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java
index 192517b..cd56a6d 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/GovMonitorPoint.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
 
diff --git a/screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java b/screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java
index b5a7266..0aa87ea 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/SpecialDevice.java
@@ -42,6 +42,11 @@
     private String mac;
 
     /**
+     * ������������id
+     */
+    private String guid;
+
+    /**
      * ���������id���������������������������������manage_account
      */
     private String operateIds;
diff --git a/screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java b/screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java
index 00d1962..3ab7621 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/SpecialDeviceHistory.java
@@ -41,6 +41,11 @@
     private String mac;
 
     /**
+     * ������������id
+     */
+    private String guid;
+
+    /**
      * ���������id���������������������������������manage_account
      */
     private String operateIds;
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 ffb4c28..59dd119 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
@@ -6,6 +6,7 @@
 import java.util.List;
 
 import com.moral.api.entity.Device;
+import com.moral.api.entity.GovMonitorPoint;
 import com.moral.api.entity.ManageAccount;
 import com.moral.api.entity.MonitorPoint;
 import com.moral.api.entity.Organization;
@@ -52,6 +53,11 @@
     private MonitorPoint monitorPoint;
 
     /*
+     * ������������
+     * */
+    private GovMonitorPoint govMonitorPoint;
+
+    /*
      * ���������
      * */
     private List<ManageAccount> operators;
diff --git a/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java b/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java
index dc7c625..4f55fb7 100644
--- a/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/GovMonitorPointService.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -64,4 +65,7 @@
      **/
     GovMonitorPoint selectGovMonitorPointInfoById(int id);
 
+    //���������������������������������
+    List<Map<String, Object>> selectGovMonitorPoints(String regionCode);
+
 }
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 b957e2d..1821541 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
@@ -12,6 +12,7 @@
 import com.moral.api.service.DeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.moral.api.service.GovMonitorPointService;
 import com.moral.api.service.SysDictDataService;
 import com.moral.api.util.CacheUtils;
 import com.moral.api.util.AdjustDataUtils;
@@ -391,6 +392,16 @@
         mpInfo.put("provinceCode", monitorPoint.getProvinceCode());
         deviceInfo.put("monitorPoint", mpInfo);
 
+        //������������
+        Map<String, Object> govMpInfo = new LinkedHashMap<>();
+
+        govMpInfo.put("guid", null);
+        govMpInfo.put("name", null);
+        if (device.getGovMonitorPoint() != null) {
+            govMpInfo.put("guid", device.getGovMonitorPoint().getGuid());
+            govMpInfo.put("name", device.getGovMonitorPoint().getName());
+        }
+        deviceInfo.put("govMonitorPoint", govMpInfo);
         setDeviceInfoToRedis(mac, deviceInfo);
         return deviceInfo;
     }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
index 9cac6b4..add7e7a 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -15,6 +15,8 @@
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.RegionCodeUtils;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -23,13 +25,13 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
-import java.lang.reflect.Field;
+
 import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
  * <p>
- *  ���������������
+ * ���������������
  * </p>
  *
  * @author moral
@@ -73,71 +75,71 @@
 
     @Override
     public Map<String, Object> getDataByCondition(Map map) {
-        Map<String,Object> resultMap = new HashMap<>();
-        if (!map.containsKey("current")||!map.containsKey("size")){
-            resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
-            resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        Map<String, Object> resultMap = new HashMap<>();
+        if (!map.containsKey("current") || !map.containsKey("size")) {
+            resultMap.put("code", ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode());
+            resultMap.put("msg", ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
             return resultMap;
         }
         int current = Integer.parseInt(map.get("current").toString());
         int size = Integer.parseInt(map.get("size").toString());
-        Page<GovMonitorPoint> page = new Page<>(current,size);
+        Page<GovMonitorPoint> page = new Page<>(current, size);
         QueryWrapper<GovMonitorPoint> wrapper_Condition = new QueryWrapper<>();
-        wrapper_Condition.eq("is_delete",Constants.NOT_DELETE);
-        if (!ObjectUtils.isEmpty(map.get("name"))){
-            wrapper_Condition.like("name",map.get("name").toString());
+        wrapper_Condition.eq("is_delete", Constants.NOT_DELETE);
+        if (!ObjectUtils.isEmpty(map.get("name"))) {
+            wrapper_Condition.like("name", map.get("name").toString());
         }
-        if (!ObjectUtils.isEmpty(map.get("stationLevel"))){
-            wrapper_Condition.like("station_level",map.get("stationLevel").toString());
+        if (!ObjectUtils.isEmpty(map.get("stationLevel"))) {
+            wrapper_Condition.like("station_level", map.get("stationLevel").toString());
         }
         wrapper_Condition.orderByDesc("create_time");
-        Page resultPage = govMonitorPointMapper.selectPage(page,wrapper_Condition);
+        Page resultPage = govMonitorPointMapper.selectPage(page, wrapper_Condition);
         int totalNumber = govMonitorPointMapper.selectCount(wrapper_Condition);
         List<GovMonitorPoint> govMonitorPoints = resultPage.getRecords();
         SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        List<Map<String,Object>> govMonitorPointList = new ArrayList<>();
-        for (GovMonitorPoint govMonitorPoint:govMonitorPoints) {
-            Map govMonitorPointMap = JSON.parseObject(JSON.toJSONString(govMonitorPoint),Map.class);
+        List<Map<String, Object>> govMonitorPointList = new ArrayList<>();
+        for (GovMonitorPoint govMonitorPoint : govMonitorPoints) {
+            Map govMonitorPointMap = JSON.parseObject(JSON.toJSONString(govMonitorPoint), Map.class);
             String createTime = SDF.format(govMonitorPoint.getCreateTime());
             String updateTime = SDF.format(govMonitorPoint.getUpdateTime());
-            govMonitorPointMap.put("createTime",createTime);
-            govMonitorPointMap.put("updateTime",updateTime);
+            govMonitorPointMap.put("createTime", createTime);
+            govMonitorPointMap.put("updateTime", updateTime);
             String position = "";
-            if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())){
+            if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())) {
                 QueryWrapper<SysArea> wrapper_province = new QueryWrapper<>();
-                wrapper_province.eq("area_code",govMonitorPoint.getProvinceCode());
+                wrapper_province.eq("area_code", govMonitorPoint.getProvinceCode());
                 SysArea sysArea_provice = sysAreaMapper.selectOne(wrapper_province);
-                if (!ObjectUtils.isEmpty(sysArea_provice)){
-                    position = position+sysArea_provice.getAreaName();
-                    if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())){
+                if (!ObjectUtils.isEmpty(sysArea_provice)) {
+                    position = position + sysArea_provice.getAreaName();
+                    if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())) {
                         QueryWrapper<SysArea> wrapper_city = new QueryWrapper<>();
-                        wrapper_city.eq("area_code",govMonitorPoint.getCityCode());
+                        wrapper_city.eq("area_code", govMonitorPoint.getCityCode());
                         SysArea sysArea_city = sysAreaMapper.selectOne(wrapper_city);
-                        if (!ObjectUtils.isEmpty(sysArea_city)){
-                            position = position+"/"+sysArea_city.getAreaName();
-                            if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())){
+                        if (!ObjectUtils.isEmpty(sysArea_city)) {
+                            position = position + "/" + sysArea_city.getAreaName();
+                            if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())) {
                                 QueryWrapper<SysArea> wrapper_area = new QueryWrapper<>();
-                                wrapper_area.eq("area_code",govMonitorPoint.getAreaCode());
+                                wrapper_area.eq("area_code", govMonitorPoint.getAreaCode());
                                 SysArea sysArea_area = sysAreaMapper.selectOne(wrapper_area);
-                                if (!ObjectUtils.isEmpty(sysArea_area)){
-                                    position = position+"/"+sysArea_area.getAreaName();
+                                if (!ObjectUtils.isEmpty(sysArea_area)) {
+                                    position = position + "/" + sysArea_area.getAreaName();
                                 }
                             }
                         }
                     }
                 }
             }
-            govMonitorPointMap.put("position",position);
+            govMonitorPointMap.put("position", position);
             govMonitorPointList.add(govMonitorPointMap);
         }
-        resultMap.put("govMonitorPointList",govMonitorPointList);
-        resultMap.put("totalNumber",totalNumber);
-        resultMap.put("current",current);
-        int totalPageNumber = totalNumber/size;
-        if(totalNumber%size != 0){
+        resultMap.put("govMonitorPointList", govMonitorPointList);
+        resultMap.put("totalNumber", totalNumber);
+        resultMap.put("current", current);
+        int totalPageNumber = totalNumber / size;
+        if (totalNumber % size != 0) {
             totalPageNumber += 1;
         }
-        resultMap.put("totalPageNumber",totalPageNumber);
+        resultMap.put("totalPageNumber", totalPageNumber);
         return resultMap;
     }
 
@@ -146,12 +148,12 @@
     public void insert(GovMonitorPoint govMonitorPoint) {
         int count = govMonitorPointMapper.insert(govMonitorPoint);
         //������������redis
-        setGovMonitorPointInfoToRedis(govMonitorPoint.getId().toString(),selectGovMonitorPointInfoById(govMonitorPoint.getId()));
-        if (count > 0){
+        setGovMonitorPointInfoToRedis(govMonitorPoint.getId().toString(), selectGovMonitorPointInfoById(govMonitorPoint.getId()));
+        if (count > 0) {
             //������������������
             HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
             StringBuilder content = new StringBuilder();
-            content.append("������������������������").append("id:").append(govMonitorPoint.getId()+";").append(govMonitorPoint.getName()+";").append(":").append("guid���").append(govMonitorPoint.getGuid()+";");
+            content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";").append(govMonitorPoint.getName() + ";").append(":").append("guid���").append(govMonitorPoint.getGuid() + ";");
             logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
         }
     }
@@ -165,36 +167,36 @@
         //������redis
         delGovMonitorPointInfoFromRedis(id.toString());
         //������redis
-        setGovMonitorPointInfoToRedis(id.toString(),selectGovMonitorPointInfoById(id));
+        setGovMonitorPointInfoToRedis(id.toString(), selectGovMonitorPointInfoById(id));
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
-        content.append("������������������������").append("id:").append(govMonitorPoint.getId()+";");
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())){
+        content.append("������������������������").append("id:").append(govMonitorPoint.getId() + ";");
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getGuid())) {
             content.append("guid:").append(oldGovMonitorPoint.getGuid()).append("->").append(govMonitorPoint.getGuid()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getName())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getName())) {
             content.append("name:").append(oldGovMonitorPoint.getName()).append("->").append(govMonitorPoint.getName()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getLongitude())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getLongitude())) {
             content.append("longitude:").append(oldGovMonitorPoint.getLongitude()).append("->").append(govMonitorPoint.getLongitude()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getLatitude())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getLatitude())) {
             content.append("latitude:").append(oldGovMonitorPoint.getLatitude()).append("->").append(govMonitorPoint.getLatitude()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getProvinceCode())) {
             content.append("provinceCode:").append(oldGovMonitorPoint.getProvinceCode()).append("->").append(govMonitorPoint.getProvinceCode()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getCityCode())) {
             content.append("cityCode:").append(oldGovMonitorPoint.getCityCode()).append("->").append(govMonitorPoint.getCityCode()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getAreaCode())) {
             content.append("areaCode:").append(oldGovMonitorPoint.getAreaCode()).append("->").append(govMonitorPoint.getAreaCode()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getStationLevel())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getStationLevel())) {
             content.append("stationLevel:").append(oldGovMonitorPoint.getStationLevel()).append("->").append(govMonitorPoint.getStationLevel()).append(";");
         }
-        if (!ObjectUtils.isEmpty(govMonitorPoint.getDesc())){
+        if (!ObjectUtils.isEmpty(govMonitorPoint.getDesc())) {
             content.append("desc:").append(oldGovMonitorPoint).append("->").append(govMonitorPoint.getDesc()).append(";");
         }
         logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
@@ -203,8 +205,8 @@
     @Override
     public void delete(Integer id) {
         UpdateWrapper<GovMonitorPoint> wrapper_delete = new UpdateWrapper<>();
-        wrapper_delete.eq("id",id).set("is_delete",Constants.DELETE);
-        govMonitorPointMapper.update(null,wrapper_delete);
+        wrapper_delete.eq("id", id).set("is_delete", Constants.DELETE);
+        govMonitorPointMapper.update(null, wrapper_delete);
         //������redis
         delGovMonitorPointInfoFromRedis(id.toString());
         //������������������
@@ -219,4 +221,15 @@
         GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectById(id);
         return govMonitorPoint;
     }
+
+    @Override
+    public List<Map<String, Object>> selectGovMonitorPoints(String regionCode) {
+        QueryWrapper<GovMonitorPoint> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("guid", "name").eq("is_delete", Constants.NOT_DELETE);
+        if (!ObjectUtils.isEmpty(regionCode)) {
+            String regionName = RegionCodeUtils.regionCodeConvertToName(Integer.parseInt(regionCode));
+            queryWrapper.eq(regionName, regionCode);
+        }
+        return govMonitorPointMapper.selectMaps(queryWrapper);
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index e802b36..c25c945 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -69,6 +69,9 @@
     @Autowired(required = false)
     private VersionSensorUnitMapper versionSensorUnitMapper;
 
+    @Autowired(required = false)
+    private GovMonitorPointMapper govMonitorPointMapper;
+
     @Autowired
     private LogUtils logUtils;
 
@@ -125,6 +128,20 @@
             String updateTime = SDF.format(specialDevice.getUpdateTime());
             specialDeviceMap.put("createTime",createTime);
             specialDeviceMap.put("updateTime",updateTime);
+            Map<String,Object> govMonitorPointMap = new HashMap<>();
+            if (!ObjectUtils.isEmpty(specialDevice.getGuid()) && specialDevice.getGuid()!=null && !"".equals(specialDevice.getGuid())){
+                String  guid = specialDevice.getGuid().toString();
+                QueryWrapper<GovMonitorPoint> wapper_govMonitorPoint = new QueryWrapper<>();
+                wapper_govMonitorPoint.eq("is_delete",Constants.NOT_DELETE);
+                wapper_govMonitorPoint.eq("guid",guid);
+                GovMonitorPoint govMonitorPoint = govMonitorPointMapper.selectOne(wapper_govMonitorPoint);
+                if (!ObjectUtils.isEmpty(govMonitorPoint)){
+                    govMonitorPointMap.put("id",govMonitorPoint.getId());
+                    govMonitorPointMap.put("guid",govMonitorPoint.getGuid());
+                    govMonitorPointMap.put("name",govMonitorPoint.getName());
+                }
+            }
+            specialDeviceMap.put("govMonitorPoint",govMonitorPointMap);
             List<Map<String,Object>> operateList = new ArrayList<>();
             if (!ObjectUtils.isEmpty(specialDevice.getOperateIds()) && specialDevice.getOperateIds()!=null){
                 String operateIds = specialDevice.getOperateIds();
@@ -471,6 +488,7 @@
         specialDeviceInfo.put("name", specialDevice.getName());
         specialDeviceInfo.put("mac", specialDevice.getMac());
         specialDeviceInfo.put("createTime", DateUtils.dateToDateString(specialDevice.getCreateTime()));
+        specialDeviceInfo.put("guid", specialDevice.getGuid());
 
         //������������
         //specialDeviceInfo.put("extend", device.getExtend());
diff --git a/screen-manage/src/main/resources/mapper/DeviceMapper.xml b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
index d1c0809..8b65e97 100644
--- a/screen-manage/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-manage/src/main/resources/mapper/DeviceMapper.xml
@@ -14,6 +14,7 @@
         <result column="operate_ids" property="operateIds"/>
         <result column="monitor_point_id" property="monitorPointId"/>
         <result column="organization_id" property="organizationId"/>
+        <result column="guid" property="guid"/>
         <result column="device_version_id" property="deviceVersionId"/>
         <result column="profession" property="profession"/>
         <result column="tech" property="tech"/>
@@ -52,6 +53,12 @@
             <result column="mp_area_code" property="areaCode"/>
             <result column="mp_city_code" property="cityCode"/>
             <result column="mp_province_code" property="provinceCode"/>
+        </association>
+
+        <!--������������-->
+        <association property="govMonitorPoint" javaType="com.moral.api.entity.GovMonitorPoint">
+            <result column="gmp_guid" property="guid"/>
+            <result column="gmp_name" property="name"/>
         </association>
 
         <!--������-->
@@ -121,6 +128,8 @@
             mp.area_code mp_area_code,
             mp.city_code mp_city_code,
             mp.province_code mp_province_code,
+            gmp.guid gmp_guid,
+            gmp.name gmp_name,
             ma.id operate_id,
             v.id version_id,
             v.`name` version_name,
@@ -136,6 +145,8 @@
                            ON d.organization_id = o.id
                  LEFT JOIN `monitor_point` mp
                            ON mp.id = d.monitor_point_id
+                 LEFT JOIN `gov_monitor_point` gmp
+                           ON gmp.guid = d.guid
                  LEFT JOIN `manage_account` ma
                            ON FIND_IN_SET
                                (

--
Gitblit v1.8.0