diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java index a2e2e5b..a9730a2 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsControlController.java @@ -11,6 +11,7 @@ import com.inspect.ivs.service.IvsResourceRetryableDelegate; import com.inspect.ivs.util.UriUtils; import com.inspect.ivs.view.IvsPresetListView; import com.inspect.ivs.view.IvsPresetView; +import com.inspect.ivs.vo.IvsPresetExVo; import com.inspect.ivs.vo.IvsVo; import com.inspect.ivs.vo.IvsPresetVo; import com.inspect.ivs.vo.IvsPtzVo; @@ -94,6 +95,24 @@ public class IvsControlController { paramJsonRemove.put("presetIndex", Integer.parseInt(ivsPresetVo.getPreset())); ivsCommonService.delete(ivsResourceRetryableDelegate.getLabel(), UriUtils.parseForReplace(IvsConst.URI_PRESET_REMOVE, paramJsonRemove)); return Response.ok(); + } else if (command.equals("correction")) { + return Response.ok(); + } else { + return Response.ok(); + } + } + + @GetMapping({"presetEx"}) + public Response presetEx(IvsPresetExVo ivsPresetVo) { + String command = ivsPresetVo.getCommand(); + log.info("PRESET_EX param: {}, command: {}", ivsPresetVo, command); + if (command.equals("correction")) { + String uuid = ivsResourceRetryableDelegate.getLabel(); + log.info("PRESET_EX CORRECTION UUID: {}, CameraCode: {}", + uuid, + ivsPresetVo.getCameraCode()); + ivsPresetVo.setUUID(uuid); + return ivsResourceRetryableDelegate.gotoSnapshotPresetExRetryable(version, ivsPresetVo); } else { return Response.ok(); } diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java index 6c332e1..f78756a 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/service/IvsResourceRetryableDelegate.java @@ -8,10 +8,7 @@ import com.inspect.ivs.constant.IvsConst; import com.inspect.ivs.util.UriUtils; import com.inspect.ivs.view.IvsPlatformSnapshotView; import com.inspect.ivs.view.IvsSnapshotView; -import com.inspect.ivs.vo.IvsChanSnapVo; -import com.inspect.ivs.vo.IvsDevChanSnapVo; -import com.inspect.ivs.vo.IvsPresetVo; -import com.inspect.ivs.vo.IvsVo; +import com.inspect.ivs.vo.*; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; @@ -105,6 +102,44 @@ public class IvsResourceRetryableDelegate { return Response.fail(); } + // 转到预置位 + @Retryable( + value = RuntimeException.class, + maxAttempts = RETRYABLE_MAX, + backoff = @Backoff(delay = 2000)) // 每次重试间隔 2 秒 + public Response gotoSnapshotPresetExRetryable(String version, IvsPresetExVo ivsPresetVo) { + int retryCount = RetrySynchronizationManager.getContext() != null + ? RetrySynchronizationManager.getContext().getRetryCount() + 1 + : 1; + log.info("URI_PTZ_CONTROL_EX CORRECTION: retryCount: {}, BODY: {}", + retryCount, + ivsPresetVo); + log.debug("URI_PTZ_CONTROL_EX CORRECTION: IVS VERSION: {}", version); + JSONObject paramJson = new JSONObject(); + paramJson.put("cameraCode", ivsPresetVo.getCameraCode()); + paramJson.put("controlCode", "11"); + paramJson.put("controlPara1", ivsPresetVo.getControlPara1()); + paramJson.put("controlPara2", ivsPresetVo.getControlPara2()); + try { + final String apiAddr = getApiAddress(ivsPresetVo); + log.info("URI_PTZ_CONTROL_EX CORRECTION apiAddr: {}", apiAddr); + ivsCommonService.postJson(ivsPresetVo.getUUID(), apiAddr, IvsConst.URI_PTZ_CONTROL, paramJson, IvsResult.class); + log.info("URI_PTZ_CONTROL_EX CORRECTION SUCCESS retryCount: {}, apiAddr: {}", retryCount, apiAddr); + } catch (Exception e) { + log.info("URI_PTZ_CONTROL_EX CORRECTION FAIL retryCount: {}, UUID: {}", retryCount, ivsPresetVo.getUUID()); + //throw new IOException("URI_PTZ_CONTROL GOTO: FAIL UUID: " + ivsPresetVo.getUUID() + ", retryCount: " + retryCount + ", MSG: " + e); + throw new RuntimeException("URI_PTZ_CONTROL_EX CORRECTION: FAIL UUID: " + ivsPresetVo.getUUID() + ", retryCount: " + retryCount + ", MSG: " + e); + } + return Response.ok(); + } + + @SuppressWarnings("unused") + @Recover + public Response recover(RuntimeException e, String version, IvsPresetExVo ivsPresetVo) { + log.info("URI_PTZ_CONTROL_EX CORRECTION RECOVER UUID: {}, MSG: {}", ivsPresetVo.getUUID(), e.getMessage()); + return Response.fail(); + } + // 下发拍照命令 @Retryable( value = IOException.class, diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetExVo.java b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetExVo.java new file mode 100644 index 0000000..94c9d0e --- /dev/null +++ b/inspect-ivs/src/main/java/com/inspect/ivs/vo/IvsPresetExVo.java @@ -0,0 +1,13 @@ +package com.inspect.ivs.vo; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class IvsPresetExVo extends IvsVo { + private String command; + private String controlCode; + private String controlPara1; + private String controlPara2; +} diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java index 5382742..5350ca0 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java @@ -793,6 +793,13 @@ public class PatrolTaskController extends BaseController { return toAjax(1); } + @PostMapping({"/correction"}) + public AjaxResult correctionAlgorithm(@RequestBody PatrolData patrolData) { + logger.info("correctionAlgorithm patrolData: {}", patrolData); + patrolTaskService.correctionAlgorithm(patrolData); + return toAjax(1); + } + public String calcWeekList(String week) { List weekList = new ArrayList<>(); if (week.contains(StringUtils.COMMA)) { diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java index 3e351b7..51324cc 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java @@ -43,4 +43,6 @@ public interface PatrolTaskMapper { int deletePatrolTaskByTaskIds(Long[] taskIds); List> selectTaskRationalGroupByType(); + + String selectChannelCodeByPatrolPointId(String patrolPointId); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java index 4b32a19..d046c11 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java @@ -1,6 +1,7 @@ package com.inspect.task.service; import com.inspect.task.domain.DeviceConvert; +import com.inspect.task.domain.PatrolData; import com.inspect.task.domain.PatrolTask; import java.util.List; @@ -48,4 +49,6 @@ public interface IPatrolTaskService { List> defectList3(); List> pointStatistics(); + + void correctionAlgorithm(PatrolData patrolData); } diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java index 407ebb4..a34ee9c 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java @@ -1,19 +1,25 @@ package com.inspect.task.service.impl; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.inspect.analysis.mapper.ResultAnalysisMapper; import com.inspect.base.core.utils.DateUtils; import com.inspect.task.domain.DeviceConvert; +import com.inspect.task.domain.PatrolData; import com.inspect.task.domain.PatrolTask; import com.inspect.task.mapper.PatrolTaskMapper; import com.inspect.task.service.IPatrolTaskService; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +@Slf4j @Service public class PatrolTaskServiceImpl implements IPatrolTaskService { @@ -112,4 +118,26 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService { public List> pointStatistics() { return this.resultAnalysisMapper.pointStatistics(); } + + public void correctionAlgorithm(PatrolData patrolData) { + log.info("controller correctionAlgorithm pointId: {}, resValue: {}", + patrolData.getPointId(), + patrolData.getResValue()); + final String channelCode = patrolTaskMapper.selectChannelCodeByPatrolPointId(patrolData.getPointId()); + log.info("controller correctionAlgorithm channelCode: {}", channelCode); + ObjectMapper mapper = new ObjectMapper(); + List> list; + try { + list = mapper.readValue(patrolData.getResValue(), new TypeReference>>() { + }); + log.info("controller correctionAlgorithm correction value: {}", list); + } catch (Exception e) { + log.info("controller correctionAlgorithm correction value exception"); + list = new ArrayList<>(); + } + + if(list.size() == 2 && list.get(0).size() == 2 && list.get(1).size() == 2) { + + } + } } diff --git a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml index 6754d4c..d255c88 100644 --- a/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml +++ b/inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml @@ -347,4 +347,8 @@ from patrol_task p group by p.type; + +