Pārlūkot izejas kodu

教师考勤申述

zouxuan 5 gadi atpakaļ
vecāks
revīzija
32efa60954

+ 43 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -69,8 +69,51 @@ public class CourseScheduleDto extends CourseSchedule {
 
     private Integer studentId;
 
+    private int isComplaints;
+
+    //申述状态0拒绝1通过2待处理
+    private int complaintsStatus;
+
+    //申述内容
+    private String complaintsContent;
+
+    //处理结果
+    private String disposeContent;
+
     private int isNew;
 
+    public int getComplaintsStatus() {
+        return complaintsStatus;
+    }
+
+    public void setComplaintsStatus(int complaintsStatus) {
+        this.complaintsStatus = complaintsStatus;
+    }
+
+    public String getComplaintsContent() {
+        return complaintsContent;
+    }
+
+    public void setComplaintsContent(String complaintsContent) {
+        this.complaintsContent = complaintsContent;
+    }
+
+    public String getDisposeContent() {
+        return disposeContent;
+    }
+
+    public void setDisposeContent(String disposeContent) {
+        this.disposeContent = disposeContent;
+    }
+
+    public int getIsComplaints() {
+        return isComplaints;
+    }
+
+    public void setIsComplaints(int isComplaints) {
+        this.isComplaints = isComplaints;
+    }
+
     public int getIsNew() {
         return isNew;
     }

+ 65 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -2,9 +2,7 @@ package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.Date;
@@ -61,6 +59,9 @@ public class TeacherAttendance {
 	/**  */
 	private java.util.Date createTime;
 
+	//申述提交时间
+	private java.util.Date complaintsTime;
+
 	private String signInLongitudeLatitude;
 
 	private String signOutLongitudeLatitude;
@@ -69,6 +70,68 @@ public class TeacherAttendance {
 
 	private Integer update;
 
+	private int isComplaints;
+
+	//申述状态0拒绝1通过2待处理3已撤销
+	private int complaintsStatus;
+
+	//申述内容
+	private String complaintsContent;
+
+	//处理结果
+	private String disposeContent;
+
+	//处理结果
+	private Integer operator;
+
+	public Date getComplaintsTime() {
+		return complaintsTime;
+	}
+
+	public void setComplaintsTime(Date complaintsTime) {
+		this.complaintsTime = complaintsTime;
+	}
+
+	public Integer getOperator() {
+		return operator;
+	}
+
+	public void setOperator(Integer operator) {
+		this.operator = operator;
+	}
+
+	public int getIsComplaints() {
+		return isComplaints;
+	}
+
+	public void setIsComplaints(int isComplaints) {
+		this.isComplaints = isComplaints;
+	}
+
+	public int getComplaintsStatus() {
+		return complaintsStatus;
+	}
+
+	public void setComplaintsStatus(int complaintsStatus) {
+		this.complaintsStatus = complaintsStatus;
+	}
+
+	public String getComplaintsContent() {
+		return complaintsContent;
+	}
+
+	public void setComplaintsContent(String complaintsContent) {
+		this.complaintsContent = complaintsContent;
+	}
+
+	public String getDisposeContent() {
+		return disposeContent;
+	}
+
+	public void setDisposeContent(String disposeContent) {
+		this.disposeContent = disposeContent;
+	}
+
 	public String getSchoolLongitudeLatitude() {
 		return schoolLongitudeLatitude;
 	}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherAttendanceComplaintsQueryInfo.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class TeacherAttendanceComplaintsQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "分部编号")
+    private String organId;
+
+    @ApiModelProperty(value = "申述时间")
+    private String complaintsTime;
+
+    @ApiModelProperty(value = "申述状态")
+    private String complaintsStatus;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
+    public String getComplaintsTime() {
+        return complaintsTime;
+    }
+
+    public void setComplaintsTime(String complaintsTime) {
+        this.complaintsTime = complaintsTime;
+    }
+
+    public String getComplaintsStatus() {
+        return complaintsStatus;
+    }
+
+    public void setComplaintsStatus(String complaintsStatus) {
+        this.complaintsStatus = complaintsStatus;
+    }
+}

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherCloseQueryInfo.java

@@ -34,6 +34,14 @@ public class TeacherCloseQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "分部")
     private String organId;
 
+    public String getCourseScheduleStatus() {
+        return courseScheduleStatus;
+    }
+
+    public void setCourseScheduleStatus(String courseScheduleStatus) {
+        this.courseScheduleStatus = courseScheduleStatus;
+    }
+
     public String getSignOutStatus() {
         return signOutStatus;
     }

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

@@ -5,8 +5,10 @@ import com.ym.mec.biz.dal.dto.TeacherAttendanceDetailDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
+import com.ym.mec.biz.dal.page.TeacherAttendanceComplaintsQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Date;
@@ -137,4 +139,23 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 * 推送教师异常考勤
 	 */
     void pushTeacherExceptionAttendanceTask();
