Browse Source

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

dzx 1 year ago
parent
commit
6ead7e170f

+ 1 - 1
src/main/java/com/xjrsoft/module/courseTable/entity/CourseTable.java

@@ -33,7 +33,7 @@ public class CourseTable implements Serializable {
     private Long baseSemesterId;
 
     @ApiModelProperty("教师编号(用户表)")
-    private Long teacherId;
+    private String teacherId;
 
     @ApiModelProperty("教师名称")
     private String teacherName;

+ 4 - 4
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -158,7 +158,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             }
             XjrUser xjrUser = xjrUsersMap.get(item.getTeacherName());
             if (xjrUser != null) {
-                courseTable.setTeacherId(xjrUser.getId());
+                courseTable.setTeacherId(xjrUser.getId().toString());
             }
             if (item.getWeeksCn() != null) {
                 courseTable.setWeeks(WeekEnum.getCode(item.getWeeksCn()));
@@ -221,7 +221,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             int weeks = (int) Math.ceil((double) days / 7);
             if (dto.getWeek() == null) {
                 for (int i = 0; i < weeks; i++) {
-                    LocalDateTime startDate = startDateTime.plusDays(i * 6).withHour(0).withMinute(0).withSecond(0).withNano(0);
+                    LocalDateTime startDate = startDateTime.plusDays(i * 7).withHour(0).withMinute(0).withSecond(0).withNano(0);
                     LocalDateTime endDate = startDateTime.plusDays((i + 1) * 6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
                     if (now.isAfter(startDate) && now.isBefore(endDate)) {
                         tableVo.setWeek("第" + (i + 1) + "周");
@@ -230,7 +230,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     tableVo.setEndDate(endDate.toLocalDate());
                 }
             } else {
-                LocalDateTime startDate = startDateTime.plusDays((dto.getWeek() - 1) * 6).withHour(0).withMinute(0).withSecond(0).withNano(0);
+                LocalDateTime startDate = startDateTime.plusDays((dto.getWeek() - 1) * 7).withHour(0).withMinute(0).withSecond(0).withNano(0);
                 LocalDateTime endDate = startDateTime.plusDays(dto.getWeek() * 6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
                 dto.setStartDate(startDate);
                 dto.setEndDate(endDate);
@@ -387,7 +387,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
             for (String courseId : courseIds) {
                 CourseTable courseTable = courseTableMapper.selectById(courseId);
                 courseTable.setAdjustType(courseAdjust.getAdjustType());
-                courseTable.setTeacherId(courseAdjust.getExchangeTeacherId());
+                courseTable.setTeacherId(courseAdjust.getExchangeTeacherId().toString());
                 courseTableMapper.updateById(courseTable);
             }
 

+ 1 - 1
src/main/java/com/xjrsoft/module/databoard/controller/DataboardController.java

@@ -180,7 +180,7 @@ public class DataboardController {
         result.setAllCount(list.size());
         int teacherCount = 0, noTeacherCount = 0;
         for (CourseTable courseTable : list) {
-            if(courseTable.getTimePeriod() != null && courseTable.getTeacherId() != 0){
+            if(courseTable.getTimePeriod() != null && "0".equals(courseTable.getTeacherId())){
                 teacherCount ++;
             }else{
                 noTeacherCount ++;

+ 4 - 4
src/main/java/com/xjrsoft/module/databoard/controller/DatadetailController.java

@@ -643,8 +643,8 @@ public class DatadetailController {
     public RT<CourseStatisticsDetailVo> courseStatistics(@Valid StatisticsDetailDto dto) {
         CourseStatisticsDetailVo result = new CourseStatisticsDetailVo();
         String sql = "SELECT t1.id, t1.name,t4.name AS dept_name," +
-                " (SELECT GROUP_CONCAT(DISTINCT(course_name)) FROM course_table WHERE teacher_id = t1.id) AS course_names," +
-                " (SELECT COUNT(*) FROM course_table WHERE teacher_id = t1.id) AS course_count FROM xjr_user t1" +
+                " (SELECT GROUP_CONCAT(DISTINCT(course_name)) FROM course_table WHERE teacher_id like concat('%', t1.id,'%') ) AS course_names," +
+                " (SELECT COUNT(*) FROM course_table WHERE teacher_id like concat('%', t1.id,'%')) AS course_count FROM xjr_user t1" +
                 " INNER JOIN base_teacher t2 ON t1.id = t2.user_id" +
                 " INNER JOIN xjr_user_dept_relation t3 ON t1.id = t3.user_id" +
                 " INNER JOIN xjr_department t4 ON t3.dept_id = t4.id" +
@@ -659,7 +659,7 @@ public class DatadetailController {
         result.setCourseCountList(courseCountList);
         
         sql = "SELECT count(*) FROM course_table t1" +
-            " INNER JOIN base_teacher t2 ON t1.teacher_id = t2.user_id" +
+            " INNER JOIN base_teacher t2 ON t1.teacher_id like concat('%', t2.user_id,'%')" +
             " INNER JOIN xjr_user_dept_relation t3 ON t2.user_id = t3.user_id" +
             " INNER JOIN xjr_department t4 ON t4.id = t3.dept_id" +
             " WHERE t4.delete_mark = 0 AND t2.delete_mark = 0" +
@@ -667,7 +667,7 @@ public class DatadetailController {
         long allCourseCount = SqlRunnerAdapter.db().selectCount(sql);
         sql = "SELECT name,(" +
             " SELECT COUNT(*) FROM course_table t1" +
-            " INNER JOIN base_teacher t2 ON t1.teacher_id = t2.user_id" +
+            " INNER JOIN base_teacher t2 ON t1.teacher_id like concat('%', t2.user_id,'%')" +
             " INNER JOIN xjr_user_dept_relation t3 ON t2.user_id = t3.user_id" +
             " WHERE t3.dept_id = xjr_department.id" +
             " ) AS course_count FROM xjr_department WHERE is_major = 1";

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

@@ -45,6 +45,9 @@ public class JianyuekbScheduleTask {
         }
         String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback IS NULL";
         List<Map<String, Object>> receiveMsgs = SqlRunnerAdapter.db().selectList(sql);
+        if(receiveMsgs.isEmpty()){
+            return;
+        }
         JsonArray allScheduleInfo = new JsonArray();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DataUtil dataUtil = new DataUtil();

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

@@ -337,7 +337,7 @@ public class ScheduleController {
         int weeks = (int) Math.ceil((double) days / 7);
         List<ScheduleWeekVo> result = new ArrayList<>();
         for (int i = 0; i < weeks; i++) {
-            LocalDateTime startDate = startDateTime.plusDays(i * 6).withHour(0).withMinute(0).withSecond(0).withNano(0);
+            LocalDateTime startDate = startDateTime.plusDays(i * 7).withHour(0).withMinute(0).withSecond(0).withNano(0);
             LocalDateTime endDate = startDateTime.plusDays((i + 1) * 6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
             int week = i + 1;
             result.add(

+ 27 - 8
src/main/java/com/xjrsoft/module/schedule/util/DataUtil.java

@@ -654,21 +654,32 @@ public class DataUtil {
             String scheduleDate = asJsonObject.get("scheduleDate").getAsString();
             String courseClassId = coureseMap.get(asJsonObject.get("courseClassId").getAsString());
             String courseClassName = asJsonObject.get("courseClassName").getAsString();
+            List<String> teacherIds = new ArrayList<>();
+            List<String> teacherNames = new ArrayList<>();
+            List<String> teacher_serial_nos = new ArrayList<>();
+            for (JsonElement teacher : teachers) {
+                JsonObject teacherJson = teacher.getAsJsonObject();
+                teacherIds.add(teacherMap.get(teacherJson.get("teacherSerialNo").getAsString())==null?"0":teacherMap.get(teacherJson.get("teacherSerialNo").getAsString()));
+                teacherNames.add(teacherJson.get("name").getAsString());
+                teacher_serial_nos.add(teacherJson.get("teacherSerialNo").getAsString());
+            }
             String teacherId = "0";
+            if(!teacherIds.isEmpty()){
+                teacherId = teacherIds.toString().replace("[", "").replace("]", "");
+            }
             String teacherName = "";
+            if(!teacherNames.isEmpty()){
+                teacherName = teacherNames.toString().replace("[", "").replace("]", "");
+            }
             String teacher_serial_no = "";
-            if(teachers.size() > 0){
-                JsonObject teacherJson = teachers.get(0).getAsJsonObject();
-                teacherId = (teacherMap.get(teacherJson.get("teacherSerialNo").getAsString())==null?"0":teacherMap.get(teacherJson.get("teacherSerialNo").getAsString()));
-                teacherName = teacherJson.get("name").getAsString();
-                teacher_serial_no = teacherJson.get("teacherSerialNo").getAsString();
+            if(!teacher_serial_nos.isEmpty()){
+                teacher_serial_no = teacher_serial_nos.toString().replace("[", "").replace("]", "");
             }
-
             String onlyKey = scheduleDate + classId + timeNumber;
             if(oldDataMap.get(onlyKey) != null){
                 String updSql = "update course_table set teacher_serial_no = '" + teacher_serial_no + "'" +
-                        ", teacher_id = " + teacherId
-                        + ", teacher_name = '" + teacherName + "', modify_date = now()" +
+                        ", teacher_id = '" + teacherId
+                        + "', teacher_name = '" + teacherName + "', modify_date = now()" +
                         " ,course_id = " + courseClassId + ", course_name = '" + courseClassName + "'" +
                         " where schedule_date = '" + scheduleDate + "'and class_id = " + classId + " and time_number = " + timeNumber + ";";
                 updateSqlList.add(updSql);
@@ -748,6 +759,14 @@ public class DataUtil {
                     + " and number = " + timeNumber + ")";
 //            sqls.add(sql);
             SqlRunnerAdapter.db().insert(sql);
+
+            String updSql = "update class_time set" +
+                    " summer_start_time = '" +jsonObject.get("startTime").getAsString()  + "'," +
+                    " summer_end_time = '" + jsonObject.get("endTime").getAsString() + "'," +
+                    " winter_start_time = '" + jsonObject.get("startTime").getAsString() + "'," +
+                    " winter_end_time = '" + jsonObject.get("endTime").getAsString() + "'" +
+                    " WHERE time_period = " + jsonObject.get("tmePeriod").getAsInt() + " and number = " + timeNumber;
+            SqlRunnerAdapter.db().insert(updSql);
             count ++;
         }
     }

+ 4 - 7
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -4,8 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xjrsoft.module.courseTable.mapper.CourseTableMapper">
     <select id="getList" parameterType="com.xjrsoft.module.schedule.dto.CourseTableDto" resultType="com.xjrsoft.module.schedule.vo.CourseDetailVo">
-        SELECT t1.course_name, t2.name AS teacher_name,CONCAT(t4.name,t3.name) AS classroom_name,t1.weeks,t1.time_period,t1.time_number,t5.name as class_name,t1.schedule_date,t1.adjust_type FROM course_table t1
-        LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
+        SELECT t1.course_name, t1.teacher_name,CONCAT(t4.name,t3.name) AS classroom_name,t1.weeks,t1.time_period,t1.time_number,t5.name as class_name,t1.schedule_date,t1.adjust_type FROM course_table t1
         LEFT JOIN base_classroom t3 ON t1.site_id = t3.id
         LEFT JOIN base_office_build t4 ON t3.office_build_id = t4.id
         LEFT JOIN base_class t5 ON t1.class_id = t5.id
@@ -18,10 +17,8 @@
         <if test="dto.weekDay != null">
             and t1.weeks = #{dto.weekDay}
         </if>
-        <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'teacher'">
-            <if test="dto.teacherId != null ">
-                and t1.teacher_id = #{dto.teacherId}
-            </if>
+        <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'teacher' and dto.teacherId != null">
+            and t1.teacher_id like concat('%', #{dto.teacherId}, '%')
         </if>
 
         <if test="dto.courseType != null and dto.courseType != '' and dto.courseType == 'class'">
@@ -42,7 +39,7 @@
             and t1.schedule_date = #{dto.toDay}
         </if>
         <if test="dto.teacherId != null">
-            and t1.teacher_id = #{dto.teacherId}
+            and t1.teacher_id like concat('%', #{dto.teacherId}, '%')
         </if>
         <if test="dto.classId != null">
             and t5.id = #{dto.classId}

+ 4 - 1
src/test/java/com/xjrsoft/module/job/JianyuekbScheduleTaskTest.java

@@ -49,6 +49,9 @@ class JianyuekbScheduleTaskTest {
         String active = SpringUtil.getActiveProfile();
         String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback IS NULL";
         List<Map<String, Object>> receiveMsgs = SqlRunnerAdapter.db().selectList(sql, CourseReceiveMsg.class);
+        if(receiveMsgs.isEmpty()){
+            return;
+        }
         JsonArray allScheduleInfo = new JsonArray();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DataUtil dataUtil = new DataUtil();
@@ -105,7 +108,7 @@ class JianyuekbScheduleTaskTest {
             updSql = "update course_receive_msg set is_callback = 1 where id = " + receiveMsg.get("id").toString();
             SqlRunnerAdapter.db().update(updSql);
         }
-//        doExecute(allScheduleInfo);
+        doExecute(allScheduleInfo);
     }
 
     void doExecute(JsonArray scheduleInfo){