From bdc1625cac2a70dc261ecb8af031f3cee603f878 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@gmail.com> Date: 星期四, 17 四月 2025 10:00:49 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) 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 b8eca35..ada2d61 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 @@ -2,16 +2,19 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zy.acs.framework.exception.CoolException; import com.zy.acs.manager.manager.entity.Segment; +import com.zy.acs.manager.manager.entity.Task; +import com.zy.acs.manager.manager.enums.ActionStsType; import com.zy.acs.manager.manager.enums.SegmentStateType; +import com.zy.acs.manager.manager.enums.TaskStsType; import com.zy.acs.manager.manager.mapper.SegmentMapper; -import com.zy.acs.manager.manager.service.AgvService; -import com.zy.acs.manager.manager.service.SegmentService; +import com.zy.acs.manager.manager.service.*; import com.zy.acs.framework.common.Cools; -import com.zy.acs.manager.manager.service.TravelService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Comparator; @@ -26,6 +29,10 @@ private AgvService agvService; @Autowired private TravelService travelService; + @Autowired + private TaskService taskService; + @Autowired + private ActionService actionService; @Override public void processNext(List<Segment> segmentList) { @@ -113,4 +120,30 @@ ); } + @Override + @Transactional + public Boolean cancel(Long segmentId, Long userId) { + Date now = new Date(); + Segment segment = this.getById(segmentId); + String groupId = segment.getGroupId(); + // update segment list + List<Segment> segmentList = this.list(new LambdaQueryWrapper<Segment>().eq(Segment::getGroupId, groupId)); + for (Segment seg : segmentList) { + Task task = taskService.getById(segment.getTaskId()); + if (task != null && + (!task.getTaskTypeEl().equals(TaskStsType.COMPLETE.toString()) || !task.getTaskTypeEl().equals(TaskStsType.CANCEL.toString()))) { + throw new CoolException("the task is not finish"); + } + seg.setState(SegmentStateType.FINISH.toString()); + seg.setUpdateTime(now); + if (!this.updateById(seg)) { + throw new CoolException("failed to cancel segment"); + } + } + this.processNext(segmentList); + // update action list + actionService.updateStsByGroupId(groupId, ActionStsType.EXPIRED.val()); + return Boolean.TRUE; + } + } -- Gitblit v1.9.1