Commit 919008ff authored by 顾俭's avatar 顾俭

Merge branch '#3' into 'master'

aship/aship#3 防伪码功能-作废重打

See merge request !4
parents 3e7a7bab 099f9cb3
package com.i1.erp.barcode.service;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.entity.request.Request;
import org.springframework.stereotype.Service;
@Service
public class BarcodeGetStatusService implements IBarcodeGetStatusService {
@Override
public Request getRequestXml(String organization, String barcode) throws IOneServiceException {
return null;
}
}
package com.i1.erp.barcode.service;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.entity.request.Request;
import org.springframework.stereotype.Service;
@Service
public class BarcodeVoidService implements IBarcodeVoidService {
@Override
public Request getRequestXml(String organization, String barcode) throws IOneServiceException {
return null;
}
}
package com.i1.erp.barcode.service;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.entity.request.Request;
public interface IBarcodeGetStatusService {
Request getRequestXml(String organization, String barcode) throws IOneServiceException;
}
package com.i1.erp.barcode.service;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.entity.request.Request;
public interface IBarcodeVoidService {
Request getRequestXml(String organization, String barcode) throws IOneServiceException;
}
...@@ -21,15 +21,18 @@ import static com.i1.erp.base.web.dto.SyncResponseCode.FAIL_CODE; ...@@ -21,15 +21,18 @@ import static com.i1.erp.base.web.dto.SyncResponseCode.FAIL_CODE;
import static com.i1.erp.base.web.dto.SyncResponseCode.SUCCESS_CODE; import static com.i1.erp.base.web.dto.SyncResponseCode.SUCCESS_CODE;
import static com.i1.srm.utils.SafeType.safeString; import static com.i1.srm.utils.SafeType.safeString;
/**
* 防伪码接口只做了动态客户端版本 srm.soapWs.wsDynamicClient=true
*/
@Component @Component
public class BarcodeGenClient extends WebServiceClient { public class BarcodeGenClient extends WebServiceClient {
// 防伪码接口只做了动态客户端版本
@Value("${srm.soapWs.wsDynamicClient}")
public Boolean wsDynamicClient;
@Value("${srm.soapWs.genBarcode}") @Value("${srm.soapWs.genBarcode}")
public String ERP_GEN_BARCODE_OP; public String ERP_GEN_BARCODE_OP;
@Value("${srm.soapWs.wsdlUrl}") @Value("${srm.soapWs.wsdlUrl}")
private String WSDL_URL; private String WSDL_URL;
private Logger logger = LoggerFactory.getLogger(BarcodeGenClient.class); private Logger logger = LoggerFactory.getLogger(BarcodeGenClient.class);
@Autowired @Autowired
......
package com.i1.erp.barcode.soap;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.WebServiceClient;
import com.i1.erp.barcode.service.IBarcodeGetStatusService;
import com.i1.erp.base.web.dto.SyncResponse;
import com.i1.erp.entity.request.Request;
import com.i1.erp.entity.response.Response;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import tw.com.dsc.tiptop.tiptopservicegateway.SRMGetbarcodestatusRequestSRMGetbarcodestatusRequest;
import tw.com.dsc.tiptop.tiptopservicegateway.SRMGetbarcodestatusResponseSRMGetbarcodestatusResponse;
import static com.i1.erp.base.web.dto.SyncResponseCode.FAIL_CODE;
import static com.i1.erp.base.web.dto.SyncResponseCode.SUCCESS_CODE;
import static com.i1.srm.utils.SafeType.safeString;
/**
* 防伪码接口只做了动态客户端版本
*/
@Component
public class BarcodeGetStatusClient extends WebServiceClient {
@Value("${srm.soapWs.getBarcodeStatus}")
public String ERP_GET_BARCODE_STATUS_OP;
@Value("${srm.soapWs.wsdlUrl}")
private String WSDL_URL;
@Autowired
private IBarcodeGetStatusService barcodeGetStatusService;
private Logger logger = LoggerFactory.getLogger(BarcodeGetStatusClient.class);
public SyncResponse getBarcodeStatus(String organization, String barcode) {
try {
// xml
logger.info("prepare get barcode status{}", organization + "-" + barcode);
Request requestXml = barcodeGetStatusService.getRequestXml(organization, barcode);
if (requestXml == null) {
logger.error("error:防伪码状态查询无法生成XML结构");
return SyncResponse.of(FAIL_CODE, "防伪码状态查询无法生成XML结构");
}
// request
SRMGetbarcodestatusRequestSRMGetbarcodestatusRequest getbarcodestatusRequest = new SRMGetbarcodestatusRequestSRMGetbarcodestatusRequest();
getbarcodestatusRequest.setRequest(covertObjectToXML(requestXml, Request.class));
logger.info(getbarcodestatusRequest.getRequest());
if (StringUtils.isBlank(WSDL_URL) || StringUtils.isBlank(ERP_GET_BARCODE_STATUS_OP)) {
throw new IOneServiceException("WSDL不可为空.");
}
Client client = getClient(WSDL_URL);
Object[] objects = client.invoke(ERP_GET_BARCODE_STATUS_OP, new Object[]{getbarcodestatusRequest});
client.destroy();
// response
if (objects != null && objects.length > 0) {
SRMGetbarcodestatusResponseSRMGetbarcodestatusResponse originalResponse = (SRMGetbarcodestatusResponseSRMGetbarcodestatusResponse) objects[0];
logger.info(originalResponse.getResponse());
Response response = convertXMLToObject(originalResponse.getResponse(), Response.class);
if (response.getExecution().getStatus().getCode().equalsIgnoreCase("0")) {
return SyncResponse.of(SUCCESS_CODE, safeString(response.getExecution().getStatus().getDescription()));
} else {
String errorDetails = String.format("失败码:%s, 原因:%s,SQL:%s",
safeString(response.getExecution().getStatus().getCode()),
safeString(response.getExecution().getStatus().getDescription()),
safeString(response.getExecution().getStatus().getSqlcode()));
return SyncResponse.of(FAIL_CODE, errorDetails);
}
} else {
logger.error("ERP无响应.");
return SyncResponse.of(FAIL_CODE, "ERP无响应");
}
} catch (Exception e) {
logger.error("e", e);
return SyncResponse.of(FAIL_CODE, e.getMessage());
}
}
}
...@@ -37,18 +37,20 @@ public class BarcodePrintClient extends WebServiceClient { ...@@ -37,18 +37,20 @@ public class BarcodePrintClient extends WebServiceClient {
@Value("${srm.soapWs.printBarcode}") @Value("${srm.soapWs.printBarcode}")
public String ERP_PRINT_BARCODE_OP; public String ERP_PRINT_BARCODE_OP;
@Value("${srm.soapWs.wsdlUrl}") @Value("${srm.soapWs.wsdlUrl}")
private String WSDL_URL; private String WSDL_URL;
@Autowired @Autowired
private IBarcodePrintService barcodePrintService; private IBarcodePrintService barcodePrintService;
private Logger logger = LoggerFactory.getLogger(BarcodeGenClient.class); private Logger logger = LoggerFactory.getLogger(BarcodeGenClient.class);
public SyncResponseWithList getBarcodePrintUrls(String organization, String docno, String seq, String barcode, String type) { public SyncResponseWithList getBarcodePrintUrls(String organization, String docno, String seq, String barcode, String type) {
List<String> urls = new ArrayList<>(); List<String> urls = new ArrayList<>();
try { try {
// xml // xml
logger.info("prepare gen barcode {}", organization + "-" + docno + "-" + seq + "-" + barcode + "-" + type); logger.info("prepare get barcode print urls{}", organization + "-" + docno + "-" + seq + "-" + barcode + "-" + type);
Request requestXml = barcodePrintService.getRequestXml(organization, docno, seq, barcode, type); Request requestXml = barcodePrintService.getRequestXml(organization, docno, seq, barcode, type);
if (requestXml == null) { if (requestXml == null) {
logger.error("error:防伪码打印地址无法生成XML结构"); logger.error("error:防伪码打印地址无法生成XML结构");
......
package com.i1.erp.barcode.soap;
import com.i1.base.exception.IOneServiceException;
import com.i1.erp.WebServiceClient;
import com.i1.erp.barcode.service.IBarcodeVoidService;
import com.i1.erp.base.web.dto.SyncResponse;
import com.i1.erp.entity.request.Request;
import com.i1.erp.entity.response.Response;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import tw.com.dsc.tiptop.tiptopservicegateway.SRMVoidbarcodeRequestSRMVoidbarcodeRequest;
import tw.com.dsc.tiptop.tiptopservicegateway.SRMVoidbarcodeResponseSRMVoidbarcodeResponse;
import static com.i1.erp.base.web.dto.SyncResponseCode.FAIL_CODE;
import static com.i1.erp.base.web.dto.SyncResponseCode.SUCCESS_CODE;
import static com.i1.srm.utils.SafeType.safeString;
/**
* 防伪码接口只做了动态客户端版本
*/
@Component
public class BarcodeVoidClient extends WebServiceClient {
@Value("${srm.soapWs.voidBarcode}")
public String ERP_VOID_BARCODE_OP;
@Value("${srm.soapWs.wsdlUrl}")
private String WSDL_URL;
@Autowired
private IBarcodeVoidService barcodeVoidService;
private Logger logger = LoggerFactory.getLogger(BarcodeVoidClient.class);
public SyncResponse voidBarcode(String organization, String barcode) {
try {
// xml
logger.info("prepare void barcode{}", organization + "-" + barcode);
Request requestXml = barcodeVoidService.getRequestXml(organization, barcode);
if (requestXml == null) {
logger.error("error:防伪码状态查询无法生成XML结构");
return SyncResponse.of(FAIL_CODE, "防伪码状态查询无法生成XML结构");
}
// request
SRMVoidbarcodeRequestSRMVoidbarcodeRequest request = new SRMVoidbarcodeRequestSRMVoidbarcodeRequest();
request.setRequest(covertObjectToXML(requestXml, Request.class));
logger.info(request.getRequest());
if (StringUtils.isBlank(WSDL_URL) || StringUtils.isBlank(ERP_VOID_BARCODE_OP)) {
throw new IOneServiceException("WSDL不可为空.");
}
Client client = getClient(WSDL_URL);
Object[] objects = client.invoke(ERP_VOID_BARCODE_OP, new Object[]{request});
client.destroy();
// response
if (objects != null && objects.length > 0) {
SRMVoidbarcodeResponseSRMVoidbarcodeResponse originalResponse = (SRMVoidbarcodeResponseSRMVoidbarcodeResponse) objects[0];
logger.info(originalResponse.getResponse());
Response response = convertXMLToObject(originalResponse.getResponse(), Response.class);
if (response.getExecution().getStatus().getCode().equalsIgnoreCase("0")) {
return SyncResponse.of(SUCCESS_CODE, safeString(response.getExecution().getStatus().getDescription()));
} else {
String errorDetails = String.format("失败码:%s, 原因:%s,SQL:%s",
safeString(response.getExecution().getStatus().getCode()),
safeString(response.getExecution().getStatus().getDescription()),
safeString(response.getExecution().getStatus().getSqlcode()));
return SyncResponse.of(FAIL_CODE, errorDetails);
}
} else {
logger.error("ERP无响应.");
return SyncResponse.of(FAIL_CODE, "ERP无响应");
}
} catch (Exception e) {
logger.error("e", e);
return SyncResponse.of(FAIL_CODE, e.getMessage());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment