| | |
| | | @Autowired |
| | | private RestTemplate restTemplate; |
| | | |
| | | |
| | | /** |
| | | * 获取 WMS 基础 URL(host:port),未配置时抛出异常,避免产生 null:null 导致 URISyntaxException。 |
| | | */ |
| | | private String getWmsBaseUrl() { |
| | | if (wmsApi == null || wmsApi.getHost() == null || wmsApi.getHost().isEmpty() |
| | | || wmsApi.getPort() == null || wmsApi.getPort().isEmpty()) { |
| | | log.error("WMS地址未配置。请在配置文件中设置 platform.wms.host 与 platform.wms.port"); |
| | | throw new CoolException("WMS回调地址未配置,请配置 platform.wms.host 和 platform.wms.port"); |
| | | } |
| | | return wmsApi.getHost() + ":" + wmsApi.getPort(); |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | |
| | | log.warn("RCS回调事件参数eventType为空!完整参数:{}", JSONObject.toJSONString(params)); |
| | | } |
| | | |
| | | String callUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.callBack; |
| | | String callUrl = getWmsBaseUrl() + WmsConstant.callBack; |
| | | /**WMS基础配置链接*/ |
| | | log.info("任务执行状态上报,请求地址: {}, 请求参数: {}", callUrl , JSONObject.toJSONString(params)); |
| | | HttpHeaders headers = new HttpHeaders(); |
| | |
| | | |
| | | // 将TaskReportParams转换为ExMsgParams格式(taskNo -> seqNum) |
| | | // 根据RCS新接口规范,taskNo对应旧接口的seqNum |
| | | // 批次号用于验证任务主表,任务号用于查询和关联明细 |
| | | JSONObject exMsgParams = new JSONObject(); |
| | | exMsgParams.put("seqNum", params.getTaskNo()); // taskNo映射到seqNum |
| | | exMsgParams.put("batchNo", params.getBatchNo()); // 批次号用于精确关联 |
| | | // eventType设置为END,表示任务完成(根据业务需求可能需要调整) |
| | | exMsgParams.put("eventType", "END"); |
| | | exMsgParams.put("robotCode", null); |
| | | exMsgParams.put("zpallet", null); |
| | | |
| | | // 将任务上报回调转发到WMS系统 |
| | | String callUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.callBack; |
| | | // 将任务上报回调转发到WMS系统(需配置 platform.wms.host 与 platform.wms.port) |
| | | String callUrl = getWmsBaseUrl() + WmsConstant.callBack; |
| | | log.info("RCS回调-WMS-SERVER任务上报-,请求地址: {}, 转换后参数: {}", callUrl, exMsgParams.toJSONString()); |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | headers.add("Content-Type", "application/json"); |
| | |
| | | log.info("料箱码:{},入库站点:{},入库类型:{}", params.getBarcode(), params.getStaNo(), params.getType()); |
| | | |
| | | // 调用WMS server内部接口进行库位分配 |
| | | String wmsUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + "/rsf-server/wcs/allocate/location"; |
| | | String wmsUrl = getWmsBaseUrl() + "/rsf-server/wcs/allocate/location"; |
| | | log.info("WMS请求地址:{}", wmsUrl); |
| | | |
| | | // 构建请求参数 |
| | |
| | | JSONObject data = responseJson.getJSONObject("data"); |
| | | if (data != null) { |
| | | String locNo = data.getString("locNo"); |
| | | String batchNo = data.getString("batchNo"); |
| | | String taskNo = data.getString("taskNo"); |
| | | log.info("========== 申请入库任务成功 =========="); |
| | | log.info("分配库位号:{}", locNo); |
| | | log.info("分配库位号:{},批次号:{},任务号:{}", locNo, batchNo, taskNo); |
| | | |
| | | LocationAllocateResponse response = new LocationAllocateResponse(); |
| | | response.setLocNo(locNo); |
| | | response.setBatchNo(batchNo); |
| | | response.setTaskNo(taskNo); |
| | | return R.ok(response); |
| | | } else { |
| | | log.error("========== 申请入库任务失败 =========="); |