From 400b66ecb2ab42af18ef9697c5b2a2fb831447a8 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 29 十二月 2025 12:56:56 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 13 ++++++++++---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java | 2 ++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java | 8 ++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/StaReserveMapper.java | 8 ++++++++
zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml | 13 +++++++++++++
5 files changed, 41 insertions(+), 3 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 2d2890e..ba30eab 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
@@ -1496,12 +1496,19 @@
break;
case ORI_STA:
sta = staService.getById(currTask.getOriSta());
- success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT);
+ boolean reserveWaitingOk = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT);
+ if (!reserveWaitingOk) {
+ break;
+ }
boolean permit = conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT);
+ if (!permit) {
+ // reserve rollback
+ staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.OUT);
+ break;
+ }
- // load sta
- // remove expiredTime
+ success = true;
break;
case DEST_STA:
// place sta
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/StaReserveMapper.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/StaReserveMapper.java
index d091148..e84e694 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/StaReserveMapper.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/mapper/StaReserveMapper.java
@@ -25,4 +25,12 @@
, @Param("extendMs") Long extendMs
);
+ int updateStateBackToWaiting(
+ @Param("taskId") Long taskId
+ , @Param("staId") Long staId
+ , @Param("type") String type
+ , @Param("state") String state
+ , @Param("extendMs") Long extendMs
+ );
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
index 5da15ef..45a32cd 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaReserveService.java
@@ -15,6 +15,8 @@
Boolean waitingStaReserve(Sta sta, Task task, Integer qty, StaReserveType type);
+ Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType);
+
void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
index e0ec01f..9750e6c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
@@ -145,6 +145,14 @@
}
@Override
+ public Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType) {
+
+ rollbackWaitingToReserved
+
+ return null;
+ }
+
+ @Override
@Transactional(rollbackFor = Exception.class)
public void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type) {
qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY);
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
index bbc3c31..9c26d9a 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
@@ -30,4 +30,17 @@
-- AND state IN ('RESERVED','WAITING')
</update>
+ <update id="updateStateBackToWaiting">
+ UPDATE man_sta_reserve
+ SET state = #{state},
+ expire_time = DATE_ADD(NOW(), INTERVAL (#{reservedExtendMs} * 1000) MICROSECOND),
+ update_time = NOW()
+ WHERE task_id = #{taskId}
+ AND sta_id = #{staId}
+ AND type = #{type}
+ AND deleted = 0
+ AND status = 1
+-- AND state = 'WAITING'
+ </update>
+
</mapper>
--
Gitblit v1.9.1