From 071b6b6eb7add4aa6e067b87259697101bff4119 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 01 十二月 2025 17:00:46 +0800
Subject: [PATCH] #AGV
---
src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java | 39 +++++++++
src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java | 9 ++
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 84 ++++++++++++++++++++
src/main/java/com/zy/asrs/controller/MobileController.java | 7 +
src/main/java/com/zy/common/constant/HIKApiConstant.java | 15 +++
src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java | 38 +++++++++
src/main/java/com/zy/asrs/service/MobileService.java | 3
7 files changed, 194 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 95e7cda..506cf88 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -60,6 +60,13 @@
@Resource
private StaDescService staDescService;
+
+ @PostMapping("/agv/callEmptyCar")
+ @ManagerAuth
+ public R pdaAgvFinishedCall(@RequestBody AgvCallParams params){
+ return mobileService.callEmptyCar(params);
+ }
+
@RequestMapping("/pda/WarehouseOut/v1")
@ManagerAuth(memo = "骞舵澘閫斾腑鎷f枡-鍙傝�冨康鍒�")
public R WarehouseOutV1(@RequestBody CombParam combParam) {
diff --git a/src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java b/src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java
new file mode 100644
index 0000000..741bdda
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java
@@ -0,0 +1,39 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ForwardAGVTaskDTO {
+ private String reqCode;
+ private String reqTime;
+ private String taskTyp;
+ private String ctnrCode;
+ private List<PositionCodePaths> positionCodePath;
+ private String clientCode = "";
+ private String tokenCode = "";
+ private String ctnrTyp = "";
+ private String ctnrNum = "";
+ private String wbCode = "";
+ private String podCode = "";
+ private String podDir = "";
+ private String podTyp = "";
+ private String materialLot = "";
+ private String priority = "";
+ private String taskCode;
+ private String agvCode = "";
+ private String data = "";
+
+ @Data
+ public static class PositionCodePaths{
+ private String positionCode;
+ private String type;
+
+ public PositionCodePaths(String positionCode, String type){
+ this.positionCode = positionCode;
+ this.type = type;
+
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java b/src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java
new file mode 100644
index 0000000..817a561
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java
@@ -0,0 +1,38 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class HIKApiDTO {
+ /**
+ * 婧愮珯
+ */
+ private String org;
+ /**
+ * 婧愮珯绫诲瀷
+ */
+ private String orgType;
+ /**
+ * 鐩爣绔�
+ */
+ private String tar;
+ /**
+ * 鐩爣绔欑被鍨�
+ */
+ private String tarType;
+ /**
+ * 浠诲姟绫诲瀷
+ */
+ private String taskType;
+ /**
+ * 瀹瑰櫒绫诲瀷
+ */
+ private String ctnrType;
+ /**
+ * 浼樺厛绾�
+ */
+ private String priority;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java b/src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java
new file mode 100644
index 0000000..7aa7104
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+@Data
+public class HIKResultDTO {
+ private boolean success = false;
+ private String message;
+}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 2455c90..e0b38c2 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -8,6 +8,7 @@
import com.zy.asrs.entity.param.*;
import java.util.Date;
+import java.util.Map;
public interface MobileService {
@@ -99,4 +100,6 @@
* @version 1.0
*/
R OutCallAgv(AgvCallParams params, Long userId);
+
+ R callEmptyCar(AgvCallParams params);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 2c9a489..5587732 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -8,13 +8,16 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
-import com.zy.asrs.enums.CommonEnum;
+import com.zy.asrs.entity.result.ForwardAGVTaskDTO;
+import com.zy.asrs.entity.result.HIKApiDTO;
+import com.zy.asrs.entity.result.HIKResultDTO;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
import com.zy.asrs.utils.OrderInAndOutUtil;
+import com.zy.common.constant.HIKApiConstant;
import com.zy.common.constant.MesConstant;
import com.zy.common.entity.Parameter;
import com.zy.common.model.DetlDto;
@@ -1272,6 +1275,31 @@
return R.ok();
}
+ @Override
+ public R callEmptyCar(AgvCallParams params) {
+
+ List<LocCache> locSts = locCacheService.selectList(new EntityWrapper<LocCache>().eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type));
+ if (locSts.isEmpty()){
+ throw new CoolException("鏆傛棤绌烘澘搴撲綅");
+ }
+
+ HIKApiDTO hikApiDTO =new HIKApiDTO()
+ .setOrg(locSts.get(0).getLocNo())
+ .setOrgType("05")
+ .setTar(params.getTarSite())
+ .setTarType("05")
+ .setTaskType("GT5")
+ .setPriority("1")
+ .setCtnrType("2")
+ ;
+ HIKResultDTO hikResultDTO = sendAgvTask(hikApiDTO, HIKApiConstant.AGV_CALL_IN_PATH);
+ if (!hikResultDTO.isSuccess()){
+ return R.error(hikResultDTO.getMessage());
+ }
+
+ return R.ok();
+ }
+
/**
* @author Ryan
* @date 2025/9/25
@@ -1429,4 +1457,58 @@
throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + loc.getLocSts$());
}
}
+
+
+ public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO,String path){
+ HIKResultDTO result = new HIKResultDTO();
+
+ ForwardAGVTaskDTO forwardAGVTaskParam = new ForwardAGVTaskDTO();
+ forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", ""));
+ forwardAGVTaskParam.setClientCode("IWMS");
+ forwardAGVTaskParam.setTaskTyp(haiKangApiDTO.getTaskType());
+ forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType());
+ forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority());
+ List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>();
+ positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
+ positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
+ forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
+
+ String body = JSON.toJSONString(forwardAGVTaskParam);
+ String response = "";
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(HIKApiConstant.AGV_IP)
+ .setPath(path)
+ .setJson(body)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(0)) {
+ result.setSuccess(true);
+ } else {
+ result.setMessage(jsonObject.getString("message"));
+ log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIKApiConstant.AGV_IP + path, body, response);
+ }
+// {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
+ } catch (Exception e) {
+ result.setMessage(e.getMessage());
+ log.error("鍙戦�乤gv浠诲姟寮傚父", e);
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鍙戦�乤gv浠诲姟",
+ HIKApiConstant.AGV_IP + path,
+ null,
+ "127.0.0.1",
+ body,
+ response,
+ result.isSuccess()
+ );
+ } catch (Exception e) {
+ log.error("", e);
+ }
+ }
+ return result;
+ }
}
diff --git a/src/main/java/com/zy/common/constant/HIKApiConstant.java b/src/main/java/com/zy/common/constant/HIKApiConstant.java
new file mode 100644
index 0000000..88d1d7f
--- /dev/null
+++ b/src/main/java/com/zy/common/constant/HIKApiConstant.java
@@ -0,0 +1,15 @@
+package com.zy.common.constant;
+
+
+public class HIKApiConstant {
+
+ // AGV IP鍦板潃
+ public static final String AGV_IP = "10.0.100.110:8182";
+
+ // 鍏ュ簱鍛煎彨AGV鍙栬揣
+ public static final String AGV_CALL_IN_PATH = "/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
+
+ // AGV缁戝畾浠撲綅
+ public static final String AGV_BIND_PATH = "/rcms/services/rest/hikRpcService/bindCtnrAndBin";
+
+}
--
Gitblit v1.9.1