LotStatus.java
/*
* @ Copyright 2001 FA Software;
* All right reserved. No part of this program may be reproduced or
* transmitted in any form or by any means, electronic or
* mechanical, including photocopying, recording, or by any
* information storage or retrieval system without written
* permission from FA Software, except for inclusion of brief
* quotations in a review.
*/
package com.mycim.valueobject.wip;
import com.mycim.framework.utils.lang.StringUtils;
public class LotStatus {
public static final String CREATED = "CREATED";
public static final String WAITING = "WAITING";
public static final String RUNNING = "RUNNING";
public static final String ACTIVE = "ACTIVE";
public static final String HOLD = "HOLD";
public static final String RELEASE = "RELEASE";
public static final String TERMINATED = "TERMINATED";
public static final String STORED = "STORED";
public static final String LOSSED = "LOSSED";
public static final String DISPATCH = "DISPATCH";
public static final String MERGED = "MERGED";
public static final String SCRAPPED = "SCRAPPED";
public static final String SHIPPED = "SHIPPED";
public static final String PROCESSED = "PROCESSED";
public static final String RECEIVED = "RECEIVED";
public static final String FINISH = "FINISH"; // NSI 中 COMPLETED 为 FINISH
public static final String COMPLETEDSS = "COMPLETEDSS";
public static final String BONDED = "BONDED";
public static final String OUTSOURCING = "OUTSOURCING"; // 正在外包厂加工
public static final String RUNNINGHOLD = "RUNNINGHOLD";
public static final String UNACTIVE = "UNACTIVE";
public static final String REWORK = "REWORK";
public static final String ALL = "ALL";
public static final String BANKED = "BANKED"; // nsi项目用以替换STORED状态
public static final String SUBCON = "SUBCON";
public static final String COMPLETED = "COMPLETED";
public static final String SHIP = "SHIP"; // ERP
public static final String TRANSFER = "TRANSFER";
public static final String RUNCARD_FINISH = "WAITMERGE";
public static final String RUNCARD_HOLD = "RUNCARDHOLD";
public static final String RUNCARD_WAITFINISH = "WAITRCFINISH";
public static final String RUNCARD_WAITSPLIT = "WAITINGSPLIT";
// 设备灯: 含有run状态批次
public static final String STATUSLIGTH_RUN = "RUNNING";
// 设备灯: 含有HOLD 没有run状态的批次
public static final String STATUSLIGTH_HOLD_NO_RUN = "HOLD NO RUNNING";
// 设备灯: 有批次的灯
public static final String STATUSLIGTH_HAV = "OTHERS";
public static final String DISPATCHLOTSTATUS = "WAITING,DISPATCH,HOLD";
public static final String AUTO_MONITOR_JOB_FINISH = "AMFINISH";
private LotStatus() {
}
/*
* Status outside the station
*/
public static Boolean isCreated(String lotStatus) {
return StringUtils.equals(CREATED, lotStatus);
}
public static Boolean isWaiting(String lotStatus) {
return StringUtils.equals(WAITING, lotStatus);
}
public static Boolean isHold(String lotStatus) {
return StringUtils.equals(HOLD, lotStatus);
}
public static Boolean isStored(String lotStatus) {
return StringUtils.equals(STORED, lotStatus);
}
public static Boolean isBanked(String lotStatus) {
return StringUtils.equals(BANKED, lotStatus);
}
public static Boolean isShipped(String lotStatus) {
return StringUtils.equals(SHIPPED, lotStatus);
}
// Ended status
public static Boolean isCompleted(String lotStatus) {
return StringUtils.equals(FINISH, lotStatus);
}
public static Boolean isTerminated(String lotStatus) {
return StringUtils.equals(TERMINATED, lotStatus);
}
public static Boolean isLossed(String lotStatus) {
return StringUtils.equals(LOSSED, lotStatus);
}
public static Boolean isScrapped(String lotStatus) {
return StringUtils.equals(SCRAPPED, lotStatus);
}
public static Boolean isMerged(String lotStatus) {
return StringUtils.equals(MERGED, lotStatus);
}
public static Boolean isEndStatus(String lotStatus) {
return isCompleted(lotStatus) || isTerminated(lotStatus) || isScrapped(lotStatus) || isLossed(lotStatus);
}
public static String[] getEndedStatus() {
return new String[]{FINISH, COMPLETEDSS, TERMINATED, LOSSED, SCRAPPED, MERGED};
}
/*
* Status within the station
*/
public static Boolean isDispatch(String lotStatus) {
return StringUtils.equals(DISPATCH, lotStatus);
}
public static Boolean isRunning(String lotStatus) {
return StringUtils.equals(RUNNING, lotStatus);
}
public static Boolean isRunningHold(String lotStatus) {
return StringUtils.equals(RUNNINGHOLD, lotStatus);
}
public static Boolean isProcessed(String lotStatus) {
return StringUtils.equals(PROCESSED, lotStatus);
}
public static Boolean isProcessingStatus(String lotStatus) {
return isDispatch(lotStatus) || isRunning(lotStatus) || isProcessed(lotStatus) || isRunningHold(lotStatus);
}
public static String[] getProcessingStatus() {
return new String[]{DISPATCH, RUNNING, RUNNINGHOLD, PROCESSED};
}
/**
* These lot status can do track in action: <br>
* {@value #WAITING}, {@value #DISPATCH}
*
* @param lotStatus
* @return
*/
public static Boolean isMoveInCheckStatus(String lotStatus) {
return isWaiting(lotStatus) || isDispatch(lotStatus);
}
/**
* These lot status can do track out action: <br>
* {@value #RUNNING}, {@value #PROCESSED}
*
* @param lotStatus
* @return
*/
public static Boolean isMoveOutCheckStatus(String lotStatus) {
return isRunning(lotStatus) || isProcessed(lotStatus);
}
public static Boolean isInSpecialStepStatus(String lotStatus) {
return isBanked(lotStatus);
}
public static String[] getFilterStatus() {
return new String[]{OUTSOURCING};
}
public static String[] getUnclosedStatus() {
return new String[]{CREATED, WAITING, RUNNING, HOLD, STORED, DISPATCH, SHIPPED, PROCESSED, RECEIVED, BONDED,
RUNNINGHOLD, BANKED, SUBCON};
}
public static Boolean isWaitingOrHold(String lotStatus) {
return isWaiting(lotStatus) || isHold(lotStatus);
}
public static Boolean isActiveHold(String lotStatus) {
return isRunning(lotStatus) || isWaiting(lotStatus) || isHold(lotStatus) || isRunningHold(lotStatus);
}
public static String[] getActiveStatus() {
return new String[]{WAITING, RUNNING, DISPATCH, PROCESSED};
}
public static Boolean isRunCardWaitMerge(String lotStatus) {
return StringUtils.equals(RUNCARD_FINISH, lotStatus);
}
public static Boolean isRunCardWaitFinish(String lotStatus){
return StringUtils.equals(RUNCARD_WAITFINISH,lotStatus);
}
public static Boolean isCanRunningHold(String lotStatus) {
return isRunning(lotStatus) || isRunningHold(lotStatus);
}
public static Boolean isCanHold(String lotStatus) {
return isWaiting(lotStatus) || isHold(lotStatus);
}
/**
* These lot status can do track in action: <br>
* {@value #DISPATCH}, {@value #RUNNING}, {@value #PROCESSED}
*
* @param lotStatus
* @return
*/
public static Boolean isCanCancelMoveIn(String lotStatus) {
return isDispatch(lotStatus) || isRunning(lotStatus) || isProcessed(lotStatus);
}
public static Boolean isRunCardHold(String lotStatus) {
return StringUtils.equals(RUNCARD_HOLD, lotStatus);
}
public static Boolean isRunCardFinish(String lotStatus){
return StringUtils.equals(RUNCARD_FINISH,lotStatus);
}
public static Boolean isAutoMonitorMerge(String lotStatus) {
return StringUtils.equals(TERMINATED, lotStatus) || StringUtils.equals(AUTO_MONITOR_JOB_FINISH, lotStatus);
}
public static Boolean isRunCardWaitingSplit(String lotStatus) {
return StringUtils.equals(RUNCARD_WAITSPLIT,lotStatus);
}
public static Boolean isRunCardSpecialStatus(String lotStatus) {
return isRunCardWaitFinish(lotStatus) || isRunCardWaitMerge(lotStatus) || isRunCardWaitingSplit(lotStatus);
}
}
/*
* Modification Log Log No : Name : Modified Date: Description :
*/