|
@@ -1,105 +1,317 @@
|
|
|
-//package com.xjrsoft.module.job;
|
|
|
+package com.xjrsoft.module.job;
|
|
|
+
|
|
|
+import cn.hutool.db.Db;
|
|
|
+import com.google.gson.JsonArray;
|
|
|
+import com.google.gson.JsonElement;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
+import com.google.gson.JsonParser;
|
|
|
+import com.xjrsoft.XjrSoftApplication;
|
|
|
+import com.xjrsoft.common.constant.GlobalConstant;
|
|
|
+import com.xjrsoft.common.utils.DatasourceUtil;
|
|
|
+import com.xjrsoft.module.base.entity.BaseClass;
|
|
|
+import com.xjrsoft.module.base.entity.BaseGrade;
|
|
|
+import com.xjrsoft.module.schedule.entity.JianyueData;
|
|
|
+import com.xjrsoft.module.schedule.util.DataUtil;
|
|
|
+import com.xjrsoft.module.schedule.util.ScheduleUtil;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.junit.runner.RunWith;
|
|
|
+import org.springframework.boot.test.context.SpringBootTest;
|
|
|
+import org.springframework.test.context.junit4.SpringRunner;
|
|
|
+
|
|
|
+import javax.sql.DataSource;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @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<JianyueData> query = use.query(sql, JianyueData.class);
|
|
|
+ Set<String> tables = new HashSet<>();
|
|
|
+ for (JianyueData jianyueData : query) {
|
|
|
+ tables.add(jianyueData.getTableName());
|
|
|
+ }
|
|
|
+ sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
|
|
|
+ List<JianyueData> list = use.query(sql, JianyueData.class);
|
|
|
+ Map<String, Map<String, String>> dataMap = new HashMap<>();
|
|
|
+ for (String table : tables) {
|
|
|
+ Map<String, String> 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();
|
|
|
+ //查询校区
|
|
|
+ String tableName = "xjr_department";
|
|
|
+ Map<String, String> districtMap = dataUtil.insertSchoolDistrict(use, tableName, dataMap.get(tableName));
|
|
|
+ if(districtMap.isEmpty() && dataMap.get(tableName) != null){
|
|
|
+ districtMap = dataMap.get(tableName);
|
|
|
+ }
|
|
|
+
|
|
|
+ //推送年级
|
|
|
+ JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
|
|
|
+ tableName = "base_grade";
|
|
|
+ Map<String, String> grade = dataUtil.insertGrade(use, tableName, districtMap, 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<String, String> 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<String, String> 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<String, String> 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) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void deleteData() throws SQLException {
|
|
|
+ DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
|
|
|
+ Db use = Db.use(datasource);
|
|
|
+ //删除学生
|
|
|
+ String sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_student'";
|
|
|
+ List<JianyueData> studentList = use.query(sql, JianyueData.class);
|
|
|
+
|
|
|
+ String url = ScheduleUtil.apiUrl + "student/del";
|
|
|
+ for (JianyueData jianyueData : studentList) {
|
|
|
+
|
|
|
+ }
|
|
|
+ //先查询班级,再查询学生
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void updateGrade() throws Exception {
|
|
|
+ String url = ScheduleUtil.apiUrl + "EduYear/page";
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("pageSize", 40);
|
|
|
+ paramJson.addProperty("pageIndex", 1);
|
|
|
+
|
|
|
+ long timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ String sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ String doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
|
|
|
+ System.out.println(doPost);
|
|
|
+
|
|
|
+// JsonParser parser = new JsonParser();
|
|
|
+// JsonObject jsonObject = parser.parse(doPost).getAsJsonObject();
|
|
|
+// JsonArray jsonArray = jsonObject.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
|
|
|
//
|
|
|
-//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;
|
|
|
+// url = ScheduleUtil.apiUrl + "eduyear/update";
|
|
|
+// for (JsonElement jsonElement : jsonArray) {
|
|
|
+// JsonObject dataOne = jsonElement.getAsJsonObject();
|
|
|
+// dataOne.addProperty("schoolDistrictId", "48e0a5ae-6d0b-34dd-f31a-3a12feca72d1");
|
|
|
//
|
|
|
-//import javax.sql.DataSource;
|
|
|
-//import java.util.HashMap;
|
|
|
-//import java.util.HashSet;
|
|
|
-//import java.util.List;
|
|
|
-//import java.util.Map;
|
|
|
-//import java.util.Set;
|
|
|
+// timestamp = System.currentTimeMillis();
|
|
|
+// //生成签名
|
|
|
+// sign = ScheduleUtil.createSign(timestamp);
|
|
|
+// String result = ScheduleUtil.doPost(url, dataOne.toString(), sign, timestamp);
|
|
|
//
|
|
|
-//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<JianyueData> query = use.query(sql, JianyueData.class);
|
|
|
-// Set<String> tables = new HashSet<>();
|
|
|
-// for (JianyueData jianyueData : query) {
|
|
|
-// tables.add(jianyueData.getTableName());
|
|
|
-// }
|
|
|
-// sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
|
|
|
-// List<JianyueData> list = use.query(sql, JianyueData.class);
|
|
|
-// Map<String, Map<Long, String>> dataMap = new HashMap<>();
|
|
|
-// for (String table : tables) {
|
|
|
-// Map<Long, String> 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<Long, String> 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<Long, String> 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<Long, String> 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<Long, String> 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) {
|
|
|
+// System.out.println(result);
|
|
|
// }
|
|
|
-// }
|
|
|
-//
|
|
|
-//}
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void insertGrade() throws Exception {
|
|
|
+ String url = ScheduleUtil.apiUrl + "eduyear/create";
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("pageSize", 40);
|
|
|
+ paramJson.addProperty("pageIndex", 1);
|
|
|
+
|
|
|
+ long timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ String sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
|
|
|
+ Db use = Db.use(datasource);
|
|
|
+
|
|
|
+ JsonParser jsonParser = new JsonParser();
|
|
|
+
|
|
|
+ Map<String, String> idMap = new HashMap<>();
|
|
|
+ //删除学生
|
|
|
+ String sql = "SELECT * FROM jianyue_data WHERE table_name = 'xjr_department'";
|
|
|
+ List<JianyueData> gradeList = use.query(sql, JianyueData.class);
|
|
|
+ for (JianyueData jianyueData : gradeList) {
|
|
|
+ if("48e0a5ae-6d0b-34dd-f31a-3a12feca72d1".equals(jianyueData.getJianyueId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ sql = "select * from base_grade where delete_mark = 0 and status = 1";
|
|
|
+ List<BaseGrade> list = use.query(sql, BaseGrade.class);
|
|
|
+ for (BaseGrade baseGrade : list) {
|
|
|
+ url = ScheduleUtil.apiUrl + "eduyear/create";
|
|
|
+ JsonObject dataJson = new JsonObject();
|
|
|
+ dataJson.addProperty("schoolDistrictId", jianyueData.getJianyueId());
|
|
|
+ dataJson.addProperty("period", 4);
|
|
|
+ dataJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
|
|
|
+ dataJson.addProperty("extendId", baseGrade.getId().toString());
|
|
|
+ dataJson.addProperty("year", 3);
|
|
|
+
|
|
|
+ //获取时间戳
|
|
|
+ timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ String result = ScheduleUtil.doPost(url, dataJson.toString(), sign, timestamp);
|
|
|
+
|
|
|
+ JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
|
|
|
+
|
|
|
+ idMap.put(jianyueData.getSourceId() + "_" + baseGrade.getId().toString(), resultJson.get("data").getAsString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DataUtil dataUtil = new DataUtil();
|
|
|
+ dataUtil.insertRecord(use, "base_grade", idMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void selectSchoolDistrict() throws Exception {
|
|
|
+ String url = ScheduleUtil.apiUrl + "SchoolDistrict/page";
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("pageSize", 40);
|
|
|
+ paramJson.addProperty("pageIndex", 1);
|
|
|
+
|
|
|
+ long timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ String sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ String doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
|
|
|
+ System.out.println(doPost);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void updateClass() throws Exception {
|
|
|
+ String url = ScheduleUtil.apiUrl + "EduYear/page";
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("pageSize", 40);
|
|
|
+ paramJson.addProperty("pageIndex", 1);
|
|
|
+
|
|
|
+ long timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ String sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ String doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
|
|
|
+
|
|
|
+
|
|
|
+ JsonParser parser = new JsonParser();
|
|
|
+ JsonObject jsonObject = parser.parse(doPost).getAsJsonObject();
|
|
|
+ JsonArray jsonArray = jsonObject.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
|
|
|
+
|
|
|
+ DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
|
|
|
+ Db use = Db.use(datasource);
|
|
|
+ String sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_grade'";
|
|
|
+ List<JianyueData> gradeList = use.query(sql, JianyueData.class);
|
|
|
+ Map<String, String> gradeMap = new HashMap<>();
|
|
|
+ for (JianyueData jianyueData : gradeList) {
|
|
|
+ gradeMap.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
|
|
|
+ }
|
|
|
+
|
|
|
+ url = ScheduleUtil.apiUrl + "class/update";
|
|
|
+ paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("pageSize", 200);
|
|
|
+ paramJson.addProperty("pageIndex", 1);
|
|
|
+
|
|
|
+ timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ sign = ScheduleUtil.createSign(timestamp);
|
|
|
+
|
|
|
+ doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
|
|
|
+
|
|
|
+ sql = "SELECT * FROM base_class WHERE delete_mark = 0 and is_graduate = 1";
|
|
|
+ List<BaseClass> dataList = use.query(sql, BaseClass.class);
|
|
|
+ Map<String, BaseClass> classMap = new HashMap<>();
|
|
|
+ for (BaseClass baseClass : dataList) {
|
|
|
+ classMap.put(baseClass.getId().toString(), baseClass);
|
|
|
+ }
|
|
|
+
|
|
|
+ sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_class'";
|
|
|
+ List<JianyueData> classList = use.query(sql, JianyueData.class);
|
|
|
+ Map<String, BaseClass> classMap2 = new HashMap<>();
|
|
|
+ Map<String, String> classMap3 = new HashMap<>();
|
|
|
+ for (JianyueData jianyueData : classList) {
|
|
|
+ classMap2.put(jianyueData.getJianyueId(), classMap.get(jianyueData.getSourceId()));
|
|
|
+ classMap3.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
|
|
|
+ }
|
|
|
+
|
|
|
+ sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_classroom'";
|
|
|
+ List<JianyueData> classroomList = use.query(sql, JianyueData.class);
|
|
|
+ Map<String, String> classroomMap = new HashMap<>();
|
|
|
+ for (JianyueData jianyueData : classroomList) {
|
|
|
+ classroomMap.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
|
|
|
+ }
|
|
|
+
|
|
|
+ url = ScheduleUtil.apiUrl + "class/update";
|
|
|
+ DataUtil dataUtil = new DataUtil();
|
|
|
+ String currenSemeter = dataUtil.getCurrenSemeter();
|
|
|
+
|
|
|
+ for (BaseClass baseClass : classMap2.values()) {
|
|
|
+ if(baseClass == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ paramJson = new JsonObject();
|
|
|
+ paramJson.addProperty("name", baseClass.getName());
|
|
|
+
|
|
|
+ paramJson.addProperty("semesterSerialNo", currenSemeter);
|
|
|
+ paramJson.addProperty("eduYearSerialNo", gradeMap.get(baseClass.getOrgId() + "_" + baseClass.getGradeId().toString()));
|
|
|
+ paramJson.addProperty("extendId", baseClass.getId());
|
|
|
+ paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId().toString()));
|
|
|
+ paramJson.addProperty("serialNo", classMap3.get(baseClass.getId().toString()));
|
|
|
+
|
|
|
+ timestamp = System.currentTimeMillis();
|
|
|
+ //生成签名
|
|
|
+ sign = ScheduleUtil.createSign(timestamp);
|
|
|
+ String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
|
|
|
+
|
|
|
+ System.out.println(baseClass.getName() + " -> " + result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|