Forráskód Böngészése

网络教室优化,考勤申述优化,考勤审批优化

zouxuan 4 éve
szülő
commit
27348aa052

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -266,4 +266,11 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
      * @return java.lang.Long
      */
 	Long findFirstSign(@Param("currentScheduleId") Long currentScheduleId, @Param("userId") Integer userId);
+
+	/**
+	 * 获取指定天数之后还没有审批的考勤申述列表
+	 * @param affirmDay
+	 * @return
+	 */
+	List<TeacherAttendance> queryAttendanceComplaintsAutoAffirmList(@Param("affirmDay") String affirmDay);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceComplaintsDto.java

@@ -40,6 +40,16 @@ public class TeacherAttendanceComplaintsDto{
 
     private String disposeContent;
 
+    private String url;
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
     public UpdateAttendanceEnum getUpdateAttendanceEnum() {
         return updateAttendanceEnum;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -99,6 +99,17 @@ public class TeacherAttendance {
 	@ApiModelProperty(value = "签退备注")
 	private String signOutRemark;
 
+	@ApiModelProperty(value = "考勤申述凭证")
+	private String url;
+
+	public String getUrl() {
+		return url;
+	}
+
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
 	public UpdateAttendanceEnum getUpdateAttendanceEnum() {
 		return updateAttendanceEnum;
 	}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java

@@ -186,4 +186,10 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 * @param teacherAttendanceId
 	 */
 	void rejectTeacherAttendanceComplaints(long teacherAttendanceId,String content);
+
+	/**
+	 * @author zouxuan
+	 * 考勤申述7天未处理默认同意
+	 */
+	void attendanceComplaintsAutoAffirmTask();
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -814,4 +814,18 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			throw new BizException("操作失败: 当前申述状态不允许该操作");
 		}
 	}
+
+	@Override
+	public void attendanceComplaintsAutoAffirmTask() {
+		String affirmDay = sysConfigDao.findConfigValue("attendanceComplaintsAutoAffirmDay");
+		if(StringUtils.isEmpty(affirmDay)){
+			affirmDay = "7";
+		}
+		List<TeacherAttendance> teacherAttendances = teacherAttendanceDao.queryAttendanceComplaintsAutoAffirmList(affirmDay);
+		teacherAttendances.forEach(e->{
+			e.setComplaintsStatus(ComplaintsStatusEnum.PASS);
+			e.setRemark("系统自动审核通过");
+		});
+//		teacherAttendanceDao.batchUpdate(teacherAttendances);
+	}
 }

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

@@ -33,6 +33,7 @@
         <result column="current_schedule_id_" property="currentScheduleId"/>
         <result column="sign_out_attachments_" property="signOutAttachments"/>
         <result column="sign_out_remark_" property="signOutRemark"/>
