From 9923a4562e8dfac0c32fd2e90f60ca2c5fb79b89 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 29 十二月 2025 11:25:11 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 5 +++++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/SiemensConveyorStationService.java | 17 +++++++++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ConveyorStationService.java | 12 ++++++++++++
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 | 1 +
zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml | 1 +
6 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ConveyorStationService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ConveyorStationService.java
new file mode 100644
index 0000000..51e0568
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ConveyorStationService.java
@@ -0,0 +1,12 @@
+package com.zy.acs.manager.core.service;
+
+import com.zy.acs.manager.manager.entity.Segment;
+import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.entity.Task;
+import com.zy.acs.manager.manager.enums.StaReserveType;
+
+public interface ConveyorStationService {
+
+ boolean allowAgvWork(Sta sta, Task task, Segment seg, StaReserveType type);
+
+}
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 b3058b4..2d2890e 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
@@ -100,6 +100,8 @@
private ActionSorter actionSorter;
@Autowired
private StaReserveService staReserveService;
+ @Autowired
+ private ConveyorStationService conveyorStationService;
@SuppressWarnings("all")
@Transactional
@@ -1495,6 +1497,9 @@
case ORI_STA:
sta = staService.getById(currTask.getOriSta());
success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT);
+
+ boolean permit = conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT);
+
// load sta
// remove expiredTime
break;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/SiemensConveyorStationService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/SiemensConveyorStationService.java
new file mode 100644
index 0000000..f933f43
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/SiemensConveyorStationService.java
@@ -0,0 +1,17 @@
+package com.zy.acs.manager.core.service;
+
+import com.zy.acs.manager.manager.entity.Segment;
+import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.entity.Task;
+import com.zy.acs.manager.manager.enums.StaReserveType;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SiemensConveyorStationService implements ConveyorStationService {
+
+ @Override
+ public boolean allowAgvWork(Sta sta, Task task, Segment seg, StaReserveType type) {
+ return true;
+ }
+
+}
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 4f69f87..d091148 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
@@ -22,6 +22,7 @@
, @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/impl/StaReserveServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaReserveServiceImpl.java
index f9641ba..e0ec01f 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
@@ -27,6 +27,7 @@
public class StaReserveServiceImpl extends ServiceImpl<StaReserveMapper, StaReserve> implements StaReserveService {
public static final Long RESERVE_EXPIRE_TIME = 30 * 60 * 1000L;
+ public static final Long WAITING_EXPIRE_TIME = 5 * 60 * 1000L;
public static final Integer DEFAULT_QTY = 1;
@@ -110,10 +111,13 @@
qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY);
// update reserve to be waiting state
- if (0 < this.baseMapper.updateStateToWaiting(sta.getId()
+ int changed = this.baseMapper.updateStateToWaiting(sta.getId()
, task.getId()
, type.toString()
- , StaReserveStateType.WAITING.toString())) {
+ , StaReserveStateType.WAITING.toString()
+ , WAITING_EXPIRE_TIME
+ );
+ if (changed > 0) {
return true;
}
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 264cb22..bbc3c31 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/StaReserveMapper.xml
@@ -20,6 +20,7 @@
UPDATE man_sta_reserve
SET state = #{state},
waiting_at = IFNULL(waiting_at, NOW()),
+ expire_time = DATE_ADD(NOW(), INTERVAL #{extendMs} MILLISECOND),
update_time = NOW()
WHERE task_id = #{taskId}
AND sta_id = #{staId}
--
Gitblit v1.9.1