TimelimitStatus.java
package com.mycim.valueobject.wip;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.prp.TimeLimitSetup;
import java.sql.Timestamp;
public class TimelimitStatus extends TimeLimitSetup {
/**
*
*/
private static final long serialVersionUID = 1L;
protected Long lotRrn;
protected Long stepSequence;
protected Timestamp startTime;
protected String status; // NORMAL, SPECIAL(Released after HOLD, never hold again)
protected Long additionalTimeLimit;
public TimelimitStatus() {
this.lotRrn = new Long(0);
}
public TimelimitStatus(TimeLimitSetup timeLimitSetup) {
this.timeLimitRrn = timeLimitSetup.getTimeLimitRrn();
this.timeLimitId = timeLimitSetup.getTimeLimitId();
this.timeLimitType = timeLimitSetup.getTimeLimitType();
this.timeLimit = timeLimitSetup.getTimeLimit();
this.timeLimitSec = timeLimitSetup.getTimeLimitSec();
this.startProductRrn = timeLimitSetup.getStartProductRrn();
this.startProcessRrn = timeLimitSetup.getStartProcessRrn();
this.startProcessVersion = timeLimitSetup.getStartProcessVersion();
this.startRouteRrn = timeLimitSetup.getStartRouteRrn();
this.startOperationRrn = timeLimitSetup.getStartOperationRrn();
this.endProductRrn = timeLimitSetup.getEndProductRrn();
this.endProcessRrn = timeLimitSetup.getEndProcessRrn();
this.endRouteRrn = timeLimitSetup.getEndRouteRrn();
this.endOperationRrn = timeLimitSetup.getEndOperationRrn();
this.timeType = timeLimitSetup.getTimeType();
this.limitType = timeLimitSetup.getLimitType();
this.startRouteSeq = timeLimitSetup.getStartRouteSeq();
this.startOperationSeq = timeLimitSetup.getStartOperationSeq();
this.endRouteSeq = timeLimitSetup.getEndRouteSeq();
this.endOperationSeq = timeLimitSetup.getEndOperationSeq();
this.module = timeLimitSetup.getModule();
}
public Long getLotRrn() {
return lotRrn;
}
public void setLotRrn(Long lotRrn) {
this.lotRrn = lotRrn;
}
public Long getStepSequence() {
return stepSequence;
}
public void setStepSequence(Long stepSequence) {
this.stepSequence = stepSequence;
}
public Timestamp getStartTime() {
return startTime;
}
public void setStartTime(Timestamp startTime) {
this.startTime = startTime;
}
@Override
public String getStatus() {
return status;
}
@Override
public void setStatus(String status) {
this.status = status;
}
@Override
public String getUniqueKey() {
StringBuilder sb = new StringBuilder();
sb.append(this.startProductRrn).append(this.startProcessRrn).append(this.startRouteRrn)
.append(this.startOperationRrn);
sb.append(this.endProductRrn).append(this.endProcessRrn).append(this.endRouteRrn).append(this.endOperationRrn);
sb.append(this.timeLimitType).append(this.timeType).append(this.startProcessVersion).append(this.status);
return sb.toString();
}
public Long getAdditionalTimeLimit() {
return additionalTimeLimit;
}
public void setAdditionalTimeLimit(Long additionalTimeLimit) {
this.additionalTimeLimit = additionalTimeLimit;
}
public boolean isOverTimeByStatus() {
return StringUtils.equalsIgnoreCase(this.status, "SPECIAL");
}
public boolean isWithinTime() {
return StringUtils.equalsIgnoreCase(this.status, "NORMAL");
}
public Long getRemainTime() {
return (System.currentTimeMillis() - this.getStartTime().getTime()) / 1000 - this.getTimeLimitSec();
}
public String getUniqueKeyWithOutStatus() {
StringBuilder sb = new StringBuilder();
sb.append(this.startProductRrn).append(this.startProcessRrn).append(this.startRouteRrn)
.append(this.startOperationRrn);
sb.append(this.endProductRrn).append(this.endProcessRrn).append(this.endRouteRrn).append(this.endOperationRrn);
sb.append(this.timeLimitType).append(this.timeType).append(this.startProcessVersion);
return sb.toString();
}
}