From aa0c2969838c2a794d9a45da7d4b67c5f6cb70a5 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期四, 01 一月 2026 15:23:13 +0800
Subject: [PATCH] AGV回调
---
src/main/java/com/zy/asrs/controller/OpenController.java | 2 +
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++-----
2 files changed, 84 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 6436d22..d52fdc8 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -54,7 +54,9 @@
public synchronized R agvCallback(@RequestHeader(required = false) String appkey,
@RequestBody(required = false) AgvCallbackDto param,
HttpServletRequest request) {
+
auth(appkey, param, request);
+
return openService.agvCallback(param);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index e5587b2..70d664c 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -59,21 +59,92 @@
private TaskService taskService;
@Override
+ @Transactional(rollbackFor = Exception.class)
public R agvCallback(AgvCallbackDto param) {
- String id = param.getId();
- Task task = taskService.selectById(id);
+ log.debug("agvCallback param:{}", param);
+ // 浼樺厛浣跨敤taskId锛屽鏋滄病鏈夊垯浣跨敤id锛堝悜鍚庡吋瀹癸級
+ String taskId = Cools.isEmpty(param.getTaskId()) ? param.getId() : param.getTaskId();
+ if (Cools.isEmpty(taskId)) {
+ return R.error("浠诲姟id涓嶈兘涓虹┖");
+ }
+
+ log.info("鏀跺埌AGV浠诲姟鍥炶皟璇锋眰锛宼askId锛歿}锛宖romBin锛歿}锛宼oBin锛歿}锛宺obotGroup锛歿}锛宬ind锛歿}",
+ taskId, param.getFromBin(), param.getToBin(),
+ Cools.isEmpty(param.getRobotGroup()) ? param.getRobotName() : param.getRobotGroup(),
+ param.getKind());
+
+ // 鏍规嵁taskId鏌ヨ浠诲姟
+ Task task = null;
+ try {
+ // 灏濊瘯灏唗askId瑙f瀽涓篖ong绫诲瀷鐨刬d
+ Long taskIdLong = Long.parseLong(taskId);
+ task = taskService.selectById(taskIdLong);
+ } catch (NumberFormatException e) {
+ // 濡傛灉涓嶆槸鏁板瓧锛屽皾璇曢�氳繃鍏朵粬瀛楁鏌ヨ锛堝sheetNo绛夛級
+ log.debug("taskId涓嶆槸鏁板瓧鏍煎紡锛屽皾璇曢�氳繃鍏朵粬瀛楁鏌ヨ锛宼askId锛歿}", taskId);
+ task = taskService.selectOne(
+ new EntityWrapper<Task>().eq("sheet_no", taskId)
+ );
+ }
+
if (task == null) {
- return R.parse(id +":id涓嶅瓨鍦�");
+ log.warn("鏈壘鍒板搴旂殑浠诲姟锛宼askId锛歿}", taskId);
+ return R.error("浠诲姟涓嶅瓨鍦紝taskId锛�" + taskId);
}
-
- switch (param.getStatus()) {
- case "Assigned":task.setInvWh(param.getRobotName());break;
- case "Done":task.setWrkSts(9L);break;
- case "Failed":
- case "Cancelled":
- default:
+
+ // 鏇存柊浠诲姟淇℃伅
+ if (!Cools.isEmpty(param.getFromBin())) {
+ task.setSourceStaNo(param.getFromBin());
}
- taskService.updateById(task);
+ if (!Cools.isEmpty(param.getToBin())) {
+ task.setLocNo(param.getToBin());
+ }
+
+ // 浼樺厛浣跨敤robotGroup锛屽鏋滄病鏈夊垯浣跨敤robotName锛堝悜鍚庡吋瀹癸級
+ String robotGroup = Cools.isEmpty(param.getRobotGroup()) ? param.getRobotName() : param.getRobotGroup();
+ if (!Cools.isEmpty(robotGroup)) {
+ task.setInvWh(robotGroup);
+ }
+
+ task.setModiTime(new Date());
+
+ // 濡傛灉鏈塻tatus瀛楁锛屾寜鍘熸湁閫昏緫澶勭悊锛堝悜鍚庡吋瀹癸級
+ if (!Cools.isEmpty(param.getStatus())) {
+ switch (param.getStatus()) {
+ case "Assigned":
+ if (Cools.isEmpty(robotGroup)) {
+ task.setInvWh(param.getRobotName());
+ }
+ break;
+ case "Done":
+ task.setWrkSts(9L);
+ break;
+ case "Failed":
+ case "Cancelled":
+ default:
+ break;
+ }
+ }
+
+ // 鏍规嵁浠诲姟绫诲瀷杩涜鐩稿簲澶勭悊
+ if (!Cools.isEmpty(param.getKind())) {
+ String kind = param.getKind();
+ if ("璐х墿杞繍".equals(kind)) {
+ log.info("澶勭悊璐х墿杞繍浠诲姟锛宼askId锛歿}", taskId);
+ } else if ("瀹炴墭鍏ュ簱".equals(kind)) {
+ log.info("澶勭悊瀹炴墭鍏ュ簱浠诲姟锛宼askId锛歿}", taskId);
+ } else if ("瀹炴墭鍑哄簱".equals(kind)) {
+ log.info("澶勭悊瀹炴墭鍑哄簱浠诲姟锛宼askId锛歿}", taskId);
+ }
+ }
+
+ // 淇濆瓨浠诲姟鏇存柊
+ if (!taskService.updateById(task)) {
+ log.error("鏇存柊浠诲姟澶辫触锛宼askId锛歿}", taskId);
+ return R.error("鏇存柊浠诲姟澶辫触");
+ }
+
+ log.info("AGV浠诲姟鍥炶皟澶勭悊鎴愬姛锛宼askId锛歿}", taskId);
return R.ok();
}
--
Gitblit v1.9.1