package com.yssh.entity; import com.yssh.utils.CalculateUtils; import io.swagger.annotations.ApiModelProperty; public class Report { @ApiModelProperty(value = "溯源ID") private String id; @ApiModelProperty(value = "点位名称") private String name; @ApiModelProperty(value = "经度") private double lon; @ApiModelProperty(value = "纬度") private double lat; @ApiModelProperty(value = "数值") private double val; @ApiModelProperty(value = "去年数值") private Double lastVal; @ApiModelProperty(value = "时间") private String time; @ApiModelProperty(value = "风速") private double speed; @ApiModelProperty(value = "方向") private String dir; @ApiModelProperty(value = "500m范围最大值") private double maxVal; @ApiModelProperty(value = "距离") private double dis; @ApiModelProperty(value = "500m范围最大值的风向") private String maxDir; @ApiModelProperty(value = "是否一致") private int isSame; @ApiModelProperty(value = "最大值的ID") private String maxId; @ApiModelProperty(value = "最大值的地名") private String maxAddr; @ApiModelProperty(value = "溯源类") private SuYuan700 su; public Report() { } public Report(String id, String name, double lon, double lat, double val, String time, double speed, String dir, double maxVal, double dis, String maxDir, int isSame, String maxId, String maxAddr) { this.id = id; this.name = name; this.lon = lon; this.lat = lat; this.val = val; this.time = time; this.speed = speed; this.dir = dir; this.maxVal = maxVal; this.dis = dis; this.maxDir = maxDir; this.isSame = isSame; this.maxId = maxId; this.maxAddr = maxAddr; } /** * 计算生成报告 */ public static Report calcReport(WarningDetail wd, DistanceSuYuan suYuan, DistanceSuYuan suMax) { Coordinate c1 = CalculateUtils.getCoordinate(suYuan); Coordinate c2 = CalculateUtils.getCoordinate(suMax); String time = wd.getTableName().replace("su_yuan_", ""); double speed1 = CalculateUtils.round2(CalculateUtils.getWindSpeed(suYuan.getV(), suYuan.getU())); double direction1 = CalculateUtils.getWindDirection(suYuan.getV(), suYuan.getU()); String dir = CalculateUtils.getDir(direction1); double maxVal = suMax.getVocsValue(); //double dis = CalculateUtils.getDistance2(c1.getX(), c1.getY(), c2.getX(), c2.getY()); double dis1 = CalculateUtils.getDistance1(c1.getX(), c1.getY(), c2.getX(), c2.getY()); double angle = CalculateUtils.getAngle2(c1.getX(), c1.getY(), c2.getX(), c2.getY()); double speed2 = CalculateUtils.getWindSpeed(suMax.getV(), suMax.getU()); double direction2 = CalculateUtils.getWindDirection(suMax.getV(), suMax.getU()); String maxDir = CalculateUtils.getDir(direction2); // CalculateUtils.getDir(angle); int isSame = (Math.abs(direction1 - direction2) <= 45 && Math.abs(speed1 - speed2) <= 0.5) ? 1 : 0; String[] strs = suMax.getId().split("_"); String maxId = (Integer.parseInt(strs[0]) / 10) + "_" + (Integer.parseInt(strs[1]) / 10); return new Report(wd.getSuYuanId(), wd.getLocationName(), c1.getX(), c1.getY(), wd.getValue(), time, speed1, dir, maxVal, dis1, maxDir, isSame, maxId, suMax.getAddr()); } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getLon() { return lon; } public void setLon(double lon) { this.lon = lon; } public double getLat() { return lat; } public void setLat(double lat) { this.lat = lat; } public double getVal() { return val; } public void setVal(double val) { this.val = val; } public Double getLastVal() { return lastVal; } public void setLastVal(Double lastVal) { this.lastVal = lastVal; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public double getSpeed() { return speed; } public void setSpeed(double speed) { this.speed = speed; } public String getDir() { return dir; } public void setDir(String dir) { this.dir = dir; } public double getMaxVal() { return maxVal; } public void setMaxVal(double maxVal) { this.maxVal = maxVal; } public double getDis() { return dis; } public void setDis(double dis) { this.dis = dis; } public String getMaxDir() { return maxDir; } public void setMaxDir(String maxDir) { this.maxDir = maxDir; } public int getIsSame() { return isSame; } public void setIsSame(int isSame) { this.isSame = isSame; } public String getMaxId() { return maxId; } public void setMaxId(String maxId) { this.maxId = maxId; } public String getMaxAddr() { return maxAddr; } public void setMaxAddr(String maxAddr) { this.maxAddr = maxAddr; } public SuYuan700 getSu() { return su; } public void setSu(SuYuan700 su) { this.su = su; } }