Forráskód Böngészése

Merge remote-tracking branch 'origin/dev' into dev

phoenix 1 éve
szülő
commit
cc555e29d3

+ 48 - 39
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -40,6 +40,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.sql.DataSource;
+import java.sql.SQLException;
 import java.time.DayOfWeek;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -49,6 +50,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
 
 /**
 * @title: 课表
@@ -82,49 +84,56 @@ public class ScheduleController {
         courseReceiveMsg.setDeleteMark(DeleteMark.NODELETE.getCode());
         courseReceiveMsg.setEnabledMark(EnabledMark.ENABLED.getCode());
         courseReceiveMsgService.save(courseReceiveMsg);
-
-        DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
-        Db use = Db.use(datasource);
-        DataUtil dataUtil = new DataUtil();
-        JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);
-        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, Long>> dataMap = new HashMap<>();
-        for (String table : tables) {
-            Map<String, Long> tableData = new HashMap<>();
-            for (JianyueData jianyueData : list) {
-                if(!table.equals(jianyueData.getTableName())){
-                    continue;
+        CompletableFuture.runAsync(() -> {
+            try {
+                DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
+                Db use = Db.use(datasource);
+                DataUtil dataUtil = new DataUtil();
+                JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);
+                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, Long>> dataMap = new HashMap<>();
+                for (String table : tables) {
+                    Map<String, Long> tableData = new HashMap<>();
+                    for (JianyueData jianyueData : list) {
+                        if(!table.equals(jianyueData.getTableName())){
+                            continue;
+                        }
+                        tableData.put(jianyueData.getJianyueId(), jianyueData.getSourceId());
+                    }
+                    dataMap.put(table, tableData);
                 }
-                tableData.put(jianyueData.getJianyueId(), jianyueData.getSourceId());
-            }
-            dataMap.put(table, tableData);
-        }
 
-        //获取学期
-        String tableName = "base_semester";
-        Map<String, Long> semesterMap = dataMap.get(tableName);
-        //获取课程
-        tableName = "base_course_subject";
-        Map<String, Long> courseMap = dataMap.get(tableName);
-        //获取教职工
-        tableName = "base_teacher";
-        Map<String, Long> teacherMap = dataMap.get(tableName);
-        //获取行政班
-        tableName = "base_class";
-        Map<String, Long> classMap = dataMap.get(tableName);
+                //获取学期
+                String tableName = "base_semester";
+                Map<String, Long> semesterMap = dataMap.get(tableName);
+                //获取课程
+                tableName = "base_course_subject";
+                Map<String, Long> courseMap = dataMap.get(tableName);
+                //获取教职工
+                tableName = "base_teacher";
+                Map<String, Long> teacherMap = dataMap.get(tableName);
+                //获取行政班
+                tableName = "base_class";
+                Map<String, Long> classMap = dataMap.get(tableName);
 
-        tableName = "base_classroom";
-        Map<String, Long> classroomMap = dataMap.get(tableName);
-        dataUtil.insertCourseTable(use, scheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
+                tableName = "base_classroom";
+                Map<String, Long> classroomMap = dataMap.get(tableName);
+                dataUtil.insertCourseTable(use, scheduleInfo, classroomMap, courseMap, semesterMap, teacherMap, classMap);
+                dataUtil.insertClassTime(use, scheduleInfo);
+            } catch (SQLException e) {
+                throw new RuntimeException(e);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        });
 
-        dataUtil.insertClassTime(use, scheduleInfo);
         return RT.ok(courseReceiveMsg);
     }