From f81c0ff58a4f5df9a62703c4361d1a5adc63570f Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 22 一月 2026 10:44:49 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TravelServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 1 deletions(-)
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 7010598..2006b40 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
@@ -1,7 +1,10 @@
package com.zy.acs.manager.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zy.acs.framework.common.Cools;
+import com.zy.acs.framework.exception.CoolException;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.entity.Travel;
import com.zy.acs.manager.manager.enums.SegmentStateType;
@@ -9,13 +12,13 @@
import com.zy.acs.manager.manager.mapper.TravelMapper;
import com.zy.acs.manager.manager.service.SegmentService;
import com.zy.acs.manager.manager.service.TravelService;
-import com.zy.acs.framework.exception.CoolException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
@Slf4j
@Service("travelService")
@@ -60,4 +63,90 @@
}
}
+ @Override
+ public Travel findRunningTravel(Long agvId) {
+ return this.getOne(new LambdaQueryWrapper<Travel>()
+ .eq(Travel::getAgvId, agvId)
+ .eq(Travel::getState, TravelStateType.RUNNING.toString())
+ .orderByDesc(Travel::getCreateTime)
+ .last("limit 1")
+ );
+ }
+
+ @Override
+ public Travel findRollerWaitingTravel(Long agvId, Long code) {
+ return this.getOne(new LambdaQueryWrapper<Travel>()
+ .eq(Travel::getAgvId, agvId)
+ .eq(Travel::getState, TravelStateType.RUNNING.toString())
+ .eq(Travel::getRollerWaiting, 1)
+ .eq(Travel::getRollerWaitingCode, code)
+ .orderByDesc(Travel::getCreateTime)
+ .last("limit 1")
+ );
+ }
+
+ @Override
+ public Boolean hasRollerWaiting(Long agvId) {
+ if (null == agvId) {
+ return false;
+ }
+ return 0 < this.count(new LambdaQueryWrapper<Travel>()
+ .eq(Travel::getAgvId, agvId)
+ .eq(Travel::getState, TravelStateType.RUNNING.toString())
+ .eq(Travel::getRollerWaiting, 1)
+ );
+ }
+
+ @Override
+ public Boolean markRollerWaiting(Long travelId, Long codeId) {
+ if (Cools.isEmpty(travelId, codeId)) {
+ return false;
+ }
+ Travel travel = this.getById(travelId);
+ if (travel == null) {
+ return false;
+ }
+ if (!TravelStateType.RUNNING.toString().equals(travel.getState())) {
+ return false;
+ }
+ if (travel.getRollerWaiting() == 1
+ && Objects.equals(travel.getRollerWaitingCode(), codeId)) {
+ return true;
+ }
+ travel.setRollerWaiting(1);
+ travel.setRollerWaitingCode(codeId);
+ if (!this.updateById(travel)) {
+ log.error("travel [{}] failed to mark roller waiting (code={})", travelId, codeId);
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public Boolean clearRollerWaiting(Long travelId) {
+ if (null == travelId) {
+ return false;
+ }
+ Travel travel = this.getById(travelId);
+ if (travel == null) {
+ return false;
+ }
+// if (!TravelStateType.RUNNING.toString().equals(travel.getState())) {
+// return false;
+// }
+ if (travel.getRollerWaiting() == 0 && Cools.isEmpty(travel.getRollerWaitingCode())) {
+ return true;
+ }
+ if (!this.update(
+ new LambdaUpdateWrapper<Travel>()
+ .eq(Travel::getId, travelId)
+ .set(Travel::getRollerWaiting, 0)
+ .set(Travel::getRollerWaitingCode, null)
+ )) {
+ log.error("travel [{}] failed to clear roller waiting", travelId);
+ return false;
+ }
+ return true;
+ }
+
}
--
Gitblit v1.9.1