PollutionLevelContextValueManagerImpl.java
package com.mycim.server.ctx.exec.manager.impl;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.server.ctx.exec.manager.PollutionLevelContextValueManager;
import com.mycim.server.ctx.manager.ContextValueManager;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.prp.ContextValue;
import com.mycim.valueobject.prp.OperationDESCContextValue;
import com.mycim.valueobject.wip.Lot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author shijie.deng
* @version 6.0.0
* @date 2019/9/23
**/
@Service
@Transactional
public class PollutionLevelContextValueManagerImpl implements PollutionLevelContextValueManager {
@Autowired
private ContextValueManager contextValueManager;
@Autowired
private NamedObjectManager namedObjectManager;
@Override
public String getPolluctionLevelByProcessInfo(long productRrn, long processRrn, long operationRrn, long routeRrn) {
OperationDESCContextValue pollutionLevelContextValue = buildNewOperationDESCContextValue(productRrn, processRrn,
operationRrn,
routeRrn);
ContextValue contextValue = contextValueManager.simulateContextValue(pollutionLevelContextValue);
if (contextValue != null) {
return contextValue.getResultValue3();
}
return null;
}
@Override
public String getPolluctionLevelByProcessInfo(long productRrn, long processRrn, int processVersion,
long operationRrn, long routeRrn) {
OperationDESCContextValue pollutionLevelContextValue = buildNewOperationDESCContextValue(productRrn, processRrn,
operationRrn,
routeRrn);
pollutionLevelContextValue.setProcessVersion(processVersion);
ContextValue contextValue = contextValueManager.simulateContextValue(pollutionLevelContextValue);
if (contextValue != null) {
return contextValue.getResultValue3();
}
return null;
}
@Override
public List<ContextValue> getPollutionLevelContextValueList(long productRrn, long processRrn, int processVersion) {
OperationDESCContextValue pollutionLevelContextValue = buildNewOperationDESCContextValue();
if (NumberUtils.LONG_ZERO==processRrn){
pollutionLevelContextValue.setProductRrn(productRrn);
}
pollutionLevelContextValue.setProcessRrn(processRrn);
pollutionLevelContextValue.setProcessVersion(processVersion);
return contextValueManager.getContextValuesByContextKey(pollutionLevelContextValue);
}
@Override
public ContextValue getPollutionLevelContextValueByLot(Lot lot) {
OperationDESCContextValue pollutionLevelContextValue = buildNewOperationDESCContextValue();
// pollutionLevelContextValue.setProductRrn(lot.getProductRrn());
pollutionLevelContextValue.setProcessRrn(lot.getProcessRrn());
pollutionLevelContextValue.setProcessVersion(lot.getProcessVersion());
pollutionLevelContextValue.setRouteRrn(lot.getRouteRrn());
pollutionLevelContextValue.setOperationRrn(lot.getOperationRrn());
ContextValue contextValue = contextValueManager
.getContextValue(pollutionLevelContextValue, LocalContext.getFacilityRrn());
return contextValue;
}
@Override
public String getPollutionLevelByLot(Lot lot) {
ContextValue pollutionLevelContextValue = getPollutionLevelContextValueByLot(lot);
return pollutionLevelContextValue == null ? lot.getPollutionLevel() : pollutionLevelContextValue
.getResultValue3();
}
private OperationDESCContextValue buildNewOperationDESCContextValue(long productRrn, long processRrn,
long operationRrn, long routeRrn) {
OperationDESCContextValue pollutionLevelContextValue = buildNewOperationDESCContextValue();
pollutionLevelContextValue.setProductRrn(productRrn);
pollutionLevelContextValue.setProcessRrn(processRrn);
pollutionLevelContextValue.setOperationRrn(operationRrn);
pollutionLevelContextValue.setRouteRrn(routeRrn);
return pollutionLevelContextValue;
}
private OperationDESCContextValue buildNewOperationDESCContextValue() {
OperationDESCContextValue contextValue = new OperationDESCContextValue();
contextValue.setContextRrn(namedObjectManager.getNamedObjectRrn(contextValue.getContextId(),
LocalContext.getFacilityRrn(),
ObjectList.CONTEXT_KEY));
return contextValue;
}
}