package com.yssh.entity;
|
|
import com.yssh.utils.CalculateUtils;
|
import io.swagger.annotations.ApiModelProperty;
|
|
/**
|
* 报告
|
* @author WWW
|
* @date 2023-06-18
|
*/
|
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;
|
}
|
}
|