JianyuekbBaseDataTaskTest.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.xjrsoft.module.job;
  2. import cn.hutool.db.Db;
  3. import cn.hutool.extra.spring.SpringUtil;
  4. import com.google.gson.JsonArray;
  5. import com.xjrsoft.XjrSoftApplication;
  6. import com.xjrsoft.common.constant.GlobalConstant;
  7. import com.xjrsoft.common.utils.DatasourceUtil;
  8. import com.xjrsoft.module.schedule.entity.JianyueData;
  9. import com.xjrsoft.module.schedule.util.DataUtil;
  10. import org.junit.jupiter.api.Test;
  11. import org.junit.runner.RunWith;
  12. import org.springframework.boot.test.context.SpringBootTest;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import org.springframework.test.context.junit4.SpringRunner;
  15. import javax.sql.DataSource;
  16. import java.util.HashMap;
  17. import java.util.HashSet;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.Set;
  21. import static org.junit.jupiter.api.Assertions.*;
  22. /**
  23. * @author dzx
  24. * @date 2024/4/30
  25. */
  26. @RunWith(SpringRunner.class)
  27. @SpringBootTest(classes = XjrSoftApplication.class)
  28. class JianyuekbBaseDataTaskTest {
  29. @Test
  30. public void RefreshConnectionPool() {
  31. DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
  32. try {
  33. Db use = Db.use(datasource);
  34. String sql = "SELECT distinct table_name FROM jianyue_data WHERE 1 = 1";
  35. List<JianyueData> query = use.query(sql, JianyueData.class);
  36. Set<String> tables = new HashSet<>();
  37. for (JianyueData jianyueData : query) {
  38. tables.add(jianyueData.getTableName());
  39. }
  40. sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
  41. List<JianyueData> list = use.query(sql, JianyueData.class);
  42. Map<String, Map<Long, String>> dataMap = new HashMap<>();
  43. for (String table : tables) {
  44. Map<Long, String> tableData = new HashMap<>();
  45. for (JianyueData jianyueData : list) {
  46. if(!table.equals(jianyueData.getTableName())){
  47. continue;
  48. }
  49. tableData.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
  50. }
  51. dataMap.put(table, tableData);
  52. }
  53. DataUtil dataUtil = new DataUtil();
  54. //查询校区
  55. JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
  56. //推送年级
  57. String tableName = "base_grade";
  58. Map<Long, String> grade = dataUtil.insertGrade(use, tableName, null, dataMap.get(tableName));
  59. if(grade.isEmpty() && dataMap.get(tableName) != null){
  60. grade = dataMap.get(tableName);
  61. }
  62. //推送学期
  63. tableName = "base_semester";
  64. dataUtil.insertSemester(use, tableName, dataMap.get(tableName));
  65. //推送标签
  66. tableName = "base_label";
  67. Map<Long, String> tagMap = dataUtil.insertCourseTag(use, tableName, dataMap.get(tableName));
  68. if(tagMap.isEmpty() && dataMap.get(tableName) != null){
  69. tagMap = dataMap.get(tableName);
  70. }
  71. //推送课程
  72. tableName = "base_course_subject";
  73. dataUtil.insertCourse(use, tableName, dataMap.get(tableName), tagMap);
  74. //推送教职工
  75. tableName = "base_teacher";
  76. Map<Long, String> teacherMap = dataUtil.insertTeacher(use, tableName, dataMap.get(tableName));
  77. if(teacherMap.isEmpty() && dataMap.get(tableName) != null){
  78. teacherMap = dataMap.get(tableName);
  79. }
  80. //推送学生
  81. tableName = "base_student";
  82. dataUtil.insertStudent(use, tableName, grade, dataMap.get(tableName));
  83. //推送教室
  84. tableName = "base_classroom";
  85. Map<Long, String> classroomMap = dataUtil.insertClassRoom(use, tableName, schoolDistrictData.get(0).getAsString(), dataMap.get(tableName));
  86. if(classroomMap.isEmpty() && dataMap.get(tableName) != null){
  87. classroomMap = dataMap.get(tableName);
  88. }
  89. //推送行政班,先查询当前学期id
  90. String currenSemeter = dataUtil.getCurrenSemeter();
  91. tableName = "base_class";
  92. dataUtil.insertClass(use, tableName, grade, teacherMap, currenSemeter, dataMap.get(tableName), classroomMap);
  93. } catch (Exception e) {
  94. }
  95. }
  96. }