From b4c6f129662be7fb14f71235817a24e15f824449 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 19 十二月 2025 16:25:38 +0800
Subject: [PATCH] AGV呼叫,回传功能优化
---
src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 73 insertions(+), 37 deletions(-)
diff --git a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
index b66d76f..fceaab9 100644
--- a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
@@ -15,6 +15,7 @@
import com.zy.asrs.entity.result.HIKResultDTO;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.enums.TaskIOType;
+import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.LocCacheService;
import com.zy.asrs.service.TaskService;
@@ -24,8 +25,10 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@@ -48,47 +51,80 @@
* @version 1.0
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public R callAgvCarry(CallAgvParams params) {
- if (params.getType().equals(OrderType.ORDER_OUT.type)) {
- //缂撳瓨鍖哄嚭搴�
- } else if (params.getType().equals(OrderType.ORDER_IN.type)) {
- //缂撳瓨鍖哄叆搴�
- } else {
-
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
+ if (Objects.isNull(params.getWrkNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(task)) {
+ return R.error("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
+ }
+
+ if (Arrays.asList(TaskIOType.ALL_IN.type, TaskIOType.PICK_IN.type, TaskIOType.MERGE_IN.type)
+ .contains(task.getIoType())) {
+ // 鍏ュ簱
+ task.setWrkSts(TaskStatusType.AGV_TASK_ISSUED_IN.type);
+ } else if (Arrays.asList(TaskIOType.ALL_OUT.type, TaskIOType.PICK_OUT.type, TaskIOType.MERGE_OUT.type)
+ .contains(task.getIoType())) {
+ // 鍑哄簱
+ task.setWrkSts(TaskStatusType.AGV_TASK_ISSUED_OUT.type);
+ }
+
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+
return R.ok();
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public R callback(CallAgvParams params) {
- //TODO 1. 鎼繍瀹屾垚锛屼慨鏀圭珯鐐瑰簱浣嶇姸鎬�
- if (params.getType().equals(OrderType.ORDER_OUT.type)) {
- //鍑哄簱鍗�
- if (params.getStatus().equals("RUNING")) {
- LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", params.getOrgLoc()));
- if (Objects.isNull(locCache)) {
- throw new CoolException("搴撲綅淇℃伅涓嶅瓨鍦紒锛�");
- }
- if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
- locCache.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
- }
- } else if (params.getStatus().equals("FINISHED")) {
- Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
- if (Objects.isNull(task)) {
- throw new CoolException("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
- }
- if (!taskService.updateById(task)) {
- throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
- }
- }
- } else {
- //鍏ュ簱鍗�
-
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getWrkNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(task)) {
+ return R.error("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
}
- return null;
- }
+// if (!Arrays.asList(TaskStatusType.AGV_TASK_ISSUED_IN.type, TaskStatusType.AGV_TASK_ISSUED_OUT.type).contains(task.getIoType())) {
+// return R.error("");
+// }
+//
+ if (Arrays.asList(TaskIOType.ALL_IN.type, TaskIOType.PICK_IN.type, TaskIOType.MERGE_IN.type)
+ .contains(task.getIoType())) {
+ // 鍏ュ簱
+ if (params.getStatus().equals("RUNNING")) {
+ task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_IN.type);
+ } else if (params.getStatus().equals("FINISHED")){
+ task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_IN.type);
+ }
+ } else if (Arrays.asList(TaskIOType.ALL_OUT.type, TaskIOType.PICK_OUT.type, TaskIOType.MERGE_OUT.type)
+ .contains(task.getIoType())) {
+ // 鍑哄簱
+ if (params.getStatus().equals("RUNNING")) {
+ task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_OUT.type);
+ } else if (params.getStatus().equals("FINISHED")){
+ task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_OUT.type);
+ }
+ }
+
+ if (!taskService.updateById(task)) {
+ throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+
+ return R.ok("鎵ц瀹屾垚 锛侊紒");
+ }
public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO, String path) {
HIKResultDTO result = new HIKResultDTO();
@@ -99,8 +135,10 @@
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()));
+ 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 = "";
@@ -118,7 +156,7 @@
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"}
+ // {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
} catch (Exception e) {
result.setMessage(e.getMessage());
log.error("鍙戦�乤gv浠诲姟寮傚父", e);
@@ -132,14 +170,12 @@
"127.0.0.1",
body,
response,
- result.isSuccess()
- );
+ result.isSuccess());
} catch (Exception e) {
log.error("", e);
}
}
return result;
}
-
}
--
Gitblit v1.9.1