ScheduleController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.xjrsoft.module.schedule.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.db.Db;
  5. import com.google.gson.JsonArray;
  6. import com.xjrsoft.common.constant.GlobalConstant;
  7. import com.xjrsoft.common.enums.DeleteMark;
  8. import com.xjrsoft.common.enums.EnabledMark;
  9. import com.xjrsoft.common.model.result.RT;
  10. import com.xjrsoft.common.utils.DatasourceUtil;
  11. import com.xjrsoft.module.base.entity.BaseSemester;
  12. import com.xjrsoft.module.courseTable.service.ICourseTableService;
  13. import com.xjrsoft.module.schedule.dto.CourseTableDto;
  14. import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
  15. import com.xjrsoft.module.schedule.entity.JianyueData;
  16. import com.xjrsoft.module.schedule.service.ICourseReceiveMsgService;
  17. import com.xjrsoft.module.schedule.service.IJianyueDataService;
  18. import com.xjrsoft.module.schedule.util.DataUtil;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import lombok.AllArgsConstructor;
  22. import org.springframework.web.bind.annotation.GetMapping;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestParam;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import javax.sql.DataSource;
  27. import java.util.Date;
  28. import java.util.HashMap;
  29. import java.util.HashSet;
  30. import java.util.List;
  31. import java.util.Map;
  32. import java.util.Set;
  33. /**
  34. * @title: 寝室
  35. * @Author dzx
  36. * @Date: 2023-12-27
  37. * @Version 1.0i see you monster歌曲
  38. */
  39. @RestController
  40. @RequestMapping("/schedule" + "/schedule")
  41. @Api(value = "/schedule" + "/schedule",tags = "课表代码")
  42. @AllArgsConstructor
  43. public class ScheduleController {
  44. private final ICourseReceiveMsgService courseReceiveMsgService;
  45. private final IJianyueDataService jianyueDataService;
  46. private final ICourseTableService courseTableService;
  47. @GetMapping(value = "/receive-msg")
  48. @ApiOperation(value="接收消息")
  49. @SaCheckPermission("room:detail")
  50. public RT<CourseReceiveMsg> receiveMsg(@RequestParam String schoolId, @RequestParam String eduYearSerialNo, @RequestParam String startDate, @RequestParam String endDate) throws Exception {
  51. CourseReceiveMsg courseReceiveMsg = new CourseReceiveMsg();
  52. courseReceiveMsg.setCreateDate(new Date());
  53. courseReceiveMsg.setSchoolId(schoolId);
  54. courseReceiveMsg.setEduYearSerialNo(eduYearSerialNo);
  55. courseReceiveMsg.setStartDate(startDate);
  56. courseReceiveMsg.setEndDate(endDate);
  57. courseReceiveMsg.setDeleteMark(DeleteMark.NODELETE.getCode());
  58. courseReceiveMsg.setEnabledMark(EnabledMark.ENABLED.getCode());
  59. courseReceiveMsgService.save(courseReceiveMsg);
  60. DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
  61. Db use = Db.use(datasource);
  62. DataUtil dataUtil = new DataUtil();
  63. JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);
  64. String sql = "SELECT distinct table_name FROM jianyue_data WHERE 1 = 1";
  65. List<JianyueData> query = use.query(sql, JianyueData.class);
  66. Set<String> tables = new HashSet<>();
  67. for (JianyueData jianyueData : query) {
  68. tables.add(jianyueData.getTableName());
  69. }
  70. sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
  71. List<JianyueData> list = use.query(sql, JianyueData.class);
  72. Map<String, Map<String, Long>> dataMap = new HashMap<>();
  73. for (String table : tables) {
  74. Map<String, Long> tableData = new HashMap<>();
  75. for (JianyueData jianyueData : list) {
  76. if(!table.equals(jianyueData.getTableName())){
  77. continue;
  78. }
  79. tableData.put(jianyueData.getJianyueId(), jianyueData.getSourceId());
  80. }
  81. dataMap.put(table, tableData);
  82. }
  83. //获取学期
  84. String tableName = "base_semester";
  85. Map<String, Long> semesterMap = dataMap.get(tableName);
  86. //获取课程
  87. tableName = "base_course_subject";
  88. Map<String, Long> courseMap = dataMap.get(tableName);
  89. //获取教职工
  90. tableName = "base_teacher";
  91. Map<String, Long> teacherMap = dataMap.get(tableName);
  92. //获取行政班
  93. tableName = "base_class";
  94. Map<String, Long> classMap = dataMap.get(tableName);
  95. tableName = "base_classroom";
  96. Map<String, Long> classroomMap = dataMap.get(tableName);
  97. dataUtil.insertCourseTable(use, scheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
  98. //查询当前学期id
  99. String currenSemeter = dataUtil.getCurrenSemeter();
  100. if(StrUtil.isEmpty(currenSemeter)){
  101. return RT.ok(courseReceiveMsg);
  102. }
  103. sql = "SELECT * FROM base_semester WHERE id = (select source_id from jianyue_data where jianyue_id = '" + currenSemeter + "')";
  104. List<BaseSemester> semesters = use.query(sql, BaseSemester.class);
  105. if(semesters.isEmpty()){
  106. return RT.ok(courseReceiveMsg);
  107. }
  108. BaseSemester baseSemester = semesters.get(0);
  109. dataUtil.insertClassTime(use, scheduleInfo, baseSemester);
  110. return RT.ok(courseReceiveMsg);
  111. }
  112. @GetMapping(value = "/course-table")
  113. @ApiOperation(value="接收消息")
  114. @SaCheckPermission("room:detail")
  115. public RT<CourseReceiveMsg> courseInfo(CourseTableDto dto){
  116. courseTableService.list();
  117. return null;
  118. }
  119. }