|
|
@@ -1,12 +1,11 @@
|
|
|
package com.xjrsoft.module.job;
|
|
|
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.db.Db;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.google.gson.JsonArray;
|
|
|
import com.xjrsoft.common.constant.GlobalConstant;
|
|
|
import com.xjrsoft.common.utils.DatasourceUtil;
|
|
|
-import com.xjrsoft.module.base.entity.BaseSemester;
|
|
|
+import com.xjrsoft.module.schedule.entity.CourseReceiveMsg;
|
|
|
import com.xjrsoft.module.schedule.entity.JianyueData;
|
|
|
import com.xjrsoft.module.schedule.util.DataUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -14,6 +13,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.sql.DataSource;
|
|
|
+import java.sql.SQLException;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
@@ -27,22 +27,31 @@ import java.util.Set;
|
|
|
@Component
|
|
|
@Slf4j
|
|
|
public class JianyuekbScheduleTask {
|
|
|
-
|
|
|
- @Scheduled(cron = "0 */15 * * * ?")
|
|
|
- public void RefreshConnectionPool() {
|
|
|
+ @Scheduled(cron = "0 */10 * * * ?")
|
|
|
+ public void RefreshConnectionPool() throws SQLException, InterruptedException {
|
|
|
String active = SpringUtil.getActiveProfile();
|
|
|
- if(!"prod".equals(active)){
|
|
|
- log.info("非正式环境,无法执行获取课表数据");
|
|
|
- return;
|
|
|
+// if(!"prod".equals(active)){
|
|
|
+// log.info("非正式环境,无法执行获取课表数据");
|
|
|
+// return;
|
|
|
+// }
|
|
|
+ DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
|
|
|
+ Db use = Db.use(datasource);
|
|
|
+ String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback IS NULL";
|
|
|
+ List<CourseReceiveMsg> receiveMsgs = use.query(sql, CourseReceiveMsg.class);
|
|
|
+ for (CourseReceiveMsg receiveMsg : receiveMsgs) {
|
|
|
+ String updSql = "update course_receive_msg set is_callback = 0 where id = " + receiveMsg.getId();
|
|
|
+ use.execute(updSql, new HashMap<>());
|
|
|
+
|
|
|
+ doExecute(use, receiveMsg.getEduYearSerialNo(), receiveMsg.getStartDate(), receiveMsg.getEndDate());
|
|
|
+
|
|
|
+ updSql = "update course_receive_msg set is_callback = 1 where id = " + receiveMsg.getId();
|
|
|
+ use.execute(updSql, new HashMap<>());
|
|
|
}
|
|
|
- //doExecute();
|
|
|
}
|
|
|
|
|
|
- void doExecute(){
|
|
|
+ void doExecute(Db use, String eduYearSerialNo, String startDate, String endDate){
|
|
|
log.info("开始获取课表数据");
|
|
|
- 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<>();
|
|
|
@@ -65,7 +74,7 @@ public class JianyuekbScheduleTask {
|
|
|
DataUtil dataUtil = new DataUtil();
|
|
|
//获取年级
|
|
|
String tableName = "base_grade";
|
|
|
- Map<String, Long> gradeMap = dataMap.get(tableName);
|
|
|
+// Map<String, Long> gradeMap = dataMap.get(tableName);
|
|
|
//获取学期
|
|
|
tableName = "base_semester";
|
|
|
Map<String, Long> semesterMap = dataMap.get(tableName);
|
|
|
@@ -82,19 +91,8 @@ public class JianyuekbScheduleTask {
|
|
|
tableName = "base_classroom";
|
|
|
Map<String, Long> classroomMap = dataMap.get(tableName);
|
|
|
|
|
|
- //查询当前学期id
|
|
|
- String currenSemeter = dataUtil.getCurrenSemeter();
|
|
|
- if(StrUtil.isEmpty(currenSemeter)){
|
|
|
- return;
|
|
|
- }
|
|
|
- sql = "SELECT * FROM base_semester WHERE id = (select source_id from jianyue_data where jianyue_id = '" + currenSemeter + "')";
|
|
|
- List<BaseSemester> semesters = use.query(sql, BaseSemester.class);
|
|
|
- if(semesters.isEmpty()){
|
|
|
- return;
|
|
|
- }
|
|
|
- BaseSemester baseSemester = semesters.get(0);
|
|
|
//获取课表并存到数据库
|
|
|
- JsonArray scheduleInfo = dataUtil.getScheduleInfoByClass(classMap, baseSemester.getStartDate(), baseSemester.getEndDate());
|
|
|
+ JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);
|
|
|
dataUtil.insertCourseTable(use, scheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
|
|
|
dataUtil.insertClassTime(use, scheduleInfo);
|
|
|
log.info("课表数据获取完成");
|