package com.xjrsoft.module.job; import cn.hutool.db.Db; import cn.hutool.extra.spring.SpringUtil; import com.google.gson.JsonArray; import com.xjrsoft.XjrSoftApplication; import com.xjrsoft.common.constant.GlobalConstant; import com.xjrsoft.common.utils.DatasourceUtil; import com.xjrsoft.module.schedule.entity.JianyueData; import com.xjrsoft.module.schedule.util.DataUtil; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.test.context.junit4.SpringRunner; import javax.sql.DataSource; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import static org.junit.jupiter.api.Assertions.*; /** * @author dzx * @date 2024/4/30 */ @RunWith(SpringRunner.class) @SpringBootTest(classes = XjrSoftApplication.class) class JianyuekbBaseDataTaskTest { @Test public void RefreshConnectionPool() { DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY); try { Db use = Db.use(datasource); String sql = "SELECT distinct table_name FROM jianyue_data WHERE 1 = 1"; List query = use.query(sql, JianyueData.class); Set tables = new HashSet<>(); for (JianyueData jianyueData : query) { tables.add(jianyueData.getTableName()); } sql = "SELECT * FROM jianyue_data WHERE 0 = 0"; List list = use.query(sql, JianyueData.class); Map> dataMap = new HashMap<>(); for (String table : tables) { Map tableData = new HashMap<>(); for (JianyueData jianyueData : list) { if(!table.equals(jianyueData.getTableName())){ continue; } tableData.put(jianyueData.getSourceId(), jianyueData.getJianyueId()); } dataMap.put(table, tableData); } DataUtil dataUtil = new DataUtil(); //查询校区 JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData(); //推送年级 String tableName = "base_grade"; Map grade = dataUtil.insertGrade(use, tableName, null, dataMap.get(tableName)); if(grade.isEmpty() && dataMap.get(tableName) != null){ grade = dataMap.get(tableName); } //推送学期 tableName = "base_semester"; dataUtil.insertSemester(use, tableName, dataMap.get(tableName)); //推送标签 tableName = "base_label"; Map tagMap = dataUtil.insertCourseTag(use, tableName, dataMap.get(tableName)); if(tagMap.isEmpty() && dataMap.get(tableName) != null){ tagMap = dataMap.get(tableName); } //推送课程 tableName = "base_course_subject"; dataUtil.insertCourse(use, tableName, dataMap.get(tableName), tagMap); //推送教职工 tableName = "base_teacher"; Map teacherMap = dataUtil.insertTeacher(use, tableName, dataMap.get(tableName)); if(teacherMap.isEmpty() && dataMap.get(tableName) != null){ teacherMap = dataMap.get(tableName); } //推送学生 tableName = "base_student"; dataUtil.insertStudent(use, tableName, grade, dataMap.get(tableName)); //推送教室 tableName = "base_classroom"; Map classroomMap = dataUtil.insertClassRoom(use, tableName, schoolDistrictData.get(0).getAsString(), dataMap.get(tableName)); if(classroomMap.isEmpty() && dataMap.get(tableName) != null){ classroomMap = dataMap.get(tableName); } //推送行政班,先查询当前学期id String currenSemeter = dataUtil.getCurrenSemeter(); tableName = "base_class"; dataUtil.insertClass(use, tableName, grade, teacherMap, currenSemeter, dataMap.get(tableName), classroomMap); } catch (Exception e) { } } }