From 659b91b554ba5e98b6fffa045231f5aa3fb4ab9e Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 03 Sep 2021 15:21:48 +0800
Subject: [PATCH] 因子默认单位添加;角色、菜单更新

---
 screen-manage/src/main/java/com/moral/api/entity/HistorySecondCruiser.java                  |   56 +++++++
 screen-manage/src/main/java/com/moral/api/entity/HistorySecondUav.java                      |   56 +++++++
 screen-manage/src/main/java/com/moral/api/service/HistorySecondCruiserService.java          |   21 ++
 screen-manage/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java            |   16 ++
 screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java |   80 ++++++++++
 screen-manage/src/main/java/com/moral/api/service/HistorySecondUavService.java              |   21 ++
 screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java     |   80 ++++++++++
 screen-manage/src/main/resources/mapper/HistorySecondUavMapper.xml                          |   14 +
 screen-common/src/main/java/com/moral/constant/Constants.java                               |    2 
 screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java                |   47 ++++-
 screen-manage/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java                |   16 ++
 screen-manage/src/main/resources/mapper/HistorySecondCruiserMapper.xml                      |   14 +
 12 files changed, 413 insertions(+), 10 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 9222de0..38b3a9a 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -207,7 +207,7 @@
     /*
      * ������������������������
      * */
-    public static final String SENSOR_CODE_SPECIAL_BATCH = "a00000";
+    public static final String SENSOR_CODE_SPECIAL_BATCH = "PORRST";
 
     /*
      * ������������������������������
diff --git a/screen-manage/src/main/java/com/moral/api/entity/HistorySecondCruiser.java b/screen-manage/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
new file mode 100644
index 0000000..7fb0b6a
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/entity/HistorySecondCruiser.java
@@ -0,0 +1,56 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * ���������������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+@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-manage/src/main/java/com/moral/api/entity/HistorySecondUav.java b/screen-manage/src/main/java/com/moral/api/entity/HistorySecondUav.java
new file mode 100644
index 0000000..f435eb1
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/entity/HistorySecondUav.java
@@ -0,0 +1,56 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * ���������������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HistorySecondUav extends Model<HistorySecondUav> {
+
+    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-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
index 9e7347a..8156f7f 100644
--- a/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
+++ b/screen-manage/src/main/java/com/moral/api/kafka/consumer/DeviceConsumer.java
@@ -1,5 +1,6 @@
 package com.moral.api.kafka.consumer;
 
+import com.moral.api.service.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,10 +15,6 @@
 import java.util.Map;
 
 import com.alibaba.fastjson.JSON;
-import com.moral.api.service.DeviceService;
-import com.moral.api.service.HistoryHourlyService;
-import com.moral.api.service.HistoryMinutelyService;
-import com.moral.api.service.HistorySecondSpecialService;
 import com.moral.constant.KafkaConstants;
 import com.moral.constant.RedisConstants;
 
@@ -43,8 +40,14 @@
     @Autowired
     private HistorySecondSpecialService historySecondSpecialService;
 
+    @Autowired
+    private HistorySecondCruiserService historySecondCruiserService;
+
+    @Autowired
+    private HistorySecondUavService historySecondUavService;
+
     //������������
-    @KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, containerFactory = "insertListenerContainerFactory")
+    //@KafkaListener(topics = KafkaConstants.TOPIC_MINUTE, containerFactory = "insertListenerContainerFactory")
     public void listenMinute(ConsumerRecord<String, String> record, Acknowledgment ack) {
         String msg = record.value();
         try {
@@ -83,7 +86,7 @@
     }
 
     //������������
-    @KafkaListener(topics = KafkaConstants.TOPIC_HOUR, containerFactory = "insertListenerContainerFactory")
+    //@KafkaListener(topics = KafkaConstants.TOPIC_HOUR, containerFactory = "insertListenerContainerFactory")
     public void listenHour(ConsumerRecord<String, String> record, Acknowledgment ack) {
         String msg = record.value();
         try {
@@ -122,7 +125,7 @@
     }
 
     //������������������������������������������������������
-    @KafkaListener(topics = KafkaConstants.TOPIC_SECOND, containerFactory = "stateListenerContainerFactory")
+    //@KafkaListener(topics = KafkaConstants.TOPIC_SECOND, containerFactory = "stateListenerContainerFactory")
     public void listenSecond(ConsumerRecord<String, String> record) {
         String msg = record.value();
         try {
@@ -150,9 +153,35 @@
         }
     }
 
-    //���������������������
+    //������������������
     @KafkaListener(topics = KafkaConstants.UAV_TOPIC_SECOND, groupId = KafkaConstants.GROUP_INSERT, containerFactory = "insertListenerContainerFactory")
     public void listenSecondSpecial(ConsumerRecord<String, String> record, Acknowledgment ack) {
+        String msg = record.value();
+        System.out.println(msg);
+        try {
+            Map<String, Object> data = JSON.parseObject(msg, Map.class);
+            Object mac = data.get("mac");
+            Object time = data.get("DataTime");
+            if (ObjectUtils.isEmpty(time) || ObjectUtils.isEmpty(mac)) {
+                log.warn("some properties is null, param{}", msg);
+                ack.acknowledge();
+                return;
+            }
+
+            //������������
+            data.remove("time");
+            data.remove("entryTime");
+
+            historySecondUavService.insertHistorySecond(data);
+            ack.acknowledge();
+        } catch (Exception e) {
+            log.error("param{}" + msg);
+        }
+    }
+
+    //������������������
+    @KafkaListener(topics = KafkaConstants.CRUISER_TOPIC_SECOND, groupId = KafkaConstants.GROUP_INSERT, containerFactory = "insertListenerContainerFactory")
+    public void listenSecondCruiser(ConsumerRecord<String, String> record, Acknowledgment ack) {
         String msg = record.value();
         try {
             Map<String, Object> data = JSON.parseObject(msg, Map.class);
@@ -168,7 +197,7 @@
             data.remove("time");
             data.remove("entryTime");
 
-            historySecondSpecialService.insertHistorySecond(data);
+            historySecondCruiserService.insertHistorySecond(data);
             ack.acknowledge();
         } catch (Exception e) {
             log.error("param{}" + msg);
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
new file mode 100644
index 0000000..9eaabe9
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * ��������������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+public interface HistorySecondCruiserMapper extends BaseMapper<HistorySecondCruiser> {
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java
new file mode 100644
index 0000000..2dd5c55
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.HistorySecondUav;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * ��������������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+public interface HistorySecondUavMapper extends BaseMapper<HistorySecondUav> {
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/HistorySecondCruiserService.java b/screen-manage/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
new file mode 100644
index 0000000..f83f252
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/HistorySecondCruiserService.java
@@ -0,0 +1,21 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.HistorySecondCruiser;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * ��������������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+public interface HistorySecondCruiserService extends IService<HistorySecondCruiser> {
+
+    //���������insert
+    void insertHistorySecond(Map<String, Object> data);
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/HistorySecondUavService.java b/screen-manage/src/main/java/com/moral/api/service/HistorySecondUavService.java
new file mode 100644
index 0000000..1cd70c2
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/HistorySecondUavService.java
@@ -0,0 +1,21 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.HistorySecondUav;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * ��������������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+public interface HistorySecondUavService extends IService<HistorySecondUav> {
+
+    //���������insert
+    void insertHistorySecond(Map<String, Object> data);
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
new file mode 100644
index 0000000..5292088
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondCruiserServiceImpl.java
@@ -0,0 +1,80 @@
+package com.moral.api.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.moral.api.entity.HistorySecondCruiser;
+import com.moral.api.entity.Sensor;
+import com.moral.api.entity.SpecialDevice;
+import com.moral.api.mapper.HistorySecondCruiserMapper;
+import com.moral.api.service.DeviceService;
+import com.moral.api.service.HistorySecondCruiserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
+import com.moral.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * ��������������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+@Service
+public class HistorySecondCruiserServiceImpl extends ServiceImpl<HistorySecondCruiserMapper, HistorySecondCruiser> implements HistorySecondCruiserService {
+
+    @Autowired
+    private HistorySecondCruiserMapper historySecondCruiserMapper;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Override
+    public void insertHistorySecond(Map<String, Object> data) {
+        Date batchTime = DateUtils.getDate((String) data.remove(Constants.SENSOR_CODE_SPECIAL_BATCH), DateUtils.yyyyMMddHHmmss_EN);
+        Date time = DateUtils.getDate((String) data.get("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
+        String mac = data.get("mac").toString();
+
+        //������mac���redis���������������
+        SpecialDevice specialDevice = (SpecialDevice) redisTemplate.opsForHash().get(RedisConstants.SPECIAL_DEVICE_INFO, mac);
+        List<Sensor> sensors = specialDevice.getVersion().getSensors();
+        //������������
+        data = data.entrySet().stream()
+                .filter(m -> {
+                    boolean flag = false;
+                    String key = m.getKey();
+                    if (!"mac".equals(key) && !"DataTime".equals(key)) {
+                        for (Sensor sensor : sensors) {
+                            if (sensor.getCode().equals(key)) {
+                                flag = true;
+                                break;
+                            }
+                        }
+                        return flag;
+                    }
+                    return true;
+                }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
+        //������������
+        data = deviceService.adjustSpecialDeviceData(data);
+
+        HistorySecondCruiser historySecondCruiser = new HistorySecondCruiser();
+        historySecondCruiser.setMac(mac);
+        historySecondCruiser.setTime(time);
+        historySecondCruiser.setValue(JSONObject.toJSONString(data));
+        historySecondCruiser.setOrganizationId(specialDevice.getOrganizationId());
+        historySecondCruiser.setBatch(batchTime);
+        historySecondCruiserMapper.insert(historySecondCruiser);
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
new file mode 100644
index 0000000..f3d7cb4
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
@@ -0,0 +1,80 @@
+package com.moral.api.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.moral.api.entity.HistorySecondUav;
+import com.moral.api.entity.Sensor;
+import com.moral.api.entity.SpecialDevice;
+import com.moral.api.mapper.HistorySecondUavMapper;
+import com.moral.api.service.DeviceService;
+import com.moral.api.service.HistorySecondUavService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import com.moral.constant.RedisConstants;
+import com.moral.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * ��������������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-09-02
+ */
+@Service
+public class HistorySecondUavServiceImpl extends ServiceImpl<HistorySecondUavMapper, HistorySecondUav> implements HistorySecondUavService {
+
+    @Autowired
+    private HistorySecondUavMapper historySecondUavMapper;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Override
+    public void insertHistorySecond(Map<String, Object> data) {
+        Date batchTime = DateUtils.getDate((String) data.remove(Constants.SENSOR_CODE_SPECIAL_BATCH), DateUtils.yyyyMMddHHmmss_EN);
+        Date time = DateUtils.getDate((String) data.get("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
+        String mac = data.get("mac").toString();
+
+        //������mac���redis���������������
+        SpecialDevice specialDevice = (SpecialDevice) redisTemplate.opsForHash().get(RedisConstants.SPECIAL_DEVICE_INFO, mac);
+        List<Sensor> sensors = specialDevice.getVersion().getSensors();
+        //������������
+        data = data.entrySet().stream()
+                .filter(m -> {
+                    boolean flag = false;
+                    String key = m.getKey();
+                    if (!"mac".equals(key) && !"DataTime".equals(key)) {
+                        for (Sensor sensor : sensors) {
+                            if (sensor.getCode().equals(key)) {
+                                flag = true;
+                                break;
+                            }
+                        }
+                        return flag;
+                    }
+                    return true;
+                }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
+        //������������
+        data = deviceService.adjustSpecialDeviceData(data);
+
+        HistorySecondUav historySecondUav = new HistorySecondUav();
+        historySecondUav.setMac(mac);
+        historySecondUav.setTime(time);
+        historySecondUav.setValue(JSONObject.toJSONString(data));
+        historySecondUav.setOrganizationId(specialDevice.getOrganizationId());
+        historySecondUav.setBatch(batchTime);
+        historySecondUavMapper.insert(historySecondUav);
+    }
+}
diff --git a/screen-manage/src/main/resources/mapper/HistorySecondCruiserMapper.xml b/screen-manage/src/main/resources/mapper/HistorySecondCruiserMapper.xml
new file mode 100644
index 0000000..a69ab10
--- /dev/null
+++ b/screen-manage/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -0,0 +1,14 @@
+<?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>
+
+</mapper>
\ No newline at end of file
diff --git a/screen-manage/src/main/resources/mapper/HistorySecondUavMapper.xml b/screen-manage/src/main/resources/mapper/HistorySecondUavMapper.xml
new file mode 100644
index 0000000..c237c8e
--- /dev/null
+++ b/screen-manage/src/main/resources/mapper/HistorySecondUavMapper.xml
@@ -0,0 +1,14 @@
+<?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.HistorySecondUavMapper">
+
+        <!-- ������������������������ -->
+        <resultMap id="BaseResultMap" type="com.moral.api.entity.HistorySecondUav">
+                    <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>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0