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); } } }