| | |
| | | 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") |
| | |
| | | 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"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |