Browse Source

印尼-添加定时任务同步相机名称及状态

master
王寅 8 months ago
parent
commit
4717c64bcc
4 changed files with 106 additions and 1 deletions
  1. +1
    -0
      inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java
  2. +5
    -0
      inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java
  3. +78
    -0
      inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java
  4. +22
    -1
      inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml

+ 1
- 0
inspect-ivs/src/main/java/com/inspect/ivs/controller/IvsDeviceController.java View File

@ -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")){


+ 5
- 0
inspect-job/src/main/java/com/inspect/job/mapper/PatrolDeviceStateMapper.java View File

@ -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<EqpBookChannel> selectEqpBookChannel();
void updateEqpBookChannel(EqpBookChannel eqpBookChannel);
}

+ 78
- 0
inspect-job/src/main/java/com/inspect/job/task/PatrolEqpbookChannelTask.java View File

@ -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<EqpBookChannel> 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();
}
}
}

+ 22
- 1
inspect-job/src/main/resources/mapper/job/PatrolDeviceStateMapper.xml View File

@ -94,4 +94,25 @@
, '%Y-%m-%d')
AND record.patrol_device_code = aa.patrol_device_code;
</update>
</mapper>
<resultMap type="com.inspect.job.domain.task.EqpBookChannel" id="BasedataEqpBookChannelResult">
<result property="channelId" column="channel_id"/>
<result property="channelCode" column="channel_code"/>
<result property="channelName" column="channel_name"/>
<result property="onlineState" column="online_state"/>
</resultMap>
<select id="selectEqpBookChannel" resultMap="BasedataEqpBookChannelResult">
select channel_id,channel_code,channel_name,online_state
from basedata_eqpbook_channel
</select>
<update id="updateEqpBookChannel" parameterType="com.inspect.job.domain.task.EqpBookChannel">
update basedata_eqpbook_channel
<trim prefix="SET" suffixOverrides=",">
<if test="channelName != null and channelName != ''">channel_name = #{channelName},</if>
<if test="onlineState != null and onlineState != ''">online_state = #{onlineState},</if>
</trim>
where channel_id = #{channelId}
</update>
</mapper>

Loading…
Cancel
Save