Преглед на файлове

1、开学报到调整
2、增加时间比较方法

dzx преди 9 месеца
родител
ревизия
2ada8ab311

+ 13 - 0
src/main/java/com/xjrsoft/common/utils/LocalDateTimeUtil.java

@@ -134,4 +134,17 @@ public final class LocalDateTimeUtil {
         String[] array = timeStr.split(StringPool.COLON);
         return LocalTime.of(Integer.parseInt(array[0]), Integer.parseInt(array[1]), Integer.parseInt(array[2]));
     }
+
+
+    /**
+     * 检查是否targetDateTime是否在时间段内(包含开始时间和结束时间)
+     * @param targetDateTime 需要检查的时间
+     * @param startDateTime 时间段开始时间
+     * @param endDateTime 时间段结束时间
+     * @return true:包含在该时间段内,false:不包含在该时间段内
+     */
+    public static boolean isDateTimeInRange(LocalDateTime targetDateTime, LocalDateTime startDateTime, LocalDateTime endDateTime) {
+        // 检查目标日期是否在开始日期和结束日期之间(包含边界)
+        return !targetDateTime.isBefore(startDateTime) && !targetDateTime.isAfter(endDateTime);
+    }
 }

+ 22 - 0
src/main/java/com/xjrsoft/common/utils/LocalDateUtil.java

@@ -0,0 +1,22 @@
+package com.xjrsoft.common.utils;
+
+import java.time.LocalDate;
+
+/**
+ * @author dzx
+ * @date 2025/2/11
+ */
+public class LocalDateUtil {
+
+    /**
+     * 检查是否targetDate是否在时间段内(包含开始日期和结束日期)
+     * @param targetDate 需要检查的日期
+     * @param startDate 时间段开始日期
+     * @param endDate 时间段结束日期
+     * @return true:包含在该时间段内,false:不包含在该时间段内
+     */
+    public static boolean isDateInRange(LocalDate targetDate, LocalDate startDate, LocalDate endDate) {
+        // 检查目标日期是否在开始日期和结束日期之间(包含边界)
+        return !targetDate.isBefore(startDate) && !targetDate.isAfter(endDate);
+    }
+}

+ 2 - 1
src/main/java/com/xjrsoft/module/student/service/impl/StudentReportRecordServiceImpl.java

@@ -10,6 +10,7 @@ import com.xjrsoft.common.enums.EnabledMark;
 import com.xjrsoft.common.enums.StudentChangeTypeEnum;
 import com.xjrsoft.common.enums.StudyStatusEnum;
 import com.xjrsoft.common.exception.MyException;
+import com.xjrsoft.common.utils.LocalDateUtil;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.student.dto.StudentReportRecordPageDto;
@@ -163,7 +164,7 @@ public class StudentReportRecordServiceImpl extends MPJBaseServiceImpl<StudentRe
         LocalDate now = LocalDate.now();
         StudentReportRecord record = this.getById(dto.getId());
         StudentReportPlan reportPlan = planMapper.selectById(record.getStudentReportPlanId());
-        if(!(now.isAfter(reportPlan.getUpdateStartTime()) && now.isBefore(reportPlan.getUpdateEndTime())) || !now.equals(reportPlan.getUpdateStartTime()) || !now.equals(reportPlan.getUpdateEndTime())){
+        if(!LocalDateUtil.isDateInRange(now, reportPlan.getUpdateStartTime(), reportPlan.getUpdateEndTime())){
             throw new MyException("不在修改时间内,无法修改");
         }
 

+ 3 - 3
src/main/resources/mapper/student/BaseStudentSchoolRollMapper.xml

@@ -48,7 +48,7 @@
         LEFT JOIN room t15 ON t14.room_id = t15.id
         LEFT JOIN base_office_build t16 ON t15.office_build_id = t16.id
         WHERE t2.delete_mark = 0
-        AND t1.delete_mark = 0
+        AND t1.delete_mark = 0 and t1.is_normal = 1
         AND t3.archives_status = 'FB2901'
         <if test="dto.gradeId != null">
             AND t4.grade_id = #{dto.gradeId}
@@ -137,7 +137,7 @@
         LEFT JOIN xjr_user t5 ON t4.teacher_id = t5.id
         LEFT JOIN base_student_family_member t6 ON t6.user_id = t2.id AND t6.delete_mark = 0 AND t6.is_guardian = 1
         WHERE t2.delete_mark = 0
-        AND t1.delete_mark = 0
+        AND t1.delete_mark = 0 and t1.is_normal = 1
         and t3.archives_status = 'FB2901'
         <if test="dto.gradeId != null">
             and t4.grade_id = #{dto.gradeId}
@@ -170,7 +170,7 @@
         LEFT JOIN xjr_user t5 ON t4.teacher_id = t5.id
         LEFT JOIN base_student_family_member t6 ON t6.user_id = t2.id AND t6.delete_mark = 0 AND t6.is_guardian = 1
         WHERE t2.delete_mark = 0
-        AND t1.delete_mark = 0
+        AND t1.delete_mark = 0 and t1.is_normal = 1
         and t3.archives_status = 'FB2901'
         <if test="dto.gradeId != null">
             and t4.grade_id = #{dto.gradeId}

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

@@ -352,7 +352,9 @@ class JianyuekbBaseDataTaskTest {
             paramJson.addProperty("semesterSerialNo", currenSemeter);
             paramJson.addProperty("eduYearSerialNo", gradeMap.get(baseClass.getOrgId() + "_" + baseClass.getGradeId().toString()));
             paramJson.addProperty("extendId", baseClass.getId());
-            paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId().toString()));
+            if(baseClass.getClassroomId() != null){
+                paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId().toString()));
+            }
             paramJson.addProperty("serialNo", classMap3.get(baseClass.getId().toString()));
             paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.getTeacherId().toString()));
 
