From 8819606b0442ca27731b07aa4f8b93715a0da8fe Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期日, 01 十二月 2024 19:51:24 +0800
Subject: [PATCH] #
---
zy-acs-flow/.env | 8 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 4
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java | 31 ++++++-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 120 +++++++++++++++++++++++++----
zy-acs-flow/src/page/jam/JamList.jsx | 2
zy-acs-manager/src/main/resources/mapper/manager/JamMapper.xml | 3
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java | 10 ++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java | 1
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java | 15 +++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java | 2
11 files changed, 163 insertions(+), 35 deletions(-)
diff --git a/zy-acs-flow/.env b/zy-acs-flow/.env
index 3b8a2b1..ecc2ec9 100644
--- a/zy-acs-flow/.env
+++ b/zy-acs-flow/.env
@@ -1,5 +1,5 @@
-# VITE_BASE_IP=localhost
-# VITE_BASE_PORT=8088
+VITE_BASE_IP=localhost
+VITE_BASE_PORT=8088
-VITE_BASE_IP=192.168.1.100
-VITE_BASE_PORT=8080
\ No newline at end of file
+# VITE_BASE_IP=192.168.1.100
+# VITE_BASE_PORT=8080
\ No newline at end of file
diff --git a/zy-acs-flow/src/page/jam/JamList.jsx b/zy-acs-flow/src/page/jam/JamList.jsx
index 117584d..212cfb0 100644
--- a/zy-acs-flow/src/page/jam/JamList.jsx
+++ b/zy-acs-flow/src/page/jam/JamList.jsx
@@ -251,7 +251,7 @@
rowClick={(id, resource, record) => false}
// expand={() => <JamPanel />}
// expandSingle={true}
- omit={['id', 'uuid', 'cycleCode', 'updateBy', 'updateTime', 'createTime', 'createBy', 'statusBool', 'memo']}
+ omit={['id', 'endTime', 'uuid', 'cycleCode', 'updateBy', 'updateTime', 'createTime', 'createBy', 'statusBool', 'memo']}
>
<NumberField source="id" />
<TextField source="uuid" label="table.field.jam.uuid" />
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 3b6ad34..45bdd19 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
@@ -15,6 +15,7 @@
import com.zy.acs.common.enums.AgvCompleteType;
import com.zy.acs.common.enums.AgvDirectionType;
import com.zy.acs.common.enums.AgvSpeedType;
+import com.zy.acs.common.utils.GsonUtils;
import com.zy.acs.common.utils.Utils;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
@@ -560,7 +561,7 @@
travel.setTravelId(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
travel.setAgvId(agv.getId());
// travel.setTaskContent(JSON.toJSONString(list));
- travel.setTaskIds(JSON.toJSONString(Collections.singletonList(task.getId())));
+ travel.setTaskIds(GsonUtils.toJson(Utils.singletonList(task.getId())));
travel.setState(TravelStateType.RUNNING.toString());
if (!travelService.save(travel)) {
throw new BusinessException("travel failed to save");
@@ -606,6 +607,7 @@
} else {
if (null != jam && i == 0) {
jam.setAvoSeg(next.getId());
+ jam.setAvoCode(endCode.getId());
}
}
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
index a7b7cc9..fa4c317 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
@@ -1,5 +1,6 @@
package com.zy.acs.manager.core.service;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.common.utils.Utils;
import com.zy.acs.framework.common.Cools;
@@ -8,12 +9,12 @@
import com.zy.acs.manager.core.domain.Lane;
import com.zy.acs.manager.core.service.astart.*;
import com.zy.acs.manager.core.service.astart.domain.DynamicNode;
+import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Jam;
import com.zy.acs.manager.manager.entity.Route;
-import com.zy.acs.manager.manager.service.AgvModelService;
-import com.zy.acs.manager.manager.service.AgvService;
-import com.zy.acs.manager.manager.service.CodeService;
-import com.zy.acs.manager.manager.service.RouteService;
+import com.zy.acs.manager.manager.entity.Segment;
+import com.zy.acs.manager.manager.enums.JamStateType;
+import com.zy.acs.manager.manager.service.*;
import com.zy.acs.manager.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +50,10 @@
private LaneService laneService;
@Autowired
private ConfigService configService;
+ @Autowired
+ private SegmentService segmentService;
+ @Autowired
+ private JamService jamService;
/**
* avoidPathList ===>> [ minor vehicle ] [wave] [ curr vehicle ] [ code2 ] [ code3 ] ......
@@ -91,6 +96,7 @@
boolean pointOfTurn = neighborNodes.size() >= 2;
label: for (RetreatNavigateNode node : neighborNodes) {
if (node.getCodeData().equals(breakPoint)) { continue; }
+ Code code = codeService.selectByData(node.getCodeData());
int weight = 0;
@@ -105,7 +111,7 @@
continue label;
}
if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) {
- phaseSecond = false; // there is a way to go
+ phaseSecond = false; // there is a running way
continue label;
} else {
weight += WEIGHT_CALC_FACTOR;
@@ -139,7 +145,7 @@
}
if (lanVehicleSet.size() + 1 > maxAgvCountInLane) {
- phaseSecond = false; // there is a way to go
+ phaseSecond = false; // there is a running way
continue;
}
if (lanVehicleSet.contains(sponsor)) {
@@ -148,6 +154,19 @@
}
}
+ // judge whether the node has already been marked as a retreat node?
+ // This is a very troublesome matter, if the node be repeatedly mark as a retreat node
+ List<Segment> runningSegments = segmentService.getRunningByEndCode(code.getId());
+ for (Segment runningSeg : runningSegments) {
+ if (0 < jamService.count(new LambdaQueryWrapper<Jam>()
+ .eq(Jam::getAvoSeg, runningSeg.getId())
+ .ne(Jam::getState, JamStateType.DEPRECATED.toString()))) {
+ weight += WEIGHT_CALC_FACTOR * 3;
+ } else {
+ weight += WEIGHT_CALC_FACTOR;
+ }
+ }
+
// enable
if (!avoidPathListWave.contains(node.getCodeData())) {
enableNodes.add(node);
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 11d5fb2..b1afab4 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.utils.GsonUtils;
+import com.zy.acs.common.utils.Utils;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.framework.exception.CoolException;
@@ -107,6 +108,13 @@
return;
}
+ // deprecate jam
+ if (this.isJamBeDeprecatedByAvo(segment.getId())) {
+ if (this.skipCurrSegment(segment)) {
+ return;
+ }
+ }
+
// execute -----------------------------------------------
// ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {});
@@ -196,7 +204,7 @@
Date now = new Date();
Jam jam = jamService.getJam(agv.getId(), startCode.getId(), segment.getId());
BlockSeverityType blockSeverity = BlockSeverityType.query(null == jam ? null : jam.getDuration());
- // judge avoid of jam
+ // judge avoid of jam 濡傛灉宸茬粡鍦ㄩ伩璁╃偣锛堝洜涓哄綋鍓嶈溅鎵ц浜嗛伩璁╀换鍔★級锛岄偅涔堝垯涓嶈兘鍐嶅幓妫�绱箣鍓嶇殑闃诲璺緞
List<Jam> unfinishedOriginJamByCurrAgv = jamService.getUnfinishedOriginJamByAvo(agv.getId(), startCode.getId(), segment.getId());
List<String> blackPath = this.getBlackPathList(unfinishedOriginJamByCurrAgv);
@@ -277,7 +285,7 @@
} else {
// select optimal block vehicle
- String blockAgvNo = this.checkoutBestSolutionOfBlocks(blockVehicleList);
+ String blockAgvNo = this.checkoutBestSolutionOfBlocks(blockVehicleList, segment);
if (Cools.isEmpty(blockAgvNo)) {
maxJamTimeoutFactor = 2;
@@ -287,6 +295,11 @@
// block vehicle info
Agv blockAgv = agvService.selectByUuid(blockAgvNo);
String blockAgvCode = codeService.getById(agvDetailService.selectByAgvId(blockAgv.getId()).getRecentCode()).getData();
+
+ // create new jam if already notify the avoid vehicle
+ if (!Cools.isEmpty(jam.getAvoAgv(), jam.getAvoSeg()) && !blockAgv.getId().equals(jam.getAvoAgv())) {
+ jam = this.setupNewJam(jam, agv, startCode, segment, draftPath);
+ }
do {
@@ -356,10 +369,32 @@
if (!Cools.isEmpty(pathList)) {
if (null != jam) {
+ boolean beDeprecate = false;
+ if (blockSeverity.equals(BlockSeverityType.SEVERE) && !Cools.isEmpty(jam.getJamPath())) {
+ List<String> jamPath = GsonUtils.fromJsonToList(jam.getJamPath(), String.class);
+ if (!this.comparePathLists(jamPath, pathList)) { // jamPath >= pathList
+ beDeprecate = true;
+ }
+ }
jam.setEndTime(now);
jam.setUpdateTime(now);
- jam.setState(JamStateType.FINISH.toString());
- if (!jamService.updateById(jam)) {
+ jam.setState(beDeprecate ? JamStateType.DEPRECATED.toString() : JamStateType.FINISH.toString());
+ if (jamService.updateById(jam)) {
+ if (beDeprecate) {
+ // search previous jam that jamSeg from this segment
+ List<Jam> previousJams = jamService.list(new LambdaQueryWrapper<Jam>()
+ .eq(Jam::getJamSeg, segment.getId())
+ .eq(Jam::getState, JamStateType.FINISH.toString())
+ );
+ for (Jam previousJam : previousJams) {
+ previousJam.setState(JamStateType.DEPRECATED.toString());
+ previousJam.setUpdateTime(now);
+ if (!jamService.updateById(previousJam)) {
+ log.error("Jam[{}] failed to update锛侊紒锛�", previousJam.getUuid());
+ }
+ }
+ }
+ } else {
log.error("Jam[{}] failed to update锛侊紒锛�", jam.getUuid());
}
}
@@ -369,7 +404,7 @@
.eq(Jam::getState, JamStateType.RUNNING.toString()))) {
expiredJam.setEndTime(now);
expiredJam.setUpdateTime(now);
- expiredJam.setState(JamStateType.FINISH.toString());
+ expiredJam.setState(JamStateType.DEPRECATED.toString());
if (!jamService.updateById(expiredJam)) {
log.error("Jam[{}] failed to update锛侊紒锛�", expiredJam.getUuid());
}
@@ -445,7 +480,6 @@
String endCodeData = finalNode.getCodeData();
Code endCode = codeService.selectByData(endCodeData);
- jam.setAvoCode(endCode.getId());
List<Segment> waitingSegList = segmentService.getByAgvAndState(agv.getId(), SegmentStateType.WAITING.toString());
if (!Cools.isEmpty(waitingSegList)) {
@@ -479,6 +513,7 @@
return false;
} else {
jam.setAvoSeg(insertSeg.getId());
+ jam.setAvoCode(endCode.getId());
}
} else {
@@ -512,6 +547,23 @@
return jam;
}
+ private Jam setupNewJam(Jam originJam, Agv agv, Code startCode, Segment segment, List<String> draftPath) {
+ originJam.setUpdateTime(new Date());
+ originJam.setState(JamStateType.FINISH.toString());
+ if (!jamService.updateById(originJam)) {
+ log.error("Jam[{}] failed to update", originJam.getUuid());
+ return originJam;
+ } else {
+ return this.createOrUpdateJam(
+ agv
+ , startCode
+ , segment
+ , null
+ , draftPath
+ );
+ }
+ }
+
private List<String> getBlackPathList(List<Jam> unfinishedOriginJamByCurrAgv) {
List<String> blackPathList = new ArrayList<>();
Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
@@ -530,16 +582,16 @@
int idx = list.indexOf(firstCodeNode);
if (idx != -1) {
list = new ArrayList<>(list.subList(idx, list.size()));
- }
- // the wave of first node
- Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
- agvModelService.getById(jamAgv.getAgvModel()).getDiameter(),
- MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
- );
- List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
- .stream().map(NavigateNode::getCodeData).distinct().collect(Collectors.toList());
- list.addAll(waveCodeList);
+ // the wave of first node
+ Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
+ agvModelService.getById(jamAgv.getAgvModel()).getDiameter(),
+ MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
+ );
+ List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
+ .stream().map(NavigateNode::getCodeData).distinct().collect(Collectors.toList());
+ list.addAll(waveCodeList);
+ }
}
blackPathList.addAll(list);
@@ -549,18 +601,48 @@
return blackPathList.stream().distinct().collect(Collectors.toList());
}
- private String checkoutBestSolutionOfBlocks(List<BlockVehicleDto> blockVehicleList) {
+ private String checkoutBestSolutionOfBlocks(List<BlockVehicleDto> blockVehicleList, Segment segment) {
assert !Cools.isEmpty(blockVehicleList);
for (BlockVehicleDto blockVehicleDto : blockVehicleList) {
if (!blockVehicleDto.isAvoidable()) {
continue;
}
- // 娌℃湁閬胯涓殑浠诲姟
- if (Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(blockVehicleDto.getVehicle(), null))) {
- return blockVehicleDto.getVehicle();
+ // 褰撳墠vehicle姝e湪杩涜閬胯浣滀笟
+ if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(blockVehicleDto.getVehicle(), null))) {
+ continue;
}
+ return blockVehicleDto.getVehicle();
}
return null;
}
+ public boolean comparePathLists(List<String> list1, List<String> list2) {
+ if (list1.equals(list2)) {
+ return true;
+ }
+ if (list1.containsAll(list2)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isJamBeDeprecatedByAvo(Long avoSeg) {
+ return 0 < jamService.count(new LambdaQueryWrapper<Jam>()
+// .eq(Jam::getAvoAgv, avoAgv)
+ .eq(Jam::getAvoSeg, avoSeg)
+ .eq(Jam::getState, JamStateType.DEPRECATED.toString())
+ );
+ }
+
+ private boolean skipCurrSegment(Segment currSegment) {
+ currSegment.setState(SegmentStateType.FINISH.toString());
+ currSegment.setUpdateTime(new Date());
+ if (!segmentService.updateById(currSegment)) {
+ log.error("Segment [{}] failed to update 锛侊紒锛�", currSegment.getTravelId() + " - " + currSegment.getSerial());
+ return false;
+ }
+ segmentService.processNext(Utils.singletonList(currSegment));
+ return true;
+ }
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
index 64ba32f..7cbe7b0 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
@@ -72,6 +72,14 @@
if (!Cools.isEmpty(blackList) && blackList.contains(node.getCodeData())) {
continue;
}
+ // 鐗规畩鎯呭喌锛屽綋blackList鏈変笖鍙湁涓�涓厓绱犱笖涓簊tartNode鏃�
+ // 璇存槑blackList宸茬粡鐭ラ亾褰撳墠瀵艰埅璧峰鐐瑰拰鐩爣鐐逛负鐩搁偦鑺傜偣
+ // 浣嗘槸褰撳墠blackList鐨勪换鍔℃槸涓嶈绯荤粺璧扮浉閭荤殑鏈�鐭矾寰勶紝鎵�浠ユ墠浼氭湁涓嬮潰鐨勫垽鏂拰continue
+ if (blackList.size() == 1 && blackList.get(0).equals(start.getCodeData())) {
+ if (isEndNode && currentNode.getCodeData().equals(start.getCodeData())) {
+ continue;
+ }
+ }
// 鑺傜偣琚崰鐢�
DynamicNode dynamicNode = dynamicMatrix[node.getX()][node.getY()];
@@ -80,7 +88,7 @@
if (!vehicle.equals(DynamicNodeType.ACCESS.val)) {
if (!vehicle.equals(agvNo)) {
- // 瀛樺湪杞﹁締锛屼笖涓哄凡缁忛伩璁╃殑杞︼紝鍒欐潈閲嶅�煎鍔�
+ // vehicle宸茬粡涓哄綋鍓峴egment鍋氳繃浜嗛伩璁╋紝涓旈伩璁╀换鍔″凡瀹屾垚锛屽垯鏉冮噸鍊煎鍔�
if (null != segment) {
if (!Cools.isEmpty(jamService.getJamFromSegmentByAvo(segment, vehicle))) {
weight += WEIGHT_CALC_FACTOR;
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 737f465..f0b16a1 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
@@ -20,4 +20,6 @@
List<String> getGroupNo(SegmentStateType state, Long agvId, String groupNo);
+ List<Segment> getRunningByEndCode(Long codeId);
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
index d99d5f8..137f08f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/JamServiceImpl.java
@@ -58,6 +58,7 @@
.eq(Jam::getJamSeg, jamSeg)
.eq(Jam::getAvoAgv, agvService.selectByUuid(avoAgvNo).getId())
.eq(Jam::getCycleAvo, 1)
+ .ne(Jam::getState, JamStateType.DEPRECATED.toString())
// .eq(Jam::getState, JamStateType.RUNNING.toString())
);
if (!Cools.isEmpty(jams)) {
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 c17f43c..a2df1e6 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
@@ -13,6 +13,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
@@ -28,7 +29,6 @@
@Override
public void processNext(List<Segment> segmentList) {
- Date now = new Date();
segmentList.stream().max(Comparator.comparingInt(Segment::getSerial)).ifPresent(segment -> {
Segment nextSegment = this.getNextStepOfInit(segment.getTravelId(), segment.getSerial());
@@ -36,7 +36,7 @@
if (null != nextSegment) {
nextSegment.setState(SegmentStateType.WAITING.toString());
- nextSegment.setUpdateTime(now);
+ nextSegment.setUpdateTime(new Date());
if (!this.updateById(nextSegment)) {
log.error("Segment [{}] failed to update 锛侊紒锛�", nextSegment.getGroupId() + " - " + nextSegment.getSerial());
}
@@ -92,4 +92,15 @@
return this.baseMapper.getGroupNo(state.toString(), agvId, groupNo);
}
+ @Override
+ public List<Segment> getRunningByEndCode(Long codeId) {
+ if (null == codeId) {
+ return new ArrayList<>();
+ }
+ return this.list(new LambdaQueryWrapper<Segment>()
+ .eq(Segment::getEndNode, codeId)
+ .in(Segment::getState, SegmentStateType.WAITING.toString(), SegmentStateType.RUNNING.toString())
+ );
+ }
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java
index c90f569..de403bb 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java
@@ -40,7 +40,7 @@
travel.setState(TravelStateType.FINISH.toString());
travel.setUpdateTime(new Date());
if (!this.updateById(travel)) {
- throw new CoolException("鏇存柊Travel澶辫触");
+ throw new CoolException("Travel failed to update");
}
}
}
diff --git a/zy-acs-manager/src/main/resources/mapper/manager/JamMapper.xml b/zy-acs-manager/src/main/resources/mapper/manager/JamMapper.xml
index d1a55fc..c2672cd 100644
--- a/zy-acs-manager/src/main/resources/mapper/manager/JamMapper.xml
+++ b/zy-acs-manager/src/main/resources/mapper/manager/JamMapper.xml
@@ -30,6 +30,7 @@
LEFT JOIN man_segment jam_seg ON mj.jam_seg = jam_seg.id
LEFT JOIN man_segment avo_seg ON mj.avo_seg = avo_seg.id
WHERE 1=1
+ AND mj.state != 'DEPRECATED'
AND jam_seg.state in ('INIT', 'WAITING')
AND avo_seg.state not in ('INIT', 'WAITING')
AND mj.avo_agv = #{avoAgv}
@@ -48,6 +49,7 @@
LEFT JOIN man_segment jam_seg ON mj.jam_seg = jam_seg.id
LEFT JOIN man_segment avo_seg ON mj.avo_seg = avo_seg.id
WHERE 1=1
+ AND mj.state != 'DEPRECATED'
AND avo_seg.state NOT IN ('INIT', 'WAITING')
AND mj.jam_seg = #{jamSeg}
AND mj.avo_agv = #{avoAgv}
@@ -60,6 +62,7 @@
LEFT JOIN man_segment jam_seg ON mj.jam_seg = jam_seg.id
LEFT JOIN man_segment avo_seg ON mj.avo_seg = avo_seg.id
WHERE 1=1
+ AND mj.state != 'DEPRECATED'
AND avo_seg.state IN ('INIT', 'WAITING')
AND mj.avo_agv = #{avoAgv}
<if test="currSeg != null">
--
Gitblit v1.9.1