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.thrsys.ThrSystemEntity; 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> 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> udiDlDeviceResponse = // JSONObject.parseObject(response, new TypeReference>>() { // }); // return udiDlDeviceResponse; // } catch (Exception e) { // log.error("获取往来单位异常", e); // return ResultVOUtils.error(500, "连接第三方系统接口服务出错!"); // } // } // // //获取产品信息 // public BaseResponse> getErpProducts(FilterErpGoodsRequest filterErpGoodsRequest) { // // BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterErpGoodsRequest.getThirdSys()); // String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getProducts"; // // try { // String response = httpOkClient.uCloudPost(url, filterErpGoodsRequest, basicThirdSysEntity); // BaseResponse> udiDlDeviceResponse = // JSONObject.parseObject(response, new TypeReference>>() { // }); // return udiDlDeviceResponse; // } catch (Exception e) { // log.error("获取产品信息异常", e); // return ResultVOUtils.error(500, "连接第三方系统接口服务出错!"); // } // } // // //获取单据类型 // public BaseResponse> 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> udiDlDeviceResponse = // JSONObject.parseObject(response, new TypeReference>>() { // }); // return udiDlDeviceResponse; // } catch (Exception e) { // log.error("获取单据类型异常", e); // return ResultVOUtils.error(500, "连接第三方系统接口服务出错!"); // } // } // // //查询仓库货位号 // public BaseResponse> getWarehouse(UdiwmsWarehouseRequest udiwmsWarehouseRequest) { // BasicThirdSysEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(udiwmsWarehouseRequest.getThirdSys()); // String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getWarehouse"; // try { // String response = httpOkClient.uCloudPost(url, udiwmsWarehouseRequest); // BaseResponse> listBaseResponse = // JSONObject.parseObject(response, new TypeReference>>() { // }); // // 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, "连接失败"); } } }