Sfoglia il codice sorgente

feat:vip课教师正常考勤经纬度限制

Joburgess 4 anni fa
parent
commit
960c68a24f

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -34,6 +34,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      */
     public static final String ATTENDANCE_RANGE = "attendance_range";
 
+    String ATTENDANCE_RANGE_VIP = "attendance_range_vip";
+
     /**
      * 学生允许请假的时间,为开课前{}小时
      */

+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -186,6 +186,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 
         //是否在范围内
         boolean isInScore = true;
+        String teacherAttendanceMemo = null;
         if (Objects.nonNull(school)) {
             if (StringUtils.isBlank(school.getLongitudeLatitude())) {
                 if (studentAttendanceInfos.getUpdate().equals(YesOrNoEnum.YES.getCode())) {
@@ -193,12 +194,13 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
                     schoolDao.update(school);
                 }
             } else {
-                SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
+                SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
                 double attendanceRange = Double.valueOf(sysConfig.getParanValue());
                 double distance = MapUtil.distance(studentAttendanceInfos.getSignInLongitudeLatitude(),
                         school.getLongitudeLatitude());
                 if (distance > attendanceRange) {
                     isInScore = false;
+                    teacherAttendanceMemo = "打卡地点距离教学点" + distance + "米";
                 }
             }
         }
@@ -214,10 +216,11 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         }
 
         teacherAttendance.setSignInTime(courseSchedule.getStartClassTime());
-        teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+        teacherAttendance.setSignInStatus(isInScore?YesOrNoEnum.YES:YesOrNoEnum.NO);
         teacherAttendance.setSignOutTime(courseSchedule.getEndClassTime());
-        teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+        teacherAttendance.setSignOutStatus(isInScore?YesOrNoEnum.YES:YesOrNoEnum.NO);
         teacherAttendance.setCurrentClassTimes(classTimes + 1);
+        teacherAttendance.setRemark(teacherAttendanceMemo);
         if (Objects.nonNull(teacherAttendance.getId())) {
             teacherAttendanceDao.update(teacherAttendance);
         } else {