package com.gunshi.project.xyt.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.gunshi.core.dateformat.DateFormatString; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.Date; /** * @author lyf * @since 2025-04-25 */ @Data @TableName("public.res_brief_r") @Slf4j public class ResBriefR { @TableId(value="id", type= IdType.AUTO) private Integer id; @TableField private BigDecimal drp24Sum; @TableField private String sumStnm; @TableField private BigDecimal drp24Max; @TableField private String maxStnm; @TableField @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8") private Date maxTm; @TableField private BigDecimal rz8; @TableField private BigDecimal rzYesterday8; @TableField private BigDecimal w; @TableField @JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8") private Date date; @TableField //设计洪水位 private BigDecimal flLowLimLev; @TableField(exist = false) private String brief; public String getBrief() { SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日"); SimpleDateFormat sdf2 = new SimpleDateFormat("dd日HH时"); BigDecimal gap; if (rz8 != null && rzYesterday8 != null) { gap = rz8.subtract(rzYesterday8); } else { gap = null; } String dir; if (gap != null && gap.compareTo(BigDecimal.ZERO) > 0) { dir = "上涨"; } else if (gap != null && gap.compareTo(BigDecimal.ZERO) < 0) { dir = "下跌"; } else { dir = "上涨"; } return String.format("%s08时,过去24小时最大累计降雨量%smm(%s),最大点雨量%smm/h(%s,%s)。当前水库水位%sm(汛限水位%sm),较昨日%s%sm,库容达%s万m³", date == null ? "" : sdf1.format(date), drp24Sum == null ? "" : drp24Sum.setScale(1, RoundingMode.DOWN), sumStnm == null ? "" : sumStnm, drp24Max == null ? "" : drp24Max.setScale(1, RoundingMode.DOWN), maxStnm == null ? "" : maxStnm, maxTm == null ? "" : sdf2.format(maxTm), rz8 == null ? "" : rz8.setScale(2, RoundingMode.DOWN), flLowLimLev == null ? "" : flLowLimLev.setScale(0, RoundingMode.DOWN), gap == null ? "" :dir, gap == null ? "" : gap.setScale(2, RoundingMode.DOWN), w == null ? "" : w.setScale(2, RoundingMode.DOWN) ); } }