From 1313906bb1eb983d3beece810035e7fc28d6a92f Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期二, 20 五月 2025 16:57:11 +0800 Subject: [PATCH] 新增充电桩 --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 39 insertions(+), 5 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java index 9c324c2..21e8ad2 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/BusServiceImpl.java @@ -3,22 +3,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zy.acs.framework.common.BaseRes; +import com.zy.acs.framework.common.Cools; +import com.zy.acs.framework.exception.CoolException; import com.zy.acs.manager.common.domain.TaskDto; import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam; import com.zy.acs.manager.manager.entity.Bus; +import com.zy.acs.manager.manager.entity.Task; import com.zy.acs.manager.manager.enums.BusStsType; +import com.zy.acs.manager.manager.enums.TaskStsType; import com.zy.acs.manager.manager.mapper.BusMapper; import com.zy.acs.manager.manager.service.BusService; -import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.manager.service.TaskService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; @Slf4j @Service("busService") @@ -48,6 +48,9 @@ if (!Cools.isEmpty(dto.getOriSta()) && !Cools.isEmpty(dto.getOriLoc())) { return "OriSta and OriLoc cannot exist at the same time!"; } + if (Cools.isEmpty(dto.getOriSta()) && Cools.isEmpty(dto.getOriLoc())) { + return "OriSta and OriLoc must have one!"; + } if (!Cools.isEmpty(dto.getOriSta())) { if (Cools.isEmpty(dto.getDestSta()) && Cools.isEmpty(dto.getDestLoc())) { return "Destination cannot be empty!"; @@ -66,6 +69,9 @@ if (!Cools.isEmpty(dto.getDestSta()) && !Cools.isEmpty(dto.getDestLoc())) { return "DestSta and DestLoc cannot exist at the same time!"; + } + if (Cools.isEmpty(dto.getDestSta()) && Cools.isEmpty(dto.getDestLoc())) { + return "DestSta and DestLoc must have one!"; } if (!Cools.isEmpty(dto.getDestSta())) { if (Cools.isEmpty(dto.getOriSta()) && Cools.isEmpty(dto.getOriLoc())) { @@ -114,4 +120,32 @@ return this.list(wrapper); } + @Override + public void checkoutComplete(Long busId) { + if (null == busId) { + return; + } + int taskTotalCount = taskService.count(new LambdaQueryWrapper<Task>().eq(Task::getBusId, busId)); + List<Task> actualDoneTasks = taskService.list(new LambdaQueryWrapper<Task>() + .eq(Task::getBusId, busId) + .in(Task::getTaskSts + , TaskStsType.COMPLETE.val() + , TaskStsType.CANCEL.val() + ) + ); + if (taskTotalCount == actualDoneTasks.size()) { + Bus bus = this.getById(busId); + long cancelTasksCount = actualDoneTasks.stream().filter(task -> TaskStsType.CANCEL.val() == task.getTaskSts()).count(); + if (cancelTasksCount == taskTotalCount) { + bus.setBusSts(BusStsType.CANCEL.val()); + } else { + bus.setBusSts(BusStsType.FINISH.val()); + } + bus.setUpdateTime(new Date()); + if (!this.updateById(bus)) { + throw new CoolException("Bus[{" + busId + "}] failed to update"); + } + } + } + } -- Gitblit v1.9.1