石墨消解仪后端服务
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.

84 lines
3.0 KiB

3 months ago
  1. package com.iflytop.gd.app.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.iflytop.gd.app.mapper.TasksMapper;
  5. import com.iflytop.gd.app.model.entity.TaskSteps;
  6. import com.iflytop.gd.app.model.entity.Tasks;
  7. import com.iflytop.gd.app.model.vo.TaskStepsVO;
  8. import lombok.RequiredArgsConstructor;
  9. import org.springframework.stereotype.Service;
  10. import java.time.LocalDateTime;
  11. import java.util.Arrays;
  12. import java.util.Date;
  13. import java.util.List;
  14. import java.util.stream.Collectors;
  15. /**
  16. * 实验业务实现类
  17. */
  18. @Service
  19. @RequiredArgsConstructor
  20. public class TasksService extends ServiceImpl<TasksMapper, Tasks> {
  21. private final TaskStepsService taskStepsService;
  22. private final DeviceStateService deviceStateService;
  23. public TaskStepsVO detail(Long id) {
  24. Tasks tasks = this.getById(id);
  25. List<TaskSteps> taskSteps = taskStepsService.list(new LambdaQueryWrapper<>(TaskSteps.class).eq(TaskSteps::getTaskId, id));
  26. TaskStepsVO taskStepsVO = new TaskStepsVO();
  27. taskStepsVO.setId(tasks.getId());
  28. taskStepsVO.setName(tasks.getName());
  29. taskStepsVO.setStartTime(tasks.getStartTime());
  30. taskStepsVO.setEndTime(tasks.getEndTime());
  31. taskStepsVO.setCreateUser(tasks.getCreateUser());
  32. taskStepsVO.setStatus(tasks.getStatus());
  33. taskStepsVO.setIsDeleted(tasks.getIsDeleted());
  34. taskStepsVO.setSteps(taskSteps);
  35. return taskStepsVO;
  36. }
  37. public Tasks start(String taskName) {
  38. Tasks tasks = new Tasks();
  39. tasks.setName(taskName);
  40. tasks.setCreateUser(deviceStateService.getDeviceState().getCurrentUser().getId());
  41. tasks.setStatus(1);
  42. tasks.setIsDeleted(0);
  43. tasks.setStartTime(LocalDateTime.now());
  44. this.save(tasks);
  45. TaskSteps taskSteps = new TaskSteps();
  46. taskSteps.setTaskId(tasks.getId());
  47. taskSteps.setStepDescription("开始实验");
  48. taskStepsService.save(taskSteps);
  49. deviceStateService.setCurrentTasks(tasks);
  50. return tasks;
  51. }
  52. public Tasks getCurrent() {
  53. return deviceStateService.getDeviceState().getCurrentTasks();
  54. }
  55. public boolean deleteTasks(String idsStr) {
  56. List<Long> ids = Arrays.stream(idsStr.split(","))
  57. .map(Long::parseLong)
  58. .toList();
  59. for (Long id : ids) {
  60. List<TaskSteps> taskSteps = taskStepsService.list(new LambdaQueryWrapper<>(TaskSteps.class).eq(TaskSteps::getTaskId, id));
  61. taskStepsService.removeByIds(taskSteps.stream().map(TaskSteps::getId).collect(Collectors.toList()));
  62. this.removeById(id);
  63. }
  64. return true;
  65. }
  66. public void stop() {
  67. Tasks tasks = deviceStateService.getDeviceState().getCurrentTasks();
  68. if (tasks != null) {
  69. tasks.setStatus(2);
  70. tasks.setEndTime(LocalDateTime.now());
  71. this.updateById(tasks);
  72. deviceStateService.setCurrentTasks(null);
  73. }
  74. }
  75. }