4 changed files with 250 additions and 14 deletions
-
28src/main/java/com/gaotao/common/utils/AgvClientUtil.java
-
234src/main/java/com/gaotao/common/utils/WcsClientUtil.java
-
1src/main/java/com/gaotao/config/ShiroConfig.java
-
1src/main/resources/application.yml
@ -0,0 +1,234 @@ |
|||||
|
package com.gaotao.common.utils; |
||||
|
|
||||
|
import lombok.Getter; |
||||
|
import lombok.Setter; |
||||
|
import org.springframework.beans.factory.annotation.Value; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.util.HashMap; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
/** |
||||
|
* WCS接口调用工具类 |
||||
|
* 基于WMS-WCS接口文档实现 |
||||
|
*/ |
||||
|
@Setter |
||||
|
@Getter |
||||
|
@Component |
||||
|
public class WcsClientUtil { |
||||
|
|
||||
|
/** |
||||
|
* WCS基础URL |
||||
|
*/ |
||||
|
@Value("${custom.wcs-url}") |
||||
|
private String wcsUrl; |
||||
|
|
||||
|
/** |
||||
|
* 1. 组盘信息下发 |
||||
|
* 原料、半成品、成品等入库信息(包括托盘及物料号,批号,幅宽,直径,重量,位置,是否机械臂分拣选等) |
||||
|
* @param palletInfo 托盘信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendPalletInfo(Map<String, Object> palletInfo) { |
||||
|
String url = wcsUrl + "/api/pallet/send"; |
||||
|
return HttpClientUtil.doPostByRaw(url, palletInfo); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 2. 出库信息下发 |
||||
|
* 出库指令(出库单号,物料信息,数量,状态等) |
||||
|
* @param outboundOrder 出库单信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendOutboundOrder(Map<String, Object> outboundOrder) { |
||||
|
String url = wcsUrl + "/api/outbound/send"; |
||||
|
return HttpClientUtil.doPostByRaw(url, outboundOrder); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 3. 取消出库信息下发 |
||||
|
* 是否继续执行出库,如库存不足是否继续执行出库需求 |
||||
|
* @param orderNo 出库单号 |
||||
|
* @param continueFlag 是否继续执行标志 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData cancelOutboundOrder(String orderNo, Boolean continueFlag) { |
||||
|
String url = wcsUrl + "/api/outbound/cancel"; |
||||
|
Map<String, Object> request = new HashMap<>(); |
||||
|
request.put("orderNo", orderNo); |
||||
|
request.put("continueFlag", continueFlag); |
||||
|
return HttpClientUtil.doPostByRaw(url, request); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 4. PDA拣选完成下发 |
||||
|
* 人工拣选物料信息反馈给WCS |
||||
|
* @param pickingInfo 拣选信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendPdaPickingComplete(Map<String, Object> pickingInfo) { |
||||
|
String url = wcsUrl + "/api/picking/pda/complete"; |
||||
|
return HttpClientUtil.doPostByRaw(url, pickingInfo); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 5. 单据优先级下发 |
||||
|
* 调整WCS单据任务顺序 |
||||
|
* @param orderNo 单据号 |
||||
|
* @param priority 优先级 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData updateOrderPriority(String orderNo, Integer priority) { |
||||
|
String url = wcsUrl + "/api/order/priority"; |
||||
|
Map<String, Object> request = new HashMap<>(); |
||||
|
request.put("orderNo", orderNo); |
||||
|
request.put("priority", priority); |
||||
|
return HttpClientUtil.doPostByRaw(url, request); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 6. 物料状态更新下发 |
||||
|
* 物料状态下发WCS系统(待检验,待入库等库位变化) |
||||
|
* @param materialNo 物料号 |
||||
|
* @param status 物料状态 |
||||
|
* @param location 库位信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData updateMaterialStatus(String materialNo, String status, String location) { |
||||
|
String url = wcsUrl + "/api/material/status/update"; |
||||
|
Map<String, Object> request = new HashMap<>(); |
||||
|
request.put("materialNo", materialNo); |
||||
|
request.put("status", status); |
||||
|
request.put("location", location); |
||||
|
return HttpClientUtil.doPostByRaw(url, request); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 7. 盘点任务下发 |
||||
|
* WMS下发盘点任务,WCS控制设备进行通道机完成盘点功能 |
||||
|
* @param inventoryTask 盘点任务信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendInventoryTask(Map<String, Object> inventoryTask) { |
||||
|
String url = wcsUrl + "/api/inventory/task/send"; |
||||
|
return HttpClientUtil.doPostByRaw(url, inventoryTask); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 8. 盘点抽样出库需求 |
||||
|
* 财务指定托盘进行抽检 |
||||
|
* @param palletNo 托盘号 |
||||
|
* @param sampleInfo 抽样信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendInventorySampleOutbound(String palletNo, Map<String, Object> sampleInfo) { |
||||
|
String url = wcsUrl + "/api/inventory/sample/outbound"; |
||||
|
Map<String, Object> request = new HashMap<>(); |
||||
|
request.put("palletNo", palletNo); |
||||
|
request.putAll(sampleInfo); |
||||
|
return HttpClientUtil.doPostByRaw(url, request); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 9. 盘点抽样回库指令 |
||||
|
* 抽检完成后PDA/电脑产生回库信息 |
||||
|
* @param palletNo 托盘号 |
||||
|
* @param returnInfo 回库信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendInventorySampleReturn(String palletNo, Map<String, Object> returnInfo) { |
||||
|
String url = wcsUrl + "/api/inventory/sample/return"; |
||||
|
Map<String, Object> request = new HashMap<>(); |
||||
|
request.put("palletNo", palletNo); |
||||
|
request.putAll(returnInfo); |
||||
|
return HttpClientUtil.doPostByRaw(url, request); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 10. 盘点调整 |
||||
|
* 盘盈,盘亏下发WCS系统 |
||||
|
* @param adjustmentInfo 盘点调整信息 |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData sendInventoryAdjustment(Map<String, Object> adjustmentInfo) { |
||||
|
String url = wcsUrl + "/api/inventory/adjustment"; |
||||
|
return HttpClientUtil.doPostByRaw(url, adjustmentInfo); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 11. 库存对账接口 |
||||
|
* WMS查询立库货位信息进行系统对账 |
||||
|
* @param warehouseCode 仓库代码 |
||||
|
* @param locationCode 库位代码(可选) |
||||
|
* @return 响应结果 |
||||
|
*/ |
||||
|
public ResponseData queryInventoryReconciliation(String warehouseCode, String locationCode) { |
||||
|
String url = wcsUrl + "/api/inventory/reconciliation"; |
||||
|
Map<String, String> params = new HashMap<>(); |
||||
|
params.put("warehouseCode", warehouseCode); |
||||
|
if (locationCode != null) { |
||||
|
params.put("locationCode", locationCode); |
||||
|
} |
||||
|
return HttpClientUtil.doGet(url, params); |
||||
|
} |
||||
|
|
||||
|
// ========== WCS回调WMS的接口方法 ========== |
||||
|
|
||||
|
/** |
||||
|
* 入库信息反馈处理 |
||||
|
* 入库完成信息反馈 |
||||
|
* @param inboundFeedback 入库反馈信息 |
||||
|
* @return 处理结果 |
||||
|
*/ |
||||
|
public ResponseData handleInboundFeedback(Map<String, Object> inboundFeedback) { |
||||
|
// 这里应该是处理WCS回调的入库反馈信息 |
||||
|
// 具体实现根据业务需求来定义 |
||||
|
ResponseData response = new ResponseData("入库反馈处理成功"); |
||||
|
response.setSuccess(true); |
||||
|
response.setCode("200"); |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 机械手拣货完成反馈处理 |
||||
|
* 机械手拣选物料信息反馈给WMS |
||||
|
* @param robotPickingFeedback 机械手拣货反馈信息 |
||||
|
* @return 处理结果 |
||||
|
*/ |
||||
|
public ResponseData handleRobotPickingFeedback(Map<String, Object> robotPickingFeedback) { |
||||
|
// 这里应该是处理WCS回调的机械手拣货反馈信息 |
||||
|
ResponseData response = new ResponseData("机械手拣货反馈处理成功"); |
||||
|
response.setSuccess(true); |
||||
|
response.setCode("200"); |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 盘点反馈处理 |
||||
|
* 通道机盘点信息上传WMS |
||||
|
* @param inventoryFeedback 盘点反馈信息 |
||||
|
* @return 处理结果 |
||||
|
*/ |
||||
|
public ResponseData handleInventoryFeedback(Map<String, Object> inventoryFeedback) { |
||||
|
// 这里应该是处理WCS回调的盘点反馈信息 |
||||
|
ResponseData response = new ResponseData("盘点反馈处理成功"); |
||||
|
response.setSuccess(true); |
||||
|
response.setCode("200"); |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 盘点抽样回库反馈处理 |
||||
|
* WCS回库完成反馈库位信息 |
||||
|
* @param sampleReturnFeedback 抽样回库反馈信息 |
||||
|
* @return 处理结果 |
||||
|
*/ |
||||
|
public ResponseData handleSampleReturnFeedback(Map<String, Object> sampleReturnFeedback) { |
||||
|
// 这里应该是处理WCS回调的抽样回库反馈信息 |
||||
|
ResponseData response = new ResponseData("抽样回库反馈处理成功"); |
||||
|
response.setSuccess(true); |
||||
|
response.setCode("200"); |
||||
|
return response; |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue