Browse Source

课表同步调整

dzx 1 year ago
parent
commit
54d5b53821

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

@@ -375,11 +375,15 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                         .eq(CourseTableBak::getWfCourseAdjustId, courseAdjust.getId())
         );
         String[] courseIds = courseAdjust.getCourseId().split(",");
+
+        ArrayList<String> courseIdList = new ArrayList<>(Arrays.asList(courseIds));
+
         String[] exchangeCourseIds = null;
         int courseCount = courseIds.length;
         if (CourseAdjustTypeEnum.courseExchange.getCode().equals(courseAdjust.getAdjustType())) {
             exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
             courseCount += exchangeCourseIds.length;
+            courseIdList.addAll(Arrays.asList(exchangeCourseIds));
         }
 
         if(list.isEmpty() || list.size() != courseCount){

+ 3 - 3
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -103,12 +103,12 @@
         AND (t1.adjust_type = 'course_exchange' OR t1.adjust_type = 'course_replace' OR t1.adjust_type IS NULL)
     </select>
     <select id="getSubstituteTeacherCourseCountByParams" parameterType="com.xjrsoft.module.courseTable.dto.ClassTeacherDto" resultType="java.lang.Integer">
-        SELECT COUNT(t1.*) FROM course_table t1
+        SELECT COUNT(t1.id) FROM course_table t1
         INNER JOIN course_table_bak t2 ON t1.schedule_date = t2.schedule_date
         AND t1.time_number = t2.time_number
         AND t1.time_period = t2.time_number
-        WHERE t1.wf_course_adjust_id = #{dto.wfCourseAdjustId}
-        AND t1.teacher_id LIKE concat('', #{dto.teacherId},'') AND t1.adjust_type IS NULL;
+        WHERE t2.wf_course_adjust_id = #{dto.wfCourseAdjustId}
+        AND t1.teacher_id LIKE concat('%', #{dto.teacherId},'%') AND t1.adjust_type IS NULL;
     </select>
 
 

+ 11 - 6
src/test/java/com/xjrsoft/module/job/JianyuekbScheduleTaskTest2.java

@@ -20,6 +20,7 @@ import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.config.CommonPropertiesConfig;
 import com.xjrsoft.module.base.entity.BaseClass;
 import com.xjrsoft.module.base.service.IBaseClassService;
+import com.xjrsoft.module.courseTable.dto.ClassTeacherDto;
 import com.xjrsoft.module.courseTable.entity.CourseTable;
 import com.xjrsoft.module.courseTable.service.ICourseTableService;
 import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
@@ -137,7 +138,7 @@ class JianyuekbScheduleTaskTest2 {
         doExecute();
     }
     public void doExecute() {
-        String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback is null";
+        String sql = "SELECT * FROM course_receive_msg WHERE delete_mark = 0 AND is_callback = -1";
         List<Map<String, Object>> receiveMsgs = SqlRunnerAdapter.db().selectList(sql);
         if(receiveMsgs.isEmpty()){
             return;
@@ -316,7 +317,7 @@ class JianyuekbScheduleTaskTest2 {
                         .select(WfCourseAdjust.class, x -> VoToColumnUtil.fieldsToColumns(WfCourseAdjust.class).contains(x.getProperty()))
                         .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, WfCourseAdjust::getId)
                         .in(!courseAdjustIds.isEmpty(), WfCourseAdjust::getId, courseAdjustIds)
-                        .between(WfCourseAdjust::getAdjustDate, startDate, endDate)
+                        .and(wq -> wq.between(WfCourseAdjust::getAdjustDate, startDate, endDate).or().between(WfCourseAdjust::getExchangeDate, startDate, endDate))
                         .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
         );
         List<WfCourseAdjust> cancelList = new ArrayList<>();//需要作废的申请
@@ -335,9 +336,6 @@ class JianyuekbScheduleTaskTest2 {
         }
 
         for (WfCourseAdjust courseAdjust : list) {
-            if(courseAdjust.getUserId() == 14954805813957L){
-                System.out.println(courseAdjust.getId());
-            }
             List<CourseTable> courseList = courseTableService.list(
                     new MPJLambdaWrapper<CourseTable>()
                             .select(CourseTable::getId)
@@ -353,7 +351,14 @@ class JianyuekbScheduleTaskTest2 {
                 exchangeCourseIds = courseAdjust.getExchangeCourseId().split(",");
                 courseCount += exchangeCourseIds.length;
             }
-            if(courseList.size() != courseCount){
+            Integer substituteTeacherCourseCount = courseTableService.getSubstituteTeacherCourseCountByParams(new ClassTeacherDto() {{
+                setWfCourseAdjustId(courseAdjust.getId());
+                setTeacherId(courseAdjust.getExchangeTeacherId());
+            }});
+            if(courseAdjust.getId() == 1865923439122493440L){
+                System.out.println(courseAdjust.getId());
+            }
+            if(courseList.size() != courseCount || substituteTeacherCourseCount > 0){
                 //表明课程变化了,需要重新申请,需要将原来的申请作废并进行微信消息通知
                 courseAdjust.setEnabledMark(EnabledMark.DISABLED.getCode());