package com.jiayue.ipfcst.dataexchange.dataprocesser;

import lombok.Data;
import org.joda.time.DateTime;

import java.math.BigDecimal;

/**
 * 为审核数据的合理性提供历史数据
 *
 * @author 修唯xiuwei
 * @version 3.0
 */
@Data
public class CheckDataRecode {

  /***
   * 原始值
   */
  private BigDecimal originalVal;

  /***
   * 使用值
   */
  private BigDecimal usedVal;

  /**
   * 死值开始时间
   */
  private DateTime deadDataStartTime = DateTime.now();

  /**
   * 该数据的获取时间
   */
  private DateTime time;

  /**
   * 初始化数值
   *
   * @param val 用于初始化的数值
   * @return CheckDataRecode 返回对象本身
   */
  public CheckDataRecode initValue(BigDecimal val,Double max,Double min) {
    if (this.getUsedVal() == null) {
      if(val.compareTo(BigDecimal.valueOf(-99))==0){
        this.setUsedVal(BigDecimal.ZERO);
      }else if(max!=null && val.doubleValue()>max){
        this.setUsedVal(BigDecimal.valueOf(max));
      }else if(min!=null && val.doubleValue()<min){
        this.setUsedVal(BigDecimal.valueOf(min));
      }else{
        this.setUsedVal(val);
      }
    }
    if (this.getOriginalVal() == null) {
      this.setOriginalVal(val);
    }
    if (this.getTime() == null) {
      this.setTime(DateTime.now());
    }
    return this;
  }
}