@@ -565,13 +567,12 @@ class JianyuekbBaseDataTaskTest {
             jianyueIds.add("'" + object.get("serialNo").getAsString() + "'");
         }
 
-        DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
-        Db use = Db.use(datasource);
+
         String sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_class' and jianyue_id in (" + jianyueIds.toString().replace("[","").replace("]","") + ")";
-        List<JianyueData> classList = use.query(sql, JianyueData.class);
+        List<Map<String, Object>> classList = SqlRunnerAdapter.db().selectList(sql);
         Map<String, String> classJianyueSourceMap = new HashMap<>();
-        for (JianyueData jianyueData : classList) {
-            classJianyueSourceMap.put(jianyueData.getJianyueId(), jianyueData.getSourceId());
+        for (Map<String, Object> jianyueData : classList) {
+            classJianyueSourceMap.put(jianyueData.get("jianyue_id").toString(), jianyueData.get("source_id").toString());
         }
 
         url  = ScheduleUtil.apiUrl + "class/update";
@@ -586,49 +587,49 @@ class JianyuekbBaseDataTaskTest {
         doPost = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
 
         sql = "SELECT * FROM base_class WHERE delete_mark = 0 and is_graduate = 1";
-        List<BaseClass> dataList = use.query(sql, BaseClass.class);
-        Map<String, BaseClass> classMap = new HashMap<>();
-        for (BaseClass baseClass : dataList) {
-            classMap.put(baseClass.getId().toString(), baseClass);
+        List<Map<String, Object>> dataList = SqlRunnerAdapter.db().selectList(sql);
+        Map<String, Map<String, Object>> classMap = new HashMap<>();
+        for (Map<String, Object> baseClass : dataList) {
+            classMap.put(baseClass.get("id").toString(), baseClass);
         }
 
         sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_classroom'";
-        List<JianyueData> classroomList = use.query(sql, JianyueData.class);
+        List<Map<String, Object>> classroomList = SqlRunnerAdapter.db().selectList(sql);
         Map<String, String> classroomMap = new HashMap<>();
-        for (JianyueData jianyueData : classroomList) {
-            classroomMap.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
+        for (Map<String, Object> jianyueData : classroomList) {
+            classroomMap.put(jianyueData.get("source_id").toString(), jianyueData.get("jianyue_id").toString());
         }
 
         sql = "SELECT * FROM jianyue_data WHERE table_name = 'base_teacher'";
-        List<JianyueData> teacherList = use.query(sql, JianyueData.class);
+        List<Map<String, Object>> teacherList = SqlRunnerAdapter.db().selectList(sql);
         Map<String, String> teacherMap = new HashMap<>();
-        for (JianyueData jianyueData : teacherList) {
-            teacherMap.put(jianyueData.getSourceId(), jianyueData.getJianyueId());
+        for (Map<String, Object> jianyueData : teacherList) {
+            teacherMap.put(jianyueData.get("source_id").toString(), jianyueData.get("jianyue_id").toString());
         }
 
         url  = ScheduleUtil.apiUrl + "class/update";
 
 
         for (String jianyueId : classJianyueSourceMap.keySet()) {
-            BaseClass baseClass = classMap.get(classJianyueSourceMap.get(jianyueId));
+            Map<String, Object> baseClass = classMap.get(classJianyueSourceMap.get(jianyueId));
             if(baseClass == null){
                 continue;
             }
             paramJson = new JsonObject();
-            paramJson.addProperty("name", baseClass.getName());
+            paramJson.addProperty("name", baseClass.get("name").toString());
 
             paramJson.addProperty("semesterSerialNo", currenSemeter);
-            paramJson.addProperty("extendId", baseClass.getId());
-            paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.getClassroomId().toString()));
+            paramJson.addProperty("extendId", baseClass.get("id").toString());
+            paramJson.addProperty("classRoomSerialNo", classroomMap.get(baseClass.get("classroom_id").toString()));
             paramJson.addProperty("serialNo", jianyueId);
-            paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.getTeacherId().toString()));
+            paramJson.addProperty("teacherSerialNo", teacherMap.get(baseClass.get("teacher_id").toString()));
 
             timestamp = System.currentTimeMillis();
             //生成签名
             sign = ScheduleUtil.createSign(timestamp);
             String result = ScheduleUtil.doPost(url, paramJson.toString(), sign, timestamp);
 
-            System.out.println(baseClass.getName() + " -> " + result);
+            System.out.println(baseClass.get("name").toString() + " -> " + result);
         }
     }
 }