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