package com.tievd.jyz.handler;
|
|
import com.alibaba.fastjson.JSON;
|
import com.tievd.jyz.cache.AlgorithmCache;
|
import com.tievd.jyz.cache.DeviceCache;
|
import com.tievd.jyz.entity.Device;
|
import com.tievd.jyz.entity.PatrolConfig;
|
import com.tievd.jyz.entity.SysAlgorithmItem;
|
import com.tievd.jyz.mqtt.dto.MqttParamDTO;
|
import com.tievd.jyz.service.IPatrolConfigService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.sql.Time;
|
|
/**
|
* 事件接收处理类
|
* @author timi
|
*/
|
@Slf4j
|
@Component
|
public class PatrolConfigHandler {
|
|
@Autowired
|
IPatrolConfigService patrolConfigService;
|
|
|
public void configPatrol(MqttParamDTO<JSON> param){
|
PatrolConfig patrolConfig = JSON.toJavaObject(param.getData(), PatrolConfig.class);
|
String deviceSn = param.getSn();
|
Device device = DeviceCache.getDeviceBySn(deviceSn);
|
//1&00:00-23:59@2&00:00-23:59@3&00:00-23:59@4&00:00-23:59@5&00:00-23:59@6&00:00-23:59@0&00:00-23:59
|
//时间段格式如上,当前设计每天时间段一致,故只取第一天时间进行合并
|
String timePeriod = patrolConfig.getTimePeriod();
|
Time start = null;
|
Time end = null;
|
try {
|
timePeriod = timePeriod.substring(timePeriod.indexOf("1&") + 2, timePeriod.indexOf("@2&"));
|
String[] periods = timePeriod.split("\\|");
|
//合并时间段
|
for (String period : periods) {
|
String[] time = period.split("-");
|
if (time.length < 2) continue;
|
Time s = Time.valueOf(time[0] + ":00");
|
Time e = Time.valueOf(time[1] + ":00");
|
if (start == null || start.after(s)) start = s;
|
if (end == null || end.before(e)) end = e;
|
}
|
if (start == null || end == null){
|
log.info("巡查时间段数据异常");
|
return;
|
}
|
} catch (Exception e) {
|
log.info("======> 巡查配置时间段转换失败:{}", timePeriod);
|
return;
|
}
|
patrolConfig.setTimeStart(start);
|
patrolConfig.setTimeEnd(end);
|
SysAlgorithmItem alg = AlgorithmCache.getAlgorithmMap(patrolConfig.getAlgorithmCode());
|
patrolConfig.setAlgorithmName(alg.getAlgorithmName()).setOrgCode(device.getOrgCode()).generateId();
|
|
patrolConfigService.saveOrUpdate(patrolConfig);
|
}
|
|
|
|
}
|