Browse Source

/*无人机机器狗任务进度上报bug修改*/

master
htjcAdmin 4 months ago
parent
commit
6b02f16839
3 changed files with 106 additions and 63 deletions
  1. +4
    -0
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  2. +81
    -63
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  3. +21
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/config/SwaggerConfig.java

+ 4
- 0
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -48,6 +48,7 @@ import java.util.concurrent.locks.ReentrantLock;
import feign.RetryableException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
@ -143,6 +144,9 @@ public class JobMainTask {
// 用于状态查询线程
private final ScheduledExecutorService statusUpdater = Executors.newSingleThreadScheduledExecutor();
@Resource
private RabbitTemplate rabbitTemplate;
@Autowired
public JobMainTask(
ShaoXinBigModel shaoXinBigModel,


+ 81
- 63
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -1114,8 +1114,8 @@ public class PatrolResultController extends BaseController {
for (PatrolTaskStatus patrolTaskStatusItem : patrolTaskStatusListItems) {
PatrolTask patrolTask = new PatrolTask();
patrolTask.setTaskCode(patrolTaskStatusItem.getTaskCode());
List<PatrolTask> list = patrolTaskService.selectPatrolTaskList(patrolTask);
if (StringUtils.isEmpty(patrolTaskStatusItem.getTaskCode()) || CollectionUtils.isEmpty(list)) {
List<PatrolTask> patrolTaskListOfDb = patrolTaskService.selectPatrolTaskList(patrolTask);
if (CollectionUtils.isEmpty(patrolTaskListOfDb)) {
logger.info("TASK CODE: {} NO EXIST, SKIP IT!", patrolTaskStatusItem.getTaskCode());
} else {
try {
@ -1125,6 +1125,7 @@ public class PatrolResultController extends BaseController {
}
if (StringUtils.isNotEmpty(patrolTaskStatusItem.getTaskPatrolledId())) {
String str = "";
PatrolTaskStatus patrolTaskStatus = new PatrolTaskStatus();
patrolTaskStatus.setTaskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId());
@ -1134,14 +1135,12 @@ public class PatrolResultController extends BaseController {
} else if (StringUtils.isNotEmpty(sendCode)) {
str = sendCodeToDevType(sendCode);
patrolTaskStatus.setPosType(str);
// 鲁人机器人
if ("1".equals(str) && "E100-001".equals(sendCode)) {
List<BasedataEqpBookChannel> listEqpBook = baseDataClient.queryEqpBookCode(sendCode);
patrolTaskStatusItem.setCode(listEqpBook.get(0).getChannelCode());
}
}
List<PatrolTaskStatus> patrolTaskStatusList = iPatrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus);
// 任务状态完成终止超过期限
if (patrolTaskStatusItem.getTaskState() != null &&
(patrolTaskStatusItem.getTaskState().equals(TaskStatus.DONE.getCode())
|| patrolTaskStatusItem.getTaskState().equals(TaskStatus.HALTED.getCode())
@ -1150,59 +1149,76 @@ public class PatrolResultController extends BaseController {
patrolTaskStatusItem.setEndTime(DateUtils.parseDateToStr(DateUtils.yyyyMMddHHmmss2, new Date()));
}
if (!patrolTaskStatusList.isEmpty()) {
patrolTaskStatusItem.setLineId(patrolTaskStatusList.get(0).getLineId());
if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) {
patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName());
PatrolTaskStatus patrolTaskStatusOfDb = patrolTaskStatusList.get(0);
double runProgress = 0.0;
double dbProgress = 0.0;
try {
runProgress = Double.parseDouble(patrolTaskStatusItem.getTaskProgress());
dbProgress = Double.parseDouble(patrolTaskStatusOfDb.getTaskProgress());
} catch (Exception e) {
logger.error("patrol_task_status error number, run_progress: {}, db_progress: {}", patrolTaskStatusItem.getTaskProgress(), patrolTaskStatusOfDb.getTaskProgress());
}
logger.info(Color.CYAN + "updating patrol_task_status taskPatrolledId: {}, progress: {}, taskState: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(), patrolTaskStatusItem.getTaskProgress(), patrolTaskStatusItem.getTaskState());
/*
* 智能巡视任务下发完成100%, 在这个节点不能更新task_state字段, 原因如下:
* 1. 不能更新task_state为已经完成状态, 因为整个任务的完成状态应该由算法任务是否完成来决定;
* 2. 不能更新task_state为正在执行状态, 因为在测试环境下发现智巡任务比算法任务达到100进度还要晚,
* 因此原本算法任务已经将状态置为已经完成的情况下为了防止智巡任务再把它改为执行中所以此时只需要
* 更新智巡的进度值为100即可
*/
if("100.0".equals(patrolTaskStatusItem.getTaskProgress())
&& TaskStatus.RUNNING.getCode().equals(patrolTaskStatusItem.getTaskState())) {
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build());
if(!statusList.isEmpty()) {
logger.info(Color.CYAN + "updating patrol_task_status 100%, taskPatrolledId: {}, progress: {}, taskState: {}, taskCurCodeInRedis: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(),
patrolTaskStatusItem.getTaskProgress(),
patrolTaskStatusItem.getTaskState(),
RedisConst.TASK_CURRENT_CODE + patrolTaskStatusItem.getTaskCode());
PatrolTaskStatus taskStatus = statusList.get(0);
taskStatus.setTaskProgress(patrolTaskStatusItem.getTaskProgress());
iPatrolTaskStatusService.updatePatrolTaskStatusOfTaskProgress(taskStatus);
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskStatus.getTaskCode());
logger.info("patrol_task_status run_progress: {}, db_progress: {}", runProgress, dbProgress);
if(runProgress > dbProgress) {
patrolTaskStatusItem.setLineId(patrolTaskStatusOfDb.getLineId());
if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) {
patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName());
}
} else {
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build());
if(!statusList.isEmpty()) {
PatrolTaskStatus taskStatus = statusList.get(0);
if(TaskStatus.RUNNING.getCode().equals(taskStatus.getTaskState())) {
logger.info(Color.CYAN + "updating patrol_task_status state, taskPatrolledId: {}, taskState: {}, taskCurCodeInRedis: {}" + Color.END,
logger.info(Color.CYAN + "updating patrol_task_status taskPatrolledId: {}, progress: {}, taskState: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(), patrolTaskStatusItem.getTaskProgress(), patrolTaskStatusItem.getTaskState());
/*
* 智能巡视任务下发完成100%, 在这个节点不能更新task_state字段, 原因如下:
* 1. 不能更新task_state为已经完成状态, 因为整个任务的完成状态应该由算法任务是否完成来决定;
* 2. 不能更新task_state为正在执行状态, 因为在测试环境下发现智巡任务比算法任务达到100进度还要晚,
* 因此原本算法任务已经将状态置为已经完成的情况下为了防止智巡任务再把它改为执行中所以此时只需要
* 更新智巡的进度值为100即可
*/
if ("100.0".equals(patrolTaskStatusItem.getTaskProgress())
&& TaskStatus.RUNNING.getCode().equals(patrolTaskStatusItem.getTaskState())) {
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build());
if (!statusList.isEmpty()) {
logger.info(Color.CYAN + "updating patrol_task_status 100%, taskPatrolledId: {}, progress: {}, taskState: {}, taskCurCodeInRedis: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(),
patrolTaskStatusItem.getTaskProgress(),
patrolTaskStatusItem.getTaskState(),
RedisConst.TASK_CURRENT_CODE + patrolTaskStatusItem.getTaskCode());
patrolTaskStatusItem.setTaskState(TaskStatus.RUNNING.getCode());
i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem);
PatrolTaskStatus taskStatus = statusList.get(0);
taskStatus.setTaskProgress(patrolTaskStatusItem.getTaskProgress());
iPatrolTaskStatusService.updatePatrolTaskStatusOfTaskProgress(taskStatus);
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskStatus.getTaskCode());
}
} else {
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build());
if (!statusList.isEmpty()) {
PatrolTaskStatus taskStatus = statusList.get(0);
if (TaskStatus.RUNNING.getCode().equals(taskStatus.getTaskState())) {
logger.info(Color.CYAN + "updating patrol_task_status state, taskPatrolledId: {}, taskState: {}, taskCurCodeInRedis: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(),
patrolTaskStatusItem.getTaskProgress(),
patrolTaskStatusItem.getTaskState(),
RedisConst.TASK_CURRENT_CODE + patrolTaskStatusItem.getTaskCode());
patrolTaskStatusItem.setTaskState(TaskStatus.RUNNING.getCode());
i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem);
}
}
}
}
if ("E100-001".equals(sendCode)) {
if ("100".equals(patrolTaskStatusItem.getTaskProgress())) {
saveDataToResultAnalysis(patrolTaskStatusItem.getTaskPatrolledId());
if ("E100-001".equals(sendCode)) {
if ("100".equals(patrolTaskStatusItem.getTaskProgress())) {
saveDataToResultAnalysis(patrolTaskStatusItem.getTaskPatrolledId());
}
}
}
} else {
patrolTaskStatusItem.setPosType(str);
patrolTaskStatusItem.setCreateTime(new Date());
patrolTaskStatusItem.setStartTime(new Date());
if(!"2".equals(patrolTaskStatusItem.getTaskState())) {
logger.info("任务一开始就给了错误的任务的状态: messageBody: {}", messageBody);
patrolTaskStatusItem.setTaskState("2");
}
if (patrolTaskStatusItem.getTaskName().contains("联合") && !patrolTaskStatusItem.getTaskName().startsWith(sendCode)) {
patrolTaskStatusItem.setTaskName(sendCode + "-" + patrolTaskStatusItem.getTaskName());
}
@ -1378,10 +1394,9 @@ public class PatrolResultController extends BaseController {
patrolResultParam.setTaskPatrolledId(patrolResult.getTaskPatrolledId());
str = parseObject.getString("SendCode");
String strfile;
// 机器狗
if ("2".equals(datetype)) {
logger.info("feedback from robot");
Long patrolPointId = baseDataClient.queryPatrolPointId(str + "|" + patrolResult.getDeviceId());
Long patrolPointId = baseDataClient.queryPatrolPointId(str + "_" + patrolResult.getDeviceId());
if (patrolPointId != null) {
patrolResult.setDeviceId(patrolPointId.toString());
}
@ -1402,13 +1417,6 @@ public class PatrolResultController extends BaseController {
}
}
}
// 无人机点位id处理
if ("3".equals(datetype)) {
Long patrolPointId = baseDataClient.queryPatrolPointId(str + "|" + patrolResult.getDeviceId());
if (patrolPointId != null) {
patrolResult.setDeviceId(patrolPointId.toString());
}
}
patrolResultParam.setDeviceId(patrolResult.getDeviceId());
patrolResultParam.setDataType(datetype);
@ -1771,47 +1779,47 @@ public class PatrolResultController extends BaseController {
basedataEqpbookXml.setStationCode(stationNo);
basedataEqpbookXml.setStationName(stationName);
if(basedataEqpbookXml.getDeviceModel() == null) {
if (basedataEqpbookXml.getDeviceModel() == null) {
basedataEqpbookXml.setDeviceModel("");
}
if(basedataEqpbookXml.getManufacturer() == null) {
if (basedataEqpbookXml.getManufacturer() == null) {
basedataEqpbookXml.setManufacturer("");
}
if(basedataEqpbookXml.getUseUnit() == null) {
if (basedataEqpbookXml.getUseUnit() == null) {
basedataEqpbookXml.setUseUnit("");
}
if(basedataEqpbookXml.getDeviceSource() == null) {
if (basedataEqpbookXml.getDeviceSource() == null) {
basedataEqpbookXml.setDeviceSource("");
}
if(basedataEqpbookXml.getProductionDate() == null) {
if (basedataEqpbookXml.getProductionDate() == null) {
basedataEqpbookXml.setProductionDate("");
}
if(basedataEqpbookXml.getProductionCode() == null) {
if (basedataEqpbookXml.getProductionCode() == null) {
basedataEqpbookXml.setProductionCode("");
}
if(basedataEqpbookXml.getUseMode() == null) {
if (basedataEqpbookXml.getUseMode() == null) {
basedataEqpbookXml.setUseMode("");
}
if(basedataEqpbookXml.getVideoMode() == null) {
if (basedataEqpbookXml.getVideoMode() == null) {
basedataEqpbookXml.setVideoMode("");
}
if(basedataEqpbookXml.getPlace() == null) {
if (basedataEqpbookXml.getPlace() == null) {
basedataEqpbookXml.setPlace("");
}
if(basedataEqpbookXml.getPatrolDeviceInfo() == null) {
if (basedataEqpbookXml.getPatrolDeviceInfo() == null) {
basedataEqpbookXml.setPatrolDeviceInfo("");
}
if(basedataEqpbookXml.getMountPatrolDeviceCode() == null) {
if (basedataEqpbookXml.getMountPatrolDeviceCode() == null) {
basedataEqpbookXml.setMountPatrolDeviceCode("");
}
@ -2293,4 +2301,14 @@ public class PatrolResultController extends BaseController {
return str;
}
public static void main(String[] args) {
double runProgress = 0.0;
double dbProgress = 0.0;
if(runProgress > dbProgress) {
System.out.println("1");
} else {
System.out.println("2");
}
}
}

+ 21
- 0
inspect-metadata/src/main/java/com/inspect/metadata/config/SwaggerConfig.java View File

@ -0,0 +1,21 @@
package com.inspect.metadata.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.inspect.metadata.eqpbook.controller"))
.paths(PathSelectors.any())
.build();
}
}

Loading…
Cancel
Save