PmsSchedule4Trigger.java

package com.mycim.valueobject.ems;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.valueobject.SystemConstant;

import java.math.BigDecimal;

/**
 * @Author: yibing.liu
 * @Date: 2021/12/10 17:45
 */
public class PmsSchedule4Trigger extends PmsSchedule {


    @Override
    public PmsSchedule4Trigger newInstance() {
        return new PmsSchedule4Trigger();
    }

    @Override
    public void setToleranceStatusBase(int number) {
        if (StringUtils.equalsIgnoreCase(this.getItemStatus(), SystemConstant.Str.ON)) {
            String pmType = this.getPmType();
            int toleranceStatus = 0;
            if(this.getTriggerReading() != null) {
                double triggerReadingDouble = NumberUtils.toDouble(this.getTriggerReading());
                BigDecimal triggerReading = new BigDecimal(Double.toString(triggerReadingDouble));//实际读取的值
                BigDecimal triggerCodeSpec = new BigDecimal(this.getTriggerCodeSpec());//设定的值
                BigDecimal toleranceTrigger = new BigDecimal(this.getToleranceOther());
                double toleranceMax = triggerCodeSpec.add(toleranceTrigger).subtract(triggerReading).doubleValue();//设定的值 + 允许的差值 - 实际读取值
                double specMax = triggerCodeSpec.subtract(triggerReading).doubleValue();//设定的值 - 实际读取的值
                double toleranceMin = triggerCodeSpec.subtract(toleranceTrigger).subtract(triggerReading).doubleValue();//设定的值 - 允许的差值 - 实际读取值
                toleranceStatus = PmControlTypeEnum.countStatus(toleranceMax, specMax, toleranceMin,
                                                                PmControlTypeEnum.BY_CHECK_MAX_VALUE.name().equalsIgnoreCase(pmType));
            }
            this.setToleranceStatus(toleranceStatus);
        }
    }



}