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