DspEqptStatusContextValueManagerImpl.java
package com.mycim.server.ctx.exec.manager.impl;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.server.ctx.exec.manager.DspEqptStatusContextValueManager;
import com.mycim.server.ctx.manager.ContextValueManager;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.ems.Equipment;
import com.mycim.valueobject.prp.ContextValue;
import com.mycim.valueobject.prp.DspEqptStatusContextValue;
import com.mycim.valueobject.wip.Lot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/9/23
**/
@Service
@Transactional
public class DspEqptStatusContextValueManagerImpl implements DspEqptStatusContextValueManager {
@Autowired
private NamedObjectManager namedObjectManager;
@Autowired
private ContextValueManager contextValueManager;
@Override
public DspEqptStatusContextValue getDspEqptStatusContextValue(Lot lot, Equipment equipment) {
DspEqptStatusContextValue dspEqptStatusContextValue = buildNewDspEqptStatusContextValue(lot, equipment);
ContextValue contextValue = contextValueManager.simulateContextValue(dspEqptStatusContextValue);
if (contextValue != null) {
dspEqptStatusContextValue.copy(contextValue);
}
return dspEqptStatusContextValue;
}
private DspEqptStatusContextValue buildNewDspEqptStatusContextValue(Lot lot, Equipment equipment) {
DspEqptStatusContextValue contextValue = buildNewDspEqptStatusContextValue();
contextValue.setProductRrn(lot.getProductRrn());
contextValue.setProcessRrn(lot.getProcessRrn());
contextValue.setRouteRrn(lot.getRouteRrn());
contextValue.setOperationRrn(lot.getOperationRrn());
contextValue.setRecipeRrn(lot.getRecipeRrn());
contextValue.setLotRrn(lot.getLotRrn());
contextValue.setLotType(lot.getLotType());
// 6* P* G*
String lotIdPrefix = StringUtils.left(lot.getLotId(), 1);
contextValue.setLotIdPrefix(lotIdPrefix);
return contextValue;
}
private DspEqptStatusContextValue buildNewDspEqptStatusContextValue() {
DspEqptStatusContextValue contextValue = new DspEqptStatusContextValue();
long contextRrn = namedObjectManager
.getNamedObjectRrn(contextValue.getContextId(), LocalContext.getFacilityRrn(), ObjectList.CONTEXT_KEY);
contextValue.setContextRrn(contextRrn);
return contextValue;
}
}