WfCourseAdjustServiceImpl.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.xjrsoft.module.schedule.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.github.yulichang.base.MPJBaseServiceImpl;
  4. import com.xjrsoft.common.enums.CourseAdjustTypeEnum;
  5. import com.xjrsoft.common.enums.EnabledMark;
  6. import com.xjrsoft.module.courseTable.entity.CourseTable;
  7. import com.xjrsoft.module.courseTable.service.ICourseTableService;
  8. import com.xjrsoft.module.schedule.dto.WfCourseAdjustDto;
  9. import com.xjrsoft.module.schedule.entity.CourseTableBak;
  10. import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
  11. import com.xjrsoft.module.schedule.mapper.WfCourseAdjustMapper;
  12. import com.xjrsoft.module.schedule.service.ICourseTableBakService;
  13. import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
  14. import lombok.AllArgsConstructor;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.util.Date;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. import java.util.stream.Collectors;
  22. /**
  23. * @Author dzx
  24. * @Date: 2024-02-03
  25. * @Version 1.0
  26. */
  27. @Service
  28. @AllArgsConstructor
  29. public class WfCourseAdjustServiceImpl extends MPJBaseServiceImpl<WfCourseAdjustMapper, WfCourseAdjust> implements IWfCourseAdjustService {
  30. private final ICourseTableBakService courseTableBakService;
  31. private final ICourseTableService courseTableService;
  32. @Override
  33. @Transactional(rollbackFor = Exception.class)
  34. public Boolean cancel(WfCourseAdjustDto dto) {
  35. WfCourseAdjust courseAdjust = this.getById(dto.getId());
  36. //查询出备份数据
  37. List<CourseTableBak> bakList = courseTableBakService.list(
  38. new QueryWrapper<CourseTableBak>().lambda()
  39. .eq(CourseTableBak::getWfCourseAdjustId, dto.getId())
  40. );
  41. Map<Long, CourseTableBak> bakMap = new HashMap<>();
  42. for (CourseTableBak courseTableBak : bakList) {
  43. bakMap.put(courseTableBak.getId(), courseTableBak);
  44. }
  45. List<Long> courseIds = bakList.stream().map(CourseTableBak::getId).collect(Collectors.toList());
  46. List<CourseTable> list = courseTableService.listByIds(courseIds);
  47. if(CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseAdjust.getAdjustType())){//顶课
  48. for (CourseTable courseTable : list) {
  49. CourseTableBak tableBak = bakMap.get(courseTable.getId());
  50. if(tableBak == null){
  51. continue;
  52. }
  53. courseTable.setTeacherId(tableBak.getTeacherId());
  54. courseTable.setTeacherName(tableBak.getTeacherName());
  55. courseTableService.updateById(courseTable);
  56. }
  57. }else if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())){
  58. for (CourseTable courseTable : list) {
  59. CourseTableBak tableBak = bakMap.get(courseTable.getId());
  60. if(tableBak == null){
  61. continue;
  62. }
  63. courseTable.setTeacherId(tableBak.getTeacherId());
  64. courseTable.setTeacherName(tableBak.getTeacherName());
  65. courseTable.setScheduleDate(tableBak.getScheduleDate());
  66. courseTable.setTimePeriod(tableBak.getTimePeriod());
  67. courseTable.setTimeNumber(tableBak.getTimeNumber());
  68. courseTable.setWeek(tableBak.getWeek());
  69. courseTable.setWeeks(tableBak.getWeeks());
  70. courseTable.setWeeksCn(tableBak.getWeeksCn());
  71. courseTableService.updateById(courseTable);
  72. }
  73. }
  74. courseAdjust.setEnabledMark(EnabledMark.DISABLED.getCode());
  75. courseAdjust.setModifyDate(new Date());
  76. this.updateById(courseAdjust);
  77. return true;
  78. }
  79. }