wangguangyuan 2 weeks ago
parent
commit
4215ca08da
17 changed files with 174 additions and 78 deletions
  1. +5
    -5
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/HuaRuanMQTTServiceImpl.java
  2. +17
    -17
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrEmergencyController.java
  3. +24
    -16
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrHealthEvaluateController.java
  4. +23
    -22
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrLifeDetectionController.java
  5. +12
    -3
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrWarnController.java
  6. +3
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrDroneBatteryMapper.java
  7. +2
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrTaskProcessMapper.java
  8. +5
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrWarnMapper.java
  9. +3
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrDroneBatteryService.java
  10. +2
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrTaskProcessService.java
  11. +3
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrWarnService.java
  12. +7
    -2
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/HrDroneBatteryServiceImpl.java
  13. +5
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/HrTaskProcessServiceImpl.java
  14. +18
    -2
      inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/IHrWarnServiceImpl.java
  15. +9
    -1
      inspect-metadata/src/main/resources/mapper/mqtt/HrDroneBatteryMapper.xml
  16. +9
    -0
      inspect-metadata/src/main/resources/mapper/mqtt/HrTaskProcessMapper.xml
  17. +27
    -5
      inspect-metadata/src/main/resources/mapper/mqtt/HrWarnMapper.xml

+ 5
- 5
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/HuaRuanMQTTServiceImpl.java View File

