You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
311 lines
15 KiB
Java
311 lines
15 KiB
Java
package com.glxp.api.http;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.TypeReference;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
import com.glxp.api.entity.thrsys.*;
|
|
import com.glxp.api.http.req.UdiwmsBusTypeRequest;
|
|
import com.glxp.api.http.req.UdiwmsUnitRequest;
|
|
import com.glxp.api.req.basic.YbDrugDetailFilterRequest;
|
|
import com.glxp.api.req.basic.YbHcflDetailFilterRequest;
|
|
import com.glxp.api.req.collect.PostCollectOrderRequest;
|
|
import com.glxp.api.req.thrsys.*;
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
import com.glxp.api.res.chs.YbHcflEntityResponse;
|
|
import com.glxp.api.res.thrsys.ThrCorpsResponse;
|
|
import com.glxp.api.res.thrsys.ThrProductsResponse;
|
|
import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail;
|
|
import com.glxp.api.service.thrsys.ThrSystemService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 第三方服务HttpClient
|
|
*/
|
|
@Slf4j
|
|
@Service
|
|
public class ErpBasicClient {
|
|
@Resource
|
|
HttpOkClient httpOkClient;
|
|
@Resource
|
|
private ThrSystemService basicThirdSysService;
|
|
|
|
//获取往来单位
|
|
public BaseResponse<PageSimpleResponse<ThrCorpsResponse>> getErpCrop(ThrUnitMaintainFilterRequest thrUnitMaintainFilterRequest) {
|
|
UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest();
|
|
BeanUtil.copyProperties(thrUnitMaintainFilterRequest, udiwmsUnitRequest);
|
|
udiwmsUnitRequest.setUnitId(thrUnitMaintainFilterRequest.getErpId());
|
|
ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thrUnitMaintainFilterRequest.getThirdSys());
|
|
|
|
try {
|
|
String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/getUnits";
|
|
String response = httpOkClient.uCloudPost(url, udiwmsUnitRequest, thrSystemEntity);
|
|
if (StrUtil.isBlank(response)) {
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
BaseResponse<PageSimpleResponse<ThrCorpsResponse>> udiDlDeviceResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrCorpsResponse>>>() {
|
|
});
|
|
return udiDlDeviceResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取往来单位异常", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
}
|
|
|
|
//获取产品信息
|
|
public BaseResponse<PageSimpleResponse<ThrProductsResponse>> getErpProducts(FilterThrProductsRequest filterThrProductsRequest) {
|
|
|
|
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterThrProductsRequest.getThirdSys());
|
|
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getProducts";
|
|
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, filterThrProductsRequest, basicThirdSysEntity);
|
|
if (StrUtil.isBlank(response)) {
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
BaseResponse<PageSimpleResponse<ThrProductsResponse>> udiDlDeviceResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrProductsResponse>>>() {
|
|
});
|
|
return udiDlDeviceResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取产品信息异常", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
}
|
|
|
|
// //获取单据类型
|
|
// public BaseResponse<PageSimpleResponse<BasicThirdSysBusApiEntity>> getBusTypes(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest) {
|
|
// BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterBasicThirdSysDetailRequest.getThirdSysFk());
|
|
// String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getOrderType";
|
|
// UdiwmsBusTypeRequest udiwmsBusTypeRequest = new UdiwmsBusTypeRequest();
|
|
// udiwmsBusTypeRequest.setThirdSys(filterBasicThirdSysDetailRequest.getThirdSysFk());
|
|
// udiwmsBusTypeRequest.setPage(filterBasicThirdSysDetailRequest.getPage());
|
|
// udiwmsBusTypeRequest.setLimit(filterBasicThirdSysDetailRequest.getLimit());
|
|
// try {
|
|
// String response = httpOkClient.uCloudPost(url, udiwmsBusTypeRequest, basicThirdSysEntity);
|
|
// log.info(response);
|
|
// BaseResponse<PageSimpleResponse<BasicThirdSysBusApiEntity>> udiDlDeviceResponse =
|
|
// JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<BasicThirdSysBusApiEntity>>>() {
|
|
// });
|
|
// return udiDlDeviceResponse;
|
|
// } catch (Exception e) {
|
|
// log.error("获取单据类型异常", e);
|
|
// return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
// }
|
|
// }
|
|
//
|
|
//查询仓库货位号
|
|
public BaseResponse<PageSimpleResponse<UdiwmsWarehouseDetail>> getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) {
|
|
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(udiwmsWarehouseRequest.getThirdSys());
|
|
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getWarehouse";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, udiwmsWarehouseRequest);
|
|
BaseResponse<PageSimpleResponse<UdiwmsWarehouseDetail>> listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<UdiwmsWarehouseDetail>>>() {
|
|
});
|
|
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取第三方系统的仓库货位码异常", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
//测试连通性
|
|
public BaseResponse testConnection(ThrSystemEntity thrSystemEntity) {
|
|
String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udispsync/sync/testConnection", "{}");
|
|
log.info(response);
|
|
if (StrUtil.isBlank(response)) {
|
|
return ResultVOUtils.error(500, "连接失败");
|
|
}
|
|
try {
|
|
return JSONObject.parseObject(response, BaseResponse.class);
|
|
} catch (Exception e) {
|
|
log.info("测试第三方服务连通性失败");
|
|
return ResultVOUtils.error(500, "连接失败");
|
|
}
|
|
}
|
|
|
|
//测试连通性
|
|
public BaseResponse testThridConnect(ThrSystemEntity thrSystemEntity) {
|
|
String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/testThirdSys", "{}");
|
|
log.info(response);
|
|
try {
|
|
return JSONObject.parseObject(response, BaseResponse.class);
|
|
} catch (Exception e) {
|
|
log.info("测试第三方服务接口连通性失败");
|
|
return ResultVOUtils.error(500, "连接失败");
|
|
}
|
|
}
|
|
|
|
//下载第三方系统单据类型
|
|
public BaseResponse<PageSimpleResponse<ThrSystemBusApiEntity>> getBusTypes(FilterBasicThirdSysDetailRequest filterBasicThirdSysDetailRequest) {
|
|
ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(filterBasicThirdSysDetailRequest.getThirdSysFk());
|
|
String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/getOrderType";
|
|
UdiwmsBusTypeRequest udiwmsBusTypeRequest = new UdiwmsBusTypeRequest();
|
|
udiwmsBusTypeRequest.setThirdSys(filterBasicThirdSysDetailRequest.getThirdSysFk());
|
|
udiwmsBusTypeRequest.setPage(filterBasicThirdSysDetailRequest.getPage());
|
|
udiwmsBusTypeRequest.setLimit(filterBasicThirdSysDetailRequest.getLimit());
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, udiwmsBusTypeRequest, thrSystemEntity);
|
|
log.info(response);
|
|
BaseResponse<PageSimpleResponse<ThrSystemBusApiEntity>> udiDlDeviceResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrSystemBusApiEntity>>>() {
|
|
});
|
|
if(udiDlDeviceResponse!=null){
|
|
return udiDlDeviceResponse;
|
|
}else{
|
|
return ResultVOUtils.error(500, "查询第三方数据失败!");
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
log.error("获取单据类型异常", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 医保耗材详情
|
|
*/
|
|
public BaseResponse<PageSimpleResponse<YbHcflEntityResponse>> getYbHcflDetail(YbHcflDetailFilterRequest ybHcflDetailFilterRequest) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test"+"/udchs/ybHcfl/list";
|
|
try {
|
|
ybHcflDetailFilterRequest.setLimit(1);
|
|
ybHcflDetailFilterRequest.setPage(1);
|
|
String specificationCode = ybHcflDetailFilterRequest.getSpecificationCode().substring(0, 15);
|
|
ybHcflDetailFilterRequest.setSpecificationCode(specificationCode);
|
|
String response = httpOkClient.uCloudPost(url, ybHcflDetailFilterRequest);
|
|
BaseResponse<PageSimpleResponse<YbHcflEntityResponse>> listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<YbHcflEntityResponse>>>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取患者处方信息", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取往来单位
|
|
*/
|
|
public BaseResponse<PageSimpleResponse<ThrManufacturerEntity>> getThrManu(ThrManuFilterRequest thrManuFilterRequest) {
|
|
UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest();
|
|
BeanUtils.copyProperties(thrManuFilterRequest, udiwmsUnitRequest);
|
|
udiwmsUnitRequest.setUnitId(thrManuFilterRequest.getErpId());
|
|
ThrSystemEntity thrSystemEntity = basicThirdSysService.selectByThirdId(thrManuFilterRequest.getThirdSysFk());
|
|
try {
|
|
String url = thrSystemEntity.getThridUrl() + "/udiwms/erp/getManus";
|
|
String response = httpOkClient.uCloudPost(url, udiwmsUnitRequest, thrSystemEntity);
|
|
if (StrUtil.isBlank(response)) {
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
BaseResponse<PageSimpleResponse<ThrManufacturerEntity>> baseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrManufacturerEntity>>>() {
|
|
});
|
|
return baseResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取生产企业接口异常", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错!");
|
|
}
|
|
}
|
|
|
|
public BaseResponse<PageSimpleResponse<YbDrug>> getYbDrugDetail(YbDrugDetailFilterRequest ybHcflDetailFilterRequest) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test" + "/udchs/ybDrug/list";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, ybHcflDetailFilterRequest);
|
|
BaseResponse<PageSimpleResponse<YbDrug>> listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<YbDrug>>>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("医保药品详情", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取 多码融合表
|
|
* @param codeRel
|
|
* @return
|
|
*/
|
|
public BaseResponse<List<CodeRel>> getCodeRelDetail(CodeRel codeRel) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test" + "/udchs/codeRel/list";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, codeRel);
|
|
BaseResponse<List<CodeRel>> listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<CodeRel>>>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取多码融合表", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取 多码融合表
|
|
* @param codeList
|
|
* @return
|
|
*/
|
|
public BaseResponse<List> checkCode(List<String> codeList) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test" + "/udiwms/relCode/checkCode";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, codeList);
|
|
BaseResponse<List> listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse<List>>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("获取多码融合表", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新 多码融合表
|
|
* @param codeRel
|
|
* @return
|
|
*/
|
|
public BaseResponse updateCodeRelDetail(CodeRel codeRel) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test"+ "/udchs/codeRel/update";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, codeRel);
|
|
BaseResponse listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("更新多码融合表", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 上传已成功传输医保的完成单据
|
|
* @param postCollectOrderRequest
|
|
* @return
|
|
*/
|
|
public BaseResponse collectOrderUpload(PostCollectOrderRequest postCollectOrderRequest) {
|
|
String url = "https://www.udims.com/UDI_DL_Server_test"+ "/collect/order/upload";
|
|
try {
|
|
String response = httpOkClient.uCloudPost(url, postCollectOrderRequest);
|
|
BaseResponse listBaseResponse =
|
|
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
|
|
});
|
|
return listBaseResponse;
|
|
} catch (Exception e) {
|
|
log.error("上传已成功传输医保的完成单据", e);
|
|
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
|
|
}
|
|
}
|
|
|
|
}
|