Ver código fonte

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

大数据与最优化研究所 1 ano atrás
pai
commit
5e5e93b5c9

+ 17 - 13
src/main/java/com/xjrsoft/common/runner/OrganizationCacheRunner.java

@@ -26,6 +26,7 @@ import java.util.List;
 
 /**
  * 组织架构缓存
+ *
  * @Author: tzx
  * @Date: 2022/12/6 14:50
  */
@@ -61,53 +62,56 @@ public class OrganizationCacheRunner implements CommandLineRunner {
     }
 
     @Async
-    void loadUserCache(){
+    void loadUserCache() {
         log.info("XJRSOFT: 加载所有用户表缓存开始");
-        List<User> list = userService.list();
-        redisUtil.set(GlobalConstant.USER_CACHE_KEY,list);
+        List<User> list = userService.lambdaQuery()
+                .select(User.class, user -> !user.getColumn().equals("avatar")) //排除头像信息
+                .list();
+        redisUtil.set(GlobalConstant.USER_CACHE_KEY, list);
         log.info("XJRSOFT: 加载所有用户表缓存结束");
     }
 
     @Async
-    void loadDeptCache(){
+    void loadDeptCache() {
         log.info("XJRSOFT: 加载所有机构表缓存开始");
         List<Department> list = departmentService.list();
-        redisUtil.set(GlobalConstant.DEP_CACHE_KEY,list);
+        redisUtil.set(GlobalConstant.DEP_CACHE_KEY, list);
         log.info("XJRSOFT: 加载所有机构表缓存结束");
 
     }
 
     @Async
-    void loadRoleCache(){
+    void loadRoleCache() {
         log.info("XJRSOFT: 加载所有角色表缓存开始");
         List<Role> list = roleService.list();
-        redisUtil.set(GlobalConstant.ROLE_CACHE_KEY,list);
+        redisUtil.set(GlobalConstant.ROLE_CACHE_KEY, list);
         log.info("XJRSOFT: 加载所有角色表缓存结束");
     }
 
     @Async
-    void loadPostCache(){
+    void loadPostCache() {
         log.info("XJRSOFT: 加载所有岗位表缓存开始");
         List<Post> list = postService.list();
-        redisUtil.set(GlobalConstant.POST_CACHE_KEY,list);
+        redisUtil.set(GlobalConstant.POST_CACHE_KEY, list);
         log.info("XJRSOFT: 加载所有岗位表缓存结束");
     }
+
     @Async
-    void loadUserRoleRelationCache(){
+    void loadUserRoleRelationCache() {
         log.info("XJRSOFT: 加载所有用户角色关联表缓存开始");
         List<UserRoleRelation> list = userRoleRelationService.list();
-        redisUtil.set(GlobalConstant.USER_ROLE_RELATION_CACHE_KEY,list);
+        redisUtil.set(GlobalConstant.USER_ROLE_RELATION_CACHE_KEY, list);
         log.info("XJRSOFT: 加载所有用户角色关联表缓存结束");
     }
 
-    void  loadUserDepartmentRelationCache(){
+    void loadUserDepartmentRelationCache() {
         log.info("XJRSOFT: 加载所有用户部门关联表缓存开始");
         List<UserDeptRelation> deptRelationList = userDeptRelationService.list();
         redisUtil.set(GlobalConstant.USER_DEPT_RELATION_CACHE_KEY, deptRelationList);
         log.info("XJRSOFT: 加载所有用户部门关联表缓存结束");
     }
 
-    void  loadUserPostRelationCache(){
+    void loadUserPostRelationCache() {
         log.info("XJRSOFT: 加载所有用户岗位关联表缓存开始");
         List<UserPostRelation> postRelationList = userPostRelationService.list();
         redisUtil.set(GlobalConstant.USER_POST_RELATION_CACHE_KEY, postRelationList);

+ 9 - 9
src/main/java/com/xjrsoft/module/base/controller/BaseClassCourseController.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.base.controller;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.handler.FormContentStyleStrategy;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.common.model.result.RT;
@@ -11,6 +12,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.alibaba.excel.EasyExcel;
 import com.xjrsoft.module.base.entity.ClassCourseTextbook;
 import com.xjrsoft.module.base.entity.CourseBookInfo;
+import com.xjrsoft.module.base.entity.ExportBaseClassCourseVo;
 import com.xjrsoft.module.base.service.impl.BaseCourseSubjectServiceImpl;
 import com.xjrsoft.module.textbook.service.impl.TextbookServiceImpl;
 import org.apache.ibatis.annotations.Param;
@@ -21,7 +23,7 @@ import java.io.IOException;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import org.springframework.http.ResponseEntity;
 import java.io.ByteArrayOutputStream;
-import java.util.ArrayList;
+import java.util.*;
 
 import com.xjrsoft.module.base.dto.BaseClassCoursePageDto;
 import com.xjrsoft.module.base.entity.BaseClassCourse;
@@ -35,9 +37,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
 * @title: 班级课程
@@ -156,7 +156,7 @@ public class BaseClassCourseController {
     @PostMapping("/import")
     @ApiOperation(value = "导入")
     public RT<Boolean> importData(@RequestParam MultipartFile file) throws IOException {
-        List<BaseClassCoursePageVo> savedDataList = EasyExcel.read(file.getInputStream()).head(BaseClassCoursePageVo.class).sheet().doReadSync();
+        List<BaseClassCoursePageVo> savedDataList = EasyExcel.read(file.getInputStream()).headRowNumber(3).head(BaseClassCoursePageVo.class).sheet().doReadSync();
 
         List<BaseClassCourse> baseClassCourses = new ArrayList<>();
         List<String> duplicateLogs = new ArrayList<>();
@@ -169,7 +169,7 @@ public class BaseClassCourseController {
                 Long textbookId = Long.parseLong(baseClassCourseService.GetTextbookIdByName(vo.getTextbookName()).toString());
 
                 if (baseClassCourseService.checkExits(classId, courseId, textbookId)) {
-                    duplicateLogs.add(String.format("输入的信息重复添加: %s, Course: %s, Textbook: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
+                    duplicateLogs.add(String.format("[输入的信息重复添加] 班级: %s, 课程: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
                     continue;
                 }
 
@@ -183,16 +183,16 @@ public class BaseClassCourseController {
                     baseClassCourses.add(baseClassCourse);
                 }
             } catch (NumberFormatException e) {
-                errorLogs.add(String.format("无法解析输入的信息: %s, Course: %s, Textbook: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
+                errorLogs.add(String.format("[无法解析输入的信息] 班级: %s, 班级: %s, 教材: %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName()));
             } catch (Exception e) {
-                errorLogs.add(String.format("Unexpected error for Class: %s, Course: %s, Textbook: %s - %s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
+                errorLogs.add(String.format("[意外错误(检查输入的名称是否正确且存在,输入错误可能返回 null)] 班级: %s, 课程: %s, 教材: %s - 错误信息:%s", vo.getClassName(), vo.getCourseName(), vo.getTextbookName(), e.getMessage()));
             }
         }
 
         Boolean result = baseClassCourseService.saveBatch(baseClassCourses);
 
         if (!duplicateLogs.isEmpty() || !errorLogs.isEmpty()) {
-            String detailedMessage = String.format("导入完成但存在问题. Duplicates: %s. Errors: %s", String.join("; ", duplicateLogs), String.join("; ", errorLogs));
+            String detailedMessage = String.format("[导入完成但存在问题] 问题: %s. 其他错误: %s", String.join("; ", duplicateLogs), String.join("; ", errorLogs));
             return RT.error(400, detailedMessage);
         }
 

+ 25 - 0
src/main/java/com/xjrsoft/module/base/entity/ExportBaseClassCourseVo.java

@@ -0,0 +1,25 @@
+package com.xjrsoft.module.base.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ExportBaseClassCourseVo {
+
+    @ExcelProperty("年级")
+    @ApiModelProperty("年级")
+    private String semester;
+
+    @ExcelProperty("班级名称")
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ExcelProperty("教学课程")
+    @ApiModelProperty("教学课程")
+    private String courseName;
+
+    @ExcelProperty("对应教材")
+    @ApiModelProperty("对应教材")
+    private String textbookName;
+}

+ 0 - 11
src/main/java/com/xjrsoft/module/base/vo/BaseClassCoursePageVo.java

@@ -27,77 +27,66 @@ public class BaseClassCoursePageVo {
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private String id;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Long createUserId;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Date createDate;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Long modifyUserId;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Date modifyDate;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Integer deleteMark;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Integer enabledMark;
     /**
     * 
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("")
     @ApiModelProperty("")
     private Integer sortCode;
     /**
     * 班级id(base_class)
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("班级id(base_class)")
     @ApiModelProperty("班级id(base_class)")
     private Long classId;
     /**
     * 课程id(base_course_subject)
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("课程id(base_course_subject)")
     @ApiModelProperty("课程id(base_course_subject)")
     private Long courseId;
     /**
     * 教材id(textbook)
     */
     @ContentStyle(dataFormat = 49)
-    @ExcelProperty("教材id(textbook)")
     @ApiModelProperty("教材id(textbook)")
     private Long textbookId;
 

+ 1 - 0
src/main/java/com/xjrsoft/module/hikvision/controller/EventController.java

@@ -99,6 +99,7 @@ public class EventController {
 
                     List<XjrUser> userList = xjrUserService.list(
                         new MPJLambdaWrapper<XjrUser>()
+                                .select(XjrUser::getId)
                         .leftJoin(UserStudent.class, UserStudent::getUserId, XjrUser::getId)
                         .eq(UserStudent::getStudentId, idNum)
                     );

+ 3 - 0
src/main/java/com/xjrsoft/module/job/HikvisionBaseDataTask.java

@@ -32,6 +32,9 @@ public class HikvisionBaseDataTask {
 
     @Scheduled(cron = "0 */15 * * * ?")
     public void RefreshConnectionPool() {
+        if(1 == 1){
+            return;
+        }
         String active = SpringUtil.getActiveProfile();
         if(!"prod".equals(active)){
             log.info("非正式环境,无法执行数据推送");

+ 14 - 9
src/main/java/com/xjrsoft/module/job/JianyuekbBaseDataTask.java

@@ -8,7 +8,6 @@ import com.xjrsoft.common.utils.DatasourceUtil;
 import com.xjrsoft.module.schedule.entity.JianyueData;
 import com.xjrsoft.module.schedule.util.DataUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.ApplicationContext;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -47,9 +46,9 @@ public class JianyuekbBaseDataTask {
             }
             sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
             List<JianyueData> list = use.query(sql, JianyueData.class);
-            Map<String, Map<Long, String>> dataMap = new HashMap<>();
+            Map<String, Map<String, String>> dataMap = new HashMap<>();
             for (String table : tables) {
-                Map<Long, String> tableData = new HashMap<>();
+                Map<String, String> tableData = new HashMap<>();
                 for (JianyueData jianyueData : list) {
                     if(!table.equals(jianyueData.getTableName())){
                         continue;
@@ -60,10 +59,16 @@ public class JianyuekbBaseDataTask {
             }
             DataUtil dataUtil = new DataUtil();
             //查询校区
-            JsonArray schoolDistrictData = dataUtil.getSchoolDistrictData();
+            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);
+            }
+
             //推送年级
-            String tableName = "base_grade";
-            Map<Long, String> grade = dataUtil.insertGrade(use, tableName, schoolDistrictData.get(0).getAsString(), 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);
             }
@@ -73,7 +78,7 @@ public class JianyuekbBaseDataTask {
             dataUtil.insertSemester(use, tableName, dataMap.get(tableName));
             //推送标签
             tableName = "base_label";
-            Map<Long, String> tagMap = dataUtil.insertCourseTag(use, tableName, dataMap.get(tableName));
+            Map<String, String> tagMap = dataUtil.insertCourseTag(use, tableName, dataMap.get(tableName));
             if(tagMap.isEmpty() && dataMap.get(tableName) != null){
                 tagMap = dataMap.get(tableName);
             }
@@ -82,7 +87,7 @@ public class JianyuekbBaseDataTask {
             dataUtil.insertCourse(use, tableName, dataMap.get(tableName), tagMap);
             //推送教职工
             tableName = "base_teacher";
-            Map<Long, String> teacherMap = dataUtil.insertTeacher(use, tableName, dataMap.get(tableName));
+            Map<String, String> teacherMap = dataUtil.insertTeacher(use, tableName, dataMap.get(tableName));
             if(teacherMap.isEmpty() && dataMap.get(tableName) != null){
                 teacherMap = dataMap.get(tableName);
             }
@@ -91,7 +96,7 @@ public class JianyuekbBaseDataTask {
             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));
+            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);
             }

+ 7 - 7
src/main/java/com/xjrsoft/module/job/JianyuekbScheduleTask.java

@@ -60,9 +60,9 @@ public class JianyuekbScheduleTask {
             }
             sql = "SELECT * FROM jianyue_data WHERE 0 = 0";
             List<JianyueData> list = use.query(sql, JianyueData.class);
-            Map<String, Map<String, Long>> dataMap = new HashMap<>();
+            Map<String, Map<String, String>> dataMap = new HashMap<>();
             for (String table : tables) {
-                Map<String, Long> tableData = new HashMap<>();
+                Map<String, String> tableData = new HashMap<>();
                 for (JianyueData jianyueData : list) {
                     if(!table.equals(jianyueData.getTableName())){
                         continue;
@@ -77,19 +77,19 @@ public class JianyuekbScheduleTask {
 //            Map<String, Long> gradeMap = dataMap.get(tableName);
             //获取学期
             tableName = "base_semester";
-            Map<String, Long> semesterMap = dataMap.get(tableName);
+            Map<String, String> semesterMap = dataMap.get(tableName);
             //获取课程
             tableName = "base_course_subject";
-            Map<String, Long> courseMap = dataMap.get(tableName);
+            Map<String, String> courseMap = dataMap.get(tableName);
             //获取教职工
             tableName = "base_teacher";
-            Map<String, Long> teacherMap = dataMap.get(tableName);
+            Map<String, String> teacherMap = dataMap.get(tableName);
             //获取行政班
             tableName = "base_class";
-            Map<String, Long> classMap = dataMap.get(tableName);
+            Map<String, String> classMap = dataMap.get(tableName);
 
             tableName = "base_classroom";
-            Map<String, Long> classroomMap = dataMap.get(tableName);
+            Map<String, String> classroomMap = dataMap.get(tableName);
 
             //获取课表并存到数据库
             JsonArray scheduleInfo = dataUtil.getScheduleInfoByGrade(eduYearSerialNo, startDate, endDate);

+ 1 - 1
src/main/java/com/xjrsoft/module/schedule/entity/JianyueData.java

@@ -47,7 +47,7 @@ public class JianyueData implements Serializable {
     * 英文姓名
     */
     @ApiModelProperty("数据id")
-    private Long sourceId;
+    private String sourceId;
     /**
     * 姓名拼音
     */

+ 116 - 74
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -11,6 +11,7 @@ import com.xjrsoft.module.base.entity.BaseCourseSubject;
 import com.xjrsoft.module.base.entity.BaseGrade;
 import com.xjrsoft.module.base.entity.BaseLabel;
 import com.xjrsoft.module.base.entity.BaseSemester;
+import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.schedule.vo.ClassroomJianyuekbVo;
 import com.xjrsoft.module.schedule.vo.StudentJianyuekbVo;
 import com.xjrsoft.module.teacher.entity.XjrUser;
@@ -31,26 +32,67 @@ import java.util.Map;
 @Slf4j
 public class DataUtil {
 
-    public Map<Long, String> insertClass(Db db, String tableName, Map<Long, String> gradeMap,
-    Map<Long, String> teacherMap, String semesterSerialNo, Map<Long, String> ids, Map<Long, String> classroomMap) throws Exception {
+    /**
+     * 推送校区信息
+     * 此处将班级所属的部门当做校区进行推送
+     */
+    public Map<String, String> insertSchoolDistrict(Db db, String tableName, Map<String, String> ids) throws Exception {
+        String sql = "SELECT * FROM " + tableName + " WHERE id IN (" +
+                "SELECT DISTINCT org_id FROM base_class WHERE delete_mark = 0 " +
+                ")";
+        List<Department> dataList = db.query(sql, Department.class);
+
+        Map<String, String> idMap = new HashMap<>();
+        JsonParser jsonParser = new JsonParser();
+        for (Department department : dataList) {
+            String url  = ScheduleUtil.apiUrl + "SchoolDistrict/Create";
+            JsonObject paramJson = new JsonObject();
+            paramJson.addProperty("name", department.getName());
+
+            paramJson.addProperty("not", department.getRemark());
+            paramJson.addProperty("sort", department.getSortCode());
+            paramJson.addProperty("shortName", department.getName());
+            long timestamp = System.currentTimeMillis();
+            String sign = ScheduleUtil.createSign(timestamp);
+            ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+            if(ids != null && ids.get(department.getId().toString()) != null){
+                url  = ScheduleUtil.apiUrl + "SchoolDistrict/Update";
+                paramJson.addProperty("id", ids.get(department.getId().toString()));
+                ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+                continue;
+            }
+            String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+            if(result == null){
+                continue;
+            }
+            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+            idMap.put(department.getId().toString(), resultJson.get("data").getAsString());
+        }
+        //插入记录表
+        insertRecord(db, tableName, idMap);
+        return idMap;
+    }
+
+    public Map<String, String> insertClass(Db db, String tableName, Map<String, String> gradeMap,
+    Map<String, String> teacherMap, String semesterSerialNo, Map<String, String> ids, Map<String, String> classroomMap) throws Exception {
         String sql = "SELECT * FROM " + tableName + " WHERE delete_mark = 0 and is_graduate = 1";
         List<BaseClass> dataList = db.query(sql, BaseClass.class);
 
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         JsonParser jsonParser = new JsonParser();
         for (BaseClass baseClass : dataList) {
             String url  = ScheduleUtil.apiUrl + "class/create";
             JsonObject paramJson = new JsonObject();
-            paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.getTeacherId()));
+            paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.getTeacherId().toString()));
             paramJson.addProperty("name", baseClass.getName());
 
             paramJson.addProperty("semesterSerialNo", semesterSerialNo);
-            paramJson.addProperty("eduYearSerialNo", gradeMap.get(baseClass.getGradeId()));
+            paramJson.addProperty("eduYearSerialNo", gradeMap.get(baseClass.getOrgId() + "_" + baseClass.getGradeId().toString()));
             paramJson.addProperty("extendId", baseClass.getId());
-            paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId()));
-            if(ids != null && ids.get(baseClass.getId()) != null){
+            paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId().toString()));
+            if(ids != null && ids.get(baseClass.getId().toString()) != null){
                 url  = ScheduleUtil.apiUrl + "class/update";
-                paramJson.addProperty("serialNo", ids.get(baseClass.getId()));
+                paramJson.addProperty("serialNo", ids.get(baseClass.getId().toString()));
                 long timestamp = System.currentTimeMillis();
                 //生成签名
                 String sign = ScheduleUtil.createSign(timestamp);
@@ -67,21 +109,21 @@ public class DataUtil {
                 continue;
             }
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(baseClass.getId(), resultJson.get("data").getAsString());
+            idMap.put(baseClass.getId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
         return idMap;
     }
 
-    public Map<Long, String> insertClassRoom(Db db, String tableName, String schoolDistrictId, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertClassRoom(Db db, String tableName, String schoolDistrictId, Map<String, String> ids) throws Exception {
         String sql = "SELECT t1.name, t1.capacity AS people_count,t2.name AS location, t1.floor_num AS floor, t1.id AS extendId FROM " + tableName + " t1" +
                 " INNER JOIN base_office_build t2 ON t1.office_build_id = t2.id" +
                 " WHERE t1.delete_mark = 0 AND t2.delete_mark = 0";
         List<ClassroomJianyuekbVo> dataList = db.query(sql, ClassroomJianyuekbVo.class);
 
         JsonParser jsonParser = new JsonParser();
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         for (ClassroomJianyuekbVo classroom : dataList) {
             String url  = ScheduleUtil.apiUrl + "classroom/create";
             JsonObject paramJson = new JsonObject();
@@ -98,9 +140,9 @@ public class DataUtil {
             //生成签名
             String sign = ScheduleUtil.createSign(timestamp);
 
-            if(ids != null && ids.get(classroom.getExtendId()) != null){
+            if(ids != null && ids.get(classroom.getExtendId().toString()) != null){
                 url  = ScheduleUtil.apiUrl + "classroom/update";
-                paramJson.addProperty("serialNo", ids.get(classroom.getExtendId()));
+                paramJson.addProperty("serialNo", ids.get(classroom.getExtendId().toString()));
                 ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
                 continue;
             }
@@ -110,14 +152,14 @@ public class DataUtil {
                 continue;
             }
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(classroom.getExtendId(), resultJson.get("data").getAsString());
+            idMap.put(classroom.getExtendId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
         return idMap;
     }
 
-    public Map<Long, String> insertStudent(Db db, String tableName, Map<Long, String> gradeMap, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertStudent(Db db, String tableName, Map<String, String> gradeMap, Map<String, String> ids) throws Exception {
         String sql = "SELECT t1.id AS registerNo, t2.name AS realName,t3.grade_id AS gradeSerialNo," +
                 " t2.name AS alias,t2.gender,t2.id AS extendId FROM " + tableName + " t1" +
                 " INNER JOIN xjr_user t2 ON t1.user_id = t2.id" +
@@ -128,7 +170,7 @@ public class DataUtil {
         List<StudentJianyuekbVo> dataList = db.query(sql, StudentJianyuekbVo.class);
 
         JsonParser jsonParser = new JsonParser();
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         for (StudentJianyuekbVo student : dataList) {
             String url  = ScheduleUtil.apiUrl + "student/create";
             JsonObject paramJson = new JsonObject();
@@ -142,14 +184,14 @@ public class DataUtil {
             paramJson.addProperty("realName", student.getRealName());
             paramJson.addProperty("alias", student.getAlias());
             paramJson.addProperty("extendId", student.getExtendId());
-            paramJson.addProperty("gradeSerialNo", gradeMap.get(student.getGradeSerialNo()));
+            paramJson.addProperty("gradeSerialNo", gradeMap.get(student.getGradeSerialNo().toString()));
             //获取时间戳
             long timestamp = System.currentTimeMillis();
             //生成签名
             String sign = ScheduleUtil.createSign(timestamp);
 
-            if(ids != null && ids.get(student.getExtendId()) != null){
-                paramJson.addProperty("serialNo", ids.get(student.getExtendId()));
+            if(ids != null && ids.get(student.getExtendId().toString()) != null){
+                paramJson.addProperty("serialNo", ids.get(student.getExtendId().toString()));
                 url  = ScheduleUtil.apiUrl + "student/update";
                 ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
                 continue;
@@ -160,7 +202,7 @@ public class DataUtil {
                 continue;
             }
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(student.getExtendId(), resultJson.get("data").getAsString());
+            idMap.put(student.getExtendId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
@@ -168,11 +210,8 @@ public class DataUtil {
     }
     /**
      * 新增教职工
-     * @param db
-     * @param tableName
-     * @return
      */
-    public Map<Long, String> insertTeacher(Db db, String tableName, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertTeacher(Db db, String tableName, Map<String, String> ids) throws Exception {
         String sql = "select t1.* from xjr_user t1" +
                 " inner join xjr_user_role_relation t2 on t1.id = t2.user_id" +
                 " inner join " + tableName + " t3 on t1.id = t3.user_id" +
@@ -180,7 +219,7 @@ public class DataUtil {
         List<XjrUser> xjrUsers = db.query(sql, XjrUser.class);
         JsonParser jsonParser = new JsonParser();
 
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         for (XjrUser user : xjrUsers) {
             String url  = ScheduleUtil.apiUrl + "teacher/create";
             JsonObject paramJson = new JsonObject();
@@ -198,9 +237,9 @@ public class DataUtil {
             long timestamp = System.currentTimeMillis();
             //生成签名
             String sign = ScheduleUtil.createSign(timestamp);
-            if(ids != null && ids.get(user.getId()) != null){
+            if(ids != null && ids.get(user.getId().toString()) != null){
                 url  = ScheduleUtil.apiUrl + "teacher/update";
-                paramJson.addProperty("serialNo", ids.get(user.getId()));
+                paramJson.addProperty("serialNo", ids.get(user.getId().toString()));
                 ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
                 continue;
             }
@@ -210,7 +249,7 @@ public class DataUtil {
                 continue;
             }
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(user.getId(), resultJson.get("data").getAsString());
+            idMap.put(user.getId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
@@ -219,11 +258,11 @@ public class DataUtil {
     /**
      *  新增课程
      */
-    public Map<Long, String> insertCourse(Db db, String tableName, Map<Long, String> ids, Map<Long, String> tagMap) throws Exception {
+    public Map<String, String> insertCourse(Db db, String tableName, Map<String, String> ids, Map<String, String> tagMap) throws Exception {
         String sql = "select * from " + tableName + " where delete_mark = 0";
         List<BaseCourseSubject> list = db.query(sql, BaseCourseSubject.class);
 
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         JsonParser jsonParser = new JsonParser();
         for (BaseCourseSubject courseSubject : list) {
             String url  = ScheduleUtil.apiUrl + "courseclass/Create";
@@ -232,9 +271,9 @@ public class DataUtil {
             paramJson.addProperty("name", courseSubject.getName());
             paramJson.addProperty("code", courseSubject.getCode());
             paramJson.addProperty("extendId", courseSubject.getId().toString());
-            if(tagMap.get(courseSubject.getBaseLabelId()) != null){
+            if(tagMap.get(courseSubject.getBaseLabelId().toString()) != null){
                 JsonArray jsonArray = new JsonArray();
-                jsonArray.add(tagMap.get(courseSubject.getBaseLabelId()));
+                jsonArray.add(tagMap.get(courseSubject.getBaseLabelId().toString()));
                 paramJson.add("tagSerialNos", jsonArray);
             }
 
@@ -243,9 +282,9 @@ public class DataUtil {
             //生成签名
             String sign = ScheduleUtil.createSign(timestamp);
 
-            if(ids != null && ids.get(courseSubject.getId()) != null){
+            if(ids != null && ids.get(courseSubject.getId().toString()) != null){
                 url  = ScheduleUtil.apiUrl + "courseclass/update";
-                paramJson.addProperty("id", ids.get(courseSubject.getId()));
+                paramJson.addProperty("id", ids.get(courseSubject.getId().toString()));
                 ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
                 continue;
             }
@@ -255,7 +294,7 @@ public class DataUtil {
                 continue;
             }
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(courseSubject.getId(), resultJson.get("data").getAsString());
+            idMap.put(courseSubject.getId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
@@ -266,11 +305,11 @@ public class DataUtil {
     /**
      * 新增学期
      */
-    public Map<Long, String> insertSemester(Db db, String tableName, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertSemester(Db db, String tableName, Map<String, String> ids) throws Exception {
         String sql = "select * from " + tableName + " where delete_mark = 0";
         List<BaseSemester> list = db.query(sql, BaseSemester.class);
 
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         JsonParser jsonParser = new JsonParser();
         SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -303,9 +342,9 @@ public class DataUtil {
             }else{
                 paramJson.addProperty("isCurrent", Boolean.FALSE);
             }
-            if(ids != null && ids.get(semester.getId()) != null){
+            if(ids != null && ids.get(semester.getId().toString()) != null){
                 url  = ScheduleUtil.apiUrl + "semester/update";
-                paramJson.addProperty("serialNo", ids.get(semester.getId()));
+                paramJson.addProperty("serialNo", ids.get(semester.getId().toString()));
                 ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
                 continue;
             }
@@ -313,7 +352,7 @@ public class DataUtil {
             String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
 
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-            idMap.put(semester.getId(), resultJson.get("data").getAsString());
+            idMap.put(semester.getId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
@@ -321,15 +360,15 @@ public class DataUtil {
         return idMap;
     }
 
-    public Map<Long, String> insertCourseTag(Db db, String tableName, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertCourseTag(Db db, String tableName, Map<String, String> ids) throws Exception {
         String sql = "select * from " + tableName + " where delete_mark = 0" +
                 " and id in (select distinct base_label_id from base_course_subject where delete_mark = 0)";
         List<BaseLabel> list = db.query(sql, BaseLabel.class);
         String url = ScheduleUtil.apiUrl + "courseclass/tag/create";
         JsonParser jsonParser = new JsonParser();
-        Map<Long, String> idMap = new HashMap<>();
+        Map<String, String> idMap = new HashMap<>();
         for (BaseLabel department : list) {
-            if(ids != null && ids.get(department.getId()) != null){
+            if(ids != null && ids.get(department.getId().toString()) != null){
                 continue;
             }
             JsonObject paramJson = new JsonObject();
@@ -344,7 +383,7 @@ public class DataUtil {
 
             JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
 
-            idMap.put(department.getId(), resultJson.get("data").getAsString());
+            idMap.put(department.getId().toString(), resultJson.get("data").getAsString());
         }
         //插入记录表
         insertRecord(db, tableName, idMap);
@@ -355,43 +394,46 @@ public class DataUtil {
      * 插入年级
      * @param db 数据库链接
      * @param tableName 表名字
-     * @param schoolDistrictId 校区id
+     * @param schoolDistrictMap 校区id
      * @param ids 数据库id和jianyue的对应关系
      * @return 返回数据库和jianyue的对应关系
      */
-    public Map<Long, String> insertGrade(Db db, String tableName, String schoolDistrictId, Map<Long, String> ids) throws Exception {
+    public Map<String, String> insertGrade(Db db, String tableName, Map<String, String> schoolDistrictMap, Map<String, String> ids) throws Exception {
         String sql = "select * from " + tableName + " where delete_mark = 0 and status = 1";
         List<BaseGrade> list = db.query(sql, BaseGrade.class);
 
         JsonParser jsonParser = new JsonParser();
-        Map<Long, String> idMap = new HashMap<>();
-        for (BaseGrade baseGrade : list) {
-            String url = ScheduleUtil.apiUrl + "eduyear/create";
-            JsonObject paramJson = new JsonObject();
-            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
-            paramJson.addProperty("period", 4);
-            paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
-            paramJson.addProperty("extendId", baseGrade.getId().toString());
-            paramJson.addProperty("year", 3);
-
-            //获取时间戳
-            long timestamp = System.currentTimeMillis();
-            //生成签名
-            String sign = ScheduleUtil.createSign(timestamp);
+        Map<String, String> idMap = new HashMap<>();
+        for (String gradeId : schoolDistrictMap.keySet()) {
+            for (BaseGrade baseGrade : list) {
+                String url = ScheduleUtil.apiUrl + "eduyear/create";
+                JsonObject paramJson = new JsonObject();
+                paramJson.addProperty("schoolDistrictId", schoolDistrictMap.get(gradeId));
+                paramJson.addProperty("period", 4);
+                paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
+                paramJson.addProperty("extendId", baseGrade.getId().toString());
+                paramJson.addProperty("year", 3);
+
+                //获取时间戳
+                long timestamp = System.currentTimeMillis();
+                //生成签名
+                String sign = ScheduleUtil.createSign(timestamp);
 
-            if(ids !=null && ids.get(baseGrade.getId()) != null){
-                paramJson.addProperty("serialNo", ids.get(baseGrade.getId()));
-                url = ScheduleUtil.apiUrl + "eduyear/update";
-                ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
-                continue;
-            }
+                if(ids !=null && ids.get(baseGrade.getId().toString()) != null){
+                    paramJson.addProperty("serialNo", ids.get(baseGrade.getId().toString()));
+                    url = ScheduleUtil.apiUrl + "eduyear/update";
+                    ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+                    continue;
+                }
 
-            String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
+                String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
 
-            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+                JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
 
-            idMap.put(baseGrade.getId(), resultJson.get("data").getAsString());
+                idMap.put(gradeId + "_" + baseGrade.getId().toString(), resultJson.get("data").getAsString());
+            }
         }
+
         //插入记录表
         insertRecord(db, tableName, idMap);
         return idMap;
@@ -501,8 +543,8 @@ public class DataUtil {
      * @param semesterMap 学期对应关系
      * @param teacherMap 教师对应关系
      */
-    public void insertCourseTable(Db db, JsonArray data, Map<String, Long> classroomMap, Map<String, Long> coureseMap,
-        Map<String, Long> semesterMap, Map<String, Long> teacherMap, Map<String, Long> classMap) throws SQLException {
+    public void insertCourseTable(Db db, JsonArray data, Map<String, String> classroomMap, Map<String, String> coureseMap,
+        Map<String, String> semesterMap, Map<String, String> teacherMap, Map<String, String> classMap) throws SQLException {
         List<String> sqls = new ArrayList<>();
 //        Map<Integer, String> week = ScheduleUtil.getWeek();
         Map<Integer, Integer> tmePeriod = ScheduleUtil.getTmePeriod();
@@ -611,14 +653,14 @@ public class DataUtil {
      * @param tableName 表名字
      * @param idsMap id对应关系
      */
-    public void insertRecord(Db db, String tableName, Map<Long, String> idsMap) throws SQLException {
+    public void insertRecord(Db db, String tableName, Map<String, String> idsMap) throws SQLException {
         if(idsMap.isEmpty()){
             return;
         }
         List<String> sqls = new ArrayList<>();
-        for (Long sourceId : idsMap.keySet()) {
+        for (String sourceId : idsMap.keySet()) {
             String sql = "INSERT INTO jianyue_data(create_date,table_name,source_id,jianyue_id) value(now(),'"
-                    + tableName + "'," + sourceId + ",'" + idsMap.get(sourceId) + "')";
+                    + tableName + "','" + sourceId + "','" + idsMap.get(sourceId) + "')";
             sqls.add(sql);
         }
         db.executeBatch(sqls);

+ 14 - 13
src/main/resources/mapper/base/BaseClassCourse.xml

@@ -4,24 +4,24 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.base.mapper.BaseClassCourseMapper">
     <select id="getPage" parameterType="com.xjrsoft.module.base.dto.BaseClassCoursePageDto" resultType="com.xjrsoft.module.base.vo.BaseClassCoursePageVo">
-        select t5.id, t.name as class_name, t1.name as teacher_name, t3.name as major_name, t4.name as dept_name,
-               GROUP_CONCAT(t6.name SEPARATOR '、') as course_name, GROUP_CONCAT(t7.book_name SEPARATOR '、') as textbook_name
-        from base_class t
-        left join xjr_user t1 on t1.id = t.teacher_id
-        left join base_class_major_set t2 on t2.class_id = t.id
-        left join base_major_set t3 on t3.id = t2.major_set_id
-        left join xjr_department t4 on t4.id = t.org_id
-        left join base_class_course t5 on t5.class_id = t.id
-        left join base_course_subject t6 on t6.id = t5.course_id
-        left join textbook t7 on t7.id = t5.textbook_id
-        where t5.delete_mark = 0
+        SELECT t.id AS class_id, t.name AS class_name, t1.name AS teacher_name, t3.name AS major_name, t4.name AS dept_name,
+        GROUP_CONCAT(DISTINCT t6.name SEPARATOR '、') AS course_name,
+        GROUP_CONCAT(DISTINCT t7.book_name SEPARATOR '、') AS textbook_name
+        FROM base_class t
+        LEFT JOIN xjr_user t1 ON t1.id = t.teacher_id
+        LEFT JOIN base_class_major_set t2 ON t2.class_id = t.id
+        LEFT JOIN base_major_set t3 ON t3.id = t2.major_set_id
+        LEFT JOIN xjr_department t4 ON t4.id = t.org_id
+        LEFT JOIN base_class_course t5 ON t5.class_id = t.id
+        LEFT JOIN base_course_subject t6 ON t6.id = t5.course_id
+        LEFT JOIN textbook t7 ON t7.id = t5.textbook_id
+        WHERE t5.delete_mark = 0
         <if test="dto.className != null">
             and t.name = #{dto.className}
         </if>
         <if test="dto.deptId != null">
             and t4.id = #{dto.deptId}
         </if>
-
         <if test="dto.semester != null">
             and (
             SELECT base_semester_id
@@ -31,7 +31,7 @@
             HAVING COUNT(DISTINCT base_semester_id) = 1
             ) = #{dto.semester}
         </if>
-        GROUP BY t5.id, t.name, t1.name, t3.name, t4.name
+        GROUP BY t.id, t.name, t1.name, t3.name, t4.name
         <if test="dto.courseSet == 1">
             HAVING LENGTH(course_name) > 0
         </if>
@@ -40,6 +40,7 @@
         </if>
     </select>
 
+
     <select id="getAllCourseBook" resultType="com.xjrsoft.module.base.entity.CourseBookInfo">
         select t1.id as courseId, t1.name as courseName,t.book_name as bookName
         from textbook t

+ 105 - 105
src/test/java/com/xjrsoft/module/job/JianyuekbBaseDataTaskTest.java

@@ -1,105 +1,105 @@
-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<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, schoolDistrictData.get(0).getAsString(), 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) {
-        }
-    }
-
-}
+//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<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) {
+//        }
+//    }
+//
+//}

+ 815 - 815
src/test/java/com/xjrsoft/xjrsoftboot/ScheduleTest.java

@@ -1,414 +1,462 @@
-package com.xjrsoft.xjrsoftboot;
-
-import cn.dev33.satoken.secure.SaSecureUtil;
-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.courseTable.service.ICourseTableService;
-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.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
-import javax.sql.DataSource;
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-// 简约课表测试
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = XjrSoftApplication.class)
-public class ScheduleTest {
-
-    public static final String ALGORITHM = "HmacSHA256";
-    public static final String apiUrl = "http://219.153.208.33:20000/api/v1/ScheduleFlowV2/OpenApi/";
-    @Autowired
-    private ICourseTableService courseTableService;
-
-    public static String calculateHMac(String key, String data) throws Exception {
-        Mac sha256_HMAC = Mac.getInstance(ALGORITHM);
-
-        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
-        sha256_HMAC.init(secret_key);
-
-        return byteArrayToHex(sha256_HMAC.doFinal(data.getBytes("UTF-8")));
-    }
-
-    public static String byteArrayToHex(byte[] a) {
-        StringBuilder sb = new StringBuilder(a.length * 2);
-        for (byte b : a)
-            sb.append(String.format("%02x", b));
-        return sb.toString();
-    }
-
-
-    /**
-     * 将加密后的字节数组转换成字符串
-     *
-     * @param b 字节数组
-     * @return 字符串
-     */
-    private static String byteArrayToHexString(byte[] b) {
-        StringBuilder hs = new StringBuilder();
-        String stmp;
-        for (int n = 0; b != null && n < b.length; n++) {
-            stmp = Integer.toHexString(b[n] & 0XFF);
-            if (stmp.length() == 1)
-                hs.append('0');
-            hs.append(stmp);
-        }
-        return hs.toString().toLowerCase();
-    }
-
-    /**
-     * https://live.jianyuekb.com/api/v1/ScheduleFlowV2/OpenApi/
-     * schoolId:UUFM5TID45X
-     * secert:UUFM5TID45X
-     * password:Jh&NAbn6Rm#p@6ZZ
-     */
-    @Test
-    public void ScheduleFlowTest() throws Exception {
-        long timestamp = System.currentTimeMillis();
-        System.out.println("timestamp:" + timestamp);
-        String md5Str = SaSecureUtil.md5("@ak8To$xSHFoT6FoqsqYb3" + timestamp);
-
-
-        String sign = calculateHMac("UUXQ8G4W9IU", md5Str);
-        System.out.println("sign:" + sign);
-
-//        JsonObject paramJson = new JsonObject();
-//        paramJson.addProperty("pageIndex", 1);
-//        paramJson.addProperty("pageSize", 200);
-
-        //获取时间戳
-//        long timestamp = System.currentTimeMillis();
-        //生成签名
-//        String sign = ScheduleUtil.createSign(timestamp);
-//        String result = ScheduleUtil.doPost("http://219.153.208.33:20000/api/v1/ScheduleFlowV2/OpenApi/SchoolDistrict/page", paramJson.toString(), sign, timestamp);
-//        System.out.println(result);
-
-        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, schoolDistrictData.get(0).getAsString(), 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) {
-        }
-    }
-
-
-
-    void SubstitutePreTestin(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-        String url = apiUrl + "RescheduleApply/Extend/Substitute/PreTesting";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("timetableId", "4deba192-0b39-9821-5eac-3a1079ba6fbf");
-        jsonObject.addProperty("isCycles", Boolean.FALSE);
-        JsonArray extendIds = new JsonArray();
-        extendIds.add(14954799374790L);
-        jsonObject.add("extendIds", extendIds);
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        System.out.println(result);
-    }
-    void getPreCheck(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-        String url = apiUrl + "RescheduleApply/Extend/PreTesting";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("timetableId", "1e77cf3e-a027-1665-8100-3a106a58b8ab");
-        jsonObject.addProperty("isCycles", Boolean.FALSE);
-//        jsonObject.addProperty("startDate", "2024-01-01");
-//        jsonObject.addProperty("endDate", "2024-01-31");
-//        jsonObject.addProperty("dayOfweek", 5);
-        jsonObject.addProperty("numberOfday", 3);
-        jsonObject.addProperty("date", "2024-01-31");
-        jsonObject.addProperty("reschduleId", "4e2fc331-ce9d-f512-13fb-3a106a58bf82");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        System.out.println(result);
-    }
-
-    void getTimetable(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-        String url = apiUrl + "RescheduleApply/Can/Reschedule/Timetable/List";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("timetableId", "1e77cf3e-a027-1665-8100-3a106a58b8ab");
-        jsonObject.addProperty("isCycles", Boolean.TRUE);
-        JsonObject cycles = new JsonObject();
-        cycles.addProperty("startDate", "2024-01-25");
-        cycles.addProperty("endDate", "2024-01-30");
-        cycles.addProperty("dayOfweek", 5);
-        cycles.addProperty("numberOfday", 3);
-        jsonObject.add("cycles", cycles);
-        jsonObject.addProperty("reschduleDate", "2024-02-02");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        System.out.println(result);
-    }
-    List<String> getClassInfo(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-        String url  = apiUrl + "Class/page";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("pageSize", "200");
-        jsonObject.addProperty("pageIndex", "1");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        System.out.println("ClassInfo:" + result);
-        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-        JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
-        List<String> resultArray = new ArrayList<>();
-        for (JsonElement jsonElement : jsonArray) {
-            JsonObject asJsonObject = jsonElement.getAsJsonObject();
-            resultArray.add(asJsonObject.get("serialNo").getAsString());
-        }
-        return resultArray;
-    }
-    JsonArray getSchoolDistrictData(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-//        String url  = apiUrl + "SchoolDistrict/Create";
-//        JsonObject jsonObject = new JsonObject();
-//        jsonObject.addProperty("name", "test1");
-//        jsonObject.addProperty("shortName", "本部112");
-//        jsonObject.addProperty("note", "本部211");
-//        jsonObject.addProperty("sort", "2");
-//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-
-        String url  = apiUrl + "SchoolDistrict/page";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("pageSize", "15");
-        jsonObject.addProperty("pageIndex", "1");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-
-        JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
-        JsonArray resultArray = new JsonArray();
-        for (JsonElement jsonElement : jsonArray) {
-            JsonObject asJsonObject = jsonElement.getAsJsonObject();
-            resultArray.add(asJsonObject.get("id").getAsString());
-        }
-        return resultArray;
-    }
-
-    List<String> getGradeInfo(String sign, Long timestamp, JsonArray schoolDistrictIds){
-        JsonParser jsonParser = new JsonParser();
-        String url  = apiUrl + "TimeTable/List";
-        JsonObject jsonObject = new JsonObject();
-//        jsonObject.addProperty("schoolDistrictIds", schoolDistrictIds.toString());
-        jsonObject.addProperty("pageSize", "15");
-        jsonObject.addProperty("pageIndex", "1");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        System.out.println("grade:" + result);
-        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-        JsonArray data = resultJson.get("data").getAsJsonArray();
-        if(data.size() == 0){
-            return new ArrayList<>();
-        }
-        JsonArray gradeArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
-        List<String> gradeIds = new ArrayList<>();
-        for (JsonElement jsonElement : gradeArray) {
-            JsonObject asJsonObject = jsonElement.getAsJsonObject();
-            gradeIds.add(asJsonObject.get("serialNo").getAsString());
-        }
-        
-        return gradeIds;
-    }
-
-    JsonArray getScheduleInfo(String sign, Long timestamp, List<String> ids) throws IOException {
-        JsonParser jsonParser = new JsonParser();
-        String url  = apiUrl + "TimeTable/List";
-        if(ids.isEmpty()){
-            JsonObject jsonObject = new JsonObject();
-            jsonObject.addProperty("startDate", "2024-01-01 00:00:00");
-            jsonObject.addProperty("endDate", "2024-02-21 23:59:59");
-            String result = doPost(url, jsonObject.toString(), sign, timestamp);
-            File file = new File("D:\\workspace\\其他\\课表\\file.txt");
-            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-            writer.write(result); // 写入字符串内容
-            writer.close();
-            return null;
-        }
-        for (String id : ids) {
-            JsonObject jsonObject = new JsonObject();
-            jsonObject.addProperty("classSerialNo", id);
-            jsonObject.addProperty("startDate", "2024-01-01 00:00:00");
-            jsonObject.addProperty("endDate", "2024-02-21 23:59:59");
-            String result = doPost(url, jsonObject.toString(), sign, timestamp);
-            System.out.println(id + ":" + result);
-        }
-
-        return null;
-    }
-
-//    List<String> insertClass(String sign, Long timestamp, String schoolDistrictId) throws InterruptedException {
-//        List<ClassroomJianyuekbVo> dataList = baseClassroomMapper.getJianyueList();
-//        String url  = apiUrl + "class/create";
-//        List<String> idList = new ArrayList<>();
-//        JsonParser jsonParser = new JsonParser();
+//package com.xjrsoft.xjrsoftboot;
+//
+//import cn.dev33.satoken.secure.SaSecureUtil;
+//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.courseTable.service.ICourseTableService;
+//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.beans.factory.annotation.Autowired;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.junit4.SpringRunner;
+//
+//import javax.crypto.Mac;
+//import javax.crypto.spec.SecretKeySpec;
+//import javax.sql.DataSource;
+//import java.io.*;
+//import java.net.HttpURLConnection;
+//import java.net.MalformedURLException;
+//import java.net.URL;
+//import java.util.ArrayList;
+//import java.util.HashMap;
+//import java.util.HashSet;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.Set;
+//
+//// 简约课表测试
+//@RunWith(SpringRunner.class)
+//@SpringBootTest(classes = XjrSoftApplication.class)
+//public class ScheduleTest {
+//
+//    public static final String ALGORITHM = "HmacSHA256";
+//    public static final String apiUrl = "http://219.153.208.33:20000/api/v1/ScheduleFlowV2/OpenApi/";
+//    @Autowired
+//    private ICourseTableService courseTableService;
+//
+//    public static String calculateHMac(String key, String data) throws Exception {
+//        Mac sha256_HMAC = Mac.getInstance(ALGORITHM);
+//
+//        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), ALGORITHM);
+//        sha256_HMAC.init(secret_key);
+//
+//        return byteArrayToHex(sha256_HMAC.doFinal(data.getBytes("UTF-8")));
+//    }
 //
-//        String findUrl = apiUrl + "class/page";
+//    public static String byteArrayToHex(byte[] a) {
+//        StringBuilder sb = new StringBuilder(a.length * 2);
+//        for (byte b : a)
+//            sb.append(String.format("%02x", b));
+//        return sb.toString();
+//    }
 //
-//        for (ClassroomJianyuekbVo classroom : dataList) {
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
-//            paramJson.addProperty("name", classroom.getName());
 //
-////            paramJson.addProperty("peopleCount", classroom.getPeopleCount());
-////            paramJson.addProperty("location", classroom.getLocation());
-//            paramJson.addProperty("peopleCount", 50);
-//            paramJson.addProperty("location", "无");
-//            paramJson.addProperty("extendId", classroom.getExtendId());
-//            paramJson.addProperty("floor", classroom.getFloor());
-////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
-////            if(findResult != null){
-////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
-////                JsonObject data = resultJson.get("data").getAsJsonObject();
-////                if(data.get("total").getAsInt() != 0){
-////                    //调用update
-////                }
-////            }
+//    /**
+//     * 将加密后的字节数组转换成字符串
+//     *
+//     * @param b 字节数组
+//     * @return 字符串
+//     */
+//    private static String byteArrayToHexString(byte[] b) {
+//        StringBuilder hs = new StringBuilder();
+//        String stmp;
+//        for (int n = 0; b != null && n < b.length; n++) {
+//            stmp = Integer.toHexString(b[n] & 0XFF);
+//            if (stmp.length() == 1)
+//                hs.append('0');
+//            hs.append(stmp);
+//        }
+//        return hs.toString().toLowerCase();
+//    }
+//
+//    /**
+//     * https://live.jianyuekb.com/api/v1/ScheduleFlowV2/OpenApi/
+//     * schoolId:UUFM5TID45X
+//     * secert:UUFM5TID45X
+//     * password:Jh&NAbn6Rm#p@6ZZ
+//     */
+//    @Test
+//    public void ScheduleFlowTest() throws Exception {
+//        long timestamp = System.currentTimeMillis();
+//        System.out.println("timestamp:" + timestamp);
+//        String md5Str = SaSecureUtil.md5("@ak8To$xSHFoT6FoqsqYb3" + timestamp);
+//
+//
+//        String sign = calculateHMac("UUXQ8G4W9IU", md5Str);
+//        System.out.println("sign:" + sign);
+//
+////        JsonObject paramJson = new JsonObject();
+////        paramJson.addProperty("pageIndex", 1);
+////        paramJson.addProperty("pageSize", 200);
+//
+//        //获取时间戳
+////        long timestamp = System.currentTimeMillis();
+//        //生成签名
+////        String sign = ScheduleUtil.createSign(timestamp);
+////        String result = ScheduleUtil.doPost("http://219.153.208.33:20000/api/v1/ScheduleFlowV2/OpenApi/SchoolDistrict/page", paramJson.toString(), sign, timestamp);
+////        System.out.println(result);
+//
+//        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);
+//            }
 //
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//            if(result == null){
-//                System.out.println(paramJson.toString());
-//                continue;
+//            //推送学期
+//            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);
 //            }
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            idList.add(resultJson.get("data").getAsString());
+//            //推送课程
+//            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) {
 //        }
-//        return idList;
 //    }
 //
-//    List<String> insertClassRoom(String sign, Long timestamp, String schoolDistrictId) throws InterruptedException {
-//        List<ClassroomJianyuekbVo> dataList = baseClassroomMapper.getJianyueList();
-//        String url  = apiUrl + "classroom/create";
-//        List<String> idList = new ArrayList<>();
-//        JsonParser jsonParser = new JsonParser();
-//
-//        String findUrl = apiUrl + "ClassRoom/page";
 //
-//        for (ClassroomJianyuekbVo classroom : dataList) {
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
-//            paramJson.addProperty("name", classroom.getName());
 //
-////            paramJson.addProperty("peopleCount", classroom.getPeopleCount());
-////            paramJson.addProperty("location", classroom.getLocation());
-//            paramJson.addProperty("peopleCount", 50);
-//            paramJson.addProperty("location", "无");
-//            paramJson.addProperty("extendId", classroom.getExtendId());
-//            paramJson.addProperty("floor", classroom.getFloor());
-////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
-////            if(findResult != null){
-////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
-////                JsonObject data = resultJson.get("data").getAsJsonObject();
-////                if(data.get("total").getAsInt() != 0){
-////                    //调用update
-////                }
-////            }
+//    void SubstitutePreTestin(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+//        String url = apiUrl + "RescheduleApply/Extend/Substitute/PreTesting";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("timetableId", "4deba192-0b39-9821-5eac-3a1079ba6fbf");
+//        jsonObject.addProperty("isCycles", Boolean.FALSE);
+//        JsonArray extendIds = new JsonArray();
+//        extendIds.add(14954799374790L);
+//        jsonObject.add("extendIds", extendIds);
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        System.out.println(result);
+//    }
+//    void getPreCheck(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+//        String url = apiUrl + "RescheduleApply/Extend/PreTesting";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("timetableId", "1e77cf3e-a027-1665-8100-3a106a58b8ab");
+//        jsonObject.addProperty("isCycles", Boolean.FALSE);
+////        jsonObject.addProperty("startDate", "2024-01-01");
+////        jsonObject.addProperty("endDate", "2024-01-31");
+////        jsonObject.addProperty("dayOfweek", 5);
+//        jsonObject.addProperty("numberOfday", 3);
+//        jsonObject.addProperty("date", "2024-01-31");
+//        jsonObject.addProperty("reschduleId", "4e2fc331-ce9d-f512-13fb-3a106a58bf82");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        System.out.println(result);
+//    }
 //
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//            if(result == null){
-//                System.out.println(paramJson.toString());
-//                continue;
-//            }
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            idList.add(resultJson.get("data").getAsString());
+//    void getTimetable(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+//        String url = apiUrl + "RescheduleApply/Can/Reschedule/Timetable/List";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("timetableId", "1e77cf3e-a027-1665-8100-3a106a58b8ab");
+//        jsonObject.addProperty("isCycles", Boolean.TRUE);
+//        JsonObject cycles = new JsonObject();
+//        cycles.addProperty("startDate", "2024-01-25");
+//        cycles.addProperty("endDate", "2024-01-30");
+//        cycles.addProperty("dayOfweek", 5);
+//        cycles.addProperty("numberOfday", 3);
+//        jsonObject.add("cycles", cycles);
+//        jsonObject.addProperty("reschduleDate", "2024-02-02");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        System.out.println(result);
+//    }
+//    List<String> getClassInfo(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+//        String url  = apiUrl + "Class/page";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("pageSize", "200");
+//        jsonObject.addProperty("pageIndex", "1");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        System.out.println("ClassInfo:" + result);
+//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+//        JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
+//        List<String> resultArray = new ArrayList<>();
+//        for (JsonElement jsonElement : jsonArray) {
+//            JsonObject asJsonObject = jsonElement.getAsJsonObject();
+//            resultArray.add(asJsonObject.get("serialNo").getAsString());
 //        }
-//        return idList;
+//        return resultArray;
 //    }
+//    JsonArray getSchoolDistrictData(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+////        String url  = apiUrl + "SchoolDistrict/Create";
+////        JsonObject jsonObject = new JsonObject();
+////        jsonObject.addProperty("name", "test1");
+////        jsonObject.addProperty("shortName", "本部112");
+////        jsonObject.addProperty("note", "本部211");
+////        jsonObject.addProperty("sort", "2");
+////        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+////        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+//
+//        String url  = apiUrl + "SchoolDistrict/page";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("pageSize", "15");
+//        jsonObject.addProperty("pageIndex", "1");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
 //
-//    List<String> insertStudent(String sign, Long timestamp, Map<Long, String> gradeMap) throws Exception {
+//        JsonArray jsonArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
+//        JsonArray resultArray = new JsonArray();
+//        for (JsonElement jsonElement : jsonArray) {
+//            JsonObject asJsonObject = jsonElement.getAsJsonObject();
+//            resultArray.add(asJsonObject.get("id").getAsString());
+//        }
+//        return resultArray;
+//    }
 //
-//        List<StudentJianyuekbVo> dataList = baseStudentMapper.getJianyueStudentList();
-//        String url  = apiUrl + "student/create";
-//        List<String> idList = new ArrayList<>();
+//    List<String> getGradeInfo(String sign, Long timestamp, JsonArray schoolDistrictIds){
 //        JsonParser jsonParser = new JsonParser();
+//        String url  = apiUrl + "TimeTable/List";
+//        JsonObject jsonObject = new JsonObject();
+////        jsonObject.addProperty("schoolDistrictIds", schoolDistrictIds.toString());
+//        jsonObject.addProperty("pageSize", "15");
+//        jsonObject.addProperty("pageIndex", "1");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        System.out.println("grade:" + result);
+//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+//        JsonArray data = resultJson.get("data").getAsJsonArray();
+//        if(data.size() == 0){
+//            return new ArrayList<>();
+//        }
+//        JsonArray gradeArray = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray();
+//        List<String> gradeIds = new ArrayList<>();
+//        for (JsonElement jsonElement : gradeArray) {
+//            JsonObject asJsonObject = jsonElement.getAsJsonObject();
+//            gradeIds.add(asJsonObject.get("serialNo").getAsString());
+//        }
 //
-//        String findUrl = apiUrl + "Student/page";
+//        return gradeIds;
+//    }
+//
+//    JsonArray getScheduleInfo(String sign, Long timestamp, List<String> ids) throws IOException {
+//        JsonParser jsonParser = new JsonParser();
+//        String url  = apiUrl + "TimeTable/List";
+//        if(ids.isEmpty()){
+//            JsonObject jsonObject = new JsonObject();
+//            jsonObject.addProperty("startDate", "2024-01-01 00:00:00");
+//            jsonObject.addProperty("endDate", "2024-02-21 23:59:59");
+//            String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//            File file = new File("D:\\workspace\\其他\\课表\\file.txt");
+//            BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+//            writer.write(result); // 写入字符串内容
+//            writer.close();
+//            return null;
+//        }
+//        for (String id : ids) {
+//            JsonObject jsonObject = new JsonObject();
+//            jsonObject.addProperty("classSerialNo", id);
+//            jsonObject.addProperty("startDate", "2024-01-01 00:00:00");
+//            jsonObject.addProperty("endDate", "2024-02-21 23:59:59");
+//            String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//            System.out.println(id + ":" + result);
+//        }
 //
-//        for (StudentJianyuekbVo student : dataList) {
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("registerNo", student.getRegisterNo());
-//            paramJson.addProperty("gender", student.getGender());
+//        return null;
+//    }
 //
-//            paramJson.addProperty("realName", student.getRealName());
-//            paramJson.addProperty("alias", student.getAlias());
-//            paramJson.addProperty("extendId", student.getExtendId());
-//            paramJson.addProperty("gradeSerialNo", gradeMap.get(student.getGradeSerialNo()));
+////    List<String> insertClass(String sign, Long timestamp, String schoolDistrictId) throws InterruptedException {
+////        List<ClassroomJianyuekbVo> dataList = baseClassroomMapper.getJianyueList();
+////        String url  = apiUrl + "class/create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////
+////        String findUrl = apiUrl + "class/page";
+////
+////        for (ClassroomJianyuekbVo classroom : dataList) {
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
+////            paramJson.addProperty("name", classroom.getName());
+////
+//////            paramJson.addProperty("peopleCount", classroom.getPeopleCount());
+//////            paramJson.addProperty("location", classroom.getLocation());
+////            paramJson.addProperty("peopleCount", 50);
+////            paramJson.addProperty("location", "无");
+////            paramJson.addProperty("extendId", classroom.getExtendId());
+////            paramJson.addProperty("floor", classroom.getFloor());
+//////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
+//////            if(findResult != null){
+//////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
+//////                JsonObject data = resultJson.get("data").getAsJsonObject();
+//////                if(data.get("total").getAsInt() != 0){
+//////                    //调用update
+//////                }
+//////            }
+////
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////            if(result == null){
+////                System.out.println(paramJson.toString());
+////                continue;
+////            }
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////        return idList;
+////    }
+////
+////    List<String> insertClassRoom(String sign, Long timestamp, String schoolDistrictId) throws InterruptedException {
+////        List<ClassroomJianyuekbVo> dataList = baseClassroomMapper.getJianyueList();
+////        String url  = apiUrl + "classroom/create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////
+////        String findUrl = apiUrl + "ClassRoom/page";
+////
+////        for (ClassroomJianyuekbVo classroom : dataList) {
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
+////            paramJson.addProperty("name", classroom.getName());
+////
+//////            paramJson.addProperty("peopleCount", classroom.getPeopleCount());
+//////            paramJson.addProperty("location", classroom.getLocation());
+////            paramJson.addProperty("peopleCount", 50);
+////            paramJson.addProperty("location", "无");
+////            paramJson.addProperty("extendId", classroom.getExtendId());
+////            paramJson.addProperty("floor", classroom.getFloor());
+//////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
+//////            if(findResult != null){
+//////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
+//////                JsonObject data = resultJson.get("data").getAsJsonObject();
+//////                if(data.get("total").getAsInt() != 0){
+//////                    //调用update
+//////                }
+//////            }
+////
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////            if(result == null){
+////                System.out.println(paramJson.toString());
+////                continue;
+////            }
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////        return idList;
+////    }
+////
+////    List<String> insertStudent(String sign, Long timestamp, Map<Long, String> gradeMap) throws Exception {
+////
+////        List<StudentJianyuekbVo> dataList = baseStudentMapper.getJianyueStudentList();
+////        String url  = apiUrl + "student/create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////
+////        String findUrl = apiUrl + "Student/page";
+////
+////        for (StudentJianyuekbVo student : dataList) {
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("registerNo", student.getRegisterNo());
+////            paramJson.addProperty("gender", student.getGender());
+////
+////            paramJson.addProperty("realName", student.getRealName());
+////            paramJson.addProperty("alias", student.getAlias());
+////            paramJson.addProperty("extendId", student.getExtendId());
+////            paramJson.addProperty("gradeSerialNo", gradeMap.get(student.getGradeSerialNo()));
+//////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
+//////            if(findResult != null){
+//////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
+//////                JsonObject data = resultJson.get("data").getAsJsonObject();
+//////                if(data.get("total").getAsInt() != 0){
+//////                    //调用update
+//////                }
+//////            }
+////            timestamp = System.currentTimeMillis();
+////            System.out.println("timestamp:" + timestamp);
+////            String md5Str = SaSecureUtil.md5("Jh&NAbn6Rm#p@6ZZ" + timestamp);
+////
+////
+////            sign = calculateHMac("UUFM5TID45X", md5Str);
+////            System.out.println("sign:" + sign);
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////            if(result == null){
+////                System.out.println(paramJson.toString());
+////                continue;
+////            }
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////        return idList;
+////    }
+////
+////    List<String> insertTeacher(String sign, Long timestamp) throws InterruptedException {
+////        List<XjrUser> xjrUsers = xjrUserMapper.selectJoinList(
+////            XjrUser.class, new MPJLambdaWrapper<XjrUser>()
+////            .innerJoin("xjr_user_role_relation t2 on t.id = t2.user_id")
+////            .eq("t2.role_id", 2)
+////        );
+////        String url  = apiUrl + "teacher/create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////
+////        String findUrl = apiUrl + "/Teacher/Page";
+////
+////        for (XjrUser user : xjrUsers) {
+////            Thread.sleep(1000);
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("jobNumber", user.getUserName());
+////            paramJson.addProperty("gender", user.getGender());
+////
+////            String name = user.getName().substring(0, 1) + user.getUserName();
+////            paramJson.addProperty("name", name);
+////            paramJson.addProperty("alias", name);
+////            paramJson.addProperty("extendId", user.getId().toString());
 ////            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
 ////            if(findResult != null){
 ////                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
@@ -417,445 +465,397 @@ public class ScheduleTest {
 ////                    //调用update
 ////                }
 ////            }
-//            timestamp = System.currentTimeMillis();
-//            System.out.println("timestamp:" + timestamp);
-//            String md5Str = SaSecureUtil.md5("Jh&NAbn6Rm#p@6ZZ" + timestamp);
-//
+////
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////            if(result == null){
+////                System.out.println(paramJson.toString());
+////                continue;
+////            }
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////        return idList;
+////    }
+////
+////    List<String> insertCourse(String sign, Long timestamp){
+////        List<BaseCourseSubject> list = baseCourseSubjectService.list(
+////                new QueryWrapper<BaseCourseSubject>().lambda()
+////                        .eq(BaseCourseSubject::getDeleteMark, DeleteMark.NODELETE.getCode())
+////        );
+////        String url  = apiUrl + "courseclass/Create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////        for (BaseCourseSubject courseSubject : list) {
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("name", courseSubject.getName() + courseSubject.getCode());
+////            paramJson.addProperty("code", courseSubject.getCode());
+////            paramJson.addProperty("extendId", courseSubject.getId().toString());
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////            if(result == null){
+////                System.out.println("result is null, paramJson: " + paramJson.toString());
+////                continue;
+////            }
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            if(resultJson.get("code").getAsInt() == -1){
+////                System.out.println("paramJson: " + paramJson.toString() + ", 返回结果:" + result);
+////            }
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////
+////        return idList;
+////    }
+////
+////
+////
+////    List<String> insertSemester(String sign, Long timestamp){
+////        List<BaseSemester> list = baseSemesterService.list(
+////            new QueryWrapper<BaseSemester>().lambda()
+////            .eq(BaseSemester::getDeleteMark, DeleteMark.NODELETE.getCode())
+////        );
+////        String url  = apiUrl + "semester/Create";
+////        List<String> idList = new ArrayList<>();
+////        JsonParser jsonParser = new JsonParser();
+////        SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
+////        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+////        String spring = "春";
+////        String autumn = "秋";
+////
+////        for (BaseSemester semester : list) {
+////            JsonObject paramJson = new JsonObject();
+////
+////            paramJson.addProperty("schoolYear", Integer.parseInt(sdfYear.format(semester.getStartDate())));
+////            Integer period = null;
+////            if(semester.getName().contains(String.valueOf(spring))){
+////                period = 1;
+////            }else if(semester.getName().contains(autumn)){
+////                period = 2;
+////            }
+////            paramJson.addProperty("period", period);
+////            paramJson.addProperty("startDate", sdf.format(semester.getStartDate()));
+////            paramJson.addProperty("endDate", sdf.format(semester.getEndDate()));
+////            paramJson.addProperty("extendId", semester.getId().toString());
+////
+////            if(semester.getStartDate() != null && semester.getEndDate() != null && semester.getEndDate().getTime() > timestamp && semester.getStartDate().getTime() < timestamp){
+////                paramJson.addProperty("isCurrent", Boolean.TRUE);
+////            }else{
+////                paramJson.addProperty("isCurrent", Boolean.FALSE);
+////            }
+////            System.out.println(paramJson.toString());
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////            idList.add(resultJson.get("data").getAsString());
+////        }
+////
+////        return idList;
+////    }
+//
+//    /**
+//     *  由于简约中校区中的本部不能删除,如果没有多的校区,就只查询本部的id即可
+//     * @param sign 签名
+//     * @param timestamp 时间戳
+//     * @return 返回添加好的校区id
+//     */
+//    String insertSchoolDistrictData(String sign, Long timestamp){
+//        JsonParser jsonParser = new JsonParser();
+////        String url  = apiUrl + "SchoolDistrict/Create";
+////        JsonObject jsonObject = new JsonObject();
+////        jsonObject.addProperty("name", "test1");
+////        jsonObject.addProperty("shortName", "本部112");
+////        jsonObject.addProperty("note", "本部211");
+////        jsonObject.addProperty("sort", "2");
+////        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+////        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+//
+//        String url  = apiUrl + "SchoolDistrict/page";
+//        JsonObject jsonObject = new JsonObject();
+//        jsonObject.addProperty("keyword", "本部");
+//        jsonObject.addProperty("pageSize", "15");
+//        jsonObject.addProperty("pageIndex", "1");
+//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
+//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
 //
-//            sign = calculateHMac("UUFM5TID45X", md5Str);
-//            System.out.println("sign:" + sign);
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//            if(result == null){
-//                System.out.println(paramJson.toString());
-//                continue;
-//            }
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            idList.add(resultJson.get("data").getAsString());
-//        }
-//        return idList;
+//        String id = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray().get(0).getAsJsonObject().get("id").getAsString();
+//        return id;
 //    }
 //
-//    List<String> insertTeacher(String sign, Long timestamp) throws InterruptedException {
-//        List<XjrUser> xjrUsers = xjrUserMapper.selectJoinList(
-//            XjrUser.class, new MPJLambdaWrapper<XjrUser>()
-//            .innerJoin("xjr_user_role_relation t2 on t.id = t2.user_id")
-//            .eq("t2.role_id", 2)
-//        );
-//        String url  = apiUrl + "teacher/create";
-//        List<String> idList = new ArrayList<>();
-//        JsonParser jsonParser = new JsonParser();
+////    Map<Long, String> insertGrade(String sign, Long timestamp, String schoolDistrictId){
+////        List<BaseGrade> list = baseGradeService.list(
+////            new QueryWrapper<BaseGrade>().lambda()
+////            .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE.getCode())
+////        );
+////        String url = apiUrl + "eduyear/create";
+////        JsonParser jsonParser = new JsonParser();
+////        Map<Long, String> idMap = new HashMap<>();
+////        for (BaseGrade baseGrade : list) {
+////            JsonObject paramJson = new JsonObject();
+////            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
+////            paramJson.addProperty("period", 4);
+////            paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
+////            paramJson.addProperty("extendId", baseGrade.getId().toString());
+////            paramJson.addProperty("year", 3);
+////
+////            String result = doPost(url, paramJson.toString(), sign, timestamp);
+////
+////            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
+////
+////            idMap.put(baseGrade.getId(), resultJson.get("data").getAsString());
+////        }
+////
+////        return idMap;
+////    }
+//
+//
+//
+//    public static String doGet(String httpurl) throws Exception {
+//        long timestamp = System.currentTimeMillis();
 //
-//        String findUrl = apiUrl + "/Teacher/Page";
-//
-//        for (XjrUser user : xjrUsers) {
-//            Thread.sleep(1000);
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("jobNumber", user.getUserName());
-//            paramJson.addProperty("gender", user.getGender());
-//
-//            String name = user.getName().substring(0, 1) + user.getUserName();
-//            paramJson.addProperty("name", name);
-//            paramJson.addProperty("alias", name);
-//            paramJson.addProperty("extendId", user.getId().toString());
-//            String findResult = doPost(findUrl, paramJson.toString(), sign, timestamp);
-//            if(findResult != null){
-//                JsonObject resultJson = jsonParser.parse(findResult).getAsJsonObject();
-//                JsonObject data = resultJson.get("data").getAsJsonObject();
-//                if(data.get("total").getAsInt() != 0){
-//                    //调用update
+//        String password = "";
+//
+//        String md5Str = SaSecureUtil.md5(String.format("Jh&NAbn6Rm#p@6ZZ%d", timestamp));
+//
+//        System.out.println(md5Str);
+//
+//        String sign = calculateHMac("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320", md5Str);
+//
+//        System.out.println(sign);
+//
+//
+//        HttpURLConnection connection = null;
+//        InputStream is = null;
+//        BufferedReader br = null;
+//        String result = null;// 返回结果字符串
+//        try {
+//            // 创建远程url连接对象
+//            URL url = new URL(httpurl);
+//            // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
+//            connection = (HttpURLConnection) url.openConnection();
+//            connection.setRequestProperty("schoolId","UUFM5TID45X");
+//            connection.setRequestProperty("sign",sign);
+//            connection.setRequestProperty("timestamp",String.format("%d",timestamp));
+//            // 设置连接方式:get
+//            connection.setRequestMethod("GET");
+//            // 设置连接主机服务器的超时时间:15000毫秒
+//            connection.setConnectTimeout(15000);
+//            // 设置读取远程返回的数据时间:60000毫秒
+//            connection.setReadTimeout(60000);
+//            // 发送请求
+//            connection.connect();
+//            // 通过connection连接,获取输入流
+//            if (connection.getResponseCode() == 200) {
+//                is = connection.getInputStream();
+//                // 封装输入流is,并指定字符集
+//                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+//                // 存放数据
+//                StringBuffer sbf = new StringBuffer();
+//                String temp = null;
+//                while ((temp = br.readLine()) != null) {
+//                    sbf.append(temp);
+//                    sbf.append("\r\n");
 //                }
+//                result = sbf.toString();
 //            }
-//
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//            if(result == null){
-//                System.out.println(paramJson.toString());
-//                continue;
+//        } catch (MalformedURLException e) {
+//            e.printStackTrace();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        } finally {
+//            // 关闭资源
+//            if (null != br) {
+//                try {
+//                    br.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//            if (null != is) {
+//                try {
+//                    is.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
 //            }
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            idList.add(resultJson.get("data").getAsString());
+//            connection.disconnect();// 关闭远程连接
 //        }
-//        return idList;
+//        return result;
 //    }
 //
-//    List<String> insertCourse(String sign, Long timestamp){
-//        List<BaseCourseSubject> list = baseCourseSubjectService.list(
-//                new QueryWrapper<BaseCourseSubject>().lambda()
-//                        .eq(BaseCourseSubject::getDeleteMark, DeleteMark.NODELETE.getCode())
-//        );
-//        String url  = apiUrl + "courseclass/Create";
-//        List<String> idList = new ArrayList<>();
-//        JsonParser jsonParser = new JsonParser();
-//        for (BaseCourseSubject courseSubject : list) {
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("name", courseSubject.getName() + courseSubject.getCode());
-//            paramJson.addProperty("code", courseSubject.getCode());
-//            paramJson.addProperty("extendId", courseSubject.getId().toString());
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//            if(result == null){
-//                System.out.println("result is null, paramJson: " + paramJson.toString());
-//                continue;
+//    public static String doPost(String httpUrl, String param, String sign, Long timestamp) {
+//        HttpURLConnection connection = null;
+//        InputStream is = null;
+//        OutputStream os = null;
+//        BufferedReader br = null;
+//        String result = null;
+//        OutputStreamWriter writer = null;
+//        try {
+//            URL url = new URL(httpUrl);
+//            // 通过远程url连接对象打开连接
+//            connection = (HttpURLConnection) url.openConnection();
+//            connection.setRequestProperty("schoolId","UUFM5TID45X");
+//            connection.setRequestProperty("sign",sign);
+//            connection.setRequestProperty("timestamp",String.format("%d",timestamp));
+//            // 设置连接请求方式
+//            connection.setRequestMethod("POST");
+//            // 设置连接主机服务器超时时间:15000毫秒
+//            connection.setConnectTimeout(15000);
+//            // 设置读取主机服务器返回数据超时时间:60000毫秒
+//            connection.setReadTimeout(60000);
+//            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
+//            connection.setDoOutput(true);
+//            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
+//            connection.setDoInput(true);
+//            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
+//            connection.setRequestProperty("Content-Type", "application/json");
+//            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
+////            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
+//            writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
+//            //body参数放这里
+//            writer.write(param);
+//            writer.flush();
+//
+//            writer.close();
+//            // 通过连接对象获取一个输出流
+////            os = connection.getOutputStream();
+////            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
+////            os.write(param.getBytes());
+//            // 通过连接对象获取一个输入流,向远程读取
+//            if (connection.getResponseCode() == 200) {
+//                is = connection.getInputStream();
+//                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
+//                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+//                StringBuffer sbf = new StringBuffer();
+//                String temp = null;
+//                // 循环遍历一行一行读取数据
+//                while ((temp = br.readLine()) != null) {
+//                    sbf.append(temp);
+//                    sbf.append("\r\n");
+//                }
+//                result = sbf.toString();
+//            }else{
+//                is = connection.getInputStream();
+//                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
+//                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+//                StringBuffer sbf = new StringBuffer();
+//                String temp = null;
+//                // 循环遍历一行一行读取数据
+//                while ((temp = br.readLine()) != null) {
+//                    sbf.append(temp);
+//                    sbf.append("\r\n");
+//                }
+//                System.out.println(sbf.toString());
 //            }
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            if(resultJson.get("code").getAsInt() == -1){
-//                System.out.println("paramJson: " + paramJson.toString() + ", 返回结果:" + result);
+//        } catch (MalformedURLException e) {
+//            e.printStackTrace();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        } finally {
+//            // 关闭资源
+//            if (null != br) {
+//                try {
+//                    br.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
 //            }
-//            idList.add(resultJson.get("data").getAsString());
-//        }
-//
-//        return idList;
-//    }
-//
-//
-//
-//    List<String> insertSemester(String sign, Long timestamp){
-//        List<BaseSemester> list = baseSemesterService.list(
-//            new QueryWrapper<BaseSemester>().lambda()
-//            .eq(BaseSemester::getDeleteMark, DeleteMark.NODELETE.getCode())
-//        );
-//        String url  = apiUrl + "semester/Create";
-//        List<String> idList = new ArrayList<>();
-//        JsonParser jsonParser = new JsonParser();
-//        SimpleDateFormat sdfYear = new SimpleDateFormat("yyyy");
-//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        String spring = "春";
-//        String autumn = "秋";
-//
-//        for (BaseSemester semester : list) {
-//            JsonObject paramJson = new JsonObject();
-//
-//            paramJson.addProperty("schoolYear", Integer.parseInt(sdfYear.format(semester.getStartDate())));
-//            Integer period = null;
-//            if(semester.getName().contains(String.valueOf(spring))){
-//                period = 1;
-//            }else if(semester.getName().contains(autumn)){
-//                period = 2;
+//            if (null != os) {
+//                try {
+//                    os.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
 //            }
-//            paramJson.addProperty("period", period);
-//            paramJson.addProperty("startDate", sdf.format(semester.getStartDate()));
-//            paramJson.addProperty("endDate", sdf.format(semester.getEndDate()));
-//            paramJson.addProperty("extendId", semester.getId().toString());
-//
-//            if(semester.getStartDate() != null && semester.getEndDate() != null && semester.getEndDate().getTime() > timestamp && semester.getStartDate().getTime() < timestamp){
-//                paramJson.addProperty("isCurrent", Boolean.TRUE);
-//            }else{
-//                paramJson.addProperty("isCurrent", Boolean.FALSE);
+//            if (null != is) {
+//                try {
+//                    is.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
 //            }
-//            System.out.println(paramJson.toString());
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
-//
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//            idList.add(resultJson.get("data").getAsString());
+//            // 断开与远程地址url的连接
+//            connection.disconnect();
 //        }
-//
-//        return idList;
+//        return result;
 //    }
-
-    /**
-     *  由于简约中校区中的本部不能删除,如果没有多的校区,就只查询本部的id即可
-     * @param sign 签名
-     * @param timestamp 时间戳
-     * @return 返回添加好的校区id
-     */
-    String insertSchoolDistrictData(String sign, Long timestamp){
-        JsonParser jsonParser = new JsonParser();
-//        String url  = apiUrl + "SchoolDistrict/Create";
-//        JsonObject jsonObject = new JsonObject();
-//        jsonObject.addProperty("name", "test1");
-//        jsonObject.addProperty("shortName", "本部112");
-//        jsonObject.addProperty("note", "本部211");
-//        jsonObject.addProperty("sort", "2");
-//        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-//        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-
-        String url  = apiUrl + "SchoolDistrict/page";
-        JsonObject jsonObject = new JsonObject();
-        jsonObject.addProperty("keyword", "本部");
-        jsonObject.addProperty("pageSize", "15");
-        jsonObject.addProperty("pageIndex", "1");
-        String result = doPost(url, jsonObject.toString(), sign, timestamp);
-        JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-
-        String id = resultJson.get("data").getAsJsonObject().get("dataList").getAsJsonArray().get(0).getAsJsonObject().get("id").getAsString();
-        return id;
-    }
-
-//    Map<Long, String> insertGrade(String sign, Long timestamp, String schoolDistrictId){
-//        List<BaseGrade> list = baseGradeService.list(
-//            new QueryWrapper<BaseGrade>().lambda()
-//            .eq(BaseGrade::getDeleteMark, DeleteMark.NODELETE.getCode())
-//        );
-//        String url = apiUrl + "eduyear/create";
-//        JsonParser jsonParser = new JsonParser();
-//        Map<Long, String> idMap = new HashMap<>();
-//        for (BaseGrade baseGrade : list) {
-//            JsonObject paramJson = new JsonObject();
-//            paramJson.addProperty("schoolDistrictId", schoolDistrictId);
-//            paramJson.addProperty("period", 4);
-//            paramJson.addProperty("startYear", baseGrade.getTitle().replaceAll("年", ""));
-//            paramJson.addProperty("extendId", baseGrade.getId().toString());
-//            paramJson.addProperty("year", 3);
-//
-//            String result = doPost(url, paramJson.toString(), sign, timestamp);
 //
-//            JsonObject resultJson = jsonParser.parse(result).getAsJsonObject();
-//
-//            idMap.put(baseGrade.getId(), resultJson.get("data").getAsString());
+//    public static String doPost(String httpUrl) {
+//        HttpURLConnection connection = null;
+//        InputStream is = null;
+//        OutputStream os = null;
+//        BufferedReader br = null;
+//        String result = null;
+//        OutputStreamWriter writer = null;
+//        try {
+//            URL url = new URL(httpUrl);
+//            // 通过远程url连接对象打开连接
+//            connection = (HttpURLConnection) url.openConnection();
+//            connection.setRequestProperty("schoolId","UUFM5TID45X");
+//            // 设置连接请求方式
+//            connection.setRequestMethod("POST");
+//            // 设置连接主机服务器超时时间:15000毫秒
+//            connection.setConnectTimeout(15000);
+//            // 设置读取主机服务器返回数据超时时间:60000毫秒
+//            connection.setReadTimeout(60000);
+//            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
+//            connection.setDoOutput(true);
+//            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
+//            connection.setDoInput(true);
+//            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
+//            connection.setRequestProperty("Content-Type", "application/json");
+//            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
+////            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
+//            writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
+//            //body参数放这里
+//            writer.flush();
+//
+//            writer.close();
+//            // 通过连接对象获取一个输出流
+////            os = connection.getOutputStream();
+////            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
+////            os.write(param.getBytes());
+//            // 通过连接对象获取一个输入流,向远程读取
+//            if (connection.getResponseCode() == 200) {
+//                is = connection.getInputStream();
+//                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
+//                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+//                StringBuffer sbf = new StringBuffer();
+//                String temp = null;
+//                // 循环遍历一行一行读取数据
+//                while ((temp = br.readLine()) != null) {
+//                    sbf.append(temp);
+//                    sbf.append("\r\n");
+//                }
+//                result = sbf.toString();
+//            }
+//        } catch (MalformedURLException e) {
+//            e.printStackTrace();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        } finally {
+//            // 关闭资源
+//            if (null != br) {
+//                try {
+//                    br.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//            if (null != os) {
+//                try {
+//                    os.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//            if (null != is) {
+//                try {
+//                    is.close();
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//            // 断开与远程地址url的连接
+//            connection.disconnect();
 //        }
-//
-//        return idMap;
+//        return result;
 //    }
-
-
-
-    public static String doGet(String httpurl) throws Exception {
-        long timestamp = System.currentTimeMillis();
-
-        String password = "";
-
-        String md5Str = SaSecureUtil.md5(String.format("Jh&NAbn6Rm#p@6ZZ%d", timestamp));
-
-        System.out.println(md5Str);
-
-        String sign = calculateHMac("a7dbed0dfc70ebd92934cf9292de8749e9af01a2405217be881f9e77f6ba5320", md5Str);
-
-        System.out.println(sign);
-
-
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        BufferedReader br = null;
-        String result = null;// 返回结果字符串
-        try {
-            // 创建远程url连接对象
-            URL url = new URL(httpurl);
-            // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
-            connection = (HttpURLConnection) url.openConnection();
-            connection.setRequestProperty("schoolId","UUFM5TID45X");
-            connection.setRequestProperty("sign",sign);
-            connection.setRequestProperty("timestamp",String.format("%d",timestamp));
-            // 设置连接方式:get
-            connection.setRequestMethod("GET");
-            // 设置连接主机服务器的超时时间:15000毫秒
-            connection.setConnectTimeout(15000);
-            // 设置读取远程返回的数据时间:60000毫秒
-            connection.setReadTimeout(60000);
-            // 发送请求
-            connection.connect();
-            // 通过connection连接,获取输入流
-            if (connection.getResponseCode() == 200) {
-                is = connection.getInputStream();
-                // 封装输入流is,并指定字符集
-                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-                // 存放数据
-                StringBuffer sbf = new StringBuffer();
-                String temp = null;
-                while ((temp = br.readLine()) != null) {
-                    sbf.append(temp);
-                    sbf.append("\r\n");
-                }
-                result = sbf.toString();
-            }
-        } catch (MalformedURLException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            // 关闭资源
-            if (null != br) {
-                try {
-                    br.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            if (null != is) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            connection.disconnect();// 关闭远程连接
-        }
-        return result;
-    }
-
-    public static String doPost(String httpUrl, String param, String sign, Long timestamp) {
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        OutputStream os = null;
-        BufferedReader br = null;
-        String result = null;
-        OutputStreamWriter writer = null;
-        try {
-            URL url = new URL(httpUrl);
-            // 通过远程url连接对象打开连接
-            connection = (HttpURLConnection) url.openConnection();
-            connection.setRequestProperty("schoolId","UUFM5TID45X");
-            connection.setRequestProperty("sign",sign);
-            connection.setRequestProperty("timestamp",String.format("%d",timestamp));
-            // 设置连接请求方式
-            connection.setRequestMethod("POST");
-            // 设置连接主机服务器超时时间:15000毫秒
-            connection.setConnectTimeout(15000);
-            // 设置读取主机服务器返回数据超时时间:60000毫秒
-            connection.setReadTimeout(60000);
-            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
-            connection.setDoOutput(true);
-            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
-            connection.setDoInput(true);
-            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
-            connection.setRequestProperty("Content-Type", "application/json");
-            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
-//            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
-            writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
-            //body参数放这里
-            writer.write(param);
-            writer.flush();
-
-            writer.close();
-            // 通过连接对象获取一个输出流
-//            os = connection.getOutputStream();
-//            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
-//            os.write(param.getBytes());
-            // 通过连接对象获取一个输入流,向远程读取
-            if (connection.getResponseCode() == 200) {
-                is = connection.getInputStream();
-                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
-                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-                StringBuffer sbf = new StringBuffer();
-                String temp = null;
-                // 循环遍历一行一行读取数据
-                while ((temp = br.readLine()) != null) {
-                    sbf.append(temp);
-                    sbf.append("\r\n");
-                }
-                result = sbf.toString();
-            }else{
-                is = connection.getInputStream();
-                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
-                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-                StringBuffer sbf = new StringBuffer();
-                String temp = null;
-                // 循环遍历一行一行读取数据
-                while ((temp = br.readLine()) != null) {
-                    sbf.append(temp);
-                    sbf.append("\r\n");
-                }
-                System.out.println(sbf.toString());
-            }
-        } catch (MalformedURLException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            // 关闭资源
-            if (null != br) {
-                try {
-                    br.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            if (null != os) {
-                try {
-                    os.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            if (null != is) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            // 断开与远程地址url的连接
-            connection.disconnect();
-        }
-        return result;
-    }
-
-    public static String doPost(String httpUrl) {
-        HttpURLConnection connection = null;
-        InputStream is = null;
-        OutputStream os = null;
-        BufferedReader br = null;
-        String result = null;
-        OutputStreamWriter writer = null;
-        try {
-            URL url = new URL(httpUrl);
-            // 通过远程url连接对象打开连接
-            connection = (HttpURLConnection) url.openConnection();
-            connection.setRequestProperty("schoolId","UUFM5TID45X");
-            // 设置连接请求方式
-            connection.setRequestMethod("POST");
-            // 设置连接主机服务器超时时间:15000毫秒
-            connection.setConnectTimeout(15000);
-            // 设置读取主机服务器返回数据超时时间:60000毫秒
-            connection.setReadTimeout(60000);
-            // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
-            connection.setDoOutput(true);
-            // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
-            connection.setDoInput(true);
-            // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
-            connection.setRequestProperty("Content-Type", "application/json");
-            // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
-//            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
-            writer = new OutputStreamWriter(connection.getOutputStream(),"UTF-8");
-            //body参数放这里
-            writer.flush();
-
-            writer.close();
-            // 通过连接对象获取一个输出流
-//            os = connection.getOutputStream();
-//            // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
-//            os.write(param.getBytes());
-            // 通过连接对象获取一个输入流,向远程读取
-            if (connection.getResponseCode() == 200) {
-                is = connection.getInputStream();
-                // 对输入流对象进行包装:charset根据工作项目组的要求来设置
-                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-                StringBuffer sbf = new StringBuffer();
-                String temp = null;
-                // 循环遍历一行一行读取数据
-                while ((temp = br.readLine()) != null) {
-                    sbf.append(temp);
-                    sbf.append("\r\n");
-                }
-                result = sbf.toString();
-            }
-        } catch (MalformedURLException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            // 关闭资源
-            if (null != br) {
-                try {
-                    br.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            if (null != os) {
-                try {
-                    os.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            if (null != is) {
-                try {
-                    is.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-            // 断开与远程地址url的连接
-            connection.disconnect();
-        }
-        return result;
-    }
-}
+//}