|
|
|
@ -0,0 +1,288 @@
|
|
|
|
|
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.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;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.ZaxzyyOrderRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.phxyy.PhBusTypeRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.phxyy.PhProductRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.phxyy.PhUnitRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.req.phxyy.PhWarehouseRequest;
|
|
|
|
|
import com.glxp.mipsdl.admin.service.phxyy.BasicThirdSysBusApiService;
|
|
|
|
|
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.dom4j.Document;
|
|
|
|
|
import org.dom4j.DocumentException;
|
|
|
|
|
import org.dom4j.DocumentHelper;
|
|
|
|
|
import org.dom4j.io.SAXReader;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
|
public class ZaxyyClient {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private ThirdSysConfig thirdSysConfig;
|
|
|
|
|
@Resource
|
|
|
|
|
private HttpClient httpClient;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String[] getHeaderArray() {
|
|
|
|
|
List<String> headArray = new ArrayList<>();
|
|
|
|
|
headArray.add("Content-Type");
|
|
|
|
|
headArray.add("application/json");
|
|
|
|
|
if (StrUtil.isNotEmpty(thirdSysConfig.getThirdSysConfig().getApikey())) {
|
|
|
|
|
headArray.add("api_key");
|
|
|
|
|
headArray.add(thirdSysConfig.getThirdSysConfig().getApikey());
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.isNotEmpty(thirdSysConfig.getThirdSysConfig().getSecretkey())) {
|
|
|
|
|
headArray.add("secret_key");
|
|
|
|
|
headArray.add(thirdSysConfig.getThirdSysConfig().getSecretkey());
|
|
|
|
|
}
|
|
|
|
|
String[] strArray = new String[headArray.size()];
|
|
|
|
|
headArray.toArray(strArray);
|
|
|
|
|
return strArray;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysBusApiService basicThirdSysBusApiService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BussinessOriginTypeService bussinessOriginTypeService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicThirdSysDetailDao basicThirdSysDetailDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse testConnect() {
|
|
|
|
|
String msgHead = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
|
|
|
|
"<root>" +
|
|
|
|
|
"<serverName>getMasterialInput</serverName>" +
|
|
|
|
|
"</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\"?>" +
|
|
|
|
|
"<root>" +
|
|
|
|
|
"<serverName>" +
|
|
|
|
|
methodName +
|
|
|
|
|
"</serverName>" +
|
|
|
|
|
"</root>";
|
|
|
|
|
return msgHead;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse getUnit(PhUnitRequest unitRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("corpUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialUnit"));
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialDict"));
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialType"));
|
|
|
|
|
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, "单据类型不能未空");
|
|
|
|
|
// }
|
|
|
|
|
// if (StrUtil.isEmpty(udiwmsOrderRequest.getThirdSys())) {
|
|
|
|
|
// return ResultVOUtils.error(500, "第三方系统ID不能为空");
|
|
|
|
|
// }
|
|
|
|
|
// BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.findByKey(udiwmsOrderRequest.getBillType(), thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
// udiwmsOrderRequest.setBillType(bussinessOriginTypeResponse.getThirdAction());
|
|
|
|
|
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialApply"));
|
|
|
|
|
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOrderRequest));
|
|
|
|
|
|
|
|
|
|
// BasicThirdSysBusApiEntity basicThirdSysBusApiEntity = basicThirdSysBusApiService.selectByKey(bussinessOriginTypeResponse.getThirdAction(), bussinessOriginTypeResponse.getThirdSys(), 1);
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("orderQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
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 submitOrders(ZaxzyyOrderRequest udiwmsOrderRequest) {
|
|
|
|
|
if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据类型不能未空");
|
|
|
|
|
}
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByOrderType("orderSubmitUrl", thirdSysConfig.getThirdSysConfig().getThirdId(), udiwmsOrderRequest.getBillType());
|
|
|
|
|
|
|
|
|
|
String interStr = "";
|
|
|
|
|
if (StrUtil.isNotEmpty(basicThirdSysDetailEntity.getOrderTypeUrl())) {
|
|
|
|
|
interStr = basicThirdSysDetailEntity.getOrderTypeUrl();
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
interStr = basicThirdSysDetailEntity.getValue();
|
|
|
|
|
}
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("saveMasterialInput"));
|
|
|
|
|
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOrderRequest));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, 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 submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("preInOrderSubmit", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
String interStr = "";
|
|
|
|
|
interStr = basicThirdSysDetailEntity.getValue();
|
|
|
|
|
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("saveMaterialHight"));
|
|
|
|
|
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsPreInOrderRequest));
|
|
|
|
|
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + interStr, 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 getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("invPiUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest();
|
|
|
|
|
zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialStorage"));
|
|
|
|
|
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOnhandRequest));
|
|
|
|
|
String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray());
|
|
|
|
|
|
|
|
|
|
if (response.contains("<root")) {
|
|
|
|
|
SAXReader saxReader = new SAXReader();
|
|
|
|
|
try {
|
|
|
|
|
Document document = DocumentHelper.parseText(response);
|
|
|
|
|
} catch (DocumentException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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("getMaterialDept"));
|
|
|
|
|
zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsWarehouseRequest));
|
|
|
|
|
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("warehouseQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId());
|
|
|
|
|
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 + ")");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|