add:erp调用工具类
This commit is contained in:
@@ -0,0 +1,133 @@
|
|||||||
|
package org.nl.wms.ext_manage.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.axis.client.Call;
|
||||||
|
import org.apache.axis.client.Service;
|
||||||
|
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
|
||||||
|
import org.apache.axis.encoding.ser.BeanSerializerFactory;
|
||||||
|
import org.apache.axis.message.SOAPHeaderElement;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.wms.system_manage.enums.SysParamConstant;
|
||||||
|
import org.nl.wms.system_manage.service.param.dao.Param;
|
||||||
|
import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl;
|
||||||
|
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
import javax.xml.rpc.ParameterMode;
|
||||||
|
import javax.xml.rpc.ServiceException;
|
||||||
|
import javax.xml.rpc.encoding.XMLType;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Data
|
||||||
|
public class ErpUtil {
|
||||||
|
|
||||||
|
private String loginUrl;
|
||||||
|
private String auditUrl;
|
||||||
|
private String userName;
|
||||||
|
private String password;
|
||||||
|
private String slnName;
|
||||||
|
private String dcName;
|
||||||
|
private String dbType;
|
||||||
|
|
||||||
|
private final Service service = new Service();
|
||||||
|
|
||||||
|
private String sessionId;
|
||||||
|
|
||||||
|
public static ErpUtil create(){
|
||||||
|
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||||
|
final Param erpLoginParam = sysParamService.findByCode(SysParamConstant.ERP_LOGIN_URL);
|
||||||
|
final Param erpAuditParam = sysParamService.findByCode(SysParamConstant.ERP_AUDIT_URL);
|
||||||
|
ErpUtil erpUtil = new ErpUtil();
|
||||||
|
erpUtil.setLoginUrl(erpLoginParam.getValue());
|
||||||
|
erpUtil.setAuditUrl(erpAuditParam.getValue());
|
||||||
|
erpUtil.setUserName(SpringContextHolder.getProperties("erp.username"));
|
||||||
|
erpUtil.setPassword(SpringContextHolder.getProperties("erp.password"));
|
||||||
|
erpUtil.setSlnName(SpringContextHolder.getProperties("erp.slnName"));
|
||||||
|
erpUtil.setDcName(SpringContextHolder.getProperties("erp.dcName"));
|
||||||
|
erpUtil.setDbType(SpringContextHolder.getProperties("erp.dbType"));
|
||||||
|
return new ErpUtil();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 登录获取sessionId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public ErpUtil login(){
|
||||||
|
try {
|
||||||
|
Call call = (Call) service.createCall();
|
||||||
|
call.setOperationName("login");
|
||||||
|
call.setTargetEndpointAddress(loginUrl);
|
||||||
|
call.setMaintainSession(true);
|
||||||
|
call.setTimeout(60*1000);
|
||||||
|
QName wsContextQName = new QName("urn:client", "WSContext");
|
||||||
|
call.registerTypeMapping(
|
||||||
|
WSContext.class,
|
||||||
|
wsContextQName,
|
||||||
|
BeanSerializerFactory.class,
|
||||||
|
BeanDeserializerFactory.class
|
||||||
|
);
|
||||||
|
call.setReturnType(wsContextQName);
|
||||||
|
call.setReturnClass(WSContext.class);
|
||||||
|
call.addParameter(
|
||||||
|
new QName("", "userName"), // 空命名空间
|
||||||
|
XMLType.XSD_STRING,
|
||||||
|
String.class,
|
||||||
|
ParameterMode.IN
|
||||||
|
);
|
||||||
|
call.addParameter(
|
||||||
|
new QName("", "password"), // 空命名空间
|
||||||
|
XMLType.XSD_STRING,
|
||||||
|
String.class,
|
||||||
|
ParameterMode.IN
|
||||||
|
);
|
||||||
|
call.addParameter(
|
||||||
|
new QName("", "slnName"), // 空命名空间
|
||||||
|
XMLType.XSD_STRING,
|
||||||
|
String.class,
|
||||||
|
ParameterMode.IN
|
||||||
|
);
|
||||||
|
call.addParameter(
|
||||||
|
new QName("", "dcName"), // 空命名空间
|
||||||
|
XMLType.XSD_STRING,
|
||||||
|
String.class,
|
||||||
|
ParameterMode.IN
|
||||||
|
);
|
||||||
|
call.addParameter(
|
||||||
|
new QName("", "dbType"), // 空命名空间
|
||||||
|
XMLType.XSD_STRING,
|
||||||
|
Integer.class,
|
||||||
|
ParameterMode.IN
|
||||||
|
);
|
||||||
|
WSContext response = (WSContext)call.invoke(new Object[]{userName, password, slnName, dcName, dbType});
|
||||||
|
if (StrUtil.isEmptyIfStr(response.getSessionId())){
|
||||||
|
throw new BadRequestException("erp登录接口请求失败: 返回sessionId为空,请检查账户设置是否正确");
|
||||||
|
}
|
||||||
|
this.sessionId = response.getSessionId();
|
||||||
|
log.info("ERP登录接口返回:{}", response);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new BadRequestException("erp登录接口请求失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 审核接口请求
|
||||||
|
*/
|
||||||
|
public void audit(String json){
|
||||||
|
try {
|
||||||
|
Call call = (Call) service.createCall();
|
||||||
|
call.setOperationName("dealTask");
|
||||||
|
call.setTimeout(1000*60);
|
||||||
|
call.setMaintainSession(true);
|
||||||
|
call.setTargetEndpointAddress(auditUrl);
|
||||||
|
call.setReturnQName(new QName("", "erpsyncReturn"));
|
||||||
|
call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com", "SessionId", sessionId));
|
||||||
|
Object result = call.invoke(new Object[]{json});
|
||||||
|
System.out.println(result);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new BadRequestException("erp审核接口请求失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package org.nl.wms.ext_manage.util;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class WSContext {
|
||||||
|
private Integer dbType;
|
||||||
|
private String dcName;
|
||||||
|
private String password;
|
||||||
|
private String sessionId;
|
||||||
|
private String slnName;
|
||||||
|
private String userName;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user