+        <result column="url_" property="url"/>
     </resultMap>
     
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -57,12 +58,12 @@
         INSERT INTO teacher_attendance
         (group_type_,teacher_id_,music_group_id_,class_group_id_,course_schedule_id_,sign_in_time_,sign_in_status_,remark_,create_time_,sign_out_time_,
         sign_out_status_,current_class_times_,sign_in_longitude_latitude_,sign_out_longitude_latitude_,current_schedule_id_,sign_out_attachments_,
-        sign_out_remark_,update_attendance_type_)
+        sign_out_remark_,update_attendance_type_,url_)
         VALUES(#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{teacherId},
         #{musicGroupId},#{classGroupId},#{courseScheduleId},#{signInTime},#{signInStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{remark},
         now(),#{signOutTime},#{signOutStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{currentClassTimes},#{signInLongitudeLatitude},#{signOutLongitudeLatitude},#{currentScheduleId},#{signOutAttachments},#{signOutRemark},
-        #{updateAttendanceEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+        #{updateAttendanceEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{url})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.TeacherAttendance" useGeneratedKeys="true"
@@ -70,7 +71,7 @@
         INSERT INTO teacher_attendance
         (group_type_,teacher_id_,music_group_id_,class_group_id_,course_schedule_id_,sign_in_time_,sign_in_status_,
         remark_,create_time_,sign_out_time_,sign_out_status_,sign_in_longitude_latitude_,sign_out_longitude_latitude_,current_schedule_id_,sign_out_attachments_,
-        sign_out_remark_,update_attendance_type_)
+        sign_out_remark_,update_attendance_type_,url_)
         VALUE
         <foreach collection="teacherAttendances" item="teacherAttendance" separator=",">
             (#{teacherAttendance.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -81,7 +82,7 @@
             #{teacherAttendance.signOutStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             #{teacherAttendance.signInLongitudeLatitude},#{teacherAttendance.signOutLongitudeLatitude},#{teacherAttendance.currentScheduleId},
             #{teacherAttendance.signOutAttachments},#{teacherAttendance.signOutRemark},
-            #{teacherAttendance.updateAttendanceEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+            #{teacherAttendance.updateAttendanceEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{teacherAttendance.url})
         </foreach>
     </insert>
 
@@ -89,6 +90,9 @@
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherAttendance">
         UPDATE teacher_attendance
         <set>
+            <if test="url != null and url != ''">
+                url_ = #{url},
+            </if>
             <if test="updateAttendanceEnum != null">
                 update_attendance_type_ = #{updateAttendanceEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
@@ -506,6 +510,7 @@
         <result property="complaintsContent" column="complaints_content_"/>
         <result property="disposeContent" column="dispose_content_"/>
         <result property="teacherAttendanceId" column="teacher_attendance_id_"/>
+        <result property="url" column="url_"/>
         <result property="updateAttendanceEnum" column="update_attendance_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <select id="queryTeacherAttendanceComplaints" resultMap="TeacherAttendanceComplaintsDtoMap">
@@ -513,7 +518,7 @@
         IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,
         IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
         suo.real_name_ operator_name_,su.real_name_ teacher_name_,ta.complaints_status_,ta.sign_in_time_,ta.sign_out_time_
-        ,ta.complaints_content_,ta.dispose_content_,cs.end_class_time_,cs.start_class_time_,ta.id_ teacher_attendance_id_,ta.update_attendance_type_
+        ,ta.complaints_content_,ta.dispose_content_,cs.end_class_time_,cs.start_class_time_,ta.id_ teacher_attendance_id_,ta.update_attendance_type_,ta.url_
         FROM teacher_attendance ta
         LEFT JOIN sys_user su ON ta.teacher_id_ = su.id_
         LEFT JOIN teacher t ON t.id_ = su.id_
@@ -567,6 +572,10 @@
         WHERE ta.current_schedule_id_ = #{currentScheduleId} AND ta.teacher_id_ = #{userId}
         AND ta.sign_in_time_ IS NOT NULL ORDER BY ta.sign_in_time_ ASC LIMIT 1
     </select>
+    <select id="queryAttendanceComplaintsAutoAffirmList" resultMap="TeacherAttendance">
+        SELECT * FROM teacher_attendance
+        WHERE complaints_status_ = '2' AND TIMESTAMPDIFF(DAY,complaints_time_,NOW()) >= #{affirmDay}
+    </select>
 
     <update id="updateViPSignOutStatus" parameterType="string">
     	UPDATE teacher_attendance SET sign_out_status_ = 1,sign_out_time_= now()

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -13,6 +13,10 @@ public interface TaskRemoteService {
 	// 教师异常考勤推送
 	public void pushTeacherExceptionAttendanceTask();
 
+	@GetMapping(value = "task/attendanceComplaintsAutoAffirmTask")
+	// 考勤申述7天未处理默认同意
+	public void attendanceComplaintsAutoAffirmTask();
+
 	@GetMapping(value = "task/updateMusicGroupStudentFeeStatus")
 	// 更新学员缴费状态(新)
 	public void updateMusicGroupStudentFeeStatus();

+ 2 - 0
mec-im/src/main/java/com/ym/pojo/RoomResult.java

@@ -17,6 +17,8 @@ import java.util.Map;
  */
 public class RoomResult {
     private @Getter @Setter String roomId;
+    //课程结束后是否自动关闭课程
+    private @Getter @Setter Boolean autoCloseFlag = true;
     private @Getter @Setter Date startTime;
     private @Getter @Setter int surplusTime;
     private @Getter @Setter String imToken;

+ 3 - 1
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -138,6 +138,7 @@ public class RoomServiceImpl implements RoomService {
         if(StringUtils.isEmpty(continueCourseTime)){
             continueCourseTime = "5";
         }
+        RoomResult roomResult = new RoomResult();
         CourseSchedule schedule = courseSchedule;
         //如果当前课程是连堂课,那么获取第一节课的课程编号
         while (true){
@@ -146,6 +147,7 @@ public class RoomServiceImpl implements RoomService {
             schedule = courseScheduleDao.getLastCourse(schedule.getClassGroupId(),classDate + " " + startClassTime,schedule.getActualTeacherId(),continueCourseTime);
             if(schedule != null){
                 roomId = schedule.getId().toString();
+                roomResult.setAutoCloseFlag(false);
             }else {
                 break;
             }
@@ -162,7 +164,7 @@ public class RoomServiceImpl implements RoomService {
         Date curTime = DateTimeUtils.currentUTC();
 
         RoleEnum roleEnum;
-        RoomResult roomResult = new RoomResult();
+
 
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
         RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/AttendanceComplaintsAutoAffirmTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AttendanceComplaintsAutoAffirmTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.attendanceComplaintsAutoAffirmTask();
+	}
+}

+ 6 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -88,6 +88,12 @@ public class TaskController extends BaseController {
 		studentGoodsSellService.affirmReceive(null);
 	}
 
+	@GetMapping(value = "/attendanceComplaintsAutoAffirmTask")
+	// 考勤申述7天未处理默认同意
+	public void attendanceComplaintsAutoAffirmTask(){
+		teacherAttendanceService.attendanceComplaintsAutoAffirmTask();
+	}
+
 	@GetMapping(value = "/repertoryWarn")
 	// 商品库存预警
 	public void repertoryWarn(){