火点重构-完善防火季订阅
This commit is contained in:
parent
2c0420d20b
commit
61725d63b6
@ -1,6 +1,6 @@
|
|||||||
package com.xkrs.common;
|
package com.xkrs.common;
|
||||||
|
|
||||||
import com.xkrs.helper.FirePointSubscribeManager;
|
import com.xkrs.fireseason.FireSeasonConfigService;
|
||||||
import com.xkrs.utilsnew.DateTimeUtils;
|
import com.xkrs.utilsnew.DateTimeUtils;
|
||||||
import com.xkrs.utilsnew.WeiXinMessageUtils;
|
import com.xkrs.utilsnew.WeiXinMessageUtils;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@ -18,12 +18,12 @@ import java.time.LocalDateTime;
|
|||||||
public class StaticScheduleTask {
|
public class StaticScheduleTask {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FirePointSubscribeManager firePointSubscribeManager;
|
private FireSeasonConfigService fireSeasonConfigService;
|
||||||
|
|
||||||
//每小时更新一次订阅
|
//每小时更新一次订阅
|
||||||
@Scheduled(cron = "0 0 * * * ?")
|
@Scheduled(cron = "0 0 * * * ?")
|
||||||
private void syncSubscribe() {
|
private void syncSubscribe() {
|
||||||
firePointSubscribeManager.autoSync();
|
fireSeasonConfigService.updateFireSeasonConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
//每天中午12点测试一次微信消息推送
|
//每天中午12点测试一次微信消息推送
|
||||||
|
@ -4,7 +4,7 @@ import com.xkrs.common.encapsulation.PromptMessageEnum;
|
|||||||
import com.xkrs.dao.FirePointOrdinaryDao;
|
import com.xkrs.dao.FirePointOrdinaryDao;
|
||||||
import com.xkrs.dao.StreetDao;
|
import com.xkrs.dao.StreetDao;
|
||||||
import com.xkrs.dao.SysUserDao;
|
import com.xkrs.dao.SysUserDao;
|
||||||
import com.xkrs.helper.FirePointSubscribeManager;
|
import com.xkrs.fireseason.FireSeasonConfigService;
|
||||||
import com.xkrs.model.qo.AllFirePointQo;
|
import com.xkrs.model.qo.AllFirePointQo;
|
||||||
import com.xkrs.model.qo.UpdateFirePointQo;
|
import com.xkrs.model.qo.UpdateFirePointQo;
|
||||||
import com.xkrs.service.DispatchFirePointService;
|
import com.xkrs.service.DispatchFirePointService;
|
||||||
@ -31,7 +31,7 @@ public class DispatchFirePointController {
|
|||||||
@Resource
|
@Resource
|
||||||
private DispatchFirePointService firePointService;
|
private DispatchFirePointService firePointService;
|
||||||
@Resource
|
@Resource
|
||||||
private FirePointSubscribeManager firePointSubscribeManager;
|
private FireSeasonConfigService fireSeasonConfigService;
|
||||||
@Resource
|
@Resource
|
||||||
private FirePointOrdinaryDao firePointOrdinaryDao;
|
private FirePointOrdinaryDao firePointOrdinaryDao;
|
||||||
@Resource
|
@Resource
|
||||||
@ -79,7 +79,7 @@ public class DispatchFirePointController {
|
|||||||
|
|
||||||
@GetMapping("/autoSync")
|
@GetMapping("/autoSync")
|
||||||
public String autoSync() {
|
public String autoSync() {
|
||||||
return firePointSubscribeManager.autoSync();
|
return fireSeasonConfigService.updateFireSeasonConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
package com.xkrs.dao;
|
|
||||||
|
|
||||||
import com.xkrs.model.entity.FirePointChannelConfigEntity;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public interface FirePointChannelConfigDao extends JpaRepository<FirePointChannelConfigEntity, Long>, JpaSpecificationExecutor<FirePointChannelConfigEntity> {
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
package com.xkrs.fireseason;
|
package com.xkrs.fireseason;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.xkrs.dao.FirePointChannelConfigDao;
|
|
||||||
import com.xkrs.dao.FirePointOrdinaryDao;
|
import com.xkrs.dao.FirePointOrdinaryDao;
|
||||||
import com.xkrs.dao.StreetDao;
|
import com.xkrs.dao.StreetDao;
|
||||||
import com.xkrs.dao.SysUserDao;
|
import com.xkrs.dao.SysUserDao;
|
||||||
@ -29,9 +28,6 @@ public class FireSeasonConfigServiceImpl implements FireSeasonConfigService {
|
|||||||
|
|
||||||
private final Locale locale = LocaleContextHolder.getLocale();
|
private final Locale locale = LocaleContextHolder.getLocale();
|
||||||
|
|
||||||
@Resource
|
|
||||||
private FirePointChannelConfigDao channelConfigDao;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FirePointOrdinaryDao firePointOrdinaryDao;
|
private FirePointOrdinaryDao firePointOrdinaryDao;
|
||||||
|
|
||||||
|
@ -1,136 +0,0 @@
|
|||||||
package com.xkrs.helper;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
||||||
import com.xkrs.dao.FirePointChannelConfigDao;
|
|
||||||
import com.xkrs.dao.SysUserDao;
|
|
||||||
import com.xkrs.model.bean.FirePointChannelConfigBean;
|
|
||||||
import com.xkrs.model.bean.LocalDateTimeRange;
|
|
||||||
import com.xkrs.model.entity.FirePointChannelConfigEntity;
|
|
||||||
import com.xkrs.model.entity.SysUserEntity;
|
|
||||||
import com.xkrs.utilsnew.*;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import static com.xkrs.utilsold.HttpClientUtils.sendHttpPostTextPlain;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
public class FirePointSubscribeManager {
|
|
||||||
|
|
||||||
private static final Logger log = LoggerFactory.getLogger(FirePointSubscribeManager.class);
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private FirePointChannelConfigDao channelConfigDao;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private SysUserDao sysUserDao;
|
|
||||||
|
|
||||||
public String autoSync() {
|
|
||||||
long timeTag1 = System.currentTimeMillis();
|
|
||||||
log.info("开始更新订阅:");
|
|
||||||
List<String> subscribedCountyCodeList = obtainSubscribedCountyCodeList();
|
|
||||||
long timeTag2 = System.currentTimeMillis();
|
|
||||||
log.info("更新订阅计算耗时:" + ((timeTag2 - timeTag1) / 1000D) + "秒。");
|
|
||||||
String updateResult = updateSubscribedCountyCodeList(subscribedCountyCodeList);
|
|
||||||
long timeTag3 = System.currentTimeMillis();
|
|
||||||
log.info("更新订阅请求耗时:" + ((timeTag3 - timeTag2) / 1000D) + "秒。");
|
|
||||||
log.info("更新订阅结束,总耗时:" + ((timeTag3 - timeTag1) / 1000D) + "秒。");
|
|
||||||
return updateResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取订阅的区划编码集合
|
|
||||||
*/
|
|
||||||
private List<String> obtainSubscribedCountyCodeList() {
|
|
||||||
//查询防火季时间范围配置
|
|
||||||
List<FirePointChannelConfigEntity> channelConfigEntityList = channelConfigDao.findAll();
|
|
||||||
//获取到防火季时间格式集合
|
|
||||||
List<LocalDateTimeRange> fireSeasonTimeRangeList = obtainFireSeasonTimeRangeList(channelConfigEntityList);
|
|
||||||
//判断当前是否处于防火季
|
|
||||||
boolean checkIfIn = checkIfIn(fireSeasonTimeRangeList, LocalDateTime.now());
|
|
||||||
//不在防火季就返回空订阅
|
|
||||||
if (!checkIfIn) {
|
|
||||||
return new ArrayList<String>();
|
|
||||||
}
|
|
||||||
//在防火季,就获取全部系统用户
|
|
||||||
List<String> countyCodeList = obtainCountyCodeList(sysUserDao.findAll());
|
|
||||||
List<String> mergedCountyCodeList = CountyCodeUtils.mergeCountyCodeList(countyCodeList);
|
|
||||||
mergedCountyCodeList.sort(Comparator.naturalOrder());
|
|
||||||
return mergedCountyCodeList;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String updateSubscribedCountyCodeList(List<String> subscribedCountyCodeList) {
|
|
||||||
try {
|
|
||||||
String paramContent = ListUtils.fromStringList(subscribedCountyCodeList, ",");
|
|
||||||
String subscribeUrl = "http://118.24.27.47:5060/push-firepoint/ModifySystemMessages";
|
|
||||||
Map<String, Object> map = new HashMap<>();
|
|
||||||
map.put("name", "秸秆火系统正式版");
|
|
||||||
map.put("url", "http://118.24.27.47:6801/updateFirePoint");
|
|
||||||
map.put("param", paramContent);
|
|
||||||
map.put("typeOfLand", "耕地");
|
|
||||||
return sendHttpPostTextPlain(subscribeUrl, new ObjectMapper().writeValueAsString(map));
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return e.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取到防火季时间格式集合
|
|
||||||
*/
|
|
||||||
private List<LocalDateTimeRange> obtainFireSeasonTimeRangeList(List<FirePointChannelConfigEntity> channelConfigEntityList) {
|
|
||||||
List<LocalDateTimeRange> timeRangeList = new ArrayList<>();
|
|
||||||
for (FirePointChannelConfigEntity channelConfigEntity : channelConfigEntityList) {
|
|
||||||
String jsonContent = channelConfigEntity.getJsonContent();
|
|
||||||
FirePointChannelConfigBean firePointChannelConfigBean = JsonUtils.deserialize(jsonContent, FirePointChannelConfigBean.class);
|
|
||||||
if (FirePointChannelConfigBean.Precise.equals(firePointChannelConfigBean.getChannelName())) {
|
|
||||||
List<FirePointChannelConfigBean.ChannelConfig> channelConfigList = firePointChannelConfigBean.getConfigList();
|
|
||||||
for (FirePointChannelConfigBean.ChannelConfig channelConfig : channelConfigList) {
|
|
||||||
LocalDateTime oldStartTime = LocalDateTime.parse(channelConfig.getStartTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
|
||||||
LocalDateTime newStartTime = oldStartTime.plusYears(LocalDateTime.now().getYear() - oldStartTime.getYear());
|
|
||||||
LocalDateTime oldEndTime = LocalDateTime.parse(channelConfig.getEndTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
|
||||||
LocalDateTime newEndTime = oldEndTime.plusYears(LocalDateTime.now().getYear() - oldEndTime.getYear());
|
|
||||||
timeRangeList.add(new LocalDateTimeRange(newStartTime, newEndTime));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return timeRangeList;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 判断targetTime是否属于timeRangeList范围内
|
|
||||||
* 实际应用:也就是当前时间是否属于防火季
|
|
||||||
*/
|
|
||||||
private boolean checkIfIn(List<LocalDateTimeRange> timeRangeList, LocalDateTime targetTime) {
|
|
||||||
for (LocalDateTimeRange timeRange : timeRangeList) {
|
|
||||||
LocalDateTime startTime = timeRange.getStartTime();
|
|
||||||
LocalDateTime endTime = timeRange.getEndTime();
|
|
||||||
if (startTime.isBefore(targetTime) && endTime.isAfter(targetTime)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取全部VIP用户的区划编码
|
|
||||||
*/
|
|
||||||
private List<String> obtainCountyCodeList(List<SysUserEntity> sysUserEntityList) {
|
|
||||||
List<String> countyCodeList = new ArrayList<>();
|
|
||||||
for (SysUserEntity sysUserEntity : sysUserEntityList) {
|
|
||||||
if ("管理员".equals(sysUserEntity.getAccountType())) {//管理员用户不计入订阅
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
boolean inVipTimeRange = VipTimeRangeUtils.checkIfInVipTimeRange(sysUserEntity.getVipTimeRangeJson());
|
|
||||||
if (inVipTimeRange) {
|
|
||||||
countyCodeList.add(sysUserEntity.getCountyCode());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return countyCodeList;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
package com.xkrs.model.bean;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class FirePointChannelConfigBean {
|
|
||||||
|
|
||||||
public static final String Ordinary = "Ordinary";
|
|
||||||
public static final String Precise = "Precise";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 渠道名称
|
|
||||||
*/
|
|
||||||
private String channelName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 渠道配置列表
|
|
||||||
*/
|
|
||||||
private List<ChannelConfig> configList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 渠道配置
|
|
||||||
*/
|
|
||||||
public static class ChannelConfig {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 开始时间
|
|
||||||
*/
|
|
||||||
private String startTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 结束时间
|
|
||||||
*/
|
|
||||||
private String endTime;
|
|
||||||
|
|
||||||
public String getStartTime() {
|
|
||||||
return startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStartTime(String startTime) {
|
|
||||||
this.startTime = startTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEndTime() {
|
|
||||||
return endTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEndTime(String endTime) {
|
|
||||||
this.endTime = endTime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getChannelName() {
|
|
||||||
return channelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setChannelName(String channelName) {
|
|
||||||
this.channelName = channelName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ChannelConfig> getConfigList() {
|
|
||||||
return configList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConfigList(List<ChannelConfig> configList) {
|
|
||||||
this.configList = configList;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +0,0 @@
|
|||||||
package com.xkrs.model.entity;
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "fire_point_channel_config")
|
|
||||||
public class FirePointChannelConfigEntity implements Serializable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 指定主键,建立自增序列,主键值取自序列
|
|
||||||
*/
|
|
||||||
@Id
|
|
||||||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "fire_point_ordinary_seq_gen")
|
|
||||||
@SequenceGenerator(name = "fire_point_ordinary_seq_gen", sequenceName = "fire_point_ordinary_id_seq", allocationSize = 1)
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Json配置内容
|
|
||||||
*/
|
|
||||||
@Column(length = 1024, columnDefinition = "varchar(1024)")
|
|
||||||
private String jsonContent;
|
|
||||||
|
|
||||||
public FirePointChannelConfigEntity() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(Long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getJsonContent() {
|
|
||||||
return jsonContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setJsonContent(String jsonContent) {
|
|
||||||
this.jsonContent = jsonContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "FirePointChannelConfigEntity{" +
|
|
||||||
"id=" + id +
|
|
||||||
", jsonContent='" + jsonContent + '\'' +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
package com.xkrs.service.impl;
|
package com.xkrs.service.impl;
|
||||||
|
|
||||||
import com.xkrs.common.encapsulation.PromptMessageEnum;
|
import com.xkrs.common.encapsulation.PromptMessageEnum;
|
||||||
import com.xkrs.dao.FirePointChannelConfigDao;
|
|
||||||
import com.xkrs.dao.FirePointOrdinaryDao;
|
import com.xkrs.dao.FirePointOrdinaryDao;
|
||||||
import com.xkrs.dao.StreetDao;
|
import com.xkrs.dao.StreetDao;
|
||||||
import com.xkrs.dao.SysUserDao;
|
import com.xkrs.dao.SysUserDao;
|
||||||
@ -41,9 +40,6 @@ public class DispatchFirePointServiceImpl implements DispatchFirePointService {
|
|||||||
|
|
||||||
private final Locale locale = LocaleContextHolder.getLocale();
|
private final Locale locale = LocaleContextHolder.getLocale();
|
||||||
|
|
||||||
@Resource
|
|
||||||
private FirePointChannelConfigDao channelConfigDao;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FirePointOrdinaryDao firePointOrdinaryDao;
|
private FirePointOrdinaryDao firePointOrdinaryDao;
|
||||||
|
|
||||||
|
@ -1,134 +0,0 @@
|
|||||||
package com.xkrs.utilsnew;
|
|
||||||
|
|
||||||
import com.xkrs.model.bean.FirePointChannelConfigBean;
|
|
||||||
import com.xkrs.model.entity.FirePointChannelConfigEntity;
|
|
||||||
import com.xkrs.service.impl.DispatchFirePointServiceImpl;
|
|
||||||
import org.apache.hc.core5.util.TextUtils;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class FirePointDispatchUtils {
|
|
||||||
|
|
||||||
public static Logger log = LoggerFactory.getLogger(DispatchFirePointServiceImpl.class);
|
|
||||||
|
|
||||||
private FirePointDispatchUtils() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 判断此时是否是防火季节
|
|
||||||
* 如果是,那么审核火点表中数据来源是审核火点
|
|
||||||
* 如果不是,那么审核火点表中数据来源是普通火点
|
|
||||||
*/
|
|
||||||
public static boolean ifInFireSeason(String fireCode, LocalDateTime satelliteLocalDateTime, List<FirePointChannelConfigEntity> firePointChannelConfigEntityList) {
|
|
||||||
if (firePointChannelConfigEntityList == null || firePointChannelConfigEntityList.size() == 0) {
|
|
||||||
int resValue1 = 0;
|
|
||||||
String errorMessage = "星科瑞升-秸秆火后台系统报错-检查火点卫星时间是否在精准渠道配置时间范围内-数据库配置集合-为null或size=0-火点编码=" + fireCode;
|
|
||||||
try {
|
|
||||||
resValue1 = SMSUtils.sendSmsToUser(new String[]{"8615764226530"}, "1425995", new String[]{errorMessage});
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
log.info(errorMessage + (resValue1 == 0 ? "--短信通知发送成功" : "--短信通知发送失败"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (FirePointChannelConfigEntity firePointChannelConfigEntity : firePointChannelConfigEntityList) {
|
|
||||||
try {
|
|
||||||
String jsonContent = firePointChannelConfigEntity.getJsonContent();
|
|
||||||
FirePointChannelConfigBean firePointChannelConfigBean = JsonUtils.deserialize(jsonContent, FirePointChannelConfigBean.class);
|
|
||||||
if (FirePointChannelConfigBean.Precise.equals(firePointChannelConfigBean.getChannelName())) {
|
|
||||||
List<FirePointChannelConfigBean.ChannelConfig> channelConfigList = firePointChannelConfigBean.getConfigList();
|
|
||||||
if (channelConfigList == null || channelConfigList.size() == 0) {
|
|
||||||
int resValue1 = 0;
|
|
||||||
String errorMessage = "星科瑞升-秸秆火后台系统报错-检查火点卫星时间是否在精准渠道配置时间范围内-数据库配置项-时间列表-为null或size=0-火点编码=" + fireCode;
|
|
||||||
try {
|
|
||||||
resValue1 = SMSUtils.sendSmsToUser(new String[]{"8615764226530"}, "1425995", new String[]{errorMessage});
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
log.info(errorMessage + (resValue1 == 0 ? "--短信通知发送成功" : "--短信通知发送失败"));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
for (FirePointChannelConfigBean.ChannelConfig channelConfig : channelConfigList) {
|
|
||||||
//预处理开始时间
|
|
||||||
String startTime = channelConfig.getStartTime();//获取精准火点渠道的开始时间
|
|
||||||
boolean needCheckStartTime = !TextUtils.isEmpty(startTime);
|
|
||||||
LocalDateTime sameYearStartTime = null;//计算得出精准渠道和传入火点同年的开始时间
|
|
||||||
if (needCheckStartTime) {
|
|
||||||
sameYearStartTime = obtainLocalDateTimeSameYear(satelliteLocalDateTime.getYear(), startTime);
|
|
||||||
needCheckStartTime = sameYearStartTime != null;
|
|
||||||
}
|
|
||||||
//预处理结束时间
|
|
||||||
String endTime = channelConfig.getEndTime();//获取精准火点渠道的结束时间
|
|
||||||
boolean needCheckEndTime = !TextUtils.isEmpty(endTime);
|
|
||||||
LocalDateTime sameYearEndTime = null;//计算得出精准渠道和传入火点同年的结束时间
|
|
||||||
if (needCheckEndTime) {
|
|
||||||
sameYearEndTime = obtainLocalDateTimeSameYear(satelliteLocalDateTime.getYear(), endTime);
|
|
||||||
needCheckEndTime = sameYearEndTime != null;
|
|
||||||
}
|
|
||||||
//排列组合4种情况
|
|
||||||
if (needCheckStartTime) {
|
|
||||||
if (needCheckEndTime) {
|
|
||||||
//开始时间、结束时间都需要比较
|
|
||||||
if (sameYearStartTime.isBefore(satelliteLocalDateTime) && sameYearEndTime.isAfter(satelliteLocalDateTime)) {
|
|
||||||
String time0 = DateTimeUtils.localDateTimeToString(satelliteLocalDateTime);
|
|
||||||
String time1 = DateTimeUtils.localDateTimeToString(sameYearStartTime);
|
|
||||||
String time2 = DateTimeUtils.localDateTimeToString(sameYearEndTime);
|
|
||||||
log.info("开始时间、结束时间都需要比较,比较结果:属于精准时间范围内,详情:火点时间=" + time0 + ",开始时间=" + time1 + ",结束时间=" + time2);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//开始时间需要比较,结束时间不需要比较
|
|
||||||
if (sameYearStartTime.isBefore(satelliteLocalDateTime)) {
|
|
||||||
String time0 = DateTimeUtils.localDateTimeToString(satelliteLocalDateTime);
|
|
||||||
String time1 = DateTimeUtils.localDateTimeToString(sameYearStartTime);
|
|
||||||
log.info("开始时间需要比较,结束时间不需要比较,比较结果:属于精准时间范围内,详情:火点时间=" + time0 + ",开始时间=" + time1);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (needCheckEndTime) {
|
|
||||||
//开始时间不需要比较,结束时间需要比较
|
|
||||||
if (sameYearEndTime.isAfter(satelliteLocalDateTime)) {
|
|
||||||
String time0 = DateTimeUtils.localDateTimeToString(satelliteLocalDateTime);
|
|
||||||
String time2 = DateTimeUtils.localDateTimeToString(sameYearEndTime);
|
|
||||||
log.info("开始时间不需要比较,结束时间需要比较,比较结果:属于精准时间范围内,详情:火点时间=" + time0 + ",结束时间=" + time2);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//开始时间、结束时间都不需要比较
|
|
||||||
log.info("开始时间、结束时间都不需要比较,比较结果:属于精准时间范围内");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
log.info("检查渠道配置时间失败,错误=" + e.getMessage() + ",原始内容=" + firePointChannelConfigEntity.getJsonContent());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//没有因为遇到符合条件的情况提前退出,就认为不属于精准渠道配置的时间范围之内
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将formattedTime转化为LocalDateTime格式,并将年字段设置为targetYear
|
|
||||||
* 转化失败返回null
|
|
||||||
*
|
|
||||||
* @param formattedTime 2022-01-01 00:00:00
|
|
||||||
*/
|
|
||||||
private static LocalDateTime obtainLocalDateTimeSameYear(int targetYear, String formattedTime) {
|
|
||||||
try {
|
|
||||||
LocalDateTime localDateTime = LocalDateTime.parse(formattedTime, DateTimeUtils.DATE_TIME_FORMATTER_1);
|
|
||||||
int dYear = targetYear - localDateTime.getYear();
|
|
||||||
return localDateTime.plusYears(dYear);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user