|
@@ -1,30 +1,33 @@
|
|
|
package com.xjrsoft.module.job;
|
|
|
|
|
|
+import cn.hutool.db.Entity;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
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.mybatis.SqlRunnerAdapter;
|
|
|
import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
|
|
|
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 java.sql.SQLException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
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/8/7
|
|
@@ -35,70 +38,27 @@ import static org.junit.jupiter.api.Assertions.*;
|
|
|
class JianyuekbScheduleTaskTest {
|
|
|
|
|
|
@Test
|
|
|
- public void RefreshConnectionPool() throws SQLException, InterruptedException {
|
|
|
+ public void RefreshConnectionPool() throws Exception {
|
|
|
String active = SpringUtil.getActiveProfile();
|
|
|
if(!"prod".equals(active)){
|
|
|
return;
|
|
|
}
|
|
|
String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND id in (1821034023531098114,1821034021123567617)";
|
|
|
List<Map<String, Object>> receiveMsgs = SqlRunnerAdapter.db().selectList(sql, CourseReceiveMsg.class);
|
|
|
+ JsonArray allScheduleInfo = new JsonArray();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ DataUtil dataUtil = new DataUtil();
|
|
|
for (Map<String, Object> receiveMsg : receiveMsgs) {
|
|
|
String updSql = "update course_receive_msg set is_callback = 0 where id = " + receiveMsg.get("id").toString();
|
|
|
SqlRunnerAdapter.db().update(updSql);
|
|
|
|
|
|
- doExecute(receiveMsg.get("edu_year_serial_no").toString(), receiveMsg.get("start_date").toString(), receiveMsg.get("end_date").toString());
|
|
|
+ String eduYearSerialNo = receiveMsg.get("edu_year_serial_no").toString();
|
|
|
|
|
|
- updSql = "update course_receive_msg set is_callback = 1 where id = " + receiveMsg.get("id").toString();
|
|
|
- SqlRunnerAdapter.db().update(updSql);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- void doExecute(String eduYearSerialNo, String startDateStr, String endDateStr){
|
|
|
- try {
|
|
|
- String sql = "SELECT distinct table_name FROM jianyue_data WHERE 1 = 1";
|
|
|
- List<Map<String, Object>> query = SqlRunnerAdapter.db().selectList(sql);
|
|
|
- Set<String> tables = new HashSet<>();
|
|
|
- for (Map<String, Object> jianyueData : query) {
|
|
|
- tables.add(jianyueData.get("table_name").toString());
|
|
|
- }
|
|
|
- sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
|
|
|
- List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
|
|
|
- Map<String, Map<String, String>> dataMap = new HashMap<>();
|
|
|
- for (String table : tables) {
|
|
|
- Map<String, String> tableData = new HashMap<>();
|
|
|
- for (Map<String, Object> jianyueData : list) {
|
|
|
- if(!table.equals(jianyueData.get("table_name").toString())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- tableData.put(jianyueData.get("jianyue_id").toString(), jianyueData.get("source_id").toString());
|
|
|
- }
|
|
|
- dataMap.put(table, tableData);
|
|
|
- }
|
|
|
- DataUtil dataUtil = new DataUtil();
|
|
|
- //获取年级
|
|
|
- String tableName = "base_grade";
|
|
|
-// Map<String, Long> gradeMap = dataMap.get(tableName);
|
|
|
- //获取学期
|
|
|
- tableName = "base_semester";
|
|
|
- Map<String, String> semesterMap = dataMap.get(tableName);
|
|
|
- //获取课程
|
|
|
- tableName = "base_course_subject";
|
|
|
- Map<String, String> courseMap = dataMap.get(tableName);
|
|
|
- //获取教职工
|
|
|
- tableName = "base_teacher";
|
|
|
- Map<String, String> teacherMap = dataMap.get(tableName);
|
|
|
- //获取行政班
|
|
|
- tableName = "base_class";
|
|
|
- Map<String, String> classMap = dataMap.get(tableName);
|
|
|
-
|
|
|
- tableName = "base_classroom";
|
|
|
- Map<String, String> classroomMap = dataMap.get(tableName);
|
|
|
- LocalDate startDateObj = LocalDate.parse(startDateStr);
|
|
|
- LocalDate endDateObj = LocalDate.parse(endDateStr);
|
|
|
+ LocalDate startDateObj = LocalDate.parse(receiveMsg.get("start_date").toString());
|
|
|
+ LocalDate endDateObj = LocalDate.parse(receiveMsg.get("end_date").toString());
|
|
|
long between = ChronoUnit.DAYS.between(startDateObj, endDateObj);
|
|
|
int times = Integer.parseInt(((between / 7) + 1) + "");
|
|
|
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
- JsonArray allScheduleInfo = new JsonArray();
|
|
|
+
|
|
|
for (int index = 0; index < times; index ++) {
|
|
|
LocalDate statrTime = startDateObj.plusDays(index * 7L);
|
|
|
String startDate = statrTime.format(formatter);
|
|
@@ -112,19 +72,107 @@ class JianyuekbScheduleTaskTest {
|
|
|
JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);
|
|
|
allScheduleInfo.addAll(scheduleInfo);
|
|
|
}
|
|
|
- Map<String, Integer> courseTable = new HashMap<>();
|
|
|
- for (JsonElement jsonElement : allScheduleInfo) {
|
|
|
- JsonObject object = jsonElement.getAsJsonObject();
|
|
|
- courseTable.put(object.get("courseClassName").getAsString(), object.get("timeOption").getAsInt());
|
|
|
- }
|
|
|
|
|
|
- for (String key : courseTable.keySet()) {
|
|
|
- System.out.println(key+" ----> " + courseTable.get(key));
|
|
|
+ updSql = "update course_receive_msg set is_callback = 1 where id = " + receiveMsg.get("id").toString();
|
|
|
+ SqlRunnerAdapter.db().update(updSql);
|
|
|
+ }
|
|
|
+ doExecute(allScheduleInfo);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ void doExecute(JsonArray scheduleInfo){
|
|
|
+ String sql = "SELECT distinct table_name FROM jianyue_data WHERE 1 = 1";
|
|
|
+ List<Map<String, Object>> query = SqlRunnerAdapter.db().selectList(sql);
|
|
|
+ Set<String> tables = new HashSet<>();
|
|
|
+ for (Map<String, Object> jianyueData : query) {
|
|
|
+ tables.add(jianyueData.get("table_name").toString());
|
|
|
+ }
|
|
|
+ sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
|
|
|
+ List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
|
|
|
+ Map<String, Map<String, String>> dataMap = new HashMap<>();
|
|
|
+ for (String table : tables) {
|
|
|
+ Map<String, String> tableData = new HashMap<>();
|
|
|
+ for (Map<String, Object> jianyueData : list) {
|
|
|
+ if(!table.equals(jianyueData.get("table_name").toString())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ tableData.put(jianyueData.get("jianyue_id").toString(), jianyueData.get("source_id").toString());
|
|
|
}
|
|
|
+ dataMap.put(table, tableData);
|
|
|
+ }
|
|
|
+ DataUtil dataUtil = new DataUtil();
|
|
|
+ //获取年级
|
|
|
+ String tableName = "base_grade";
|
|
|
+// Map<String, Long> gradeMap = dataMap.get(tableName);
|
|
|
+ //获取学期
|
|
|
+ tableName = "base_semester";
|
|
|
+ Map<String, String> semesterMap = dataMap.get(tableName);
|
|
|
+ //获取课程
|
|
|
+ tableName = "base_course_subject";
|
|
|
+ Map<String, String> courseMap = dataMap.get(tableName);
|
|
|
+ //获取教职工
|
|
|
+ tableName = "base_teacher";
|
|
|
+ Map<String, String> teacherMap = dataMap.get(tableName);
|
|
|
+ //获取行政班
|
|
|
+ tableName = "base_class";
|
|
|
+ Map<String, String> classMap = dataMap.get(tableName);
|
|
|
+
|
|
|
+ tableName = "base_classroom";
|
|
|
+ Map<String, String> classroomMap = dataMap.get(tableName);
|
|
|
+
|
|
|
+ dataUtil.insertCourseTableEntiy(scheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
|
|
|
+ dataUtil.insertClassTime(scheduleInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void updateClass() throws Exception {
|
|
|
+ String url = ScheduleUtil.apiUrl + "Class/page";
|
|
|
+ JsonObject pageJson = new JsonObject();
|
|
|
+ pageJson.addProperty("pageSize", 200);
|
|
|
+ pageJson.addProperty("pageIndex", 1);
|
|
|
+ JsonParser parser = new JsonParser();
|
|
|
+
|
|
|
+ long timestamp = System.currentTimeMillis();
|
|
|
+ String sign = ScheduleUtil.createSign(timestamp);
|
|
|
|
|
|
- //dataUtil.insertCourseTableEntiy(allScheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
|
|
|
- //dataUtil.insertClassTime(allScheduleInfo);
|
|
|
- } catch (Exception e) {
|
|
|
+ String doPost = ScheduleUtil.doPost(url, pageJson.toString(), sign, timestamp);
|
|
|
+ System.out.println(doPost);
|
|
|
+ JsonArray dataList = parser.parse(doPost).getAsJsonObject().get("data").getAsJsonObject().get("dataList").getAsJsonArray();
|
|
|
+ String sql = "select * from base_class where delete_mark = 0";
|
|
|
+ List<Map<String, Object>> classList = SqlRunnerAdapter.db().selectList(sql);
|
|
|
+ Map<String, Long> classMap = new HashMap<>();
|
|
|
+ for (Map<String, Object> objectMap : classList) {
|
|
|
+ classMap.put(objectMap.get("name").toString(), (Long)objectMap.get("id"));
|
|
|
}
|
|
|
+
|
|
|
+ sql = "select * from jianyue_data where table_name = 'base_class'";
|
|
|
+ List<Map<String, Object>> classList2 = SqlRunnerAdapter.db().selectList(sql);
|
|
|
+ Set<String> sourceIds = new HashSet<>();
|
|
|
+ for (Map<String, Object> objectMap : classList2) {
|
|
|
+ sourceIds.add(objectMap.get("jianyue_id").toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ String tableName = "jianyue_data";
|
|
|
+ List<Entity> insertList = new ArrayList<>();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ for (JsonElement jsonElement : dataList) {
|
|
|
+ JsonObject object = jsonElement.getAsJsonObject();
|
|
|
+ String serialNo = object.get("serialNo").getAsString();
|
|
|
+ if(sourceIds.contains(serialNo)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(classMap.get(object.get("name").getAsString()) == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Entity entity = Entity.create(tableName);
|
|
|
+ entity.set("create_date", sdf.format(new Date()));
|
|
|
+ entity.set("table_name", "base_class");
|
|
|
+ entity.set("source_id", classMap.get(object.get("name").getAsString()));
|
|
|
+ entity.set("jianyue_id", serialNo);
|
|
|
+ insertList.add(entity);
|
|
|
+ }
|
|
|
+ SqlRunnerAdapter.db().dynamicInsertBatch(tableName, insertList);
|
|
|
+
|
|
|
}
|
|
|
}
|