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); } }