You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.iflytop.gd.app.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iflytop.gd.app.mapper.TasksMapper; import com.iflytop.gd.app.model.entity.TaskSteps; import com.iflytop.gd.app.model.entity.Tasks; import com.iflytop.gd.app.model.vo.TaskStepsVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors;
/** * 实验业务实现类 */ @Service @RequiredArgsConstructor public class TasksService extends ServiceImpl<TasksMapper, Tasks> { private final TaskStepsService taskStepsService; private final DeviceStateService deviceStateService;
public TaskStepsVO detail(Long id) { Tasks tasks = this.getById(id); List<TaskSteps> taskSteps = taskStepsService.list(new LambdaQueryWrapper<>(TaskSteps.class).eq(TaskSteps::getTaskId, id)); TaskStepsVO taskStepsVO = new TaskStepsVO(); taskStepsVO.setId(tasks.getId()); taskStepsVO.setName(tasks.getName()); taskStepsVO.setStartTime(tasks.getStartTime()); taskStepsVO.setEndTime(tasks.getEndTime()); taskStepsVO.setCreateUser(tasks.getCreateUser()); taskStepsVO.setStatus(tasks.getStatus()); taskStepsVO.setIsDeleted(tasks.getIsDeleted()); taskStepsVO.setSteps(taskSteps); return taskStepsVO; }
public Tasks start(String taskName) { Tasks tasks = new Tasks(); tasks.setName(taskName); tasks.setCreateUser(deviceStateService.getDeviceState().getCurrentUser().getId()); tasks.setStatus(1); tasks.setIsDeleted(0); tasks.setStartTime(LocalDateTime.now()); this.save(tasks); TaskSteps taskSteps = new TaskSteps(); taskSteps.setTaskId(tasks.getId()); taskSteps.setStepDescription("开始实验"); taskStepsService.save(taskSteps); deviceStateService.setCurrentTasks(tasks); return tasks; }
public Tasks getCurrent() { return deviceStateService.getDeviceState().getCurrentTasks(); }
public boolean deleteTasks(String idsStr) { List<Long> ids = Arrays.stream(idsStr.split(",")) .map(Long::parseLong) .toList(); for (Long id : ids) { List<TaskSteps> taskSteps = taskStepsService.list(new LambdaQueryWrapper<>(TaskSteps.class).eq(TaskSteps::getTaskId, id)); taskStepsService.removeByIds(taskSteps.stream().map(TaskSteps::getId).collect(Collectors.toList())); this.removeById(id); } return true; }
public void stop() { Tasks tasks = deviceStateService.getDeviceState().getCurrentTasks(); if (tasks != null) { tasks.setStatus(2); tasks.setEndTime(LocalDateTime.now()); this.updateById(tasks); deviceStateService.setCurrentTasks(null); } }
}
|