@ -72,7 +72,7 @@ public class HuaRuanMQTTServiceImpl {
private void handleIncomingMessage(String topic, MqttMessage message) {
try {
String nestCode = getNestCode(topic);
if (nestCode.equals("")) {
if (nestCode.isEmpty()) {
throw new Exception("nestCode is null");
}
ObjectMapper objectMapper = new ObjectMapper();
@ -101,7 +101,7 @@ public class HuaRuanMQTTServiceImpl {
warn.setErrCode(nestWarn.getErrCode());
warn.setErrMsg(nestWarn.getErrMsg());
warn.setErrGrade(nestWarn.getErrGrade());
warnService.insertWarn(warn);
warnService.handleWarn(warn);
}
}
// 无人机基础信息
@ -125,7 +125,7 @@ public class HuaRuanMQTTServiceImpl {
warn.setErrCode(droneWarn.getErrCode());
warn.setErrMsg(droneWarn.getErrMsg());
warn.setErrGrade(droneWarn.getErrRank());
warnService.insertWarn(warn);
warnService.handleWarn(warn);
}
// 巡检任务执行过程
else if (topic.endsWith("/thing/property/task_process")) {
@ -143,11 +143,11 @@ public class HuaRuanMQTTServiceImpl {
taskProcessService.insertTaskProcess(taskProcess);
}
} catch (Exception e) {
log.error("MQTT handle error {}: {}", topic, e.getMessage());
log.error("MQTT handle error, topic: {}", topic, e);
}
}
private static Pattern pattern = Pattern.compile("/sys/([^/]+)/.*");
private final static Pattern pattern = Pattern.compile("/sys/([^/]+)/.*");
public String getNestCode(String topic) {
Matcher matcher = pattern.matcher(topic);


+ 17
- 17
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrEmergencyController.java View File

@ -6,13 +6,11 @@ import com.inspect.metadata.eqpbook.domain.BasedataEqpBook;
import com.inspect.metadata.eqpbook.service.IBasedataEqpBookService;
import com.inspect.metadata.mqtt.MQTTUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -20,9 +18,8 @@ import java.util.Map;
@RestController
@RequestMapping("/hr/emergency")
@ConditionalOnProperty(name = "hua-ruan.mqtt.enable", havingValue = "true")
public class HrEmergencyController extends BaseController {
@Resource
@Autowired(required = false)
private MQTTUtils mqttUtils;
@Autowired
@ -44,14 +41,12 @@ public class HrEmergencyController extends BaseController {
return AjaxResult.success(list);
}
// 机巢紧急锁停
// 机巢自检
@GetMapping("/selfcheck/{nestCode}")
public AjaxResult selfcheck(@PathVariable String nestCode) {
try {
Thread.sleep(2000);
// 2.7.1 机巢控制自检
String content = "{\"code\":\"12000\",\"command\":\"4\"}";
mqttUtils.publish(1, "/sys/" + nestCode + "/thing/service/nest/control", content);
executeMqttCommand(nestCode, "12000", "4", "/thing/service/nest/control");
return AjaxResult.success();
} catch (Exception e) {
logger.error("[HR Emergency selfcheck] error :{}", e.getMessage());
@ -63,10 +58,8 @@ public class HrEmergencyController extends BaseController {
@GetMapping("/lockdown/{nestCode}")
public AjaxResult lockdown(@PathVariable String nestCode) {
try {
Thread.sleep(2000);
// 2.7.1 机巢控制急停
String content = "{\"code\":\"12000\",\"command\":\"2\"}";
mqttUtils.publish(1, "/sys/" + nestCode + "/thing/service/nest/control", content);
executeMqttCommand(nestCode, "12000", "2", "/thing/service/nest/control");
return AjaxResult.success();
} catch (Exception e) {
logger.error("[HR Emergency lockdown] error :{}", e.getMessage());
@ -77,10 +70,8 @@ public class HrEmergencyController extends BaseController {
@GetMapping("/releaseLockdown/{nestCode}")
public AjaxResult releaseLockdown(@PathVariable String nestCode) {
try {
Thread.sleep(2000);
// 2.7.1 机巢控制解除急停
String content = "{\"code\":\"12000\",\"command\":\"3\"}";
mqttUtils.publish(1, "/sys/" + nestCode + "/thing/service/nest/control", content);
executeMqttCommand(nestCode, "12000", "3", "/thing/service/nest/control");
return AjaxResult.success();
} catch (Exception e) {
logger.error("[HR Emergency release lockdown] error :{}", e.getMessage());
@ -92,14 +83,23 @@ public class HrEmergencyController extends BaseController {
@GetMapping("/landing/{nestCode}")
public AjaxResult landing(@PathVariable String nestCode) {
try {
Thread.sleep(2000);
// 2.8.5 无人机控制一键返航
String content = "{\"code\":\"22004\",\"command\":\"1\"}";
mqttUtils.publish(1, "/sys/" + nestCode + "/thing/service/drone/drone_control", content);
executeMqttCommand(nestCode, "22004", "1", "/thing/service/drone/drone_control");
return AjaxResult.success();
} catch (Exception e) {
logger.error("[HR Emergency landing] error :{}", e.getMessage());
return AjaxResult.error();
}
}
private void executeMqttCommand(String nestCode, String code, String command, String topicSuffix) throws InterruptedException {
// 模拟延迟
Thread.sleep(2000);
if (mqttUtils == null) {
logger.warn("MQTT is disabled, skipping command execution for nestCode: {}", nestCode);
} else {
String content = String.format("{\"code\":\"%s\",\"command\":\"%s\"}", code, command);
mqttUtils.publish(1, "/sys/" + nestCode + topicSuffix, content);
}
}
}

+ 24
- 16
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrHealthEvaluateController.java View File

@ -5,13 +5,16 @@ import com.inspect.base.core.web.domain.AjaxResult;
import com.inspect.metadata.eqpbook.domain.BasedataEqpBook;
import com.inspect.metadata.eqpbook.service.IBasedataEqpBookService;
import com.inspect.metadata.mqtt.domain.HrNest;
import com.inspect.metadata.mqtt.domain.HrTaskProcess;
import com.inspect.metadata.mqtt.domain.HrWarn;
import com.inspect.metadata.mqtt.enums.HrDeviceEnum;
import com.inspect.metadata.mqtt.enums.HrHealthLevelEnum;
import com.inspect.metadata.mqtt.enums.HrHealthStatusEnum;
import com.inspect.metadata.mqtt.service.IHrNestService;
import com.inspect.metadata.mqtt.service.IHrTaskProcessService;
import com.inspect.metadata.mqtt.service.IHrWarnService;
import com.inspect.metadata.mqtt.vo.HrHealthEvaluateVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -20,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/hr/healthEvaluate")
public class HrHealthEvaluateController extends BaseController {
@ -32,21 +36,25 @@ public class HrHealthEvaluateController extends BaseController {
@Autowired
private IHrWarnService iHrWarnService;
@Autowired
private IHrTaskProcessService iHrTaskProcessService;
// 判断健康水平
private static HrHealthLevelEnum getHealthLevel(Integer count, Integer status) {
if (status == null || status != HrHealthStatusEnum.Normal.getCode()) {
return HrHealthLevelEnum.Poor;
log.info("count: {}, status: {}",count, status);
if (status == null || !status.equals(HrHealthStatusEnum.Normal.getCode())) {
return HrHealthLevelEnum.Good;
}
if (count == null || count < 0) {
return HrHealthLevelEnum.Poor;
}
if (count == 0) {
if (count < 5) {
return HrHealthLevelEnum.Excellent;
} else if (count == 1) {
} else if (count == 10) {
return HrHealthLevelEnum.Good;
} else if (count < 3) {
} else if (count < 20) {
return HrHealthLevelEnum.Average;
} else if (count < 5) {
} else if (count < 30) {
return HrHealthLevelEnum.Poor;
} else {
return HrHealthLevelEnum.Danger;
@ -64,35 +72,35 @@ public class HrHealthEvaluateController extends BaseController {
String patrolDeviceCode = book.getPatrolDeviceCode();
HrNest nest = iHrNestService.selectNestByCode(patrolDeviceCode);
if (nest == null) {
HrHealthEvaluateVO evaluate = new HrHealthEvaluateVO(patrolDeviceName, patrolDeviceCode, HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Poor.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Poor.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Poor.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Poor.getCode());
HrHealthEvaluateVO evaluate = new HrHealthEvaluateVO(patrolDeviceName, patrolDeviceCode, HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Average.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Average.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Average.getCode(), HrHealthStatusEnum.Abnormal.getCode(), HrHealthLevelEnum.Average.getCode());
evaluateList.add(evaluate);
} else {
// 航站状态
Integer nestAutoCheck = nest.getNestFireWarn();
Integer nestStatus = nestAutoCheck == 0 ? HrHealthStatusEnum.Normal.getCode() : HrHealthStatusEnum.Abnormal.getCode();
// 统计一周内异常
// 统计三天内异常
HrWarn nestWarn = new HrWarn();
nestWarn.setType(HrDeviceEnum.Nest.getCode());
nestWarn.setNestCode(patrolDeviceCode);
Integer nestWarnCount = iHrWarnService.countWarnOneWeek(nestWarn);
Integer nestWarnCount = iHrWarnService.countWarnThreeDay(nestWarn);
Integer nestWarnLevel = getHealthLevel(nestWarnCount, nestStatus).getCode();
// 无人机状态
Boolean isDroneConnected = nest.getIsDroneConnected();
Integer droneStatus = isDroneConnected ? HrHealthStatusEnum.Normal.getCode() : HrHealthStatusEnum.Abnormal.getCode();
// 统计一个月内异常
HrWarn droneWarn = new HrWarn();
droneWarn.setType(HrDeviceEnum.Nest.getCode());
droneWarn.setNestCode(patrolDeviceCode);
Integer droneWarnCount = iHrWarnService.countWarnOneWeek(droneWarn);
// 统计三天内异常
HrTaskProcess taskProcess = new HrTaskProcess();
taskProcess.setNestCode(patrolDeviceCode);
taskProcess.setResult(2);
Integer droneWarnCount = iHrTaskProcessService.countWarnThreeDay(taskProcess);
Integer droneWarnLevel = getHealthLevel(droneWarnCount, droneStatus).getCode();
// 电池状态电池数量大于0即为正常
Integer batteryAvailable = nest.getNestBatteryAvailable();
Integer batteryStatus = batteryAvailable > 0 ? HrHealthStatusEnum.Normal.getCode() : HrHealthStatusEnum.Abnormal.getCode();
Integer batteryLevel = batteryStatus == HrHealthStatusEnum.Normal.getCode() ? HrHealthLevelEnum.Excellent.getCode() : HrHealthLevelEnum.Poor.getCode();
Integer batteryLevel = batteryStatus.equals(HrHealthStatusEnum.Normal.getCode()) ? HrHealthLevelEnum.Excellent.getCode() : HrHealthLevelEnum.Poor.getCode();
// 载荷状态
Boolean isRemoteConnected = nest.getIsRemoteConnected();
Integer loadStatus = isRemoteConnected ? HrHealthStatusEnum.Normal.getCode() : HrHealthStatusEnum.Abnormal.getCode();
Integer loadLevel = loadStatus == HrHealthStatusEnum.Normal.getCode() ? HrHealthLevelEnum.Excellent.getCode() : HrHealthLevelEnum.Poor.getCode();
Integer loadLevel = loadStatus.equals(HrHealthStatusEnum.Normal.getCode()) ? HrHealthLevelEnum.Excellent.getCode() : HrHealthLevelEnum.Poor.getCode();
HrHealthEvaluateVO evaluate = new HrHealthEvaluateVO(patrolDeviceName, patrolDeviceCode, nestStatus, nestWarnLevel, droneStatus, droneWarnLevel, batteryStatus, batteryLevel, loadStatus, loadLevel);
evaluateList.add(evaluate);


+ 23
- 22
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrLifeDetectionController.java View File

@ -31,11 +31,25 @@ public class HrLifeDetectionController extends BaseController {
@Autowired
private IHrDroneBatteryService droneBatteryService;
/**
* 计算两个时间之间的年数差
*/
public static double calculateYearsDifference(LocalDateTime targetTime, LocalDateTime sourceTime) {
long daysBetween = ChronoUnit.DAYS.between(targetTime, sourceTime);
// 计算年数考虑闰年
double years = daysBetween / 365.25;
// 保留一位小数
return Math.round(years * 10.0) / 10.0;
}
@GetMapping("/list")
public AjaxResult list() {
BasedataEqpBook eqpBook = new BasedataEqpBook();
eqpBook.setAreaName("华软无人机");
List<BasedataEqpBook> eqpBooks = iBasedataEqpBookService.selectBasedataEqpBookList(eqpBook);
String[] patrolDeviceCodes = eqpBooks.stream().map(book -> book.getPatrolDeviceCode()).toArray(String[]::new);
List<HrLifeDetectionVO> detectionList = new ArrayList<>();
for (BasedataEqpBook book : eqpBooks) {
HrLifeDetectionVO vo = new HrLifeDetectionVO();
@ -46,18 +60,21 @@ public class HrLifeDetectionController extends BaseController {
vo.setNestCode(patrolDeviceCode);
// 已使用寿命
Date createTime = iBasedataMontTaskResultService.selectMinCreateTimeByPatrolDeviceCode(patrolDeviceCode);
LocalDateTime createTimeLocal = createTime.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDateTime();
Double useYears = calculateYearsDifference(createTimeLocal, LocalDateTime.now());
vo.setServiceLife(useYears);
if (createTime != null) {
LocalDateTime createTimeLocal = createTime.toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDateTime();
Double useYears = calculateYearsDifference(createTimeLocal, LocalDateTime.now());
vo.setServiceLife(useYears);
} else {
vo.setServiceLife(0.0);
}
// 飞行次数
Integer countTimes = iBasedataMontTaskResultService.countTimesByPatrolDeviceCode(patrolDeviceCode);
vo.setFlightCount(countTimes);
HrDroneBattery droneBattery = new HrDroneBattery();
droneBattery.setNestCode(patrolDeviceCode);
// 电池充电次数
List<HrDroneBattery> batteryList = droneBatteryService.selectDroneBatteryList(droneBattery);
if (batteryList.size() > 0) {
HrDroneBattery battery = batteryList.get(0);
HrDroneBattery battery = droneBatteryService.selectDroneBatteryOne(patrolDeviceCode);
if (battery != null) {
vo.setChargingTimes(battery.getBatteryNumberOfDisCharges());
}
// 剩余使用寿命
@ -70,20 +87,4 @@ public class HrLifeDetectionController extends BaseController {
logger.info("lifeDetection:{}", detectionList);
return AjaxResult.success(detectionList);
}
/**
* 计算两个时间之间的年数差
*
* @param targetTime
* @param sourceTime
* @return 年数差保留一位小数
*/
public static double calculateYearsDifference(LocalDateTime targetTime, LocalDateTime sourceTime) {
long daysBetween = ChronoUnit.DAYS.between(targetTime, sourceTime);
// 计算年数考虑闰年
double years = daysBetween / 365.25;
// 保留一位小数
return Math.round(years * 10.0) / 10.0;
}
}

+ 12
- 3
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/controller/HrWarnController.java View File

@ -3,9 +3,13 @@ package com.inspect.metadata.mqtt.controller;
import com.inspect.base.core.web.controller.BaseController;
import com.inspect.base.core.web.page.TableDataInfo;
import com.inspect.metadata.mqtt.domain.HrWarn;
import com.inspect.metadata.mqtt.enums.HrDeviceEnum;
import com.inspect.metadata.mqtt.service.IHrTaskProcessService;
import com.inspect.metadata.mqtt.service.IHrWarnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -16,9 +20,14 @@ public class HrWarnController extends BaseController {
private IHrWarnService warnService;
@GetMapping("/list")
public TableDataInfo list(HrWarn Warn) {
public TableDataInfo list(HrWarn warn) {
startPage();
List<HrWarn> list = warnService.selectWarnList(Warn);
List<HrWarn> list = warnService.selectWarnList(warn);
list.forEach(item -> {
String device = item.getType().equals(HrDeviceEnum.Nest.getCode()) ? "机巢" : "无人机";
String errMsg = device + ":" + item.getNestCode() + "," + item.getErrMsg();
item.setErrMsg(errMsg);
});
return getDataTable(list);
}
}

+ 3
- 1
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrDroneBatteryMapper.java View File

@ -9,5 +9,7 @@ import java.util.List;
public interface HrDroneBatteryMapper {
int insertDroneBattery(HrDroneBattery droneBattery);
List<HrDroneBattery> selectDroneBatteryList(HrDroneBattery droneBattery);
List<HrDroneBattery> selectDroneBatteryList(String nestCode);
HrDroneBattery selectDroneBatteryOne(String nestCode);
}

+ 2
- 0
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrTaskProcessMapper.java View File

@ -10,4 +10,6 @@ public interface HrTaskProcessMapper {
List<HrTaskProcess> selectTaskProcessList(HrTaskProcess process);
Integer insertTaskProcess(HrTaskProcess taskProcess);
Integer countWarnThreeDay(HrTaskProcess taskProcess);
}

+ 5
- 1
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/mapper/HrWarnMapper.java View File

@ -9,7 +9,11 @@ import java.util.List;
public interface HrWarnMapper {
List<HrWarn> selectWarnList(HrWarn warn);
Integer countWarnOneWeek(HrWarn hrWarn);
Integer countWarnThreeDay(HrWarn hrWarn);
Integer insertWarn(HrWarn warn);
HrWarn selectWarn(HrWarn warn);
Integer updateWarn(HrWarn warn);
}

+ 3
- 1
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrDroneBatteryService.java View File

@ -5,7 +5,9 @@ import com.inspect.metadata.mqtt.domain.HrDroneBattery;
import java.util.List;
public interface IHrDroneBatteryService {
List<HrDroneBattery> selectDroneBatteryList(HrDroneBattery droneBattery);
List<HrDroneBattery> selectDroneBatteryList(String nestCode);
int insertDroneBattery(HrDroneBattery droneBattery);
HrDroneBattery selectDroneBatteryOne(String nestCode);
}

+ 2
- 0
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrTaskProcessService.java View File

@ -8,4 +8,6 @@ public interface IHrTaskProcessService {
List<HrTaskProcess> selectTaskProcessList(HrTaskProcess process);
Integer insertTaskProcess(HrTaskProcess taskProcess);
Integer countWarnThreeDay(HrTaskProcess taskProcess);
}

+ 3
- 1
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/IHrWarnService.java View File

@ -7,7 +7,9 @@ import java.util.List;
public interface IHrWarnService {
List<HrWarn> selectWarnList(HrWarn warn);
// 统计最近一个月异常数量
Integer countWarnOneWeek(HrWarn hrWarn);
Integer countWarnThreeDay(HrWarn hrWarn);
Integer insertWarn(HrWarn warn);
Integer handleWarn(HrWarn warn);
}

+ 7
- 2
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/HrDroneBatteryServiceImpl.java View File

@ -13,12 +13,17 @@ import java.util.List;
public class HrDroneBatteryServiceImpl implements IHrDroneBatteryService {
private final HrDroneBatteryMapper droneBatteryMapper;
@Override
public List<HrDroneBattery> selectDroneBatteryList(HrDroneBattery droneBattery) {
return droneBatteryMapper.selectDroneBatteryList(droneBattery);
public List<HrDroneBattery> selectDroneBatteryList(String nestCode) {
return droneBatteryMapper.selectDroneBatteryList(nestCode);
}
@Override
public int insertDroneBattery(HrDroneBattery droneBattery) {
return droneBatteryMapper.insertDroneBattery(droneBattery);
}
@Override
public HrDroneBattery selectDroneBatteryOne(String nestCode) {
return droneBatteryMapper.selectDroneBatteryOne(nestCode);
}
}

+ 5
- 1
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/HrTaskProcessServiceImpl.java View File

@ -6,7 +6,6 @@ import com.inspect.metadata.mqtt.service.IHrTaskProcessService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service
@ -23,4 +22,9 @@ public class HrTaskProcessServiceImpl implements IHrTaskProcessService {
public Integer insertTaskProcess(HrTaskProcess taskProcess) {
return taskProcessMapper.insertTaskProcess(taskProcess);
}
@Override
public Integer countWarnThreeDay(HrTaskProcess taskProcess) {
return taskProcessMapper.countWarnThreeDay(taskProcess);
}
}

+ 18
- 2
inspect-metadata/src/main/java/com/inspect/metadata/mqtt/service/impl/IHrWarnServiceImpl.java View File

@ -4,10 +4,13 @@ import com.inspect.metadata.mqtt.domain.HrWarn;
import com.inspect.metadata.mqtt.mapper.HrWarnMapper;
import com.inspect.metadata.mqtt.service.IHrWarnService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.Instant;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class IHrWarnServiceImpl implements IHrWarnService {
@ -19,12 +22,25 @@ public class IHrWarnServiceImpl implements IHrWarnService {
}
@Override
public Integer countWarnOneWeek(HrWarn hrWarn) {
return warnMapper.countWarnOneWeek(hrWarn);
public Integer countWarnThreeDay(HrWarn hrWarn) {
return warnMapper.countWarnThreeDay(hrWarn);
}
@Override
public Integer insertWarn(HrWarn warn) {
return warnMapper.insertWarn(warn);
}
@Override
public Integer handleWarn(HrWarn warn) {
log.info("warn: {}", warn);
HrWarn activeWarn = warnMapper.selectWarn(warn);
log.info("activeWarn: {}", activeWarn);
// 五分钟内连续上报归为同一条记录更新否则新增一条记录
if (activeWarn.getUpdateTime() != null && Instant.now().isAfter(activeWarn.getUpdateTime().toInstant().plusSeconds(5 * 60))) {
return warnMapper.insertWarn(warn);
} else {
return warnMapper.updateWarn(activeWarn);
}
}
}

+ 9
- 1
inspect-metadata/src/main/resources/mapper/mqtt/HrDroneBatteryMapper.xml View File

@ -89,6 +89,14 @@
<where>
<if test="nestCode != null ">and nest_code = #{nestCode}</if>
</where>
order by create_time desc
order by create_time
</select>
<select id="selectDroneBatteryOne" resultType="com.inspect.metadata.mqtt.domain.HrDroneBattery" resultMap="HrDroneBatteryResult">
<include refid="selectHrDroneBatteryVo"/>
<where>
<if test="nestCode != null ">and nest_code = #{nestCode}</if>
</where>
order by create_time desc limit 1
</select>
</mapper>

+ 9
- 0
inspect-metadata/src/main/resources/mapper/mqtt/HrTaskProcessMapper.xml View File

@ -43,6 +43,15 @@
order by create_time desc
</select>
<select id="countWarnThreeDay" resultType="java.lang.Integer" parameterType="com.inspect.metadata.mqtt.domain.HrTaskProcess">
select count(1) from basedata_hr_task_process
<where>
<if test="nestCode != null ">and nest_code = #{nestCode}</if>
<if test="result != null ">and result = #{result}</if>
</where>
and create_time >= DATE_SUB(CURDATE(),INTERVAL 3 DAY)
</select>
<insert id="insertTaskProcess">
insert into basedata_hr_task_process(nest_code, content, stepid, result, state, time, create_time)
values (#{nestCode}, #{content}, #{stepid}, #{result}, #{state}, #{time}, sysdate())


+ 27
- 5
inspect-metadata/src/main/resources/mapper/mqtt/HrWarnMapper.xml View File

@ -23,6 +23,17 @@
update_time
from basedata_hr_warn
</sql>
<update id="updateWarn">
update basedata_hr_warn
<set>
<if test="nestCode != null">nest_code = #{nestCode},</if>
<if test="type != null">type = #{type},</if>
<if test="errCode != null">err_code = #{errCode},</if>
<if test="errMsg != null">err_msg = #{errMsg},</if>
<if test="errGrade != null">err_grade = #{errGrade},</if>
</set>
where warn_id = #{warnId}
</update>
<select id="selectWarnList" parameterType="com.inspect.metadata.mqtt.domain.HrWarn"
resultMap="BaseResultMap">
@ -30,21 +41,32 @@
<where>
<if test="nestCode != null ">and nest_code = #{nestCode}</if>
<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
and date_format(create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
and date_format(update_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
and date_format(create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
and date_format(update_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
</where>
order by create_time desc
order by update_time desc
</select>
<select id="countWarnOneWeek" resultType="java.lang.Integer">
<select id="countWarnThreeDay" resultType="java.lang.Integer">
select count(1) from basedata_hr_warn
<where>
<if test="type != null ">and type = #{type}</if>
<if test="nestCode != null ">and nest_code = #{nestCode}</if>
</where>
and create_time >= DATE_SUB(CURDATE(),INTERVAL 1 WEEK)
and update_time >= DATE_SUB(CURDATE(),INTERVAL 3 DAY)
</select>
<select id="selectWarn" resultType="com.inspect.metadata.mqtt.domain.HrWarn">
<include refid="selectHrWarnVo"/>
<where>
<if test="nestCode != null">and nest_code = #{nestCode}</if>
<if test="errMsg != null">and err_msg = #{errMsg}</if>
<if test="type != null">and type = #{type}</if>
</where>
order by update_time desc
limit 1
</select>
<insert id="insertWarn">


Loading…
Cancel
Save