From c66ae137f314075f261bb13a1158bbf8ea4bf645 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期四, 25 十二月 2025 15:10:04 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 2 +
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java | 47 +++++++++++++++++++++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 7 +--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java | 18 ++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaService.java | 3 +
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Segment.java | 12 ++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java | 6 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java | 2
9 files changed, 85 insertions(+), 14 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
index b7b2080..c986364 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -120,7 +120,7 @@
);
for (Segment segment : segments) {
// long startTime = System.currentTimeMillis();
- if (!transferStationHandler.isSegDelayAtSta(segment)) {
+ if (!transferStationHandler.hasDelayAtSta(segment)) {
trafficService.trigger(segment);
}
// log.info("traffic calculation spend {} ms", System.currentTimeMillis() - startTime);
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 18f8704..b6d1b34 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
@@ -1196,6 +1196,7 @@
for (Segment item : segmentList) {
item.setGroupId(groupId);
item.setState(SegmentStateType.RUNNING.toString());
+ item.setStartTime(now);
item.setUpdateTime(now);
if (null != algoStartTime) {
item.setAlgoTime((int) (now.getTime() - algoStartTime.getTime()));
@@ -1556,6 +1557,7 @@
// segment
for (Segment segment : segmentList) {
segment.setState(SegmentStateType.FINISH.toString());
+ segment.setEndTime(now);
segment.setUpdateTime(now);
if (!segmentService.updateById(segment)) {
log.error("Segment [{}] 鏇存柊澶辫触 锛侊紒锛�", segment.getGroupId() + " - " + segment.getSerial());
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index 4eda19e..8de616a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -96,7 +96,6 @@
Travel travel = travelService.getById(segment.getTravelId());
Agv agv = agvService.getById(travel.getAgvId());
- AgvDetail agvDetail = agvDetailService.selectByAgvId(travel.getAgvId());
long endNode = segment.getEndNode();
// valid ----------------------------------------------------
@@ -208,9 +207,9 @@
}
// checkout path
- Code startCode = codeService.getCacheById(agvDetail.getRecentCode());
+ Code startCode = agvDetailService.getCurrentCode(travel.getAgvId());
Code endCode = codeService.getCacheById(endNode);
- long startTime = System.currentTimeMillis();
+// long startTime = System.currentTimeMillis();
List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment);
// System.out.println("checkoutPath: " + (System.currentTimeMillis() - startTime));
if (Cools.isEmpty(pathList)) {
@@ -277,7 +276,7 @@
mapService.lockPath(null, pathList, agv.getUuid());
- startTime = System.currentTimeMillis();
+// startTime = System.currentTimeMillis();
mainService.generateAction(segment.getAgvId(), segmentList, pathList, now);
// System.out.println("generateAction: " + (System.currentTimeMillis() - startTime));
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
index d41b4f1..16ee3c6 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
@@ -1,21 +1,60 @@
package com.zy.acs.manager.core.service;
+import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Segment;
-import com.zy.acs.manager.manager.service.SegmentService;
+import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.enums.StaTypeType;
+import com.zy.acs.manager.manager.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.Date;
+
+// man_segment: start_time, end_time
@Slf4j
@Service
public class TransferStationHandler {
@Autowired
private SegmentService segmentService;
+ @Autowired
+ private AgvService agvService;
+ @Autowired
+ private AgvDetailService agvDetailService;
+ @Autowired
+ private CodeService codeService;
+ @Autowired
+ private StaService staService;
- public boolean isSegDelayAtSta(Segment segment) {
-
-
+ /**
+ *
+ */
+ // return is need wait
+ public boolean hasDelayAtSta(Segment segment) {
+ if (segment == null) {
+ throw new NullPointerException("segment is null in hasDelayAtSta.");
+ }
+ // 鍒ゆ柇AGV鏄惁鍦ㄦ粴鍔ㄨ緭閫佺嚎鍓�
+ Code currentCode = agvDetailService.getCurrentCode(segment.getAgvId());
+ if (null == currentCode) {
+ return false;
+ }
+ Sta rollerSta = staService.selectByCode(currentCode.getId(), StaTypeType.ROLLER);
+ if (null == rollerSta) {
+ return false;
+ }
+ // 濡傛灉涓虹涓�涓猻egment锛堟病鏈塸revious segment锛夛紝鍒欎笉闇�瑕佺瓑寰�
+ Segment preSeg = segmentService.getPreviousStepOfFinish(segment.getTravelId(), segment.getSerial());
+ if (preSeg == null) {
+ return false;
+ }
+ Date preSegEndTime = preSeg.getEndTime();
+ if (null == preSegEndTime) {
+ return false;
+ }
+ Date now = new Date();
return false;
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Segment.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Segment.java
index 9f7cb82..99795d3 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Segment.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Segment.java
@@ -95,6 +95,18 @@
private Integer algoTime;
/**
+ * 寮�濮嬫椂闂�
+ */
+ @ApiModelProperty(value= "寮�濮嬫椂闂�")
+ private Date startTime;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @ApiModelProperty(value= "缁撴潫鏃堕棿")
+ private Date endTime;
+
+ /**
* 杩涘害
*/
@ApiModelProperty(value= "杩涘害")
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
index 39115c1..85422ae 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
@@ -12,7 +12,7 @@
Segment getNextStepOfInit(Long travelId, Integer serial);
- Segment getPreviousStepOfFinish(Long travelId, Integer serial, String memo);
+ Segment getPreviousStepOfFinish(Long travelId, Integer serial);
List<Segment> getJustWaitingSeg(Long agvId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaService.java
index 673cd8e..3569a39 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/StaService.java
@@ -2,9 +2,12 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.enums.StaTypeType;
public interface StaService extends IService<Sta> {
Sta selectByStaNo(String staNo);
+ Sta selectByCode(Long codeId, StaTypeType type);
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
index 58cafeb..603bea5 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
@@ -65,12 +65,12 @@
}
@Override
- public Segment getPreviousStepOfFinish(Long travelId, Integer serial, String memo) {
+ public Segment getPreviousStepOfFinish(Long travelId, Integer serial) {
return this.getOne(new LambdaQueryWrapper<Segment>()
.eq(Segment::getTravelId, travelId)
.eq(Segment::getSerial, serial - 1)
-// .eq(Segment::getState, SegmentStateType.FINISH.toString())
- .eq(Segment::getMemo, memo)
+ .eq(Segment::getState, SegmentStateType.FINISH.toString())
+ .orderByDesc(Segment::getId)
);
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
index cf25400..73093e2 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
@@ -2,17 +2,33 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.manager.entity.Sta;
+import com.zy.acs.manager.manager.enums.StaTypeType;
+import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.mapper.StaMapper;
import com.zy.acs.manager.manager.service.StaService;
import org.springframework.stereotype.Service;
+
+import java.util.List;
@Service("staService")
public class StaServiceImpl extends ServiceImpl<StaMapper, Sta> implements StaService {
@Override
public Sta selectByStaNo(String staNo) {
- return this.getOne(new LambdaQueryWrapper<Sta>().eq(Sta::getStaNo, staNo));
+ return this.getOne(new LambdaQueryWrapper<Sta>()
+ .eq(Sta::getStaNo, staNo).eq(Sta::getStatus, StatusType.ENABLE.val));
+ }
+
+ @Override
+ public Sta selectByCode(Long codeId, StaTypeType type) {
+ if (Cools.isEmpty(codeId, type)) {
+ return null;
+ }
+ List<Sta> list = this.list(new LambdaQueryWrapper<Sta>()
+ .eq(Sta::getCode, codeId).eq(Sta::getStaType, type.val()).eq(Sta::getStatus, StatusType.ENABLE.val));
+ return list.stream().findFirst().orElse(null);
}
}
--
Gitblit v1.9.1