package com.hbbohua.water.domain;
|
|
import com.hbbohua.water.domain.literal.AttributeNames;
|
import com.ooxsoft.ecsi.domain.Unit;
|
import com.hbbohua.water.domain.literal.ValueIdsHex;
|
import com.ooxsoft.objekt.domain.Value;
|
import com.ooxsoft.platform.domain.UnitOfMeasure;
|
import com.ooxsoft.platform.domain.literal.UnitOfMeasureIdsHex;
|
import org.jetbrains.annotations.Nullable;
|
|
/**
|
* 流量计
|
*/
|
public class Flowmeter extends Unit {
|
/**
|
* 指定地图标记的类型(点、线、圆、矩形、多边形等)
|
*
|
* @return 地图标记的类型
|
*/
|
@Override
|
public Value locationType() {
|
return Value.forId(ValueIdsHex.LocationType_marker);
|
}
|
|
/**
|
* 获取累计值
|
*
|
* @return 累计值
|
*/
|
@Nullable
|
public Double getTotalValue() {
|
return getAttributeValue(AttributeNames.totalValue);
|
}
|
|
/**
|
* 设置累计值
|
*
|
* @param totalValue 累计值
|
*/
|
public void setTotalValue(Double totalValue) {
|
setAttributeValue(AttributeNames.totalValue, totalValue);
|
}
|
|
/**
|
* 获取流量值
|
*
|
* @return 流量值
|
*/
|
@Nullable
|
public Double getFlowValue() {
|
return getAttributeValue(AttributeNames.flowValue);
|
}
|
|
/**
|
* 设置流量值
|
*
|
* @param flowValue 流量值
|
*/
|
public void setFlowValue(Double flowValue) {
|
setAttributeValue(AttributeNames.flowValue, flowValue);
|
}
|
|
/**
|
* 获取流量值计量单位
|
*
|
* @return 流量值计量单位
|
*/
|
@Nullable
|
public UnitOfMeasure getFlowValueUnitOfMeasure() {
|
return getAttributeValue(AttributeNames.flowValueUnitOfMeasure);
|
}
|
|
/**
|
* 设置流量值计量单位
|
*
|
* @param flowValueUnitOfMeasure 流量值计量单位
|
*/
|
public void setFlowValueUnitOfMeasure(UnitOfMeasure flowValueUnitOfMeasure) {
|
setAttributeValue(AttributeNames.flowValueUnitOfMeasure, flowValueUnitOfMeasure);
|
}
|
|
/**
|
* 获取累计值计量单位
|
*
|
* @return 累计值计量单位
|
*/
|
@Nullable
|
public UnitOfMeasure getTotalValueUnitOfMeasure() {
|
return getAttributeValue(AttributeNames.totalValueUnitOfMeasure);
|
}
|
|
/**
|
* 设置累计值计量单位
|
*
|
* @param totalValueUnitOfMeasure 累计值计量单位
|
*/
|
public void setTotalValueUnitOfMeasure(UnitOfMeasure totalValueUnitOfMeasure) {
|
setAttributeValue(AttributeNames.totalValueUnitOfMeasure, totalValueUnitOfMeasure);
|
}
|
|
/**
|
* 对象持久化前处理。该方法由对象持久化框架回调。在将对象从非持久化状态"TRANSIENT"转换为已持久化状态"MANAGED"之前触发。
|
* 子类重写该方法时,要考虑是否调用super.xxx(),以及调用先后时机,以免造成无意的父类代码逻辑被覆盖(丢失)
|
*/
|
@Override
|
protected void prePersist() {
|
super.prePersist();
|
//默认流量单位 立方米/小时
|
if(getFlowValueUnitOfMeasure() == null){
|
setFlowValueUnitOfMeasure(UnitOfMeasure.forId(UnitOfMeasureIdsHex.MQH));
|
}
|
if(getTotalValueUnitOfMeasure() == null){
|
setTotalValueUnitOfMeasure(UnitOfMeasure.forId(UnitOfMeasureIdsHex.MQH));
|
}
|
//增加动态属性名,填充实时库标签用
|
if(!containsDynamicAttribute(AttributeNames.flowValue)){
|
setDynamicAttribute(AttributeNames.flowValue,null,true);
|
}
|
if(!containsDynamicAttribute(AttributeNames.totalValue)){
|
setDynamicAttribute(AttributeNames.totalValue,null,true);
|
}
|
}
|
}
|