SorterEnum.java
package com.mycim.valueobject.consts;
import com.mycim.framework.utils.lang.collections.ListUtils;
import com.mycim.valueobject.wip.LotStatus;
import java.util.List;
/**
* @author yibing.liu
* @version 1.0
* @date 2021/06/29
*/
public interface SorterEnum {
static <E> E getListFirst(List<E> list) {
return list.get(0);
}
enum Type {
/**
* 离线
*/
OFFLINE("OFFLINE"),
/**
* 在线
*/
INLINE("INLINE");
private String name;
Type(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
/**
* 状态
*/
enum Status {
/**
* 创建
*/
CREATE("CREATE"),
/**
* 完成
*/
FINISH("FINISH"),
/**
* 取消
*/
CANCEL("CANCEL"),
/**
* 调度
*/
DISPATCH("DISPATCH");
private String status;
Status(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
}
/**
* Job 类型
*/
enum JobType {
/**
* 普通交换
*/
NORMAL_EXCHANGE("NORMAL_EXCHANGE"),
/**
* 特殊交换
*/
SPECIAL_EXCHANGE("SPECIAL_EXCHANGE"),
/**
* Monitor交换
*/
MONITOR_EXCHANGE("MONITOR_EXCHANGE"),
/**
* 永久分批
*/
SPLIT("SPLIT"),
/**
* 临时分批
*/
TEMP_SPLIT("TEMPORARY"),
/**
* 创建测机批次分批
*/
CREATE_MONITOR("CREATE_MONITOR"),
/**
* RunCard
*/
RUN_CARD("RUN_CARD"),
/**
* 合批
*/
MERGE("MERGE"),
/**
* Monitor 合并
*/
MONITOR_MERGE("MONITOR_MERGE"),
/**
* check T7CODE
*/
OFFLINE_CHECK_T7CODE("OFFLINE_CHECK_T7CODE"),
/**
* 读取 materialId
*/
OFFLINE_READ_MATERIALID("OFFLINE_READ_MATERIALID");
private String jobType;
JobType(String jobType) {
this.jobType = jobType;
}
public String getJobType() {
return jobType;
}
}
class Constant {
public static final String SOURCE_CARRIER_ID = "sourceCarrierId";
public static final String TARGET_CARRIER_ID = "targetCarrierId";
public static final String TARGET_CARRIER_ID2 = "targetCarrierId2";
public static final String EQUIPMENT_ID = "equipmentId";
public static final String EQUIPMENT_RRN = "equipmentRrn";
public static final String BLANK = " ";
public static final String CREATE = "CREATE";
public static final String FINISH = "FINISH";
public static final String CANCEL = "CANCEL";
public static final String NORMAL_EXCHANGE = "NORMAL_EXCHANGE";
public static final String SPECIAL_EXCHANGE = "SPECIAL_EXCHANGE";
public static final String MONITOR_EXCHANGE = "MONITOR_EXCHANGE";
public static final String TEMP_SPLIT = "TEMPORARY";
public static final String RUN_CARD = "RUN_CARD";
public static final String CREATE_MONITOR = "CREATE_MONITOR";
public static final String MERGE = "MERGE";
public static final String MONITOR_MERGE = "MONITOR_MERGE";
public static final String CREATE_SORTER = "CREATE_SORTER";
public static final String CANCEL_SORTER = "CANCEL_SORTER";
public static final String SYN_MONITOR_SORTER = "SYN_MONITOR_SORTER";
public static final String MANUAL_END_SORTER = "MANUAL_END_SORTER";
public static final String AUTO_END_SORTER = "AUTO_END_SORTER";
public static final String MANUAL_AUTO_MONITOR_SORTER = "MANUAL_MONITOR_SORTER";
public static final String SORT_MARK = "sortMark";
public static final String CN = "CN";
public static final String POSITION = "position";
public static final String OLD_POSITION = "oldPosition";
public static final String EXCHANGE = "EXCHANGE";
public static final String EXCHANGE_2PORT = "EXCHANGE_2PORT";
public static final String SPLIT = "SPLIT";
public static final String SPLIT_3PORT = "SPLIT_3PORT";
public static final String SRC_MERGE = "SRC_MERGE";
public static final String SRC_SPLIT = "SRC_SPLIT";
public static final String SRC_EXCHANGE = "SRC_EXCHANGE";
public static final String SRC_SPECIAL_EXCHANGE = "SRC_SPECIAL_EXCHANGE";
public static final String AUTO_MONITOR = "AUTO_MONITOR";
public static final String AUTO_MONITOR_MERGE = "AUTO_MONITOR_MERGE";
public static final String PILOT_SPLIT = "PILOT_SPLIT";
public static final String SAPPHIRE = "SAPPHIRE";
public static final String DUMMY = "DUMMY";
public static final String GLASS = "GLASS";
public static final String FLIP_SIDE = "FLIP_SIDE";
public static final String A_SIDE = "A";
public static final String B_SIDE = "B";
public static final Object RESULT_MESSAGE = "resultMessage";
public static final List<String> SRC_CODE = ListUtils.newArrayList(SRC_SPLIT, SRC_MERGE);
public static final String BY_SORTER = " By Sorter ";
public static final String READ_T7CODE = " INLINE READ T7CODE ";
public static final String OFFLINE_CHECK_T7CODE = "OFFLINE_CHECK_T7CODE";
public static final String OFFLINE_READ_MATERIALID = "OFFLINE_READ_MATERIALID";
public static String parseTextType(String jobType, String language) {
boolean flag = CN.equals(language);
switch (jobType) {
case NORMAL_EXCHANGE:
return flag ? "普通交换晶舟" : "Normal Exchange";
case SPECIAL_EXCHANGE:
return flag ? "特殊交换晶舟" : "Special Exchange";
case MONITOR_EXCHANGE:
return flag ? "Monitor交换晶舟" : "Monitor Exchange";
case SPLIT:
return flag ? "永久分批" : "Split";
case TEMP_SPLIT:
return flag ? "临时分批" : "Temp Split";
case CREATE_MONITOR:
return flag ? "创建测机批次" : "Create Monitor";
case RUN_CARD:
return "RunCard";
case MERGE:
return flag ? "合批" : "Merge";
case MONITOR_MERGE:
return flag ? "Monitor合批" : "Monitor Merge";
case CREATE:
return flag ? "新建" : "Create";
case FINISH:
return flag ? "已完成" : "Finished";
case CANCEL:
return flag ? "已取消" : "Cancelled";
case FLIP_SIDE:
return flag ? "翻面" : "Flip Side";
case READ_T7CODE:
return flag ? "INLINE读取客户T7CODE" : "INLINE READ T7CODE";
case OFFLINE_CHECK_T7CODE:
return "OFFLINE_CHECK_T7CODE";
case OFFLINE_READ_MATERIALID:
return flag ? "OFFLINE 读取 material Id" : "OFFLINE_READ_MATERIALID";
default:
return jobType;
}
}
public static String getOpposite(String flipType) {
return A_SIDE.equalsIgnoreCase(flipType) ? B_SIDE : A_SIDE;
}
}
class HardCode {
public static final String TERMINATE = "TERMINATE";
public static final String TERM = "TERM";
public static final String NO_QTY = "NOQTY";
public static final String SUCCESS = "Success!";
public static final String FALSE = "FALSE";
public static final String FALSE_LOW = "false";
public static final String TRUE_LOW = "true";
public static final String MINUS_ONE = "-1";
public static final String PERMANENT = "permanent";
public static final String ASSEMBLY_NEED_KEY = "1";
public static final String S = "S";
public static final String ZERO_STR = "0";
public static final String SORT_HEAD = "Sort Job ";
}
class WorkFlow {
public static final String AUTO_SORT_WORK_FLOW_ID = "EXECUTE_SORT_JOB_AUTO";
public static final String SORT_MOVE_OUT_STD = "MOVEOUT_SORTER_STD";
}
class Check {
static final List<String> TARGET_CARRIER_MAY_BE_EMPTY = ListUtils.newArrayList(Constant.SPLIT,
Constant.EXCHANGE,
Constant.SPECIAL_EXCHANGE,
Constant.SRC_EXCHANGE,
Constant.SRC_SPECIAL_EXCHANGE);
static final List<String> NEED_CHECK_TARGET_CARRIER = ListUtils.newArrayList(Constant.MERGE,
Constant.SPLIT_3PORT,
Constant.SRC_SPLIT,
Constant.SRC_MERGE);
static final List<String> ONE_TO_N_TYPE = ListUtils.newArrayList(Constant.AUTO_MONITOR,
Constant.AUTO_MONITOR_MERGE,
Constant.SRC_SPLIT);
static final List<String> AUTO_MONITOR_TYPE = ListUtils.newArrayList(Constant.AUTO_MONITOR,
Constant.AUTO_MONITOR_MERGE);
static final List<String> SRC_EXCHANGE = ListUtils.newArrayList(Constant.SRC_EXCHANGE,
Constant.SRC_SPECIAL_EXCHANGE);
static final List<String> NORMAL_EXCHANGE = ListUtils.newArrayList(Constant.EXCHANGE,
Constant.SRC_EXCHANGE);
static final List<String> SPECIAL_EXCHANGE = ListUtils.newArrayList(Constant.SPECIAL_EXCHANGE,
Constant.SRC_SPECIAL_EXCHANGE);
static final List<String> PROD_LOT_EXCHANGE = ListUtils.newArrayList(Constant.EXCHANGE,
Constant.SPECIAL_EXCHANGE);
public static boolean needCheckTargetCarrier(String type) {
return NEED_CHECK_TARGET_CARRIER.contains(type);
}
public static boolean targetCarrierMayBeEmpty(String type) {
return TARGET_CARRIER_MAY_BE_EMPTY.contains(type);
}
public static boolean isFlip(String type) {
return Constant.FLIP_SIDE.equalsIgnoreCase(type);
}
public static boolean isReadT7Code(String type) {
return Constant.READ_T7CODE.equalsIgnoreCase(type);
}
public static boolean isOneToN(String type) {
return ONE_TO_N_TYPE.contains(type);
}
public static boolean isAutoMonitorType(String type) {
return AUTO_MONITOR_TYPE.contains(type);
}
public static boolean isOffLineCheckT7Code(String type) {
return Constant.OFFLINE_CHECK_T7CODE.equalsIgnoreCase(type);
}
public static boolean isSpecialStatusForRcSortJob(String type, String lotStatus) {
return (Constant.OFFLINE_CHECK_T7CODE.equalsIgnoreCase(type) || isSrcExchange(type))
&& LotStatus.isRunCardSpecialStatus(lotStatus);
}
public static boolean isSrcExchange(String type) {
return SRC_EXCHANGE.contains(type);
}
public static boolean isOfflineReadMaterialId(String type) {
return Constant.OFFLINE_READ_MATERIALID.equalsIgnoreCase(type);
}
public static boolean isNormalExchange(String type){ return NORMAL_EXCHANGE.contains(type); }
public static boolean isSpecialExchange(String type){ return SPECIAL_EXCHANGE.contains(type); }
public static boolean isProdLotExchange(String type){ return PROD_LOT_EXCHANGE.contains(type); }
}
}