PmsSchedule4Time.java

package com.mycim.valueobject.ems;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.SystemConstant;

import java.util.Date;

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

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

    @Override
    public void setToleranceStatusBase(int number) {
        double tolerance = this.getToleranceTime();
        Long nextPmTime = this.getNextPmTime().getTime();
        Long currentTime = System.currentTimeMillis();
        Long toleranceNum = (long) (tolerance * 60 * 60 * 1000);
        this.setPrePMTimee(DateUtils.formatDate(new Date(nextPmTime - toleranceNum)));
        this.setDeadLine(DateUtils.formatDate(new Date(nextPmTime + toleranceNum)));

        String itemStatus = this.getItemStatus();
        if (StringUtils.equalsIgnoreCase(itemStatus, SystemConstant.Str.ON)) {
            if (currentTime < nextPmTime && currentTime + toleranceNum > nextPmTime) {
                this.setToleranceStatus(-1); //黄色
            } else if (currentTime >= nextPmTime && currentTime <= nextPmTime + toleranceNum) {
                this.setToleranceStatus(1); //绿色
            } else if (currentTime > nextPmTime + toleranceNum) {
                this.setToleranceStatus(3); //红色 且定时器会切换状态
            }
        }
    }


}