AutoMonitorUtils.java

package com.mycim.valueobject.automonitor.util;

import com.mycim.framework.utils.lang.BooleanUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.consts.EquipmentStatus;
import com.mycim.valueobject.consts.EventName;
import com.mycim.valueobject.ems.Equipment;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

public class AutoMonitorUtils {

    public static String checkItemMainEqptType(String mainEqptType) {
        if (StringUtils.isNotBlank(mainEqptType)) {
            return StringUtils.trimToUpperCase(mainEqptType);
        } else {
            return AutoMonitorItemMainEqptType.NORMAL.toString();
        }
    }

    public enum AutoMonitorItemMainEqptType {
        /**
         * Type 炉管有单独种类
         **/
        NORMAL, DIFF
    }

    public enum AutoMonitorItemMonitorCarrierType {
        /**
         * Single
         **/
        SINGLE,
        /**
         * Multi
         **/
        MULTI;

        public static boolean isSingle(String carrierType) {
            if (SINGLE.toString().equals(carrierType)) {
                return true;
            }
            return false;
        }

        public static boolean isMulti(String carrierType) {
            if (MULTI.toString().equals(carrierType)) {
                return true;
            }
            return false;
        }
    }

    public static boolean checkStepIsPreEdcStep(String eqptType) {
        return StringUtils.startsWith(eqptType, AutoMonitorOperationConstants.STEP_TYPE_PRE) ||
                StringUtils.equalsIgnoreCase(eqptType, AutoMonitorOperationConstants.STEP_TYPE_SINGLE_PRE);
    }

    public static boolean checkStepIsPostEdcStep(String eqptType) {
        return StringUtils.startsWith(eqptType,AutoMonitorOperationConstants.STEP_TYPE_POST);
    }

    public static boolean checkStepIsEdcStep(String eqptType) {
        return StringUtils.startsWith(eqptType, AutoMonitorOperationConstants.STEP_TYPE_PRE) ||
                StringUtils.startsWith(eqptType, AutoMonitorOperationConstants.STEP_TYPE_POST) ||
                StringUtils.equalsIgnoreCase(eqptType, AutoMonitorOperationConstants.STEP_TYPE_SINGLE_PRE);
    }

    public static boolean checkStepIsProcessStep(String eqptType) {
        return !checkStepIsEdcStep(eqptType);
    }

    public static boolean checkStepIsMainProcessStep(String eqptType) {
        return StringUtils.equals(eqptType,AutoMonitorOperationConstants.STEP_TYPE_MAIN);
    }

    public static boolean checkStepIsProcessEdcStep(String eqptType) {
        return StringUtils.startsWith(eqptType, AutoMonitorOperationConstants.STEP_TYPE_PROCESS_PRE) ||
                StringUtils.startsWith(eqptType, AutoMonitorOperationConstants.STEP_TYPE_PROCESS_POST) ||
                StringUtils.equalsIgnoreCase(eqptType, AutoMonitorOperationConstants.STEP_TYPE_SINGLE_PRE);
    }

    public static String buildItemWorkflowId(String eqptId, String itemType) {
        return "MONITOR-ITEM-" + StringUtils.trimToUpperCase(eqptId) + "-" + StringUtils.trimToUpperCase(itemType);
    }

    public static List<String> getDispatchEqptAvailableStatus(Equipment equipment, String eqptType) {
        if(checkStepIsMainProcessStep(eqptType)) {
            return Arrays.asList(EquipmentStatus.AVAILABLE_EQP_AUTO_MONITOR_STATUS);
        } else if (BooleanUtils.toBoolean(equipment.getIsChamberEquip()) &&
                StringUtils.isNotEmpty(equipment.getChamberMode())) {
            List<String> allAvailableStatus = new ArrayList<>();
            allAvailableStatus.addAll(Arrays.asList(EquipmentStatus.AVAILABLE_EQP_STATUS));
            allAvailableStatus.addAll(Arrays.asList(EquipmentStatus.AVAILABLE_EQP_AUTO_MONITOR_STATUS));
            return allAvailableStatus;
        } else {
            return Arrays.asList(EquipmentStatus.AVAILABLE_EQP_STATUS);
        }
    }

    public static boolean checkJobStatusIsFixed(String jobStatus){
        return Arrays.asList(MonitorJobStatusConts.getFixedJobStatus()).contains(jobStatus);
    }

    public static boolean checkJobStatusCanCancel(String jobStatus) {
        return Arrays.asList(MonitorJobStatusConts.getCanCancelJobStatus()).contains(jobStatus);
    }

}