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.
udi-wms-java/src/main/java/com/glxp/api/http/ErpBasicClient.java

144 lines
6.9 KiB
Java

package com.glxp.api.http;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.basic.BasicThirdSysEntity;
import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.alibaba.fastjson.TypeReference;
import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.req.thrsys.ThrProductsRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrProductsResponse;
import com.glxp.api.req.thrsys.FilterBasicThirdSysDetailRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.thrsys.ThrSystemService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* HttpClient
*/
@Slf4j
@Service
public class ErpBasicClient {
@Resource
HttpOkClient httpOkClient;
@Resource
private ThrSystemService basicThirdSysService;
//todo 基础信息相关接口还未完成
// //获取往来单位
// public BaseResponse<PageSimpleResponse<ErpUnitsResponse>> getErpCrop(BasicUnitMaintainFilterRequest unitMaintainFilterRequest) {
// UdiwmsUnitRequest udiwmsUnitRequest = new UdiwmsUnitRequest();
// BeanUtils.copyProperties(unitMaintainFilterRequest, udiwmsUnitRequest);
// udiwmsUnitRequest.setUnitId(unitMaintainFilterRequest.getErpId());
// BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(unitMaintainFilterRequest.getThirdSys());
//
// try {
// String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getUnits";
// String response = httpOkClient.uCloudPost(url, udiwmsUnitRequest, basicThirdSysEntity);
// BaseResponse<PageSimpleResponse<ErpUnitsResponse>> udiDlDeviceResponse =
// JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ErpUnitsResponse>>>() {
// });
// 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);
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) {
// BasicThirdSysEntity 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) {
return null;
}
}