Joburgess 5 år sedan
förälder
incheckning
876d6cba55

+ 31 - 0
mec-web/src/main/java/com/ym/mec/web/dal/enums/ParamEnum.java

@@ -0,0 +1,31 @@
+package com.ym.mec.web.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/11
+ */
+public enum  ParamEnum implements BaseEnum<Integer, ParamEnum> {
+
+    TEACHER_ATTENDANCE_TIME_GAP(-20,"教师正常签到时差");
+
+    private Integer code;
+
+    private String desc;
+
+    private ParamEnum(Integer code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+}

+ 46 - 0
mec-web/src/main/java/com/ym/mec/web/dal/utilEntity/TeacherAttendanceViewUtilEntity.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.dal.utilEntity;
 
+import com.ym.mec.web.dal.enums.CourseStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
@@ -37,6 +38,51 @@ public class TeacherAttendanceViewUtilEntity {
     @ApiModelProperty(value = "乐团名称",required = false)
     private String musicGroupName;
 
+    @ApiModelProperty(value = "学校ID",required = false)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "学校地址",required = false)
+    private String address;
+
+    @ApiModelProperty(value = "学校经纬度",required = false)
+    private String longitudeAndLatitude;
+
+    /** 课程状态 */
+    @ApiModelProperty(value = "课程状态  NOT_START未开始,SIGN_IN已签到,SIGN_OUT已签退",required = false)
+    private CourseStatusEnum courseStatus;
+
+    public CourseStatusEnum getCourseStatus() {
+        return courseStatus;
+    }
+
+    public void setCourseStatus(CourseStatusEnum courseStatus) {
+        this.courseStatus = courseStatus;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getLongitudeAndLatitude() {
+        return longitudeAndLatitude;
+    }
+
+    public void setLongitudeAndLatitude(String longitudeAndLatitude) {
+        this.longitudeAndLatitude = longitudeAndLatitude;
+    }
+
     public Long getCourseScheduleId() {
         return courseScheduleId;
     }

+ 25 - 11
mec-web/src/main/java/com/ym/mec/web/service/impl/TeacherAttendanceServiceImpl.java

@@ -6,6 +6,9 @@ import com.ym.mec.web.dal.dao.CourseScheduleDao;
 import com.ym.mec.web.dal.dao.TeacherAttendanceDao;
 import com.ym.mec.web.dal.entity.CourseSchedule;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
+import com.ym.mec.web.dal.enums.CourseStatusEnum;
+import com.ym.mec.web.dal.enums.ParamEnum;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
 import com.ym.mec.web.service.TeacherAttendanceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,18 +33,29 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Override
 	public void addTeacherAttendanceRecord(TeacherAttendance teacherAttendance) {
 		CourseSchedule courseSchedule = courseScheduleDao.get(teacherAttendance.getCourseScheduleId());
-		StringBuilder startClassDateTimeString=new StringBuilder(new SimpleDateFormat("yyyy-MM-dd").format(courseSchedule.getClassDate()));
-		startClassDateTimeString.append(" ");
-		startClassDateTimeString.append(new SimpleDateFormat("HH:mm:dd").format(courseSchedule.getStartClassTime()));
-		Date startClassTime = null;
-		try {
-			startClassTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd")
-					.parse(startClassDateTimeString.toString());
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
 		Date date = new Date();
-		Long temp=(date.getTime()-startClassTime.getTime())/1000/60;
+		if(teacherAttendance.getStatus()!= YesOrNoEnum.YES_QUIT){
+			StringBuilder startClassDateTimeString=new StringBuilder(new SimpleDateFormat("yyyy-MM-dd").format(courseSchedule.getClassDate()));
+			startClassDateTimeString.append(" ");
+			startClassDateTimeString.append(new SimpleDateFormat("HH:mm:ss").format(courseSchedule.getStartClassTime()));
+			Date startClassTime = null;
+			try {
+				startClassTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+						.parse(startClassDateTimeString.toString());
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
+			Long timeGap=(date.getTime()-startClassTime.getTime())/1000/60;
+			if(timeGap<= ParamEnum.TEACHER_ATTENDANCE_TIME_GAP.getCode()){
+				teacherAttendance.setStatus(YesOrNoEnum.YES);
+			}else{
+				teacherAttendance.setStatus(YesOrNoEnum.NO);
+			}
+			courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
+		}else{
+			courseSchedule.setStatus(CourseStatusEnum.OVER);
+		}
+		courseScheduleDao.update(courseSchedule);
 		teacherAttendance.setSignInTime(date);
 		teacherAttendance.setCreateTime(date);
 		teacherAttendanceDao.insert(teacherAttendance);

+ 11 - 2
mec-web/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -99,11 +99,15 @@
         <result property="classDate" column="class_date_"/>
         <result property="startClassTime" column="start_class_time_"/>
         <result property="endClassTime" column="end_class_time_"/>
+        <result property="courseStatus" column="course_status_"/>
         <result property="classId" column="class_id"/>
         <result property="className" column="class_name"/>
         <result property="classType" column="class_type"/>
         <result property="musicGroupId" column="music_group_id"/>
         <result property="musicGroupName" column="music_group_name"/>
+        <result property="schoolId" column="school_id_"/>
+        <result property="address" column="address_"/>
+        <result property="longitudeAndLatitude" column="longitude_latitude_"/>
     </resultMap>
 
     <select id="getCurrentCourseDetail"
@@ -113,15 +117,20 @@
             cs.class_date_,
             cs.start_class_time_,
             cs.end_class_time_,
+            cs.status_ course_status_,
             cg.id_ class_id,
             cg.name_ class_name,
             cg.type_ class_type,
             mg.id_ music_group_id,
-            mg.name_ music_group_name
+            mg.name_ music_group_name,
+            s.id_ school_id_,
+            s.address_,
+            s.longitude_latitude_
         FROM
             course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+        LEFT JOIN school s ON mg.school_id_=s.id_
         WHERE
             DATE_FORMAT( class_date_, "%Y%m%d" ) = DATE_FORMAT( NOW(), "%Y%m%d" )
             AND cs.teacher_id_= #{teacherID}
@@ -153,6 +162,6 @@
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN `subject` s ON cg.subject_id_=s.id_
-        WHERE cgsm.class_group_id_=#{classID}
+        WHERE cgsm.class_group_id_=#{classID} AND cgsm.status_!="DROP_OUT"
     </select>
 </mapper>

+ 9 - 0
mec-web/src/test/java/com/ym/webApplicationTest.java

@@ -16,6 +16,8 @@ import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestTemplate;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -67,4 +69,11 @@ public class webApplicationTest
         sad.addStudentAttendances(sas);
     }
 
+    @Test
+    public void test2() throws ParseException {
+        System.out.println(new StringBuilder("2019-09-11 15:10:01").toString());
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:dd").parse("2019-09-11 15:10:01"));
+        System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(new StringBuilder("2019-09-11 15:10:01").toString()));
+    }
+
 }