Edc2MyspcSender.java
package com.mycim.server.edcmyspc.myspc;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.exception.SystemIllegalArgumentException;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.logging.Logger;
import com.mycim.framework.logging.LoggerFactory;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.server.edcmyspc.manager.Edc2MyspcManager;
import com.mycim.server.spc.BaseEdc2SpcSender;
import com.mycim.server.spc.manager.SpcManager;
import com.mycim.valueobject.spc.SpcConfigConstants;
import com.mycim.valueobject.wip.Lot;
import com.mycim.webservice.rtservice.client.stub.ServiceLocator;
import com.mycim.webservice.rtservice.client.stub.ServiceSoap_PortType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author Johnson.Wang
* @version 6.0.0
* @date 2019/11/8
**/
@Component
public class Edc2MyspcSender extends BaseEdc2SpcSender {
private final Logger logger = LoggerFactory.getLogger(Edc2MyspcSender.class);
@Autowired
private Edc2MyspcManager edc2MyspcManager;
@Autowired
private SpcManager spcManager;
@Override
public List<String> send(List<String> request, List<Map> dcolStepInfos, Boolean rtFlag, Boolean isOcapSend) {
String edcType = rtFlag ? SpcConfigConstants.EDC_TYPE_RT : SpcConfigConstants.EDC_TYPE_NORT;
String edc2MyspcUrl = spcManager
.getSpcConfigValue(LocalContext.getFacilityRrn(), SpcConfigConstants.SPC_WS_URL, edcType);
ServiceLocator serviceLocator = new ServiceLocator();
ServiceSoap_PortType portType;
String result = StringUtils.EMPTY;
List<String> results = new ArrayList<>();
for (String requestMsg : request) {
if (StringUtils.isNotEmpty(requestMsg)) {
try {
serviceLocator.setEndpointAddress(SpcConfigConstants.SPC_SOAP_PROTOTOL, edc2MyspcUrl);
portType = serviceLocator.getServiceSoap();
result = portType.spcCheck(requestMsg);
results.add(result);
} catch (Exception e) {
throw new SystemIllegalArgumentException(Errors.create().content("Spc spcCheck error").build());
}
edc2MyspcManager.handleSpcCheckResults(result, requestMsg, rtFlag, false, isOcapSend);
}
}
return results;
}
@Override
public void send(List<String> request, List<Lot> lots) {
String edc2MyspcUrl = spcManager.getSpcConfigValue(LocalContext.getFacilityRrn(), SpcConfigConstants.SPC_WS_URL,
SpcConfigConstants.EDC_TYPE_RT);
ServiceLocator serviceLocator = new ServiceLocator();
ServiceSoap_PortType portType;
String result;
for (String requestMsg : request) {
try {
serviceLocator.setEndpointAddress(SpcConfigConstants.SPC_SOAP_PROTOTOL, edc2MyspcUrl);
portType = serviceLocator.getServiceSoap();
result = portType.spcCheck(requestMsg);
} catch (Exception e) {
throw new SystemIllegalArgumentException(Errors.create().content("Spc spcCheck error").build());
}
//edc2MyspcManager.handleSpcCheckResults(result, requestMsg, true, true);
}
}
}