|
|
|
@ -31,8 +31,9 @@ import com.inspect.job.mapper.PatrolDeviceStateMapper; |
|
|
|
import com.inspect.job.util.HttpClientUtil; |
|
|
|
import com.inspect.system.base.domain.SysDictData; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
import java.net.URLConnection; |
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.text.DecimalFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
@ -117,7 +118,7 @@ public class JobMainTask { |
|
|
|
private boolean testMode; |
|
|
|
|
|
|
|
@Resource |
|
|
|
private CameraOperateRetryableDelegate cameraOperateRetryableDelegate; |
|
|
|
private IvsOperateRetryableDelegate ivsOperateRetryableDelegate; |
|
|
|
|
|
|
|
private ExecutorService threadPool; |
|
|
|
|
|
|
|
@ -201,7 +202,7 @@ public class JobMainTask { |
|
|
|
int result = 0; |
|
|
|
String taskPatrolledId = taskPatrolId.split(StringUtils.UNDERLINE)[1] + "_" + taskPatrolId.split(StringUtils.UNDERLINE)[2]; |
|
|
|
PatrolTaskStatus patrolTaskStatus = taskExecClient.selectPatrolTaskStatusByTaskPatrolledId(taskPatrolledId); |
|
|
|
if(patrolTaskStatus == null) { |
|
|
|
if (patrolTaskStatus == null) { |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@ -443,52 +444,35 @@ public class JobMainTask { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private boolean setCameraToPreset(PatrolPresetPos presetPos) { |
|
|
|
private PatrolPresetPosSlim queryPatrolPresetPos(final String uuid, final String patrolPointId) { |
|
|
|
PatrolPresetPosSlim presetPosSlim = null; |
|
|
|
try { |
|
|
|
final String url = liveIVS_URL + API_CONTROL_PRESET; |
|
|
|
final String param = "serial=" + presetPos.getVideoNvrCode() + "&command=goto&preset=" + presetPos.getPresetPosCode() + "&code=" + presetPos.getChannelCode(); |
|
|
|
log.info("CALL IVS CONTROL PRESET URL: {}", url + "?" + param); |
|
|
|
HttpClientUtils.get(url, param); |
|
|
|
return true; |
|
|
|
presetPosSlim = taskExecClient.selectPresetCodeSlimByPatrolPointId( |
|
|
|
PatrolPresetPosSlim.builder() |
|
|
|
.patrolPointId(Long.parseLong(patrolPointId)) |
|
|
|
.isEnable("1") |
|
|
|
.build()); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("error", e); |
|
|
|
return false; |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (presetPosSlim == null) { |
|
|
|
presetPosSlim = PatrolPresetPosSlim.builder() |
|
|
|
.presetPosId("99999999") |
|
|
|
.channelType("vl") |
|
|
|
.channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff") |
|
|
|
.videoNvrCode("ffffffffffffffffffffffffffffffff") |
|
|
|
.build(); |
|
|
|
} |
|
|
|
|
|
|
|
log.info(Color.CYAN + "queryPatrolPresetPos uuid: {}, patrolPresetPosSlim: {}" + Color.END, uuid, presetPosSlim); |
|
|
|
return presetPosSlim; |
|
|
|
} |
|
|
|
|
|
|
|
private PatrolTaskExecRecord prePointExec(PatrolTaskExecRecord taskExecRecord, PatrolTaskInfo patrolTaskInfo, int infoListSize) { |
|
|
|
String uuid = UUID.randomUUID().toString().trim().replaceAll(StringUtils.DASH, StringUtils.EMPTY); |
|
|
|
PatrolPresetPos patrolPresetPos = PatrolPresetPos.builder() |
|
|
|
.patrolPointId(Long.parseLong(patrolTaskInfo.getDeviceId())) |
|
|
|
.isEnable("1") |
|
|
|
.build(); |
|
|
|
List<PatrolPresetPos> presetPosList = taskExecClient.selectPatrolPresetPosList(patrolPresetPos); |
|
|
|
log.info(Color.CYAN + "[UUID] uuid: {}, executing patrolPoint, patrolPointId: {}, patrolPresetPos: {}" + Color.END, uuid, patrolTaskInfo.getDeviceId(), JSONObject.toJSONString(presetPosList, true)); |
|
|
|
|
|
|
|
if(presetPosList.isEmpty()) { |
|
|
|
log.error(Color.RED + "[UUID] uuid: {}, patrol_task_info deviceId: {} no patrol_preset_pos record!!!", uuid, patrolTaskInfo.getDeviceId()); |
|
|
|
} |
|
|
|
|
|
|
|
PatrolPresetPos presetPos = !presetPosList.isEmpty() |
|
|
|
? presetPosList.get(0) |
|
|
|
: PatrolPresetPos.builder().presetPosId("99999999").channelType("vl").channelCode("ffffffffffffffffff#ffffffffffffffffffffffffffffffff").videoNvrCode("ffffffffffffffffffffffffffffffff").build(); |
|
|
|
String taskPatrolId = taskExecRecord.getTaskPatrolId(); |
|
|
|
|
|
|
|
/*摄像头转到预置位*/ |
|
|
|
//boolean noError = setCameraToPreset(presetPos); |
|
|
|
|
|
|
|
boolean noError = true; |
|
|
|
try { |
|
|
|
noError = cameraOperateRetryableDelegate.sendCameraPresetRequest(presetPos); |
|
|
|
} catch (IOException e) { |
|
|
|
log.error("最终重试失败: channelCode: {}, presetPosName: {}, patrolPointId: {}, msg: {}", |
|
|
|
presetPos.getChannelCode(), presetPos.getPresetPosName(), presetPos.getPatrolPointId(), e.getMessage()); |
|
|
|
noError = false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
final PatrolPresetPosSlim presetPos = queryPatrolPresetPos(uuid, patrolTaskInfo.getDeviceId()); |
|
|
|
boolean noError = ivsOperateRetryableDelegate.setCameraToPreset(uuid, presetPos); |
|
|
|
if (!testMode && noError) { |
|
|
|
log.info("setCameraToPreset no error, delay 20 seconds"); |
|
|
|
myDelay(20000); |
|
|
|
@ -512,6 +496,7 @@ public class JobMainTask { |
|
|
|
+ "/" + taskExecRecord.getTaskCode() |
|
|
|
+ "/"; |
|
|
|
log.info("uuid: {}, basePath: {}", uuid, basePath); |
|
|
|
String taskPatrolId = taskExecRecord.getTaskPatrolId(); |
|
|
|
if (PresetAction.PHOTO.getCode().equals(presetAction.getActionType())) { |
|
|
|
final String chanType = presetPos.getChannelType(); |
|
|
|
fileTypes.append("ir".equals(chanType) ? "1" : "vl".equals(chanType) ? "2" : "").append(","); |
|
|
|
@ -522,7 +507,7 @@ public class JobMainTask { |
|
|
|
String paramUrl = liveIVS_URL + "/api/v1/device/channelsnap?serial=" |
|
|
|
+ presetPos.getVideoNvrCode() |
|
|
|
+ "&realtime=true&code=" + presetPos.getChannelCode() |
|
|
|
+ "&presetName=" + presetPos.getPresetPosName() |
|
|
|
+ "&presetName=" + URLEncoder.encode(presetPos.getPresetPosName(), ("UTF-8")) |
|
|
|
+ "&patrolPointId=" + presetPos.getPatrolPointId(); |
|
|
|
String paramFileName = taskPatrolId.split(StringUtils.UNDERLINE)[1] + StringUtils.UNDERLINE |
|
|
|
+ taskPatrolId.split(StringUtils.UNDERLINE)[2] + StringUtils.UNDERLINE |
|
|
|
@ -656,7 +641,7 @@ public class JobMainTask { |
|
|
|
synchronized private void addPointRecord(boolean bOk, |
|
|
|
PatrolTaskExecRecord taskExecRecord, |
|
|
|
PatrolTaskInfo taskInfo, |
|
|
|
PatrolPresetPos presetPos, |
|
|
|
PatrolPresetPosSlim presetPos, |
|
|
|
StringBuffer fileTypes, |
|
|
|
StringBuffer filePaths) { |
|
|
|
String rectangle = getRectangle(presetPos.getPresetPosId()); |
|
|
|
@ -885,7 +870,7 @@ public class JobMainTask { |
|
|
|
PatrolTaskExecRecord taskExecRecord, |
|
|
|
int infoListSize, |
|
|
|
PatrolTaskInfo taskInfo, |
|
|
|
PatrolPresetPos presetPos, |
|
|
|
PatrolPresetPosSlim presetPos, |
|
|
|
StringBuffer fileTypes, |
|
|
|
StringBuffer filePaths) { |
|
|
|
|
|
|
|
@ -1077,7 +1062,7 @@ public class JobMainTask { |
|
|
|
.taskMajorId(record.getTaskId().toString()) |
|
|
|
.build()); |
|
|
|
|
|
|
|
for(PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { |
|
|
|
for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { |
|
|
|
PatrolPresetPos patrolPresetPos = PatrolPresetPos.builder() |
|
|
|
.patrolPointId(Long.parseLong(patrolTaskInfo.getDeviceId())) |
|
|
|
.isEnable("1") |
|
|
|
@ -1221,9 +1206,9 @@ public class JobMainTask { |
|
|
|
|
|
|
|
private int calcTaskAlgorithmTotalNumber(List<PatrolTaskInfo> patrolTaskInfoList) { |
|
|
|
int totalAlgorithmNumber = 0; |
|
|
|
for(PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { |
|
|
|
for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { |
|
|
|
String result = taskExecClient.getAlgSubtypeIdsByPatrolPointId(patrolTaskInfo.getDeviceId()); |
|
|
|
if(StringUtils.isNotEmpty(result)) { |
|
|
|
if (StringUtils.isNotEmpty(result)) { |
|
|
|
String[] algSubtypeIds = result.split(StringUtils.COMMA); |
|
|
|
totalAlgorithmNumber += algSubtypeIds.length; |
|
|
|
} |
|
|
|
@ -1231,6 +1216,7 @@ public class JobMainTask { |
|
|
|
|
|
|
|
return totalAlgorithmNumber; |
|
|
|
} |
|
|
|
|
|
|
|
private void prePointExecImmediate(final PatrolTaskExecRecord patrolTaskExecRecord, List<PatrolTaskInfo> patrolTaskInfoList) { |
|
|
|
Map<String, List<PatrolTaskInfo>> deviceMap = new HashMap<>(); |
|
|
|
for (PatrolTaskInfo patrolTaskInfo : patrolTaskInfoList) { |
|
|
|
@ -1317,7 +1303,7 @@ public class JobMainTask { |
|
|
|
Thread.currentThread().interrupt(); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if(status == -1 || status == 0) { |
|
|
|
} else if (status == -1 || status == 0) { |
|
|
|
log.info("task status error state taskPatrolId: {}", taskPatrolId); |
|
|
|
} |
|
|
|
prePointExec(patrolTaskExecRecord, taskInfo, batch.size()); |
|
|
|
|