From ef24ea7286c496625dfc74aff2723ffdbd9b0049 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 29 十二月 2025 11:11:00 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 85 +++++++++++++++++++++++++-----------------
1 files changed, 51 insertions(+), 34 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index 7cb0de0..b3058b4 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1464,45 +1464,62 @@
// 鍙栨斁璐ц姹傚寘
if (msgBody instanceof AGV_06_UP) {
AGV_06_UP agv_06_up = (AGV_06_UP) msgBody;
-
log.info("Agv [{}] 鍙栨斁璐ц姹傚寘 ===>> {}", protocol.getAgvNo(), JSON.toJSONString(agv_06_up));
- // query current segment
- Segment currSeg = segmentService.getCurrRunningSeg(agv.getId(), agv_06_up.getQrCode());
- if (null == currSeg) {
- log.error("failed to find curr segment [{}]", agv.getUuid());
- } else {
+ boolean success = false;
- boolean responseAck = true;
- TaskPosDto.PosType posType = TaskPosDto.PosType.of(currSeg.getPosType());
- assert null != posType;
- switch (posType) {
- case ORI_LOC:
- case DEST_LOC:
- break;
- case ORI_STA:
- case DEST_STA:
- // todo
- break;
- default:
- responseAck = false;
- log.error("agv[{}] has wrong posType [{}], segment [{}]", protocol.getAgvNo(), posType.toString(), currSeg.getId());
- break;
+ try {
+ Code code = codeService.getCacheByData(agv_06_up.getQrCode());
+
+ // query current segment
+ Segment currSeg = segmentService.getCurrRunningSeg(agv.getId(), code.getId());
+ if (null == currSeg) {
+ log.error("failed to find curr segment [{}]", agv.getUuid());
+ } else {
+
+ // query current task
+ Task currTask = taskService.getById(currSeg.getTaskId());
+ if (currTask == null || !currTask.getTaskSts().equals(TaskStsType.PROGRESS.val())) {
+
+ log.error("agv[{}] task invalid, task={}", protocol.getAgvNo(), currSeg.getTaskId());
+ } else {
+
+ Sta sta;
+ TaskPosDto.PosType posType = TaskPosDto.PosType.of(currSeg.getPosType());
+ assert null != posType;
+ switch (posType) {
+ case ORI_LOC:
+ case DEST_LOC:
+ success = true;
+ break;
+ case ORI_STA:
+ sta = staService.getById(currTask.getOriSta());
+ success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT);
+ // load sta
+ // remove expiredTime
+ break;
+ case DEST_STA:
+ // place sta
+ sta = staService.getById(currTask.getDestSta());
+ success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.IN);
+ break;
+ default:
+ log.error("agv[{}] has wrong posType [{}], segment [{}]", protocol.getAgvNo(), posType.toString(), currSeg.getId());
+ break;
+ }
+ }
+
}
-
- if (responseAck) {
-
- // todo:vincent 鏍¢獙鏄惁鍙互鍙栨斁璐�
-
- AGV_06_DOWN agv_06_down = new AGV_06_DOWN();
- agv_06_down.setSerialNo(agv_06_up.getSerialNo());
- agv_06_down.setActionCode(agv_06_up.getActionCode());
- agv_06_down.setResult(1);
-
- redis.push(RedisConstant.AGV_PATH_DOWN_FLAG, AgvProtocol.build(protocol.getAgvNo()).setMessageBody(agv_06_down));
- }
-
+ } catch (Exception e) {
+ log.error("agv[{}] failed to deal with action request, qrCode={}", agv.getUuid(), agv_06_up.getVal(), e);
}
+
+ AGV_06_DOWN agv_06_down = new AGV_06_DOWN();
+ agv_06_down.setSerialNo(agv_06_up.getSerialNo());
+ agv_06_down.setActionCode(agv_06_up.getActionCode());
+ agv_06_down.setResult(success ? 1 : 0);
+
+ redis.push(RedisConstant.AGV_PATH_DOWN_FLAG, AgvProtocol.build(protocol.getAgvNo()).setMessageBody(agv_06_down));
}
// 鏂欎粨淇℃伅鍖�
--
Gitblit v1.9.1