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