Ver código fonte

老师考勤

zouxuan 2 anos atrás
pai
commit
4cb98d8bcc

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceDto.java

@@ -10,22 +10,22 @@ import java.util.Date;
 @Data
 public class TeacherAttendanceDto {
     @ApiModelProperty(value = "签到状态:0异常,1正常")
-    private YesOrNoEnum signInStatus;
+    private Boolean signInStatus = false;
 
     @ApiModelProperty(value = "签到时间")
     private Date signInTime;
 
     @ApiModelProperty(value = "签退状态:0异常,1正常")
-    private YesOrNoEnum signOutStatus;
+    private Boolean signOutStatus = false;
 
     @ApiModelProperty(value = "签退时间")
     private Date signOutTime;
 
     @ApiModelProperty(value = "教学点签到状态")
-    private YesOrNoEnum signInAddressStatus;
+    private Boolean signInAddressStatus = false;
 
     @ApiModelProperty(value = "教学点签退状态")
-    private YesOrNoEnum signOutAddressStatus;
+    private Boolean signOutAddressStatus = false;
 
     @ApiModelProperty(value = "签到经纬度")
     private String signInLongitudeLatitude;

+ 22 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -1164,10 +1164,16 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		String attendanceRange = sysTenantConfigService.getTenantConfigValue(SysConfigService.ATTENDANCE_RANGE,tenantId);
 		if(CollectionUtils.isNotEmpty(attendanceDtos)){
 			for (TeacherAttendanceListDto attendanceDto : attendanceDtos) {
-				boolean signRange = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignInLongitudeLatitude(), attendanceRange);
-				attendanceDto.setSignInAddressStatus(signRange?YesOrNoEnum.YES:YesOrNoEnum.NO);
-				boolean signRange1 = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignOutLongitudeLatitude(), attendanceRange);
-				attendanceDto.setSignOutAddressStatus(signRange1?YesOrNoEnum.YES:YesOrNoEnum.NO);
+				if(attendanceDto.getTeachMode() == TeachModeEnum.OFFLINE){
+					if(StringUtils.isNotEmpty(attendanceDto.getSignInLongitudeLatitude())){
+						boolean signRange = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignInLongitudeLatitude(), attendanceRange);
+						attendanceDto.setSignInAddressStatus(signRange);
+					}
+					if(StringUtils.isNotEmpty(attendanceDto.getSignOutLongitudeLatitude())){
+						boolean signRange1 = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignOutLongitudeLatitude(), attendanceRange);
+						attendanceDto.setSignOutAddressStatus(signRange1);
+					}
+				}
 			}
 		}
 		return attendanceDtos;
@@ -1176,14 +1182,18 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Override
 	public com.ym.mec.biz.dal.school.dto.TeacherAttendanceDto getCourseTeacherAttendance(Long courseId, Integer teacherId) {
 		com.ym.mec.biz.dal.school.dto.TeacherAttendanceDto attendanceDto = teacherAttendanceDao.getCourseTeacherAttendance(courseId,teacherId);
-		Integer tenantId = TenantContextHolder.getTenantId();
-		//计算考勤范围
-		//定位范围
-		String attendanceRange = sysTenantConfigService.getTenantConfigValue(SysConfigService.ATTENDANCE_RANGE,tenantId);
-		boolean signRange = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignInLongitudeLatitude(), attendanceRange);
-		attendanceDto.setSignInAddressStatus(signRange?YesOrNoEnum.YES:YesOrNoEnum.NO);
-		boolean signRange1 = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignOutLongitudeLatitude(), attendanceRange);
-		attendanceDto.setSignOutAddressStatus(signRange1?YesOrNoEnum.YES:YesOrNoEnum.NO);
+		if(attendanceDto.getTeachMode() == TeachModeEnum.OFFLINE){
+			Integer tenantId = TenantContextHolder.getTenantId();
+			String attendanceRange = sysTenantConfigService.getTenantConfigValue(SysConfigService.ATTENDANCE_RANGE,tenantId);
+			if(StringUtils.isNotEmpty(attendanceDto.getSignInLongitudeLatitude())){
+				boolean signRange = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignInLongitudeLatitude(), attendanceRange);
+				attendanceDto.setSignInAddressStatus(signRange);
+			}
+			if(StringUtils.isNotEmpty(attendanceDto.getSignOutLongitudeLatitude())){
+				boolean signRange1 = courseScheduleTeacherSalaryService.getSignRange(attendanceDto.getSchoolLongitudeLatitude(), attendanceDto.getSignOutLongitudeLatitude(), attendanceRange);
+				attendanceDto.setSignOutAddressStatus(signRange1);
+			}
+		}
 		return attendanceDto;
 	}
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -133,7 +133,7 @@
                 #{delFlag}, #{paymentValidStartDate}, #{paymentValidEndDate}, #{paymentPattern},
                 #{courseViewType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{transactionTeacherId},#{homeworkPushFlag},#{memberCourseShowFlag},#{tenantId},#{isGiveAccessories},
                 #{extracurricularTeacher,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{firstCourseStartTime},
-                #{musicGroupPlanMakingId},#{firstRecruitGrade},#{defaultChargeStandard},#{singleTrainMinutes},#{coursePlan},#{saleActivityDesc},#{graduateGrade},#{basicStudentNum},#{paymentUserType},#{chargeMode}.#{gradeType})
+                #{musicGroupPlanMakingId},#{firstRecruitGrade},#{defaultChargeStandard},#{singleTrainMinutes},#{coursePlan},#{saleActivityDesc},#{graduateGrade},#{basicStudentNum},#{paymentUserType},#{chargeMode},#{gradeType})
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -674,7 +674,7 @@
         from course_schedule cs
         left join teacher_attendance ta ON cs.id_ = ta.course_schedule_id_ AND ta.teacher_id_ = cs.actual_teacher_id_
         left join school s ON s.id_ = cs.schoole_id_
-        where cs.class_group_id_ = #{classGroupId} and cs.actual_teacher_id_ = #{teacherId}
+        where cs.class_group_id_ = #{classGroupId} and cs.actual_teacher_id_ = #{teacherId} AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &lt; NOW()
         AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
     </select>
     <select id="getCourseTeacherAttendance" resultType="com.ym.mec.biz.dal.school.dto.TeacherAttendanceDto">