|
@@ -1,5 +1,7 @@
|
|
|
package com.hb.proj.model;
|
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+
|
|
|
import lombok.Data;
|
|
|
import lombok.EqualsAndHashCode;
|
|
|
|
|
@@ -11,17 +13,61 @@ public class LiquidVO extends LiquidPO {
|
|
|
|
|
|
private String computeModeName;
|
|
|
|
|
|
+ private Double preSoundSpeedFactor; //最近使用了音速法的记录的音速系数
|
|
|
+
|
|
|
+
|
|
|
public void setComputeMode(String computeMode) {
|
|
|
super.setComputeMode(computeMode);
|
|
|
- if("hoop".equals(computeMode)) {
|
|
|
+ if(LiquidPO.MODE_HOOP.equals(computeMode)) {
|
|
|
this.computeModeName="接箍法";
|
|
|
}
|
|
|
- else if("sound_speed".equals(computeMode)) {
|
|
|
+ else if(LiquidPO.MODE_SOUND_SPEED.equals(computeMode)) {
|
|
|
this.computeModeName="音速法";
|
|
|
}
|
|
|
- else if("sound_mark".equals(computeMode)) {
|
|
|
+ else if(LiquidPO.MODE_SOUND_MARK.equals(computeMode)) {
|
|
|
this.computeModeName="音标法";
|
|
|
}
|
|
|
|
|
|
+ setDefSoundSpeedCalc(computeMode,this.getSoundSpeed());
|
|
|
+
|
|
|
+ setDefLiquidDepth(computeMode,this.getLiquidDepthDev());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setSoundSpeed(Double soundSpeed) {
|
|
|
+ super.setSoundSpeed(soundSpeed);
|
|
|
+ setDefSoundSpeedCalc(this.getComputeMode(),soundSpeed);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setLiquidDepthDev(Double liquidDepthDev) {
|
|
|
+ super.setLiquidDepthDev(liquidDepthDev);
|
|
|
+ setDefLiquidDepth(this.getComputeMode(),liquidDepthDev);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setPreSoundSpeedFactor(Double preFactor) {
|
|
|
+ this.preSoundSpeedFactor=preFactor;
|
|
|
+ setDefLiquidDepth(this.getComputeMode(),this.getLiquidDepthDev());
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //参与计算的属性set方法中都要注入,避免set方法调用先后顺序使注入方法无效
|
|
|
+ //如果是音速法,则校正音速=输入音速参数
|
|
|
+ private void setDefSoundSpeedCalc(String computeMode,Double soundSpeed) {
|
|
|
+ if(LiquidPO.MODE_SOUND_SPEED.equals(computeMode)) {
|
|
|
+ this.setSoundSpeedCalc(soundSpeed);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //还未手动计算过,校正深度默认=液面深度(设备)* 音速系数
|
|
|
+ private void setDefLiquidDepth(String computeMode,Double liquidDepthDev) {
|
|
|
+ if(StringUtils.isBlank(computeMode) && liquidDepthDev!=null) {
|
|
|
+ Double dep=liquidDepthDev*(this.preSoundSpeedFactor!=null?this.preSoundSpeedFactor:1);
|
|
|
+ if(dep!=null) {
|
|
|
+ this.setLiquidDepth(Double.parseDouble(String.format("%.2f", dep)));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|