From ca0391eeab5a1586aed14018510cb4c3c0cd6131 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期三, 28 二月 2024 09:17:12 +0800
Subject: [PATCH] 三一车辆用户查询修改提交
---
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java | 1365 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 688 insertions(+), 677 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
index a13a827..1c4cb8b 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -1,677 +1,688 @@
-package com.ruoyi.inspect.service.impl;
-
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
-import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.device.camera.domain.ArdCameras;
-import com.ruoyi.device.camera.domain.CameraCmd;
-import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
-import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
-import com.ruoyi.device.hiksdk.service.IHikClientService;
-import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
-import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
-import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import org.springframework.transaction.annotation.Transactional;
-import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
-import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
-import com.ruoyi.inspect.domain.ArdVideoInspectTask;
-import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-
-/**
- * 瑙嗛宸℃浠诲姟Service涓氬姟灞傚鐞�
- *
- * @author ruoyi
- * @date 2023-05-30
- */
-@Service
-@Slf4j(topic = "PatrolInspectionTask")
-public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
- @Resource
- private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
- @Resource
- private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper;
- @Resource
- private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
- @Resource
- private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper;
- @Resource
- private ArdCamerasMapper ardCamerasMapper;
- @Resource
- private IHikClientService hikClientService;
- @Resource
- private ArdCamerasMapper camerasMapper;
-
- @PostConstruct
- public void initTask() {
- List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
- for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) {
- /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/
- if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) {
- ardVideoInspectTask.setMenualSwitch("鍏�");
- }
- ardVideoInspectTask.setCurrentStepId("");
- ardVideoInspectTask.setCurrentStepStartTime("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
- }
- }
-
- /**
- * 鏌ヨ瑙嗛宸℃浠诲姟
- *
- * @param id 瑙嗛宸℃浠诲姟涓婚敭
- * @return 瑙嗛宸℃浠诲姟
- */
- @Override
- public ArdVideoInspectTask selectArdVideoInspectTaskById(String id) {
- return ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(id);
- }
-
- /**
- * 鏌ヨ瑙嗛宸℃浠诲姟鍒楄〃
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
- * @return 瑙嗛宸℃浠诲姟
- */
- @Override
- public List<ArdVideoInspectTask> selectArdVideoInspectTaskList(ArdVideoInspectTask ardVideoInspectTask) {
- return ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
- }
-
- /**
- * 鏂板瑙嗛宸℃浠诲姟
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
- * @return 缁撴灉
- */
- @Transactional
- @Override
- public int insertArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
- ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
- ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
- ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
- int rows = ardVideoInspectTaskMapper.insertArdVideoInspectTask(ardVideoInspectTask);
- insertArdVideoInspectTaskStep(ardVideoInspectTask);
- return rows;
- }
-
- /**
- * 淇敼瑙嗛宸℃浠诲姟
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
- * @return 缁撴灉
- */
- @Transactional
- @Override
- public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
- ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
- ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
- // ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId());
- insertArdVideoInspectTaskStep(ardVideoInspectTask);
- return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
- }
-
- /**
- * 淇敼瑙嗛宸℃浠诲姟,bu鏇存柊姝ラ
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
- * @return 缁撴灉
- */
- @Transactional
- @Override
- public int updateArdVideoInspectTaskSingle(ArdVideoInspectTask ardVideoInspectTask) {
- ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
- ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
- return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
- }
-
- @Override
- public int updateArdVideoInspectTaskNoUpdater(ArdVideoInspectTask ardVideoInspectTask) {
- return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
- }
-
- /**
- * 鎵归噺鍒犻櫎瑙嗛宸℃浠诲姟
- *
- * @param ids 闇�瑕佸垹闄ょ殑瑙嗛宸℃浠诲姟涓婚敭
- * @return 缁撴灉
- */
- @Transactional
- @Override
- public int deleteArdVideoInspectTaskByIds(String[] ids) {
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids);
- return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskByIds(ids);
- }
-
- /**
- * 鍒犻櫎瑙嗛宸℃浠诲姟淇℃伅
- *
- * @param id 瑙嗛宸℃浠诲姟涓婚敭
- * @return 缁撴灉
- */
- @Transactional
- @Override
- public int deleteArdVideoInspectTaskById(String id) {
- ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(id);
- return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskById(id);
- }
-
- /**
- * 鏂板瑙嗛宸℃姝ラ淇℃伅
- *
- * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟瀵硅薄
- */
- public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) {
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
- //鑾峰彇鐩告満
- ArdCameras camera = camerasMapper.selectArdCamerasById(ardVideoInspectTask.getCameraId());
- Collections.sort(ardVideoInspectTaskStepList, new ArdVideoInspectTaskStepComparator(this.ardAlarmpointsWellMapper, camera.getLongitude(), camera.getLatitude()));
- String taskId = ardVideoInspectTask.getId();
- for (int i = 0; i < ardVideoInspectTaskStepList.size(); i++) {
- ArdVideoInspectTaskStep step = ardVideoInspectTaskStepList.get(i);
- step.setTaskId(taskId);
- step.setOrderNumber(new Integer(i + 1));
- }
- if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
- for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
- if (ardVideoInspectTaskStep.getId() == null) {
- //鏂扮殑姝ラ,娣诲姞
- ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep);
- } else {
- //宸叉湁姝ラ,鏇存柊
- ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep);
- }
- }
- }
- }
-
- /**
- * 鎵嬪姩宸℃浠诲姟
- */
- @Override
- public void manualTaskRun(String TaskId) {
- try {
- ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
- if (!videoInspectTask.getMenualSwitch().equals("寮�")) {
- return;
- }
- if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
- return;
- }
- String currentStepId = videoInspectTask.getCurrentStepId();
- String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
- if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
- //浠�1鍙锋楠ゅ紑濮�
- videoInspectTask.setCurrentStepId(videoInspectTask.getArdVideoInspectTaskStepList().get(0).getId());
- if (InspectionTaskManager.taskMap.containsKey(TaskId)) {
- startRunStep(videoInspectTask);
- }
- } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
- if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
- //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
- startRunStep(videoInspectTask);
- } else {
- boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (expird) {
- //鍋滄褰曞儚
- stopRunStep(videoInspectTask);
- //鍒囨崲姝ラ
- String nextStepId = changeNextStep(videoInspectTask);
- //寮�濮嬩笅涓�姝ラ
- videoInspectTask.setCurrentStepId(nextStepId);
- startRunStep(videoInspectTask);
- } else {
- //鏈繃鏈熷皾璇曞紩瀵硷紝寮曞澶辫触娓呯┖褰撳墠姝ラ寮�濮嬫椂闂达紝鏍囪涓柇
- tryGuide(videoInspectTask);
- }
- }
- }
- } catch (Exception ex) {
- log.error("鎵嬪姩宸℃寮傚父锛�" + ex.getMessage());
- }
- }
-
- /**
- * 鍒ゆ柇褰撳墠鎵嬪姩浠诲姟鑳藉惁寮�鍚�
- */
- @Override
- public boolean isEnablemanualTask(String TaskId) {
- /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
- List<String> menualCameraId = new ArrayList<>();
- ArdVideoInspectTask menualTask = new ArdVideoInspectTask();
- menualTask.setInspectMode("鎵嬪姩");
- menualTask.setMenualSwitch("寮�");
- List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask);
- if (menualTasks.size() > 0) {
- for (ArdVideoInspectTask task : menualTasks) {
- if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
- continue;
- }
- if (!menualCameraId.contains(task.getCameraId())) {
- menualCameraId.add(task.getCameraId());
- }
- }
- }
- /*鍒ゆ柇鐩告満鏄惁宸茬粡琚汉鎵嬪姩鎺у埗*/
- ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
- if (StringUtils.isNull(videoInspectTask)) {
- return false;
- }
- String cameraId = videoInspectTask.getCameraId();
- if (StringUtils.isEmpty(cameraId)) {
- return false;
- }
- if (menualCameraId.contains(cameraId)) {
- /*濡傛灉褰撳墠浠诲姟鍏宠仈鐨勭浉鏈哄凡缁忔湁浜烘墜鍔ㄦ帶鍒讹紝鍒欎笉鍏佽鎺у埗*/
- return false;
- }
- return true;
- }
-
- /**
- * 鑷姩宸℃浠诲姟
- */
- @Override
- public void autoTaskRun() {
- try {
- /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
- List<String> menualCameraId = new ArrayList<>();
- ArdVideoInspectTask menualTask = new ArdVideoInspectTask();
- menualTask.setInspectMode("鎵嬪姩");
- menualTask.setMenualSwitch("寮�");
- List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask);
- if (menualTasks.size() > 0) {
- for (ArdVideoInspectTask task : menualTasks) {
- if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
- continue;
- }
- if (!menualCameraId.contains(task.getCameraId())) {
- menualCameraId.add(task.getCameraId());
- }
- }
- }
-
- /*鎵弿鎵�鏈夎嚜鍔ㄤ换鍔�*/
- ArdVideoInspectTask autoTask = new ArdVideoInspectTask();
- autoTask.setInspectMode("鑷姩");
- List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(autoTask);
- for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
- /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
- boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
- if (timeCompare) {
- if (menualCameraId.contains(videoInspectTask.getCameraId())) {
- /*鑻ュ綋鍓嶇浉鏈烘鍦ㄦ湁浠诲姟鎵嬪姩鎵ц锛屽垯涓嶆墽琛�*/
- continue;
- }
- /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- if (ardVideoInspectTaskStepList.size() == 0) {
- continue;
- }
- videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
-
- String currentStepId = videoInspectTask.getCurrentStepId();
- String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
- if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
- //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
- videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
- startRunStep(videoInspectTask);
- } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
- if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
- //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
- startRunStep(videoInspectTask);
- } else {
- //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
- boolean expird = isExpirdStep(videoInspectTask);
- if (expird) {
- //鍋滄褰曞儚
- stopRunStep(videoInspectTask);
- //鍒囨崲姝ラ
- String nextStepId = changeNextStep(videoInspectTask);
- //寮�濮嬩笅涓�姝ラ
- videoInspectTask.setCurrentStepId(nextStepId);
- startRunStep(videoInspectTask);
- } else {
- tryGuide(videoInspectTask);
- }
- }
- }
- } else {
- if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepId())) {
- videoInspectTask.setCurrentStepId("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
- }
- if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepStartTime())) {
- videoInspectTask.setCurrentStepId("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
- }
- }
- }
- } catch (Exception ex) {
- log.error("鑷姩宸℃浠诲姟寮傚父锛�" + ex.getMessage());
- }
- }
-
- /**
- * 鑷姩鎵嬪姩鍚堝苟锛屾壂搴撴柟寮忥紝鐩墠涓嶄娇鐢�
- */
- @Override
- public void taskRun() {
- ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
- List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
- for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
- if (videoInspectTask.getInspectMode().equals("鑷姩")) {
- boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
- if (!timeCompare) {
- continue;
- }
- } else {
- if (videoInspectTask.getMenualSwitch().equals("鍏�")) {
- continue;
- }
- }
- /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
- if (ardVideoInspectTaskStepList.size() == 0) {
- continue;
- }
- videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
- String currentStepId = videoInspectTask.getCurrentStepId();//褰撳墠姝ラid
- String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();//褰撳墠姝ラ鍚姩鏃堕棿
- if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
- //寮�濮嬬涓�涓楠�
- videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
- startRunStep(videoInspectTask);
- } else {
- if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
- //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
- startRunStep(videoInspectTask);
- } else {
- boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (expird) {
- //鍋滄褰曞儚
- stopRunStep(videoInspectTask);
- //鍒囨崲姝ラ
- String nextStepId = changeNextStep(videoInspectTask);
- //寮�濮嬩笅涓�姝ラ
- videoInspectTask.setCurrentStepId(nextStepId);
- startRunStep(videoInspectTask);
- }
- }
- }
- }
- }
-
- //姝ラ寮�濮�
- private void startRunStep(ArdVideoInspectTask ardVideoInspectTask) {
- try {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- if (StringUtils.isNull(currentStepId)) {
- log.info("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
- return;
- }
- log.debug("宸℃姝ラ锛�" + currentStepId + "灏濊瘯寮�濮�");
- String cameraId = ardVideoInspectTask.getCameraId();
- Integer channel = ardVideoInspectTask.getChannel();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- ArdVideoInspectTaskStep step = objectOptional.get();
- /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
- ardVideoInspectTask.setCurrentStepId(step.getId());
- ardVideoInspectTask.setCurrentStepStartTime(DateUtils.getTime());
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
- String wellId = step.getWellId();
- if (!StringUtils.isNull(wellId)) {
- /*鑾峰彇浜曞潗鏍�*/
- ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
- double[] targetPositon = new double[3];
- targetPositon[0] = ardAlarmpointsWell.getLongitude();
- targetPositon[1] = ardAlarmpointsWell.getLatitude();
- targetPositon[2] = ardAlarmpointsWell.getAltitude();
- /*鑾峰彇鐩告満鍧愭爣*/
- ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
- double[] cameraPositon = new double[3];
- cameraPositon[0] = cameras.getLongitude();
- cameraPositon[1] = cameras.getLatitude();
- cameraPositon[2] = cameras.getAltitude();
- /*鎺у埗鐩告満宸℃*/
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(cameraId);
- cmd.setChannelNum(channel);
- cmd.setTargetPosition(targetPositon);
- cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime() * 60);
- boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
- if (setTargetPosition) {
- /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
- hikClientService.recordStart(cmd);
- } else {
- /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
- ardVideoInspectTask.setCurrentStepStartTime("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
- }
- }
- }
- } catch (Exception ex) {
- log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
- }
- }
-
- //灏濊瘯鎺у埗寮曞
- private void tryGuide(ArdVideoInspectTask ardVideoInspectTask) {
- try {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- if (StringUtils.isNull(currentStepId)) {
- log.info("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
- return;
- }
- log.debug("宸℃姝e父锛屽皾璇曞紩瀵硷細" + currentStepId);
- String cameraId = ardVideoInspectTask.getCameraId();
- Integer channel = ardVideoInspectTask.getChannel();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- ArdVideoInspectTaskStep step = objectOptional.get();
- String wellId = step.getWellId();
- if (!StringUtils.isNull(wellId)) {
- /*鑾峰彇浜曞潗鏍�*/
- ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
- double[] targetPositon = new double[3];
- targetPositon[0] = ardAlarmpointsWell.getLongitude();
- targetPositon[1] = ardAlarmpointsWell.getLatitude();
- targetPositon[2] = ardAlarmpointsWell.getAltitude();
- /*鑾峰彇鐩告満鍧愭爣*/
- ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
- double[] cameraPositon = new double[3];
- cameraPositon[0] = cameras.getLongitude();
- cameraPositon[1] = cameras.getLatitude();
- cameraPositon[2] = cameras.getAltitude();
- /*鎺у埗鐩告満宸℃*/
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(cameraId);
- cmd.setChannelNum(channel);
- cmd.setTargetPosition(targetPositon);
- cmd.setOperator("sys_patrol_inspect");
- cmd.setExpired(step.getRecordingTime() * 60);
- boolean setTargetPosition = hikClientService.guideTargetPosition(cmd);
- if (!setTargetPosition) {
- /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
- ardVideoInspectTask.setCurrentStepStartTime("");
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
- } else {
- log.debug("寮曞鎴愬姛!");
- }
- }
- }
- } catch (Exception ex) {
- log.error("宸℃灏濊瘯寮曞寮傚父锛�" + ex.getMessage());
- }
- }
-
- //姝ラ鍋滄
- private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
- try {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- log.debug("宸℃姝ラ锛�" + currentStepId + "鍋滄");
- if (StringUtils.isNull(currentStepId)) {
- log.info("褰撳墠鍋滄宸℃姝ラid涓虹┖");
- return;
- }
- String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
- String cameraId = ardVideoInspectTask.getCameraId();
- Integer channel = ardVideoInspectTask.getChannel();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- ArdVideoInspectTaskStep step = objectOptional.get();
- /*鍋滄褰曞儚*/
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(cameraId);
- cmd.setChannelNum(channel);
- cmd.setOperator("sys_patrol_inspect");
- cmd.setRecordBucketName("record");
- cmd.setRecordObjectName("inspect_" + IdUtils.fastSimpleUUID());
- String url = hikClientService.recordStopToMinio(cmd);
- /*鎻掑叆宸℃璁板綍*/
- ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
- ardVideoInspectRecord.setStepId(step.getId());
- ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(step.getWellId());
- if (StringUtils.isNotNull(ardAlarmpointsWell)) {
- ardVideoInspectRecord.setWellName(ardAlarmpointsWell.getWellId());
- }
- Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
- Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, step.getRecordingTime());
- ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartDate));
- ardVideoInspectRecord.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStopDate));
- ardVideoInspectRecord.setRecordFilePath(url);
- ardVideoInspectRecordMapper.insertArdVideoInspectRecord(ardVideoInspectRecord);
- }
- } catch (Exception ex) {
- log.error("宸℃鍋滄寮傚父:" + ex.getMessage());
- }
- }
-
- //姝ラ鍒ゆ柇鏄惁杩囨湡
- private boolean isExpirdStep(ArdVideoInspectTask ardVideoInspectTask) {
- try {
- List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
- /*鑾峰彇褰撳墠浠诲姟姝e湪鎵ц鐨勬楠ゅ拰褰撳墠姝ラ寮�濮嬬殑鏃堕棿*/
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTaskStepList.stream()
- .filter(ardVideoInspectTaskStep -> ardVideoInspectTaskStep.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- /*鑾峰彇褰撳墠姝ラ淇℃伅*/
- ArdVideoInspectTaskStep currentStep = objectOptional.get();
- /*鑾峰彇鍒板綋鍓嶆楠ょ殑寮�濮嬪拰缁撴潫鏃堕棿*/
- Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
- Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, currentStep.getRecordingTime());
- /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
- if (!DateUtils.TimeCompare(currentStepStartDate, currentStepStopDate)) {
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
- } catch (Exception ex) {
- log.error("鍒ゆ柇宸℃姝ラ杩囨湡寮傚父锛�" + ex.getMessage());
- return false;
- }
- }
-
- //姝ラ鍒囨崲
- private String changeNextStep(ArdVideoInspectTask ardVideoInspectTask) {
- try {
- String currentStepId = ardVideoInspectTask.getCurrentStepId();
- Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getId().equals(currentStepId))
- .findFirst();
- if (objectOptional.isPresent()) {
- ArdVideoInspectTaskStep step = objectOptional.get();
- Integer currentStepOrderNumber = step.getOrderNumber();
- /*鍒ゆ柇褰撳墠姝ラ搴忓彿鏄惁灏忎簬姝ラ鎬绘暟*/
- if (currentStepOrderNumber < ardVideoInspectTask.getArdVideoInspectTaskStepList().size()) {
- /*灏忎簬鍒欐墽琛屼笅涓�姝ラ*/
- currentStepOrderNumber++;
- } else {
- /*鍚﹀垯浠�1寮�濮嬫墽琛�*/
- currentStepOrderNumber = 1;
- }
- Integer nextStepOrderNumber = currentStepOrderNumber;
- /*鏇存柊褰撳墠浠诲姟鍒囨崲鏂版楠�*/
- ArdVideoInspectTask avit = new ArdVideoInspectTask();
- avit.setId(ardVideoInspectTask.getId());
- String nextStepId = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
- .filter(obj -> obj.getOrderNumber() == nextStepOrderNumber)
- .map(ArdVideoInspectTaskStep::getId)
- .findFirst()
- .orElse(null);
- avit.setCurrentStepId(nextStepId);
- ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(avit);
- log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�" + nextStepId);
- return nextStepId;
- }
- } catch (Exception ex) {
- log.error("宸℃姝ラ鍒囨崲寮傚父锛�" + ex.getMessage());
- }
- return "";
- }
-
- public List getTaskUsedCameraPeriods(String cameraId) {
- return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId);
- }
-
- /**
- * 鑾峰彇鐩告満鐨勭┖闂叉椂娈�
- * @param cameraId
- * @return
- */
- public List getCameraIdleTimeList(String cameraId) {
- LinkedList<String> timeList = new LinkedList();
- List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId);
- for (Map p :
- usedPeriods) {
- timeList.add((String) p.get("start_time"));
- timeList.add((String) p.get("end_time"));
- }
- //鍒ゆ柇绗竴涓捣濮嬬偣
- if (timeList.size() > 0) {
- if ("00:00:00".equals(timeList.getFirst())) {
- timeList.removeFirst();
- } else {
- timeList.addFirst("00:00:00");
- }
- //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂�
- if ("23:59:59".equals(timeList.getLast())) {
- timeList.removeLast();
- } else {
- timeList.addLast("23:59:59");
- }
- //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
- if (timeList.size() == 0) {
- timeList.add("00:00:00");
- timeList.add("23:59:59");
- }
-
- }
-
- return timeList;
- }
-}
+package com.ruoyi.inspect.service.impl;
+
+import java.util.*;
+
+import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
+import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.device.camera.domain.ArdCameras;
+import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
+import com.ruoyi.device.camera.service.ICameraSdkService;
+import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
+import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
+import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.transaction.annotation.Transactional;
+import com.ruoyi.inspect.domain.ArdVideoInspectTaskStep;
+import com.ruoyi.inspect.mapper.ArdVideoInspectTaskMapper;
+import com.ruoyi.inspect.domain.ArdVideoInspectTask;
+import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+/**
+ * 瑙嗛宸℃浠诲姟Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-05-30
+ */
+@Service
+@Slf4j(topic = "patrolInspectionTask")
+public class ArdVideoInspectTaskServiceImpl implements IArdVideoInspectTaskService {
+ @Resource
+ private ArdVideoInspectTaskMapper ardVideoInspectTaskMapper;
+ @Resource
+ private ArdVideoInspectTaskStepMapper ardVideoInspectTaskStepMapper;
+ @Resource
+ private ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
+ @Resource
+ private ArdVideoInspectRecordMapper ardVideoInspectRecordMapper;
+ @Resource
+ private ArdCamerasMapper ardCamerasMapper;
+ @Resource
+ private ICameraSdkService cameraSdkService;
+ @Resource
+ private ArdCamerasMapper camerasMapper;
+
+ @PostConstruct
+ public void initTask() {
+ List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
+ for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) {
+ /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/
+ if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) {
+ ardVideoInspectTask.setMenualSwitch("鍏�");
+ }
+ ardVideoInspectTask.setCurrentStepId("");
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+ }
+ }
+
+ /**
+ * 鏌ヨ瑙嗛宸℃浠诲姟
+ *
+ * @param id 瑙嗛宸℃浠诲姟涓婚敭
+ * @return 瑙嗛宸℃浠诲姟
+ */
+ @Override
+ public ArdVideoInspectTask selectArdVideoInspectTaskById(String id) {
+ return ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(id);
+ }
+
+ /**
+ * 鏌ヨ瑙嗛宸℃浠诲姟鍒楄〃
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
+ * @return 瑙嗛宸℃浠诲姟
+ */
+ @Override
+ public List<ArdVideoInspectTask> selectArdVideoInspectTaskList(ArdVideoInspectTask ardVideoInspectTask) {
+ return ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
+ }
+
+ /**
+ * 鏂板瑙嗛宸℃浠诲姟
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
+ * @return 缁撴灉
+ */
+ @Transactional
+ @Override
+ public int insertArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
+ ardVideoInspectTask.setId(IdUtils.simpleUUID());
+ ardVideoInspectTask.setCreateBy(SecurityUtils.getUsername());
+ ardVideoInspectTask.setCreateTime(DateUtils.getNowDate());
+ ardVideoInspectTask.setUserId(SecurityUtils.getUserId());
+ int rows = ardVideoInspectTaskMapper.insertArdVideoInspectTask(ardVideoInspectTask);
+ insertArdVideoInspectTaskStep(ardVideoInspectTask);
+ return rows;
+ }
+
+ /**
+ * 淇敼瑙嗛宸℃浠诲姟
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
+ * @return 缁撴灉
+ */
+ @Transactional
+ @Override
+ public int updateArdVideoInspectTask(ArdVideoInspectTask ardVideoInspectTask) {
+ ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
+ ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
+ // ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(ardVideoInspectTask.getId());
+ insertArdVideoInspectTaskStep(ardVideoInspectTask);
+ return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+ }
+
+ /**
+ * 淇敼瑙嗛宸℃浠诲姟,bu鏇存柊姝ラ
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟
+ * @return 缁撴灉
+ */
+ @Transactional
+ @Override
+ public int updateArdVideoInspectTaskSingle(ArdVideoInspectTask ardVideoInspectTask) {
+ ardVideoInspectTask.setUpdateBy(SecurityUtils.getUsername());
+ ardVideoInspectTask.setUpdateTime(DateUtils.getNowDate());
+ return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+ }
+
+ @Override
+ public int updateArdVideoInspectTaskNoUpdater(ArdVideoInspectTask ardVideoInspectTask) {
+ return ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎瑙嗛宸℃浠诲姟
+ *
+ * @param ids 闇�瑕佸垹闄ょ殑瑙嗛宸℃浠诲姟涓婚敭
+ * @return 缁撴灉
+ */
+ @Transactional
+ @Override
+ public int deleteArdVideoInspectTaskByIds(String[] ids) {
+ ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskIds(ids);
+ return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskByIds(ids);
+ }
+
+ /**
+ * 鍒犻櫎瑙嗛宸℃浠诲姟淇℃伅
+ *
+ * @param id 瑙嗛宸℃浠诲姟涓婚敭
+ * @return 缁撴灉
+ */
+ @Transactional
+ @Override
+ public int deleteArdVideoInspectTaskById(String id) {
+ ardVideoInspectTaskMapper.deleteArdVideoInspectTaskStepByTaskId(id);
+ return ardVideoInspectTaskMapper.deleteArdVideoInspectTaskById(id);
+ }
+
+ /**
+ * 鏂板瑙嗛宸℃姝ラ淇℃伅
+ *
+ * @param ardVideoInspectTask 瑙嗛宸℃浠诲姟瀵硅薄
+ */
+ public void insertArdVideoInspectTaskStep(ArdVideoInspectTask ardVideoInspectTask) {
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
+ //鑾峰彇鐩告満
+ ArdCameras camera = camerasMapper.selectArdCamerasById(ardVideoInspectTask.getCameraId());
+ Collections.sort(ardVideoInspectTaskStepList, new ArdVideoInspectTaskStepComparator(this.ardAlarmpointsWellMapper, camera.getLongitude(), camera.getLatitude()));
+ String taskId = ardVideoInspectTask.getId();
+ for (int i = 0; i < ardVideoInspectTaskStepList.size(); i++) {
+ ArdVideoInspectTaskStep step = ardVideoInspectTaskStepList.get(i);
+ step.setTaskId(taskId);
+ step.setOrderNumber(new Integer(i + 1));
+ }
+ if (StringUtils.isNotNull(ardVideoInspectTaskStepList)) {
+ for (ArdVideoInspectTaskStep ardVideoInspectTaskStep : ardVideoInspectTaskStepList) {
+ if (ardVideoInspectTaskStep.getId() == null) {
+ //鏂扮殑姝ラ,娣诲姞
+ ardVideoInspectTaskStep.setId(IdUtils.simpleUUID());
+ ardVideoInspectTaskStepMapper.insertArdVideoInspectTaskStep(ardVideoInspectTaskStep);
+ } else {
+ //宸叉湁姝ラ,鏇存柊
+ ardVideoInspectTaskStepMapper.updateArdVideoInspectTaskStep(ardVideoInspectTaskStep);
+ }
+ }
+ }
+ }
+
+ /**
+ * 鎵嬪姩宸℃浠诲姟
+ */
+ @Override
+ public void manualTaskRun(String TaskId) {
+ try {
+ ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+ if (!videoInspectTask.getMenualSwitch().equals("寮�")) {
+ return;
+ }
+ if (videoInspectTask.getArdVideoInspectTaskStepList().size() == 0) {
+ return;
+ }
+ String currentStepId = videoInspectTask.getCurrentStepId();
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+ if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
+ //浠�1鍙锋楠ゅ紑濮�
+ videoInspectTask.setCurrentStepId(videoInspectTask.getArdVideoInspectTaskStepList().get(0).getId());
+ if (InspectionTaskManager.taskMap.containsKey(TaskId)) {
+ startRunStep(videoInspectTask);
+ }
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓簄ull锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
+ startRunStep(videoInspectTask);
+ } else {
+ //鏈繃鏈熷皾璇曞紩瀵硷紝寮曞澶辫触娓呯┖褰撳墠姝ラ寮�濮嬫椂闂达紝鏍囪涓柇
+ tryGuide(videoInspectTask);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("鎵嬪姩宸℃寮傚父锛�" + ex.getMessage());
+ }
+ }
+
+ /**
+ * 鍒ゆ柇褰撳墠鎵嬪姩浠诲姟鑳藉惁寮�鍚�
+ */
+ @Override
+ public boolean isEnablemanualTask(String TaskId) {
+ /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
+ List<String> menualCameraId = new ArrayList<>();
+ ArdVideoInspectTask menualTask = new ArdVideoInspectTask();
+ menualTask.setInspectMode("鎵嬪姩");
+ menualTask.setMenualSwitch("寮�");
+ List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask);
+ if (menualTasks.size() > 0) {
+ for (ArdVideoInspectTask task : menualTasks) {
+ if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
+ continue;
+ }
+ if (!menualCameraId.contains(task.getCameraId())) {
+ menualCameraId.add(task.getCameraId());
+ }
+ }
+ }
+ /*鍒ゆ柇鐩告満鏄惁宸茬粡琚汉鎵嬪姩鎺у埗*/
+ ArdVideoInspectTask videoInspectTask = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(TaskId);
+ if (StringUtils.isNull(videoInspectTask)) {
+ return false;
+ }
+ String cameraId = videoInspectTask.getCameraId();
+ if (StringUtils.isEmpty(cameraId)) {
+ return false;
+ }
+ if (menualCameraId.contains(cameraId)) {
+ /*濡傛灉褰撳墠浠诲姟鍏宠仈鐨勭浉鏈哄凡缁忔湁浜烘墜鍔ㄦ帶鍒讹紝鍒欎笉鍏佽鎺у埗*/
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * 鑷姩宸℃浠诲姟
+ */
+ @Override
+ public void autoTaskRun() {
+ try {
+ /*鎵弿褰撳墠鎵嬪姩寮�鐨勪换鍔★紝鑾峰彇鎵嬪姩鎺у埗鐨勭浉鏈篿dList*/
+ List<String> menualCameraId = new ArrayList<>();
+ ArdVideoInspectTask menualTask = new ArdVideoInspectTask();
+ menualTask.setInspectMode("鎵嬪姩");
+ menualTask.setMenualSwitch("寮�");
+ List<ArdVideoInspectTask> menualTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(menualTask);
+ if (menualTasks.size() > 0) {
+ for (ArdVideoInspectTask task : menualTasks) {
+ if (StringUtils.isNull(task.getCameraId()) || StringUtils.isEmpty(task.getCameraId())) {
+ continue;
+ }
+ if (!menualCameraId.contains(task.getCameraId())) {
+ menualCameraId.add(task.getCameraId());
+ }
+ }
+ }
+
+ /*鎵弿鎵�鏈夎嚜鍔ㄤ换鍔�*/
+ ArdVideoInspectTask autoTask = new ArdVideoInspectTask();
+ autoTask.setInspectMode("鑷姩");
+ List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(autoTask);
+ for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
+ /*閬嶅巻鎵�鏈夋椂闂存弧瓒崇殑鑷姩浠诲姟*/
+ boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
+ if (timeCompare) {
+ if (menualCameraId.contains(videoInspectTask.getCameraId())) {
+ /*鑻ュ綋鍓嶇浉鏈烘鍦ㄦ湁浠诲姟鎵嬪姩鎵ц锛屽垯涓嶆墽琛�*/
+ continue;
+ }
+ /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
+ if (ardVideoInspectTaskStepList.size() == 0) {
+ continue;
+ }
+ videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+
+ String currentStepId = videoInspectTask.getCurrentStepId();
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();
+ if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
+ //寮�濮嬪綋鍓嶄换鍔$殑绗竴涓楠�
+ videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+ startRunStep(videoInspectTask);
+ } else /*褰撳墠浠诲姟宸茬粡鎵ц锛屽垽鏂槸鍚﹀埌鏈�*/ {
+ if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ //鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡
+ boolean expird = isExpirdStep(videoInspectTask);
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
+ startRunStep(videoInspectTask);
+ } else {
+ tryGuide(videoInspectTask);
+ }
+ }
+ }
+ } else {
+ if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepId())) {
+ videoInspectTask.setCurrentStepId("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
+ }
+ if (StringUtils.isNotEmpty(videoInspectTask.getCurrentStepStartTime())) {
+ videoInspectTask.setCurrentStepId("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(videoInspectTask);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("鑷姩宸℃浠诲姟寮傚父锛�" + ex.getMessage());
+ }
+ }
+
+ /**
+ * 鑷姩鎵嬪姩鍚堝苟锛屾壂搴撴柟寮忥紝鐩墠涓嶄娇鐢�
+ */
+ @Override
+ public void taskRun() {
+ ArdVideoInspectTask ardVideoInspectTask = new ArdVideoInspectTask();
+ List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(ardVideoInspectTask);
+ for (ArdVideoInspectTask videoInspectTask : ardVideoInspectTasks) {
+ if (videoInspectTask.getInspectMode().equals("鑷姩")) {
+ boolean timeCompare = DateUtils.TimeCompare(videoInspectTask.getStartTime(), videoInspectTask.getEndTime());
+ if (!timeCompare) {
+ continue;
+ }
+ } else {
+ if (videoInspectTask.getMenualSwitch().equals("鍏�")) {
+ continue;
+ }
+ }
+ /*鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊贰妫�姝ラ*/
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTaskMapper.selectArdVideoInspectTaskById(videoInspectTask.getId()).getArdVideoInspectTaskStepList();
+ if (ardVideoInspectTaskStepList.size() == 0) {
+ continue;
+ }
+ videoInspectTask.setArdVideoInspectTaskStepList(ardVideoInspectTaskStepList);
+ String currentStepId = videoInspectTask.getCurrentStepId();//褰撳墠姝ラid
+ String currentStepStartTime = videoInspectTask.getCurrentStepStartTime();//褰撳墠姝ラ鍚姩鏃堕棿
+ if (StringUtils.isNull(currentStepId) || StringUtils.isEmpty(currentStepId)) {
+ //寮�濮嬬涓�涓楠�
+ videoInspectTask.setCurrentStepId(ardVideoInspectTaskStepList.get(0).getId());
+ startRunStep(videoInspectTask);
+ } else {
+ if (StringUtils.isNull(currentStepStartTime) || StringUtils.isEmpty(currentStepStartTime)) {
+ //褰撳墠浠诲姟鍚姩鏃堕棿涓虹┖锛屽垯璇存槑褰撳墠姝ラ琚腑鏂紝鐩存帴鍚姩褰撳墠姝ラ
+ startRunStep(videoInspectTask);
+ } else {
+ boolean expird = isExpirdStep(videoInspectTask); /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (expird) {
+ //鍋滄褰曞儚
+ stopRunStep(videoInspectTask);
+ //鍒囨崲姝ラ
+ String nextStepId = changeNextStep(videoInspectTask);
+ //寮�濮嬩笅涓�姝ラ
+ videoInspectTask.setCurrentStepId(nextStepId);
+ startRunStep(videoInspectTask);
+ }
+ }
+ }
+ }
+ }
+
+ //姝ラ寮�濮�
+ private void startRunStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ if (StringUtils.isNull(currentStepId)) {
+ log.debug("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
+ return;
+ }
+ log.debug("宸℃姝ラ锛�" + currentStepId + "灏濊瘯寮�濮�");
+ String cameraId = ardVideoInspectTask.getCameraId();
+ Integer channel = ardVideoInspectTask.getChannel();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ ArdVideoInspectTaskStep step = objectOptional.get();
+ /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
+ ardVideoInspectTask.setCurrentStepId(step.getId());
+ ardVideoInspectTask.setCurrentStepStartTime(DateUtils.getTime());
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+ String wellId = step.getWellId();
+ if (!StringUtils.isNull(wellId)) {
+ /*鑾峰彇浜曞潗鏍�*/
+ ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
+ double[] targetPositon = new double[3];
+ targetPositon[0] = well.getLongitude();
+ targetPositon[1] = well.getLatitude();
+ targetPositon[2] = well.getAltitude();
+ /*鑾峰彇鐩告満鍧愭爣*/
+ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+ if (StringUtils.isNull(cameras)) {
+ log.debug("鎵句笉鍒扮浉鏈�:" + cameraId);
+ return;
+ }
+ double[] cameraPositon = new double[3];
+ cameraPositon[0] = cameras.getLongitude();
+ cameraPositon[1] = cameras.getLatitude();
+ cameraPositon[2] = cameras.getAltitude();
+ /*鎺у埗鐩告満宸℃*/
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(cameraId);
+ cmd.setChanNo(channel);
+ cmd.setTargetPosition(targetPositon);
+ cmd.setOperator("sys_patrol_inspect");
+ cmd.setExpired(step.getRecordingTime() * 60);
+
+ boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+ if (setTargetPosition) {
+ /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
+ cameraSdkService.recordStart(cmd);
+ } else {
+ /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
+ }
+ }
+
+ //灏濊瘯鎺у埗寮曞
+ private void tryGuide(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ if (StringUtils.isNull(currentStepId)) {
+ log.debug("褰撳墠寮�濮嬪贰妫�姝ラid涓虹┖");
+ return;
+ }
+ log.debug("宸℃姝e父锛屽皾璇曞紩瀵硷細" + currentStepId);
+ String cameraId = ardVideoInspectTask.getCameraId();
+ Integer channel = ardVideoInspectTask.getChannel();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ ArdVideoInspectTaskStep step = objectOptional.get();
+ String wellId = step.getWellId();
+ if (!StringUtils.isNull(wellId)) {
+ /*鑾峰彇浜曞潗鏍�*/
+ ArdAlarmpointsWell well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(wellId);
+ double[] targetPositon = new double[3];
+ targetPositon[0] = well.getLongitude();
+ targetPositon[1] = well.getLatitude();
+ targetPositon[2] = well.getAltitude();
+ /*鑾峰彇鐩告満鍧愭爣*/
+ ArdCameras cameras = ardCamerasMapper.selectArdCamerasById(cameraId);
+ if (StringUtils.isNull(cameras)) {
+ log.debug("鎵句笉鍒扮浉鏈�:" + cameraId);
+ return;
+ }
+ double[] cameraPositon = new double[3];
+ cameraPositon[0] = cameras.getLongitude();
+ cameraPositon[1] = cameras.getLatitude();
+ cameraPositon[2] = cameras.getAltitude();
+ /*鎺у埗鐩告満宸℃*/
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(cameraId);
+ cmd.setChanNo(channel);
+ cmd.setTargetPosition(targetPositon);
+ cmd.setOperator("sys_patrol_inspect");
+ cmd.setExpired(step.getRecordingTime() * 60);
+ boolean setTargetPosition = cameraSdkService.guideTargetPosition(cmd);
+ if (!setTargetPosition) {
+ /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
+ ardVideoInspectTask.setCurrentStepStartTime("");
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
+ } else {
+ log.debug("寮曞鎴愬姛!");
+ }
+ }
+ }
+ } catch (Exception ex) {
+ log.error("宸℃灏濊瘯寮曞寮傚父锛�" + ex.getMessage());
+ }
+ }
+
+ //姝ラ鍋滄
+ private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ log.debug("宸℃姝ラ锛�" + currentStepId + "鍋滄");
+ if (StringUtils.isNull(currentStepId)) {
+ log.info("褰撳墠鍋滄宸℃姝ラid涓虹┖");
+ return;
+ }
+ String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
+ String cameraId = ardVideoInspectTask.getCameraId();
+ Integer channel = ardVideoInspectTask.getChannel();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ ArdVideoInspectTaskStep step = objectOptional.get();
+ /*鍋滄褰曞儚*/
+ CameraCmd cmd = new CameraCmd();
+ cmd.setCameraId(cameraId);
+ cmd.setChanNo(channel);
+ cmd.setOperator("sys_patrol_inspect");
+ cmd.setRecordBucketName("record");
+ cmd.setRecordObjectName("inspectGuide/" + DateUtils.getDateYYYYMMDD()+"/"+ IdUtils.fastSimpleUUID());
+ String url = cameraSdkService.recordStopToMinio(cmd);
+ /*鎻掑叆宸℃璁板綍*/
+ ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
+ ardVideoInspectRecord.setId(IdUtils.simpleUUID());
+ ardVideoInspectRecord.setStepId(step.getId());
+ ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellById(step.getWellId());
+ if (StringUtils.isNotNull(ardAlarmpointsWell)) {
+ ardVideoInspectRecord.setWellName(ardAlarmpointsWell.getWellId());
+ }
+ Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
+ Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, step.getRecordingTime());
+ ardVideoInspectRecord.setStartTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartDate));
+ ardVideoInspectRecord.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStopDate));
+ ardVideoInspectRecord.setRecordFilePath(url);
+ ardVideoInspectRecordMapper.insertArdVideoInspectRecord(ardVideoInspectRecord);
+ }
+ } catch (Exception ex) {
+ log.error("宸℃鍋滄寮傚父:" + ex.getMessage());
+ }
+ }
+
+ //姝ラ鍒ゆ柇鏄惁杩囨湡
+ private boolean isExpirdStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ List<ArdVideoInspectTaskStep> ardVideoInspectTaskStepList = ardVideoInspectTask.getArdVideoInspectTaskStepList();
+ /*鑾峰彇褰撳墠浠诲姟姝e湪鎵ц鐨勬楠ゅ拰褰撳墠姝ラ寮�濮嬬殑鏃堕棿*/
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ String currentStepStartTime = ardVideoInspectTask.getCurrentStepStartTime();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTaskStepList.stream()
+ .filter(ardVideoInspectTaskStep -> ardVideoInspectTaskStep.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ /*鑾峰彇褰撳墠姝ラ淇℃伅*/
+ ArdVideoInspectTaskStep currentStep = objectOptional.get();
+ /*鑾峰彇鍒板綋鍓嶆楠ょ殑寮�濮嬪拰缁撴潫鏃堕棿*/
+ Date currentStepStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, currentStepStartTime);
+ Date currentStepStopDate = DateUtils.addMinutes(currentStepStartDate, currentStep.getRecordingTime());
+ /*鍒ゆ柇褰撳墠姝ラ鏃堕棿鏄惁杩囨湡*/
+ if (!DateUtils.TimeCompare(currentStepStartDate, currentStepStopDate)) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ } catch (Exception ex) {
+ log.error("鍒ゆ柇宸℃姝ラ杩囨湡寮傚父锛�" + ex.getMessage());
+ return false;
+ }
+ }
+
+ //姝ラ鍒囨崲
+ private String changeNextStep(ArdVideoInspectTask ardVideoInspectTask) {
+ try {
+ String currentStepId = ardVideoInspectTask.getCurrentStepId();
+ Optional<ArdVideoInspectTaskStep> objectOptional = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getId().equals(currentStepId))
+ .findFirst();
+ if (objectOptional.isPresent()) {
+ ArdVideoInspectTaskStep step = objectOptional.get();
+ Integer currentStepOrderNumber = step.getOrderNumber();
+ /*鍒ゆ柇褰撳墠姝ラ搴忓彿鏄惁灏忎簬姝ラ鎬绘暟*/
+ if (currentStepOrderNumber < ardVideoInspectTask.getArdVideoInspectTaskStepList().size()) {
+ /*灏忎簬鍒欐墽琛屼笅涓�姝ラ*/
+ currentStepOrderNumber++;
+ } else {
+ /*鍚﹀垯浠�1寮�濮嬫墽琛�*/
+ currentStepOrderNumber = 1;
+ }
+ Integer nextStepOrderNumber = currentStepOrderNumber;
+ /*鏇存柊褰撳墠浠诲姟鍒囨崲鏂版楠�*/
+ ArdVideoInspectTask avit = new ArdVideoInspectTask();
+ avit.setId(ardVideoInspectTask.getId());
+ String nextStepId = ardVideoInspectTask.getArdVideoInspectTaskStepList().stream()
+ .filter(obj -> obj.getOrderNumber() == nextStepOrderNumber)
+ .map(ArdVideoInspectTaskStep::getId)
+ .findFirst()
+ .orElse(null);
+ avit.setCurrentStepId(nextStepId);
+ ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(avit);
+ log.info("姝ラ锛�" + currentStepId + "鍒囨崲涓�" + nextStepId);
+ return nextStepId;
+ }
+ } catch (Exception ex) {
+ log.error("宸℃姝ラ鍒囨崲寮傚父锛�" + ex.getMessage());
+ }
+ return "";
+ }
+
+ public List getTaskUsedCameraPeriods(String cameraId) {
+ return ardVideoInspectTaskMapper.getTaskUsedCameraPeriods(cameraId);
+ }
+
+ /**
+ * 鑾峰彇鐩告満鐨勭┖闂叉椂娈�
+ *
+ * @param cameraId
+ * @return
+ */
+ public List getCameraIdleTimeList(String cameraId) {
+ LinkedList<String> timeList = new LinkedList();
+ List<Map> usedPeriods = this.getTaskUsedCameraPeriods(cameraId);
+ for (Map p :
+ usedPeriods) {
+ timeList.add((String) p.get("start_time"));
+ timeList.add((String) p.get("end_time"));
+ }
+ //鍒ゆ柇绗竴涓捣濮嬬偣
+ if (timeList.size() > 0) {
+ if ("00:00:00".equals(timeList.getFirst())) {
+ timeList.removeFirst();
+ } else {
+ timeList.addFirst("00:00:00");
+ }
+ //鍒ゆ柇鏈�鍚庝竴涓粨鏉熸椂闂�
+ if ("23:59:59".equals(timeList.getLast())) {
+ timeList.removeLast();
+ } else {
+ timeList.addLast("23:59:59");
+ }
+ //浜嬩欢娈典负绌�,鍒欏叏澶╀綔涓轰竴涓椂闂存
+ if (timeList.size() == 0) {
+ timeList.add("00:00:00");
+ timeList.add("23:59:59");
+ }
+
+ }
+
+ return timeList;
+ }
+}
--
Gitblit v1.9.3