Commit f0fbb621 authored by duwei's avatar duwei

优化代码

parent 79d9b027
......@@ -1415,7 +1415,7 @@ public class TrendServiceImpl implements TrendService {
vo.setFlow(po.getFlow());
Double speed = po.getSpeed();
vo.setSpeed((int) Math.round(speed));
vo.setSpeed((double) Math.round(speed *100)/100.0 );//Math.round(0.01d * 100) / 100.0
Double queueLength = po.getQueueLength();
vo.setQueueLength((int) Math.round(queueLength));
......@@ -1427,9 +1427,9 @@ public class TrendServiceImpl implements TrendService {
vo.setEfficiencyEvaluateLevel(0.0);
Double stopTimes = po.getStopTimes();
vo.setStopTimes((int) Math.round(stopTimes));
vo.setStopTimes((double) Math.round(stopTimes *100)/100.0);
Double vehheadTime = po.getVehheadTime();
vo.setVehheadTime((int) Math.round(vehheadTime));
vo.setVehheadTime((double) Math.round(vehheadTime *100) /100.0);
//饱和度
vo.setSaturation(0.0);//po.getSaturation()
//拥堵指数
......@@ -1453,12 +1453,12 @@ public class TrendServiceImpl implements TrendService {
Double timeOccupancyDouble = po.getTimeOccupancy();
if (timeOccupancyDouble != null) {
vo.setTimeOccupancy((int) Math.round(timeOccupancyDouble * 100));
vo.setTimeOccupancy(Math.round(timeOccupancyDouble * 100) /100.0);
}
Double vehicleLengthRatioMean = po.getVehicleLengthRatioMean();
if (vehicleLengthRatioMean != null) {
vo.setVehicleNumsRatioMean((int) Math.round(vehicleLengthRatioMean * 100));
vo.setVehicleNumsRatioMean(Math.round(vehicleLengthRatioMean * 100)/100.0);
}
//路口服务水平
vo.setServiceLevel(0);
......@@ -1473,11 +1473,11 @@ public class TrendServiceImpl implements TrendService {
//不停车通过率
vo.setNoStopPassRate(0);
if (po.getNoStopRate() != null && po.getNoStopRate() >= 0) {
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate()));
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate() *100)/100.0);
}
//一次停车通过率
if (po.getOneStopRate() != null && po.getOneStopRate() >= 0) {
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate()));
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate() *100)/100.0);
}
//二次停车通过率
vo.setTwoStopPassRate(0);
......@@ -1497,7 +1497,7 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficFlowB(po.getTrafficFlowB());
vo.setTrafficFlowC(po.getTrafficFlowC());
vo.setNonMotorFlow(po.getNonMotorFlow());
vo.setV85(Math.round(po.getV85() * 100) / 100);
vo.setV85(Math.round(po.getV85() * 100) / 100.0);
vo.setPedFlow(pedFlow);
vo.setAllFlow(pedFlow + po.getNonMotorFlow() + po.getFlow());
vo.setAllVehiceleFlow(po.getFlow() + po.getNonMotorFlow());
......@@ -1542,7 +1542,7 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficFlowC(po.getTrafficFlowC());
vo.setNonMotorFlow(po.getNonMotorFlow());
Double speed = po.getSpeed();
vo.setSpeed((int) Math.round(speed));
vo.setSpeed( Math.round(speed *100)/100.0);
vo.setFlow(po.getFlow());
vo.setAllFlow(po.getFlow() + po.getNonMotorFlow() + po.getFlow());
//----------------------------
......@@ -1556,7 +1556,7 @@ public class TrendServiceImpl implements TrendService {
// Date dateFromTimestamp = new Date(millis);
Double queueLength = po.getQueueLength();
vo.setQueueLength((int) Math.round(queueLength));
vo.setQueueLength(Math.round(queueLength *100)/100.0);
Integer delayTime = po.getDelayTime();
vo.setDelayTime(delayTime);
......@@ -1566,12 +1566,12 @@ public class TrendServiceImpl implements TrendService {
vo.setEfficiencyEvaluateLevel(0.0);
Double stopTimes = po.getStopTimes();
vo.setStopTimes((int) Math.round(stopTimes));
vo.setStopTimes(Math.round(stopTimes *100)/100.0);
Double vehheadTime = po.getVehheadTime();
vo.setVehheadTime((int) Math.round(vehheadTime));
vo.setVehheadTime(Math.round(vehheadTime*100)/100.0);
//饱和度 sturation
if (po.getSturation() != null) {
vo.setSaturation((double) Math.round(po.getSturation()));
vo.setSaturation((double) Math.round(po.getSturation()*100)/100.0);
}else {
vo.setSaturation(0.0);
}
......@@ -1585,7 +1585,7 @@ public class TrendServiceImpl implements TrendService {
vo.setCongestionTimes(0);
//溢出次数
if (po.getEffusionRate() != null) {
vo.setOverflowTimes((int) Math.round(po.getEffusionRate()));
vo.setOverflowTimes(Math.round(po.getEffusionRate() *100)/100.0);
}else {
vo.setOverflowTimes(0);
}
......@@ -1595,7 +1595,7 @@ public class TrendServiceImpl implements TrendService {
vo.setFreeFlowTimes(0);
//溢流率
if (po.getEffusionRate() != null) {
vo.setOverflowRate((int) Math.round(po.getEffusionRate()));
vo.setOverflowRate(Math.round(po.getEffusionRate()*100)/100.0);
}else {
vo.setOverflowRate(0.0);
}
......@@ -1604,12 +1604,12 @@ public class TrendServiceImpl implements TrendService {
Double timeOccupancyDouble = po.getTimeOccupancy();
if (timeOccupancyDouble != null) {
vo.setTimeOccupancy((int) Math.round(timeOccupancyDouble * 100));
vo.setTimeOccupancy(Math.round(timeOccupancyDouble * 100)/100.0);
}
Double vehicleLengthRatioMean = po.getVehicleLengthRatioMean();
if (vehicleLengthRatioMean != null) {
vo.setVehicleNumsRatioMean((int) Math.round(vehicleLengthRatioMean * 100));
vo.setVehicleNumsRatioMean(Math.round(vehicleLengthRatioMean * 100)/100.0);
}
//路口服务水平
vo.setServiceLevel(0);
......@@ -1622,12 +1622,12 @@ public class TrendServiceImpl implements TrendService {
//交通事故数
vo.setTrafficAccidentNum(0);
//不停车通过率
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate()));
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate()*100)/100.0);
//一次停车通过率
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate()));
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate()*100)/100.0);
//二次停车通过率
vo.setTwoStopPassRate((double) Math.round(po.getTwoStopRate()));
vo.setTwoStopPassRate((double) Math.round(po.getTwoStopRate()*100)/100.0);
//路口未清空率
vo.setCrossNoClearRate(0);
//平均排队长度
......@@ -1643,9 +1643,9 @@ public class TrendServiceImpl implements TrendService {
//行人闯红灯率
vo.setPedCrossRedLightRate(0.0);
vo.setVehheadDist((double) Math.round(po.getVehheadDist()));
vo.setVehheadDist((double) Math.round(po.getVehheadDist()*100)/100.0);
vo.setV85(Math.round(po.getV85() * 100) / 100);
vo.setV85(Math.round(po.getV85() * 100) / 100.0);
vo.setAllVehiceleFlow(po.getFlow() + po.getNonMotorFlow());
vo.setTurn(po.getTurn());
......@@ -1690,14 +1690,14 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficFlowB( po.getTrafficFlowB());
vo.setTrafficFlowC( po.getTrafficFlowC());
Double speed = po.getSpeed();
vo.setSpeed((int) Math.round(speed));
vo.setSpeed( Math.round(speed*100)/100.0);
vo.setVehheadDist(0d);//车头间距
Double queueLength = po.getQueueLength();
vo.setQueueLength((int) Math.round(queueLength));
vo.setQueueLength(Math.round(queueLength *100)/100.0);
Double stopTimes = po.getStopTimes();
vo.setStopTimes((int) Math.round(stopTimes));
vo.setStopTimes(Math.round(stopTimes*100)/100.0);
if (po.getVehheadTime() != null) {
vo.setVehheadTime((int) Math.round(po.getVehheadTime()));
vo.setVehheadTime(Math.round(po.getVehheadTime()*100)/100.0);
}else {
vo.setVehheadTime(0);
}
......@@ -1748,7 +1748,7 @@ public class TrendServiceImpl implements TrendService {
Double timeOccupancyDouble = po.getTimeOccupancy();
if (timeOccupancyDouble != null) {
vo.setTimeOccupancy((int) Math.round(0 * 100));
vo.setTimeOccupancy(Math.round(timeOccupancyDouble * 100)/100.0);
}
// Double vehicleLengthRatioMean = po.getVehicleLengthRatioMean();
......@@ -1835,7 +1835,7 @@ public class TrendServiceImpl implements TrendService {
vo.setAllVehiceleFlow(po.getFlow() + 0);//车辆总和
vo.setPedFlow(0);
if (po.getNonMotorFlow() != null) {
vo.setNonMotorFlow((int) Math.round(po.getNonMotorFlow()));//非机动车流量
vo.setNonMotorFlow(Math.round(po.getNonMotorFlow() *100)/100.0);//非机动车流量
}else {
vo.setNonMotorFlow(0);
}
......@@ -1843,14 +1843,14 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficFlowB((int) po.getTrafficFlowB());
vo.setTrafficFlowC((int) po.getTrafficFlowC());
Double speed = po.getSpeed();
vo.setSpeed((int) Math.round(speed));
vo.setSpeed(Math.round(speed *100)/100.0);
vo.setVehheadDist(0d);//车头间距
Double vehheadTime = 0d;
vo.setVehheadTime((int) Math.round(vehheadTime));//车头时距
vo.setVehheadTime(Math.round(vehheadTime *100)/100.0);//车头时距
Double queueLength = po.getQueueLength();
vo.setQueueLength((int) Math.round(queueLength));
vo.setQueueLength(Math.round(queueLength*100)/100.0);
Double stopTimes = po.getStopTimes();//停车次数
vo.setStopTimes((int) Math.round(stopTimes));
vo.setStopTimes( Math.round(stopTimes *100)/100.0);
//----------------------------------------------------------------------------------------------
// if (po.getId().contains(crossId.concat(Constants.SystemParam.SEPARATOR_MINUS))) {
......@@ -1870,13 +1870,13 @@ public class TrendServiceImpl implements TrendService {
vo.setEfficiencyEvaluateLevel(0.0);
//饱和度
if(po.getSturation() != null) {
vo.setSaturation((double) Math.round(po.getSturation()));
vo.setSaturation(Math.round(po.getSturation()*100)/100.0);
}else {
vo.setSaturation(0.0);
}
//拥堵指数
if(po.getEffusionRate() != null) {
vo.setCongestionIndex(po.getEffusionRate());
vo.setCongestionIndex(Math.round(po.getEffusionRate()*100)/100.0);
}else {
vo.setCongestionIndex(0.0);
}
......@@ -1903,7 +1903,7 @@ public class TrendServiceImpl implements TrendService {
Double timeOccupancyDouble = po.getTimeOccupancy();
if (timeOccupancyDouble != null) {
vo.setTimeOccupancy((int) Math.round(timeOccupancyDouble * 100));
vo.setTimeOccupancy(Math.round(timeOccupancyDouble * 100)/100.0);
}else {
vo.setTimeOccupancy(0);
}
......@@ -1924,19 +1924,19 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficAccidentNum(0);
//不停车通过率
if (po.getNoStopRate() != null) {
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate()));
vo.setNoStopPassRate(Math.round(po.getNoStopRate()*100)/100.0);
}else {
vo.setNoStopPassRate(0);
}
//一次停车通过率
if (po.getOneStopRate() != null) {
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate()));
vo.setOneStopPassRate(Math.round(po.getOneStopRate()*100)/100.0);
}else {
vo.setOneStopPassRate(0);
}
//二次停车通过率
if (po.getTwoStopRate() != null) {
vo.setTwoStopPassRate((double) Math.round(po.getTwoStopRate()));
vo.setTwoStopPassRate(Math.round(po.getTwoStopRate()*100)/100.0);
}else {
vo.setTwoStopPassRate(0);
}
......@@ -1944,7 +1944,7 @@ public class TrendServiceImpl implements TrendService {
vo.setCrossNoClearRate(0);
//平均排队长度
if (po.getQueueLength() != null) {
vo.setAvgQueueLength((double) Math.round(po.getQueueLength()));
vo.setAvgQueueLength(Math.round(po.getQueueLength()*100)/100.0);
}else {
vo.setAvgQueueLength(0.0);
}
......@@ -1994,15 +1994,15 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficFlowB( po.getTrafficFlowB());
vo.setTrafficFlowC( po.getTrafficFlowC());
Double speed = po.getSpeed();
vo.setSpeed((int) Math.round(speed));
vo.setSpeed(Math.round(speed * 100)/ 100.0);
vo.setVehheadDist(0d);//车头间距
Double vehheadTime = 0d;
vo.setVehheadTime((int) Math.round(vehheadTime));//车头时距
vo.setVehheadTime(Math.round(vehheadTime*100)/100.0);//车头时距
Double queueLength = po.getQueueLength();
vo.setQueueLength((int) Math.round(queueLength));
vo.setQueueLength(Math.round(queueLength*100)/100.0);
Double stopTimes = po.getStopTimes();
if (stopTimes != null) {
vo.setStopTimes((int) Math.round(stopTimes));
vo.setStopTimes(Math.round(stopTimes *100)/100.0);//Math.round(0.01d * 100) / 100.0
}else {
vo.setStopTimes(0);
}
......@@ -2028,16 +2028,28 @@ public class TrendServiceImpl implements TrendService {
//饱和度
if (po.getSturation() != null) {
vo.setSaturation((double) Math.round(po.getSturation()));
vo.setSaturation(Math.round(po.getSturation() *100)/100.0);//Math.round(0.01d * 100) / 100.0
}else {
vo.setSaturation(0.0);
}
//拥堵指数
vo.setCongestionIndex(po.getCongestionIndex());
if (po.getCongestionIndex() != null) {
vo.setCongestionIndex(Math.round(po.getCongestionIndex()*100)/100.0);
}else {
vo.setCongestionIndex(0.0);
}
//溢出指数
vo.setOverflowIndex(po.getSpilloverIndex());
if (po.getSpilloverIndex() != null) {
vo.setOverflowIndex(Math.round(po.getSpilloverIndex()*100)/100.0);
}else {
vo.setOverflowIndex(0.0);
}
//失衡指数
vo.setImbalanceIndex(po.getUnbalanceIndex());
if (po.getUnbalanceIndex() != null) {
vo.setImbalanceIndex(Math.round(po.getUnbalanceIndex()*100)/100.0);
}else {
vo.setImbalanceIndex(0.0);
}
//拥堵次数
vo.setCongestionTimes(0);
//溢出次数
......@@ -2053,14 +2065,14 @@ public class TrendServiceImpl implements TrendService {
Double timeOccupancyDouble = po.getTimeOccupancy();
if (timeOccupancyDouble != null) {
vo.setTimeOccupancy((int) Math.round(timeOccupancyDouble * 100));
vo.setTimeOccupancy(Math.round(timeOccupancyDouble * 100) /100.0);//Math.round(0.01d * 100) / 100.0
}else {
vo.setTimeOccupancy(0);
}
Double vehicleLengthRatioMean = po.getVehicleLengthRatioMean();
if (vehicleLengthRatioMean != null) {
vo.setVehicleNumsRatioMean((int) Math.round(vehicleLengthRatioMean * 100));
vo.setVehicleNumsRatioMean(Math.round(vehicleLengthRatioMean * 100) /100.0);
}else {
vo.setVehicleNumsRatioMean(0);
}
......@@ -2076,22 +2088,29 @@ public class TrendServiceImpl implements TrendService {
vo.setTrafficAccidentNum(0);
//不停车通过率
if (po.getNoStopRate() != null) {
vo.setNoStopPassRate((double) Math.round(po.getNoStopRate()));
vo.setNoStopPassRate(Math.round(po.getNoStopRate() *100) / 100.0d);//Math.round(0.01d * 100) / 100.0
}else {
vo.setNoStopPassRate(0);
}
//一次停车通过率
if (po.getOneStopRate() != null) {
vo.setOneStopPassRate((double) Math.round(po.getOneStopRate()));
vo.setOneStopPassRate( Math.round(po.getOneStopRate() *100)/ 100.0);//Math.round(0.01d * 100) / 100.0
}else {
vo.setOneStopPassRate(0);
}
//二次停车通过率
if (po.getTwoStopRate() != null) {
vo.setTwoStopPassRate(po.getTwoStopRate());
vo.setTwoStopPassRate(Math.round(po.getTwoStopRate() *100)/100.0);//Math.round(0.01d * 100) / 100.0
}else {
vo.setTwoStopPassRate(0);
}
//三次停车通过率
if (po.getThreeStopRate() != null) {
vo.setThreeStopRate(Math.round(po.getThreeStopRate()*100)/100.0);
}else {
vo.setThreeStopRate(0.0);
}
//路口未清空率
vo.setCrossNoClearRate(0);
//平均排队长度
......@@ -2105,7 +2124,7 @@ public class TrendServiceImpl implements TrendService {
// vo.setVehheadDist(po.getVehheadDist());
vo.setV85(Math.round(po.getV85() * 100) / 100);
vo.setV85(Math.round(po.getV85() * 100) / 100.0);
// vo.setTurn(po.getTurn());
......
......@@ -47,7 +47,7 @@ public class CrossingDirectionQueryVO {
@ApiModelProperty(value = "非机动车流量")
@ExcelProperty("非机动车流量")
private int nonMotorFlow;
private double nonMotorFlow;
@ExcelProperty("小车流量")
private Integer trafficFlowC;
......@@ -60,7 +60,7 @@ public class CrossingDirectionQueryVO {
@ApiModelProperty(value = "平均速度")
@ExcelProperty("平均速度")
private Integer speed;
private double speed;
@ApiModelProperty(value = "平均车头间距")
@ExcelProperty("平均车头间距")
......@@ -68,15 +68,15 @@ public class CrossingDirectionQueryVO {
@ApiModelProperty(value = "平均车头时距")
@ExcelProperty("平均车头时距")
private Integer vehheadTime;
private double vehheadTime;
@ApiModelProperty(value = "最大排队")
@ExcelProperty("最大排队")
private Integer queueLength;
private double queueLength;
@ApiModelProperty(value = "平均停车次数")
@ExcelProperty("平均停车次数")
private Integer stopTimes;
private double stopTimes;
//-----------------------------
......@@ -122,7 +122,7 @@ public class CrossingDirectionQueryVO {
@ApiModelProperty(value = "时间占有率")
@ExcelProperty("平均时间占有率%")
private Integer timeOccupancy;
private double timeOccupancy;
@ApiModelProperty(value = "空间占有率")
// 空间长度占比 todo字段名称展示先不改了
......
......@@ -60,7 +60,7 @@ public class CrossingQueryVO {
@ApiModelProperty(value = "平均速度")
@ExcelProperty("平均速度")
private Integer speed;
private double speed;
@ApiModelProperty(value = "平均车头间距")
@ExcelProperty("平均车头间距")
......@@ -68,15 +68,15 @@ public class CrossingQueryVO {
@ApiModelProperty(value = "平均车头时距")
@ExcelProperty("平均车头时距")
private Integer vehheadTime;
private double vehheadTime;
@ApiModelProperty(value = "最大排队")
@ExcelProperty("最大排队")
private Integer queueLength;
private double queueLength;
@ApiModelProperty(value = "平均停车次数")
@ExcelProperty("平均停车次数")
private Integer stopTimes;
private double stopTimes;
//-----------------------------
......@@ -122,12 +122,12 @@ public class CrossingQueryVO {
@ApiModelProperty(value = "时间占有率")
@ExcelProperty("平均时间占有率%")
private Integer timeOccupancy;
private double timeOccupancy;
@ApiModelProperty(value = "空间占有率")
// 空间长度占比 todo字段名称展示先不改了
@ExcelProperty("平均空间占有率%")
private Integer vehicleNumsRatioMean;
private double vehicleNumsRatioMean;
@ExcelProperty("85位速度")
private double v85;
......@@ -187,6 +187,10 @@ public class CrossingQueryVO {
@ExcelProperty("二次停车通过率")
private double twoStopPassRate;
@ApiModelProperty(name = "三次停车通过率")
@ExcelProperty("三次停车通过率")
public double threeStopRate;
@ApiModelProperty(value = "路口未清空率")
@ExcelProperty("路口未清空率")
private double crossNoClearRate;
......@@ -211,4 +215,12 @@ public class CrossingQueryVO {
@ExcelProperty("车辆总和")
private int allVehiceleFlow;
}
public static void main(String[] args) {
//保留两位小数
double b = Math.round(0.01d * 100) / 100.0;
System.out.println(b);
double a = (double) Math.round(0.01d);
System.out.println(a);
}
}
......@@ -72,7 +72,7 @@ public class CrossingTurnQueryVO {
@ApiModelProperty(value = "平均速度")
@ExcelProperty("平均速度")
private Integer speed;
private double speed;
@ApiModelProperty(value = "平均车头间距")
@ExcelProperty("平均车头间距")
......@@ -80,15 +80,15 @@ public class CrossingTurnQueryVO {
@ApiModelProperty(value = "平均车头时距")
@ExcelProperty("平均车头时距")
private Integer vehheadTime;
private double vehheadTime;
@ApiModelProperty(value = "最大排队")
@ExcelProperty("最大排队")
private Integer queueLength;
private double queueLength;
@ApiModelProperty(value = "平均停车次数")
@ExcelProperty("平均停车次数")
private Integer stopTimes;
private double stopTimes;
//-----------------------------
......@@ -134,7 +134,7 @@ public class CrossingTurnQueryVO {
@ApiModelProperty(value = "时间占有率")
@ExcelProperty("平均时间占有率%")
private Integer timeOccupancy;
private double timeOccupancy;
@ApiModelProperty(value = "空间占有率")
// 空间长度占比 todo字段名称展示先不改了
......
......@@ -135,7 +135,7 @@ public class TableQueryVO {
@ApiModelProperty(value = "最大排队")
@ExcelProperty("最大排队")
private Integer queueLength;
private double queueLength;
@ApiModelProperty(value = "平均延误")
@ExcelProperty("平均延误")
......@@ -151,11 +151,11 @@ public class TableQueryVO {
@ApiModelProperty(value = "平均停车次数")
@ExcelProperty("平均停车次数")
private Integer stopTimes;
private double stopTimes;
@ApiModelProperty(value = "平均车头时距")
@ExcelProperty("平均车头时距")
private Integer vehheadTime;
private double vehheadTime;
@ApiModelProperty(value = "饱和度")
@ExcelProperty("饱和度")
......@@ -179,17 +179,17 @@ public class TableQueryVO {
@ApiModelProperty(value = "时间占有率")
@ExcelProperty("平均时间占有率%")
private Integer timeOccupancy;
private double timeOccupancy;
@ApiModelProperty(value = "空间占有率")
// 空间长度占比 todo字段名称展示先不改了
@ExcelProperty("平均空间占有率%")
private Integer vehicleNumsRatioMean;
private double vehicleNumsRatioMean;
@ExcelProperty("85位速度")
private double v85;
@ApiModelProperty(value = "速度")
@ExcelProperty("平均速度")
private Integer speed;
private double speed;
@ExcelProperty("大车流量")
private Integer trafficFlowA;
@ExcelProperty("中车流量")
......@@ -213,7 +213,7 @@ public class TableQueryVO {
@ApiModelProperty(value = "溢出次数")
@ExcelProperty("溢出次数")
private int overflowTimes;
private double overflowTimes;
@ApiModelProperty(value = "失衡次数")
@ExcelProperty("失衡次数")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment