From 55bddeb7f2bb55498e9ac179b3c9d513d558b7c7 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 01 Sep 2021 11:02:43 +0800
Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into dev

---
 screen-api/src/main/java/com/moral/api/service/OrganizationLayoutService.java          |   29 +++++
 screen-api/src/main/java/com/moral/api/controller/OrganizationLayoutController.java    |   40 ++++++++
 screen-api/src/main/resources/mapper/OrganizationLayoutMapper.xml                      |   17 +++
 screen-api/src/main/java/com/moral/api/service/impl/OrganizationLayoutServiceImpl.java |  108 +++++++++++++++++++++
 screen-manage/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java   |    5 
 screen-api/src/main/java/com/moral/api/mapper/OrganizationLayoutMapper.java            |   16 +++
 screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java          |    1 
 screen-api/src/main/java/com/moral/api/entity/OrganizationLayout.java                  |   74 ++++++++++++++
 8 files changed, 289 insertions(+), 1 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/OrganizationLayoutController.java b/screen-api/src/main/java/com/moral/api/controller/OrganizationLayoutController.java
new file mode 100644
index 0000000..a9ff956
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/OrganizationLayoutController.java
@@ -0,0 +1,40 @@
+package com.moral.api.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.moral.api.service.OrganizationLayoutService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.WebUtils;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Api(tags = {"������������"})
+@RestController
+@RequestMapping("/organizationLayout")
+public class OrganizationLayoutController {
+
+    @Resource
+    private OrganizationLayoutService organizationLayoutService;
+
+    @RequestMapping(value = "getLayoutByMac", method = RequestMethod.GET)
+    @ResponseBody
+    public ResultMessage getLayoutByMac(HttpServletRequest request){
+        Map<String,Object> parameters = WebUtils.getParametersStartingWith(request,null);
+        if (ObjectUtils.isEmpty(parameters.get("mac"))){
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+        Map<String,Object> resultMap = organizationLayoutService.getLayoutByMac(parameters.get("mac").toString());
+        if (ObjectUtils.isEmpty(resultMap)){
+            return null;
+        }
+        return ResultMessage.ok(resultMap);
+    }
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/OrganizationLayout.java b/screen-api/src/main/java/com/moral/api/entity/OrganizationLayout.java
new file mode 100644
index 0000000..64f8a1e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/OrganizationLayout.java
@@ -0,0 +1,74 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author moral
+ * @since 2021-08-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class OrganizationLayout extends Model<OrganizationLayout> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ������id
+     */
+    private Integer organizationId;
+
+    /**
+     * ������id
+     */
+    private Integer versionId;
+
+    /**
+     * ������
+     */
+    private String position;
+
+    /**
+     * ������������
+     */
+    private Integer positionIndex;
+
+    /**
+     * ������������
+     */
+    private String sensorCode;
+
+    /**
+     * ������������
+     */
+    private Date createTime;
+
+    /**
+     * ������������
+     */
+    private String isDelete;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/OrganizationLayoutMapper.java b/screen-api/src/main/java/com/moral/api/mapper/OrganizationLayoutMapper.java
new file mode 100644
index 0000000..22d8cab
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/OrganizationLayoutMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.OrganizationLayout;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-08-31
+ */
+public interface OrganizationLayoutMapper extends BaseMapper<OrganizationLayout> {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/OrganizationLayoutService.java b/screen-api/src/main/java/com/moral/api/service/OrganizationLayoutService.java
new file mode 100644
index 0000000..a8f9010
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/OrganizationLayoutService.java
@@ -0,0 +1,29 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.OrganizationLayout;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-08-31
+ */
+public interface OrganizationLayoutService extends IService<OrganizationLayout> {
+
+    /**
+      *@Description: ������mac������������������
+      *@Param: [mac]
+      *@return: java.util.Map<java.lang.String,java.lang.Object>
+      *@Author: lizijie
+      *@Date: 2021/8/31 15:12
+     **/
+    @Transactional
+    Map<String, Object> getLayoutByMac(String mac);
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationLayoutServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationLayoutServiceImpl.java
new file mode 100644
index 0000000..019fc8e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationLayoutServiceImpl.java
@@ -0,0 +1,108 @@
+package com.moral.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.moral.api.entity.Device;
+import com.moral.api.entity.OrganizationLayout;
+import com.moral.api.mapper.DeviceMapper;
+import com.moral.api.mapper.OrganizationLayoutMapper;
+import com.moral.api.service.OrganizationLayoutService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-08-31
+ */
+@Service
+public class OrganizationLayoutServiceImpl extends ServiceImpl<OrganizationLayoutMapper, OrganizationLayout> implements OrganizationLayoutService {
+
+    @Autowired(required = false)
+    private OrganizationLayoutMapper organizationLayoutMapper;
+
+    @Autowired(required = false)
+    private DeviceMapper deviceMapper;
+
+    @Transactional
+    @Override
+    public Map<String, Object> getLayoutByMac(String mac) {
+        QueryWrapper<Device> wrapper_device = new QueryWrapper<>();
+        wrapper_device.eq("is_delete",Constants.NOT_DELETE);
+        wrapper_device.eq("mac",mac);
+        Device device = deviceMapper.selectOne(wrapper_device);
+        if (ObjectUtils.isEmpty(device)){
+            return null;
+        }
+        int organizationId = device.getOrganizationId();
+        int versionId = device.getDeviceVersionId();
+        QueryWrapper<OrganizationLayout> wrapper_organizationLayout = new QueryWrapper<>();
+        wrapper_organizationLayout.eq("organization_id",organizationId);
+        wrapper_organizationLayout.eq("version_id",versionId);
+        wrapper_organizationLayout.eq("is_delete",Constants.NOT_DELETE);
+        List<OrganizationLayout> organizationLayouts = organizationLayoutMapper.selectList(wrapper_organizationLayout);
+        if (ObjectUtils.isEmpty(organizationLayouts) || organizationLayouts.size()==0){
+            return null;
+        }
+        Map<String, Object> resultMap = new HashMap<>();
+        List<OrganizationLayout> chartSensorKeyList = new ArrayList<>();
+        List<OrganizationLayout> coreMonitorItemsList = new ArrayList<>();
+        List<OrganizationLayout> defaultMonitorItemsList = new ArrayList<>();
+        List<OrganizationLayout> fixedMonitorItemsList = new ArrayList<>();
+        for (OrganizationLayout organizationgLayout:organizationLayouts) {
+            if (organizationgLayout.getPosition().equals("chartSensorKey")){
+                chartSensorKeyList.add(organizationgLayout);
+            }
+            if (organizationgLayout.getPosition().equals("coreMonitorItems")){
+                coreMonitorItemsList.add(organizationgLayout);
+            }
+            if (organizationgLayout.getPosition().equals("defaultMonitorItems")){
+                defaultMonitorItemsList.add(organizationgLayout);
+            }
+            if (organizationgLayout.getPosition().equals("fixedMonitorItems")){
+                fixedMonitorItemsList.add(organizationgLayout);
+            }
+        }
+        chartSensorKeyList = sort(chartSensorKeyList);
+        coreMonitorItemsList = sort(coreMonitorItemsList);
+        defaultMonitorItemsList = sort(defaultMonitorItemsList);
+        fixedMonitorItemsList = sort(fixedMonitorItemsList);
+        resultMap.put("chartSensorKey",chartSensorKeyList);
+        resultMap.put("coreMonitorItems",coreMonitorItemsList);
+        resultMap.put("defaultMonitorItems",defaultMonitorItemsList);
+        resultMap.put("fixedMonitorItems",fixedMonitorItemsList);
+        return resultMap;
+    }
+
+    private List<OrganizationLayout> sort(List<OrganizationLayout> list){
+        if (list.size() < 0){
+            return list;
+        }
+        OrganizationLayout temp = null;
+        int j;
+        for (int i = 1; i<list.size(); i++){
+            temp = list.get(i);
+            for (j=i-1; j>=0; j--){
+                if (list.get(j).getPositionIndex()>temp.getPositionIndex()){
+                    list.set(j+1,list.get(j));
+                }else {
+                    break;
+                }
+            }
+            System.out.println(list.get(0));
+            list.set(j+1,temp);
+        }
+        return list;
+    }
+}
diff --git a/screen-api/src/main/resources/mapper/OrganizationLayoutMapper.xml b/screen-api/src/main/resources/mapper/OrganizationLayoutMapper.xml
new file mode 100644
index 0000000..5fe222e
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/OrganizationLayoutMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.OrganizationLayoutMapper">
+
+        <!-- ������������������������ -->
+        <resultMap id="BaseResultMap" type="com.moral.api.entity.OrganizationLayout">
+                    <id column="id" property="id" />
+                    <result column="organization_id" property="organizationId" />
+                    <result column="version_id" property="versionId" />
+                    <result column="position" property="position" />
+                    <result column="position_index" property="positionIndex" />
+                    <result column="sensor_code" property="sensorCode" />
+                    <result column="create_time" property="createTime" />
+                    <result column="is_delete" property="isDelete" />
+        </resultMap>
+
+</mapper>
\ No newline at end of file
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 dc7f819..a7adf60 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
@@ -143,6 +143,7 @@
         }
         //������deviceInfo������
         CacheUtils.refreshDeviceAlarmInfo();
+        CacheUtils.refreshSpecialDeviceAlarmInfo();
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         String content = "������������:" + oldSensor.getName() + ";";
         for (Object key : updateSensorMap.keySet()) {
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 6962fd1..e802b36 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
@@ -447,7 +447,7 @@
         Integer orgId = specialDevice.getOrganizationId();
         deleteOrganizationUnitAlarm(orgId, versionId);
         //������deviceInfo������
-        CacheUtils.refreshDeviceAlarmInfo();
+        CacheUtils.refreshSpecialDeviceAlarmInfo();
         //������������������
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         StringBuilder content = new StringBuilder();
@@ -511,6 +511,9 @@
         Organization organization = organizationMapper.selectById(specialDevice.getOrganizationId());
         orgInfo.put("id", organization.getId());
         orgInfo.put("name", organization.getName());
+        orgInfo.put("areaCode", organization.getAreaCode());
+        orgInfo.put("cityCode", organization.getCityCode());
+        orgInfo.put("provinceCode", organization.getProvinceCode());
         specialDeviceInfo.put("organization", orgInfo);
 
         setDeviceInfoToRedis(mac, specialDeviceInfo);

--
Gitblit v1.8.0