+
+	/**
+	 * 提交考勤申述
+	 * @param courseScheduleId
+	 * @param content
+	 */
+	void addComplaints(Long courseScheduleId, String content);
+
+	/**
+	 * 撤销考勤申述
+	 * @param courseScheduleId
+	 */
+	void repealComplaints(Long courseScheduleId);
+
+	/**
+	 * 获取教师申述列表
+	 * @param queryInfo
+	 */
+	void queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo);
 }

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

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.TeacherAttendanceComplaintsQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
@@ -604,4 +605,70 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		String url = new StringBuffer("8?").append(sysConfigDao.findConfigValue(SysConfigService.TEACHER_BASE_URL)).append("/#/appealResult?date=").append(format).toString();
 		sysMessageService.batchSendMessage(MessageSender.JIGUANG,MessageTypeEnum.PUSH_TEACHER_EXCEPTION_ATTENDANCE,receivers,null,0,url,"TEACHER",format);
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void addComplaints(Long courseScheduleId, String content) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if(Objects.isNull(user)){
+			throw new BizException("请登录");
+		}
+		TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(), courseScheduleId);
+		if(teacherAttendance == null){
+			throw new BizException("考勤信息不存在");
+		}
+		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId);
+		if(courseSchedule == null){
+			throw new BizException("课程不存在");
+		}
+		//如果课程时间在两天前
+		Date date = new Date();
+		if(DateUtil.daysBetween(courseSchedule.getClassDate(),date) > 1){
+			throw new BizException("超出可申述时间");
+		}
+		teacherAttendance.setIsComplaints(1);
+		teacherAttendance.setComplaintsStatus(2);
+		teacherAttendance.setComplaintsContent(content);
+		teacherAttendance.setComplaintsTime(date);
+		teacherAttendanceDao.update(teacherAttendance);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void repealComplaints(Long courseScheduleId) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if(Objects.isNull(user)){
+			throw new BizException("请登录");
+		}
+		TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(user.getId().longValue(), courseScheduleId);
+		if(teacherAttendance == null){
+			throw new BizException("考勤信息不存在");
+		}
+		if(teacherAttendance.getComplaintsStatus() == 2){
+			teacherAttendance.setComplaintsStatus(3);
+			teacherAttendanceDao.update(teacherAttendance);
+		}else {
+			throw new BizException("操作失败: 当前申述状态不允许撤销");
+		}
+	}
+
+	@Override
+	public void queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo) {
+		/*PageInfo<TeacherAttendancesDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<TeacherAttendancesDto> dataList = null;
+		int count = teacherAttendanceDao.countTeacherAttendanceComplaints(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = teacherAttendanceDao.queryTeacherAttendanceComplaints(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;*/
+	}
 }

+ 14 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -55,6 +55,12 @@
         <result column="school_name_" property="schoolName"/>
         <result column="sign_in_status_" property="signInStatus"/>
         <result column="sign_out_status_" property="signOutStatus"/>
+        <result column="sign_in_time_" property="signInTime"/>
+        <result column="sign_out_time_" property="signOutTime"/>
+        <result column="is_complaints_" property="isComplaints"/>
+        <result column="complaints_status_" property="complaintsStatus"/>
+        <result column="complaints_content_" property="complaintsContent"/>
+        <result column="dispose_content_" property="disposeContent"/>
         <result column="seal_class_id_" property="sealClassId"/>
         <result column="total_student_num_" property="totalStudentNum"/>
         <result column="expect_student_num_" property="expectStudentNum"/>
@@ -697,8 +703,14 @@
                csts.teacher_role_,
                cs.schoole_id_,
                s.name_                                           school_name_,
-               if(ta.sign_in_status_ IS NULL, 0, 1)              sign_in_status_,
-               if(ta.sign_out_status_ IS NULL, 0, 1)             sign_out_status_,
+               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_,
+               ta.is_complaints_,
+               ta.sign_out_time_,
+               ta.sign_in_time_,
+               ta.complaints_status_,
+               ta.complaints_content_,
+               ta.dispose_content_,
                cs.teach_mode_
         FROM course_schedule_teacher_salary csts
                  LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_

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

@@ -118,6 +118,24 @@
             <if test="signOutLongitudeLatitude != null">
                 sign_out_longitude_latitude_ = #{signOutLongitudeLatitude},
             </if>
+            <if test="isComplaints != null">
+                is_complaints_ = #{isComplaints},
+            </if>
+            <if test="complaintsStatus != null">
+                complaints_status_ = #{complaintsStatus},
+            </if>
+            <if test="complaintsContent != null and complaintsContent != ''">
+                complaints_content_ = #{complaintsContent},
+            </if>
+            <if test="disposeContent != null and disposeContent != ''">
+                dispose_content_ = #{disposeContent},
+            </if>
+            <if test="operator != null">
+                operator_ = #{operator},
+            </if>
+            <if test="complaintsTime != null">
+                complaints_time_ = #{complaintsTime},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 14 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherAttendanceController.java

@@ -67,4 +67,18 @@ public class TeacherAttendanceController extends BaseController {
         }
         return succeed(teacherAttendanceService.getTeacherSignDetail(courseScheduleId, user.getId()));
     }
+
+    @ApiOperation(value = "提交考勤申述")
+    @PostMapping("/addComplaints")
+    public Object addComplaints(Long courseScheduleId,String content){
+        teacherAttendanceService.addComplaints(courseScheduleId,content);
+        return succeed();
+    }
+
+    @ApiOperation(value = "撤销考勤申述")
+    @PostMapping("/repealComplaints")
+    public Object repealComplaints(Long courseScheduleId){
+        teacherAttendanceService.repealComplaints(courseScheduleId);
+        return succeed();
+    }
 }

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -5,9 +5,11 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.page.TeacherAttendanceComplaintsQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
 import com.ym.mec.biz.service.TeacherAttendanceService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -85,4 +87,12 @@ public class TeacherAttendanceController extends BaseController {
         teacherAttendanceService.updateTeacherAttendance(teacherAttendance);
         return succeed();
     }
+
+    @ApiOperation(value = "获取教师考勤申述列表")
+    @PostMapping("/queryTeacherAttendanceComplaints")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/queryTeacherAttendanceComplaints')")
+    public Object queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo){
+        teacherAttendanceService.queryTeacherAttendanceComplaints(queryInfo);
+        return succeed();
+    }
 }