From 4717c64bcc88f5a9869842306daebba002c90bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AF=85?= <97163845@qq.com> Date: Fri, 25 Apr 2025 14:57:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=B0=E5=B0=BC-=E6=B7=BB=E5=8A=A0=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=90=8C=E6=AD=A5=E7=9B=B8=E6=9C=BA?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=8F=8A=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ivs/controller/IvsDeviceController.java | 1 + .../job/mapper/PatrolDeviceStateMapper.java | 5 ++ .../job/task/PatrolEqpbookChannelTask.java | 78 +++++++++++++++++++ .../mapper/job/PatrolDeviceStateMapper.xml | 23 +++++- 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java diff --git a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java index 6f6b218..b791372 100644 --- a/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java +++ b/inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java @@ -297,6 +297,7 @@ public class IvsDeviceController { return ivsCommonService.get(UriUtils.parse(IvsConst.URI_DEVICE_LIST, ivsDevChanListVo), SipbDeviceListView.class); } + @GetMapping({"channellistJson"}) public JSONObject channelListJson(IvsDevChanListVo ivsDevChanListVo) { if(version.equals("1800")){ diff --git a/inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java b/inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java index 9591a59..d3a42ae 100644 --- a/inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java +++ b/inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java @@ -1,5 +1,6 @@ package com.inspect.job.mapper; +import com.inspect.job.domain.task.EqpBookChannel; import org.apache.ibatis.annotations.Mapper; import java.util.HashMap; @@ -14,4 +15,8 @@ public interface PatrolDeviceStateMapper { String queryStationCode(); void initDataInfo(); + + List selectEqpBookChannel(); + + void updateEqpBookChannel(EqpBookChannel eqpBookChannel); } diff --git a/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java b/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java new file mode 100644 index 0000000..4e199d4 --- /dev/null +++ b/inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java @@ -0,0 +1,78 @@ +package com.inspect.job.task; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.inspect.access.base.feign.AccessFeign; +import com.inspect.base.core.utils.HttpClientUtils; +import com.inspect.base.redis.service.RedisService; +import com.inspect.ivs.base.feign.IvsFeign; +import com.inspect.job.client.MontQueryClient; +import com.inspect.job.domain.task.EqpBookChannel; +import com.inspect.job.mapper.PatrolDeviceStateMapper; +import org.apache.commons.lang3.StringUtils; +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.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@Configuration //1.主要用于标记配置类,兼备Component的效果。 +@EnableScheduling // 2.开启定时任务 +public class PatrolEqpbookChannelTask { + Logger logger = LoggerFactory.getLogger(PatrolEqpbookChannelTask.class); + + @Value("${liveSIPB.url}") + private String liveSIPB_URL; + @Autowired + MontQueryClient basedataClient; + @Autowired + PatrolDeviceStateMapper patrolDeviceStateMapper; + + + /** + * 同步ivs名称及在线状态 + */ + @Scheduled(cron = "0 */5 * * * ?") + public void synPatrolEqpOnlineStatus() { + String url = liveSIPB_URL + "/api/v1/device/channellistJson"; + String result; + try { + //获取库里面的eqpbookchannel + List eqpBookChannels = patrolDeviceStateMapper.selectEqpBookChannel(); + result = HttpClientUtils.get(url, StringUtils.EMPTY); + logger.info("同步巡检设备在线状态:{}", result); + JSONObject jsonObject = JSONObject.parseObject(result); + if (null != jsonObject) { + JSONObject cameraBriefInfos = jsonObject.getJSONObject("cameraBriefInfos"); + JSONArray jsonObjectItems = cameraBriefInfos.getJSONArray("cameraBriefInfoList"); + if (null != jsonObjectItems) { + for (EqpBookChannel eqpBookChannel : eqpBookChannels) { + for (int i = 0; i < jsonObjectItems.size(); i++) { + JSONObject cameraInfo = jsonObjectItems.getJSONObject(i); + //cameracode相等 + if (eqpBookChannel.getChannelCode().equals(cameraInfo.getString("code") + "#" + cameraInfo.getString("domainCode"))) { + //状态发生改变 修改 + if (!eqpBookChannel.getOnlineState().equals(cameraInfo.getString("status")) || + !eqpBookChannel.getChannelName().equals(cameraInfo.getString("name"))) { + eqpBookChannel.setOnlineState(cameraInfo.getString("status")); + eqpBookChannel.setChannelName(cameraInfo.getString("name")); + patrolDeviceStateMapper.updateEqpBookChannel(eqpBookChannel); + } + } + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml b/inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml index 873dbba..9399595 100644 --- a/inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml +++ b/inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml @@ -94,4 +94,25 @@ , '%Y-%m-%d') AND record.patrol_device_code = aa.patrol_device_code; - \ No newline at end of file + + + + + + + + + + + update basedata_eqpbook_channel + + channel_name = #{channelName}, + online_state = #{onlineState}, + + where channel_id = #{channelId} + + + \ No newline at end of file