火险气象等级预报

 @Override
    public DataResult<FFireGradeForecastVO> findLatest(String areaCode) {

        //todo  直接获取当天前三天数据
        LocalDate localDate = LocalDate.now();
        LocalDate plus = localDate.plus(-3, ChronoUnit.DAYS);
        LambdaQueryWrapper<FFireGradeForecastEntity> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.likeRight(FFireGradeForecastEntity::getArea,areaCode);
        queryWrapper.gt(FFireGradeForecastEntity::getForeTime,plus);
        queryWrapper.le(FFireGradeForecastEntity::getForeTime,LocalDateTime.now());
        List<FFireGradeForecastEntity> list = this.list(queryWrapper);
        FFireGradeForecastVO vo = new   FFireGradeForecastVO();
        if(CollectionUtils.isNotEmpty(list)){
            //根据时间排序此时只需要取第一条数据 从大到小
            Collections.sort(list, Comparator.comparing(FFireGradeForecastEntity::getForeTime).reversed());
            FFireGradeForecastEntity first = list.get(0);
            //获取时间 跟当天比较
            //将Date转换为LocalDate
            Date foreTime = first.getForeTime();
            Instant instant = foreTime.toInstant();
            ZoneId zoneId = ZoneId.systemDefault();

            LocalDate foreTimeDate = instant.atZone(zoneId).toLocalDate();
            //查看相差天数
            Period next = Period.between(foreTimeDate,localDate);
            switch (next.getDays()){
                case 0:
                    //当天
                    vo.setLevel(first.getOneDayGrade());
                    break;
                case 1:
                    //相差一天
                    vo.setLevel(first.getTwoDayGrade());
                    break;
                case 2:
                    //相差两天
                    vo.setLevel(first.getThreeDayGrade());
                    break;
                default:
                    break;
            }

        }
        return DataResult.success(vo);
}
@Data
@ApiModel("森林火险气象等级预报VO")
public class FFireGradeForecastVO extends FFireGradeForecastEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "最新的火险等级", required = false)
    private String level;

 

  • 森林防火系统
  1. 在“辅助决策”菜单下面新增“森林火险气象等级预报”,森林火险气象等级预报实现的功能主要是增删改查

查询条件:预报时间、地区

字段包括:预报时间(精确到日就行)、地区、24小时森林火险气象等级、24小时森林火险气象等级程度、24小时森林火险气象等级预警信息、48小时森林火险气象等级、48小时森林火险气象等级程度、48小时森林火险气象等级预警信息、72小时森林火险气象等级、72小时森林火险气象等级程度、72小时森林火险气象等级预警信息、备注

根据森林火险气象等级划分(标红部分,前面是等级,后面是程度):

一级(绿),森林火险气象等级

二级(蓝),森林火险气象等级较低

三级(黄),森林火险气象等级较高,须加强防范;

四级(橙),森林火险气象等级,林区须加强火源管理;

五级(红),森林火险气象等级极高,严禁一切林内用火。

2、如下图所示,在森林防火系统左上角展示“当日天气预报”和最新的“森林火险气象等级预报”信息。

说明:

  1. 天气预报信息:可以使用天气预报插件显示实时数据。
  2. 森林火险气象等级预报:展示最新的森林火险气象等级预报信息,展示的内容如下:比如森林火险气象等级一级,这里展示内容“森林火险气象等级低”;森林火险气象等级五级,这里展示内容为“森林火险气象等级极高,严禁一切林内用火。”。如果今天是2023年3月24日,如果库中有2023年3月24日的预报数据,就取24小时的预报等级,如果库中只有2023年3月23日的预报数据,这里取的预报等级就是48小时的预报,如果库中只有2023年3月22日的预报数据,这里取的预报等级就是72小时的预报等级。超过72小时没有预报数据的,森林火险气象等级这块内容就是空。因为天气预报是实时,这里不能乱取。
  3. 天气预报信息和森林火险气象等级是在一行展示的,前面是天气预报,后面是森林火险气象预报。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值