lizijie
2021-08-31 b888331b6ba56caeeab12a4543fe81bac8854794
Merge remote-tracking branch 'origin/dev' into dev
5 files added
5 files modified
264 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/UAVController.java 45 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java 56 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java 16 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java 16 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/KafkaConstants.java 32 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java 3 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java 73 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/UAVController.java
New file
@@ -0,0 +1,45 @@
package com.moral.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondUav;
import com.moral.api.mapper.HistorySecondUavMapper;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * @ClassName UAVController
 * @Description 无人机控制器
 * @Author 陈凯裕
 * @Date 2021/8/31 15:08
 * @Version TODO
 **/
@Slf4j
@Api(tags = {"无人机控制器"})
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("/uav")
public class UAVController {
    @Autowired
    HistorySecondUavMapper historySecondUavMapper;
    /**
    * @Description: 根据组织id,mac以及时间查询无人机数据
            * @Param: []
            * @return: com.moral.constant.ResultMessage
            * @Author: 陈凯裕
            * @Date: 2021/8/31
            */
    @RequestMapping("query")
    public ResultMessage query(){
        List<HistorySecondUav> historySecondUavs = historySecondUavMapper.selectList(new QueryWrapper<>());
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),historySecondUavs);
    }
}
screen-api/src/main/java/com/moral/api/entity/HistorySecondUav.java
New file
@@ -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-08-31
 */
@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;
    }
}
screen-api/src/main/java/com/moral/api/mapper/HistorySecondUavMapper.java
New file
@@ -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-08-31
 */
public interface HistorySecondUavMapper extends BaseMapper<HistorySecondUav> {
}
screen-api/src/main/java/com/moral/api/service/HistorySecondUavService.java
New file
@@ -0,0 +1,16 @@
package com.moral.api.service;
import com.moral.api.entity.HistorySecondUav;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * 无人机秒数据表 服务类
 * </p>
 *
 * @author moral
 * @since 2021-08-31
 */
public interface HistorySecondUavService extends IService<HistorySecondUav> {
}
screen-api/src/main/java/com/moral/api/service/impl/HistorySecondUavServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.moral.api.service.impl;
import com.moral.api.entity.HistorySecondUav;
import com.moral.api.mapper.HistorySecondUavMapper;
import com.moral.api.service.HistorySecondUavService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 无人机秒数据表 服务实现类
 * </p>
 *
 * @author moral
 * @since 2021-08-31
 */
@Service
public class HistorySecondUavServiceImpl extends ServiceImpl<HistorySecondUavMapper, HistorySecondUav> implements HistorySecondUavService {
}
screen-common/src/main/java/com/moral/constant/KafkaConstants.java
@@ -18,8 +18,34 @@
    public static final String TOPIC_SECOND = "second_data";
    /**
     * 无人机,走航车等特殊设备秒数据主题
     * 无人机秒数据主题
     */
    public static final String TOPIC_SECOND_SPECIAL = "second_data_special";
    public static final String UAV_TOPIC_SECOND = "uav_second_data";
    /*
    * 走航车秒级数据主题
    * */
    public static final String CRUISER_TOPIC_SECOND = "cruiser_second_data";
    /*
    * 走航车分钟数据主题
    * */
    public static final String CRUISER_TOPIC_MINUTE = "cruiser_minute_data";
    /*
    * 走航车小时数据主题
    * */
    public static final String CRUISER_TOPIC_HOUR = "cruiser_hour_data";
    /**
     * 存入数据库的消费组
     */
    public static final String GROUP_INSERT = "insert";
    /**
     * 用于判断设备状态消费组
     */
    public static final String GROUP_STATE = "state";
}
screen-manage/src/main/java/com/moral/api/kafka/consumer/KafkaConsumer.java
@@ -24,7 +24,6 @@
/*
 * 设备数据接入
 * */
@Component
@Slf4j
public class KafkaConsumer {
@@ -149,7 +148,7 @@
    }
    //特殊设备秒数据
    @KafkaListener(topics = KafkaConstants.TOPIC_SECOND_SPECIAL, containerFactory = "insertListenerContainerFactory")
    @KafkaListener(topics = KafkaConstants.UAV_TOPIC_SECOND, groupId = KafkaConstants.GROUP_INSERT, containerFactory = "kafkaListenerContainerFactory")
    public void listenSecondSpecial(ConsumerRecord<String, String> record, Acknowledgment ack) {
        String msg = record.value();
        try {
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -480,7 +480,7 @@
            }
        }
        String content = CompareFieldUtils.resultsConvertContent(results, "修改了组织");
        String content = CompareFieldUtils.resultsConvertContent(results, "修改了组织;组织名称:"+oldOrganization.getName());
        logUtils.saveOperationForManage(content, Constants.UPDATE_OPERATE_TYPE);
    }
screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -187,6 +187,7 @@
        return datas;
    }
    @Override
    public Map<String, SysDictData> getDictDatasByType(String type) {
        Map<String, List<SysDictData>> allDictData = getAllDictData();
screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
@@ -171,6 +171,8 @@
        unitConversionMapper.updateById(unitConversion);
        //刷新缓存
        refreshCache();
        //操作插入日志
        updateLog(oldUnitConversion,form.getFormula());
        //封装返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -198,6 +200,8 @@
        unitConversionMapper.update(null, deleteWrapper);
        //刷新缓存
        refreshCache();
        //操作插入日志
        deleteLog(oldUnitConversion);
        //封装返回对象
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -247,4 +251,73 @@
        logUtils.saveOperationForManage(content.toString(),Constants.INSERT_OPERATE_TYPE);
    }
    /**
    * @Description: 删除操作插入日志
            * @Param: [unitConversion]
            * @return: void
            * @Author: 陈凯裕
            * @Date: 2021/8/26
            */
    private void deleteLog(UnitConversion unitConversion){
        //获取单位字典数据 源单位 目标单位名称
        Map<String, SysDictData> units = sysDictDataService.getDictDatasByType("unit");
        String originalUnitKey = unitConversion.getOriginalUnitKey();
        String targetUnitKey = unitConversion.getTargetUnitKey();
        SysDictData originalData = units.get(originalUnitKey);
        SysDictData targetData = units.get(targetUnitKey);
        //公式转换格式
        String formula = unitConversion.getFormula();
        formula = formula.replace(Constants.FORMULA_PLACEHOLDER, "源单位");
        formula = "目标单位"+" = "+formula;
        StringBuilder content = new StringBuilder("删除了转换公式;");
        content.append("源单位:"+originalData.getDataValue()+";");
        content.append("目标单位:"+targetData.getDataValue()+";");
        content.append("转换公式:"+formula+";");
        //如果有针对因子则获取针对因子名称
        String sensorCode = unitConversion.getSensorCode();
        if(sensorCode!=null){
            Sensor sensor = sensorService.getSensorByCode(sensorCode);
            if(sensor!=null)
                content.append("针对因子:"+sensor.getName()+";");
        }
        logUtils.saveOperationForManage(content.toString(),Constants.DELETE_OPERATE_TYPE);
    }
    /**
    * @Description: 更新操作插入日志
            * @Param: [unitConversion]
            * @return: void
            * @Author: 陈凯裕
            * @Date: 2021/8/26
            */
    private void updateLog(UnitConversion oldUnitConversion,String newFormular){
        StringBuilder content = new StringBuilder("修改了单位转换公式;");
        //获取单位字典数据 源单位 目标单位名称
        Map<String, SysDictData> units = sysDictDataService.getDictDatasByType("unit");
        String originalUnitKey = oldUnitConversion.getOriginalUnitKey();
        String targetUnitKey = oldUnitConversion.getTargetUnitKey();
        SysDictData originalData = units.get(originalUnitKey);
        SysDictData targetData = units.get(targetUnitKey);
        //新公式转换格式
        newFormular = newFormular.replace(Constants.FORMULA_PLACEHOLDER, "源单位");
        newFormular = "目标单位"+" = "+newFormular;
        //旧公式转换
        String oldFormula = oldUnitConversion.getFormula();
        oldFormula = oldFormula.replace(Constants.FORMULA_PLACEHOLDER, "源单位");
        oldFormula = "目标单位"+" = "+oldFormula;
        content.append("源单位:"+originalData.getDataValue()+";");
        content.append("目标单位:"+targetData.getDataValue()+";");
        content.append("转换公式:"+oldFormula+"->"+newFormular+";");
        //如果有针对因子则获取针对因子名称
        String sensorCode = oldUnitConversion.getSensorCode();
        if(sensorCode!=null){
            Sensor sensor = sensorService.getSensorByCode(sensorCode);
            if(sensor!=null)
                content.append("针对因子:"+sensor.getName()+";");
        }
        logUtils.saveOperationForManage(content.toString(),Constants.UPDATE_OPERATE_TYPE);
    }
}