诏安智业接口对接相关修改

master
anthonyywj2 3 years ago
parent f8ddbffd77
commit cf77b29e55

@ -172,6 +172,11 @@
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
<build>

@ -1,12 +1,14 @@
package com.glxp.mipsdl.admin.client.http;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.mipsdl.admin.config.ThirdSysConfig;
import com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysDetailDao;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity;
import com.glxp.mipsdl.admin.entity.zy.ZaZyHeareRequest;
import com.glxp.mipsdl.admin.req.UdiwmsOnhandRequest;
import com.glxp.mipsdl.admin.req.UdiwmsOrderRequest;
import com.glxp.mipsdl.admin.req.UdiwmsPreInOrderRequest;
@ -21,12 +23,14 @@ import com.glxp.mipsdl.admin.service.phxyy.BussinessOriginTypeService;
import com.glxp.mipsdl.admin.util.HttpClient;
import com.glxp.mipsdl.common.res.BaseResponse;
import com.glxp.mipsdl.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class ZaxyyClient {
@ -62,46 +66,95 @@ public class ZaxyyClient {
public BaseResponse testConnect() {
PhUnitRequest phUnitRequest = new PhUnitRequest();
phUnitRequest.setPage(1);
phUnitRequest.setLimit(1);
BaseResponse baseResponse = getUnit(phUnitRequest);
if (baseResponse.getCode() == 20000) {
return ResultVOUtils.success("连接成功!");
} else {
return ResultVOUtils.error(500, "连接失败");
}
String msgHead = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<root>\n" +
"<serverName>getMasterialInput</serverName>\n" +
"</root>";
String msgBody = "{\"billNo\":\"ZY202205070001\",\"billdate\":\"2022-05-07\",\"corpId\":\"65119908299161\",\"corpName\":\"福建片仔癀诊断技术有限公司\",\"billType\":\"采购入库\",\"billFlag\":\"1\",\"thirdSys\":\"thirdId\",\"locInvCode\":\"11001\",\"locInvName\":\"总仓库\",\"inoutType\":\"1\",\"remark\":\"\",\"item\":[{\"billNo\":\"ZY202205070001\",\"productId\":\"7864\",\"productName\":\"通用脊柱内固定器-6.0 连接棒\",\"standard\":\"70-450mm/理贝尔\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"batchNo\":\"202003\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国食药监械(准)字 2006 第 3460057 号\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]},{\"productId\":\"7901\",\"productName\":\"亲水性丙烯酸折叠式人工晶状体 Hydrophilic AcrylicFoldableIntraocular Lens\",\"standard\":\"S1AW00\",\"batchNo\":\"202103\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国械注进 20153162635\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]}]}";
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(msgHead);
zaZyHeareRequest.setMsgBody(msgBody);
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl(), zaZyHeareRequest, getHeaderArray());
log.info(response);
return ResultVOUtils.error(500, "连接成功!");
}
public String getMsgHeader(String methodName) {
String msgHead = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<root>\n" +
"<serverName>" +
methodName +
"</serverName>\n" +
"</root>";
return msgHead;
}
public BaseResponse getUnit(PhUnitRequest unitRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("corpUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), unitRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("getUnit"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(unitRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse getProducts(PhProductRequest udiwmsProductRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("piQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsProductRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("getProducts"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsProductRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse getOrderTypes(PhBusTypeRequest udiwmsBusTypeRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("busTypeQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsBusTypeRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("getOrderTypes"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsBusTypeRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse getOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) {
return ResultVOUtils.error(500, "单据类型不能未空");
}
@ -110,12 +163,22 @@ public class ZaxyyClient {
}
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.findByKey(udiwmsOrderRequest.getBillType(), thirdSysConfig.getThirdSysConfig().getThirdId());
udiwmsOrderRequest.setBillType(bussinessOriginTypeResponse.getThirdAction());
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("getOrders"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOrderRequest));
BasicThirdSysBusApiEntity basicThirdSysBusApiEntity = basicThirdSysBusApiService.selectByKey(bussinessOriginTypeResponse.getThirdAction(), bussinessOriginTypeResponse.getThirdSys(), 1);
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysBusApiEntity.getUrl(), udiwmsOrderRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysBusApiEntity.getUrl(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse submitOrders(ZaxzyyOrderRequest udiwmsOrderRequest) {
@ -124,7 +187,6 @@ public class ZaxyyClient {
}
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByOrderType("orderSubmitUrl", thirdSysConfig.getThirdSysConfig().getThirdId(), udiwmsOrderRequest.getBillType());
String interStr = "";
if (StrUtil.isNotEmpty(basicThirdSysDetailEntity.getOrderTypeUrl())) {
interStr = basicThirdSysDetailEntity.getOrderTypeUrl();
@ -132,7 +194,12 @@ public class ZaxyyClient {
} else {
interStr = basicThirdSysDetailEntity.getValue();
}
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, udiwmsOrderRequest, getHeaderArray());
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("submitOrders"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOrderRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
@ -142,7 +209,7 @@ public class ZaxyyClient {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果");
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
@ -150,7 +217,12 @@ public class ZaxyyClient {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("preInOrderSubmit", thirdSysConfig.getThirdSysConfig().getThirdId());
String interStr = "";
interStr = basicThirdSysDetailEntity.getValue();
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, udiwmsPreInOrderRequest, getHeaderArray());
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("submitPreInOrders"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsPreInOrderRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
@ -160,25 +232,45 @@ public class ZaxyyClient {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果");
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("invPiUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOnhandRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("udiwmsWarehouseRequest"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOnhandRequest));
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
public BaseResponse getWarehouse(PhWarehouseRequest udiwmsWarehouseRequest) {
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
zaZyHeareRequest.setMsgHeader(getMsgHeader("udiwmsWarehouseRequest"));
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsWarehouseRequest));
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("warehouseQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsWarehouseRequest, getHeaderArray());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
try {
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
} catch (
Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "" + response + ")");
}
}

@ -0,0 +1,30 @@
package com.glxp.mipsdl.admin.client.http;
import com.glxp.mipsdl.common.res.BaseResponse;
import com.glxp.mipsdl.common.util.ResultVOUtils;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.springframework.stereotype.Service;
@Service
public class ZaxyyXmlClient {
public BaseResponse testWebservice() {
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("http://192.168.8.41:8081/ZoesoftHipService.asmx");
// 设置出口拦截器,拦截器实现 org.apache.cxf.interceptor.Interceptor 接口即可
// client.getOutInterceptors().add(new CustomInterceptor());
String head ="<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><serverName>getMasterialInput</serverName></root>";
Object[] objects;
try {
objects = client.invoke("getMasterialInput", "{\"billNo\":\"ZY202205070001\",\"billdate\":\"2022-05-07\",\"corpId\":\"65119908299161\",\"corpName\":\"福建片仔癀诊断技术有限公司\",\"billType\":\"采购入库\",\"billFlag\":\"1\",\"thirdSys\":\"thirdId\",\"locInvCode\":\"11001\",\"locInvName\":\"总仓库\",\"inoutType\":\"1\",\"remark\":\"\",\"item\":[{\"billNo\":\"ZY202205070001\",\"productId\":\"7864\",\"productName\":\"通用脊柱内固定器-6.0 连接棒\",\"standard\":\"70-450mm/理贝尔\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"batchNo\":\"202003\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国食药监械(准)字 2006 第 3460057 号\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]},{\"productId\":\"7901\",\"productName\":\"亲水性丙烯酸折叠式人工晶状体 Hydrophilic AcrylicFoldableIntraocular Lens\",\"standard\":\"S1AW00\",\"batchNo\":\"202103\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国械注进 20153162635\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]}]}");
System.out.println("响应 : " + objects[0]);
} catch (java.lang.Exception e) {
e.printStackTrace();
}
return ResultVOUtils.error(500, "失败");
}
}

@ -38,4 +38,5 @@ public class TestController {
// return ResultVOUtils.success(phxyyClient.getWarehouse(udiwmsWarehouseRequest));
// }
}

@ -117,9 +117,13 @@ public class UdiWmsController {
} else if (curFlag.equals("TEST")) {
return testClient.getOrders(udiwmsOrderRequest);
} else
return ResultVOUtils.error(500, "当前第三方系统不支持业务单据查询!");
return pzhzdClient.getOrders(udiwmsOrderRequest);
} else if (curFlag.equals("YONGYOU_U8_V3.1")) {
return pzhzdClient.getOrders(udiwmsOrderRequest);
} else if (curFlag.equals("ZAXZYY")) {
return zaxyyClient.getOrders(udiwmsOrderRequest);
}
return ResultVOUtils.error(500, "当前第三方系统不支持业务单据查询!");
}
@ -205,6 +209,8 @@ public class UdiWmsController {
return pzhzdClient.getInvProducts(udiwmsOnhandRequest);
} else if (curFlag.equals("TEST")) {
return testClient.getEnvProduct(udiwmsOnhandRequest);
} else if (curFlag.equals("ZAXZYY")) {
return zaxyyClient.getInvProducts(udiwmsOnhandRequest);
} else
return ResultVOUtils.error(500, "未设置系统版本!");

@ -0,0 +1,10 @@
package com.glxp.mipsdl.admin.entity.zy;
import lombok.Data;
@Data
public class ZaZyHeareRequest {
private String msgHeader;
private String msgBody;
}

@ -28,7 +28,7 @@ API_KEY=1102
API_SECRET=4dc07484afd34e8083ba96e8fe564224
#文件导入
#0.NULL(空未配置1.GLXP(自定义规范标准2.ZHIYE_V1(智业V1,诏安医院),3.YG_UDPLAT_V1(阳光采购平台),4.PHXYY(平和县医院)
FILE_VERSION_FLAG=PHXYY
FILE_VERSION_FLAG=ZHIYE_V1
#接口实时获取
#0.NULL(空,未配置),1.YONGYOU_U8_V3.1(用友3.1版本,片仔癀诊断) 2.YG_UDPLAT_V1.0(阳光采购平台) 3.TEST(标准接口,测试用),4.PHXYY(平和县医院)
#5.ZAXZYY(诏安县医院)

@ -1,4 +1,6 @@
package com.glxp.mipsdl.admin;
public class ApiTest {
}

@ -1,15 +1,26 @@
package com.glxp.mipsdl.admin;
import com.glxp.mipsdl.admin.client.http.ZaxyyXmlClient;
import com.glxp.mipsdl.admin.http.UHttpUtils;
import org.junit.Test;
import javax.annotation.Resource;
public class JsonTest {
@Test
public void teS() {
String json1 = "{\\\"invspec\\\":\\\"\\\\\\\\\\\",\\\"invtype\\\":\\\"国械注准20163461377\\\"}";
String json ="{\\\"invname\\\":\\\"Glucose Oxidase\\\\\\\"Amano\\\\\\\" 2\\\"}";
String json1 = "{\\\"invspec\\\":\\\"\\\\\\\\\\\",\\\"invtype\\\":\\\"国械注准20163461377\\\"}";
String json = "{\\\"invname\\\":\\\"Glucose Oxidase\\\\\\\"Amano\\\\\\\" 2\\\"}";
System.out.println(json1);
System.out.println(UHttpUtils.formatResponse(json1));
}
@Resource
ZaxyyXmlClient xmlClient;
@Test
public void teS1() {
xmlClient.testWebservice();
}
}

Loading…
Cancel
Save