zouxuan 5 年之前
父節點
當前提交
359c7122f1

+ 15 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.Mapper;
-import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
-import com.ym.mec.biz.dal.dto.TeacherAttendancesDto;
-import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
@@ -219,4 +216,18 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 	 * @return
 	 */
     Set<Integer> queryTeacherExceptionAttendance(String format);
+
+	/**
+	 * 获取教师课时申述列表
+	 * @param params
+	 * @return
+	 */
+	List<TeacherAttendanceComplaintsDto> queryTeacherAttendanceComplaints(Map<String, Object> params);
+
+	/**
+	 * COUNT教师课时申述列表
+	 * @param params
+	 * @return
+	 */
+	int countTeacherAttendanceComplaints(Map<String, Object> params);
 }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -69,9 +69,10 @@ public class CourseScheduleDto extends CourseSchedule {
 
     private Integer studentId;
 
+    //是否提交过申述0否1是
     private int isComplaints;
 
-    //申述状态0拒绝1通过2待处理
+    //申述状态0拒绝1通过2待处理3已撤销
     private int complaintsStatus;
 
     //申述内容

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

@@ -0,0 +1,98 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.ComplaintsStatusEnum;
+import com.ym.mec.biz.dal.enums.SignInStatusEnum;
+import com.ym.mec.biz.dal.enums.SignOutStatusEnum;
+
+public class TeacherAttendanceComplaintsDto{
+
+    private String organName;
+
+    private Long courseScheduleId;
+
+    private String courseScheduleName;
+
+    private String courseScheduleTime;
+
+    private SignInStatusEnum signInStatus;
+
+    private SignOutStatusEnum signOutStatus;
+
+    private String teacherName;
+
+    private ComplaintsStatusEnum complaintsStatusEnum;
+
+    private String operatorName;
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getCourseScheduleName() {
+        return courseScheduleName;
+    }
+
+    public void setCourseScheduleName(String courseScheduleName) {
+        this.courseScheduleName = courseScheduleName;
+    }
+
+    public String getCourseScheduleTime() {
+        return courseScheduleTime;
+    }
+
+    public void setCourseScheduleTime(String courseScheduleTime) {
+        this.courseScheduleTime = courseScheduleTime;
+    }
+
+    public SignInStatusEnum getSignInStatus() {
+        return signInStatus;
+    }
+
+    public void setSignInStatus(SignInStatusEnum signInStatus) {
+        this.signInStatus = signInStatus;
+    }
+
+    public SignOutStatusEnum getSignOutStatus() {
+        return signOutStatus;
+    }
+
+    public void setSignOutStatus(SignOutStatusEnum signOutStatus) {
+        this.signOutStatus = signOutStatus;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public ComplaintsStatusEnum getComplaintsStatusEnum() {
+        return complaintsStatusEnum;
+    }
+
+    public void setComplaintsStatusEnum(ComplaintsStatusEnum complaintsStatusEnum) {
+        this.complaintsStatusEnum = complaintsStatusEnum;
+    }
+
+    public String getOperatorName() {
+        return operatorName;
+    }
+
+    public void setOperatorName(String operatorName) {
+        this.operatorName = operatorName;
+    }
+}

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherAttendance.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.ComplaintsStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
@@ -73,7 +74,7 @@ public class TeacherAttendance {
 	private int isComplaints;
 
 	//申述状态0拒绝1通过2待处理3已撤销
-	private int complaintsStatus;
+	private ComplaintsStatusEnum complaintsStatus;
 
 	//申述内容
 	private String complaintsContent;
@@ -108,11 +109,11 @@ public class TeacherAttendance {
 		this.isComplaints = isComplaints;
 	}
 
-	public int getComplaintsStatus() {
+	public ComplaintsStatusEnum getComplaintsStatus() {
 		return complaintsStatus;
 	}
 
-	public void setComplaintsStatus(int complaintsStatus) {
+	public void setComplaintsStatus(ComplaintsStatusEnum complaintsStatus) {
 		this.complaintsStatus = complaintsStatus;
 	}
 

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ComplaintsStatusEnum.java

@@ -0,0 +1,39 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * '申述状态0拒绝1通过2待处理3已撤销
+ */
+public enum ComplaintsStatusEnum implements BaseEnum<Integer, ComplaintsStatusEnum> {
+	REJECT(0, "拒绝"),
+	PASS(1, "通过"),
+	WAIT(2, "待处理"),
+	REPEAL(3, "撤销");
+
+	private Integer code;
+
+	private String msg;
+
+	ComplaintsStatusEnum(Integer code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(Integer code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public Integer getCode() {
+		return this.code;
+	}
+}

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

@@ -14,6 +14,17 @@ public class TeacherAttendanceComplaintsQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "申述状态")
     private String complaintsStatus;
 
+    @ApiModelProperty(value = "课程时间")
+    private String courseScheduleDate;
+
+    public String getCourseScheduleDate() {
+        return courseScheduleDate;
+    }
+
+    public void setCourseScheduleDate(String courseScheduleDate) {
+        this.courseScheduleDate = courseScheduleDate;
+    }
+
     public String getOrganId() {
         return organId;
     }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherAttendanceService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.TeacherAbnormalAttendanceInfoDto;
+import com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDetailDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
@@ -157,5 +158,5 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
 	 * 获取教师申述列表
 	 * @param queryInfo
 	 */
-	void queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo);
+	PageInfo<TeacherAttendanceComplaintsDto> queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo);
 }

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

@@ -627,7 +627,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			throw new BizException("超出可申述时间");
 		}
 		teacherAttendance.setIsComplaints(1);
-		teacherAttendance.setComplaintsStatus(2);
+		teacherAttendance.setComplaintsStatus(ComplaintsStatusEnum.WAIT);
 		teacherAttendance.setComplaintsContent(content);
 		teacherAttendance.setComplaintsTime(date);
 		teacherAttendanceDao.update(teacherAttendance);
@@ -644,8 +644,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(teacherAttendance == null){
 			throw new BizException("考勤信息不存在");
 		}
-		if(teacherAttendance.getComplaintsStatus() == 2){
-			teacherAttendance.setComplaintsStatus(3);
+		if(teacherAttendance.getComplaintsStatus() == ComplaintsStatusEnum.WAIT){
+			teacherAttendance.setComplaintsStatus(ComplaintsStatusEnum.REPEAL);
 			teacherAttendanceDao.update(teacherAttendance);
 		}else {
 			throw new BizException("操作失败: 当前申述状态不允许撤销");
@@ -653,12 +653,12 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	}
 
 	@Override
-	public void queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo) {
-		/*PageInfo<TeacherAttendancesDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+	public PageInfo<TeacherAttendanceComplaintsDto> queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo) {
+		PageInfo<TeacherAttendanceComplaintsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
-		List<TeacherAttendancesDto> dataList = null;
+		List<TeacherAttendanceComplaintsDto> dataList = null;
 		int count = teacherAttendanceDao.countTeacherAttendanceComplaints(params);
 		if (count > 0) {
 			pageInfo.setTotal(count);
@@ -669,6 +669,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			dataList = new ArrayList<>();
 		}
 		pageInfo.setRows(dataList);
-		return pageInfo;*/
+		return pageInfo;
 	}
 }

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

@@ -456,6 +456,60 @@
         WHERE cs.class_date_ = #{format} AND ta.teacher_id_ = cs.actual_teacher_id_
         AND (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 OR ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0)
     </select>
+    <resultMap id="TeacherAttendanceComplaintsDtoMap" type="com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto">
+        <result property="organName" column="organ_name_"/>
+        <result property="courseScheduleId" column="course_schedule_id_"/>
+        <result property="courseScheduleName" column="course_schedule_name_"/>
+        <result property="courseScheduleTime" column="course_schedule_time_"/>
+        <result property="signInStatus" column="sign_in_status_"/>
+        <result property="signOutStatus" column="sign_out_status"/>
+        <result property="teacherName" column="teacher_name_"/>
+        <result property="complaintsStatusEnum" column="complain_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="operatorName" column="operator_name_"/>
+    </resultMap>
+    <select id="queryTeacherAttendanceComplaints" resultType="com.ym.mec.biz.dal.dto.TeacherAttendanceComplaintsDto">
+        SELECT o.name_ organ_name_,ta.course_schedule_id_,cs.name_ course_schedule_name_,cs.class_date_ course_schedule_time_,
+        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_
+        FROM teacher_attendance ta
+        LEFT JOIN sys_user su ON ta.teacher_id_ = su.id_
+        LEFT JOIN teacher t ON t.id_ = su.id_
+        LEFT JOIN organization o ON o.id_ = t.organ_id_
+        LEFT JOIN sys_user suo ON suo.id_ = ta.operator_
+        LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
+        <include refid="queryTeacherAttendanceComplaintsSql"/>
+        ORDER BY cs.class_date_ ASC,cs.start_class_time_ ASC
+        <include refid="global.limit"/>
+    </select>
+    <sql id="queryTeacherAttendanceComplaintsSql">
+        <where>
+            cs.actual_teacher_id_ = ta.teacher_id_
+            <if test="organId != null and organId != ''">
+                AND t.organ_id_ = #{organId}
+            </if>
+            <if test="complaintsTime != null and complaintsTime != ''">
+                AND ta.complaints_time_ = #{complaintsTime}
+            </if>
+            <if test="complaintsStatus != null and complaintsStatus != ''">
+                AND ta.complaints_status_ = #{complaintsStatus}
+            </if>
+            <if test="search != null and search != ''">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR ta.teacher_id_ = #{search})
+            </if>
+            <if test="courseScheduleDate != null and courseScheduleDate != ''">
+                AND cs.class_date_ = #{courseScheduleDate}
+            </if>
+        </where>
+    </sql>
+    <select id="countTeacherAttendanceComplaints" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT ta.id_)
+        FROM teacher_attendance ta
+        LEFT JOIN sys_user su ON ta.teacher_id_ = su.id_
+        LEFT JOIN teacher t ON t.id_ = su.id_
+        LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
+        <include refid="queryTeacherAttendanceComplaintsSql"/>
+    </select>
 
     <update id="updateViPSignOutStatus" parameterType="string">
     	UPDATE teacher_attendance SET sign_out_status_ = 1,sign_out_time_= now()

+ 15 - 3
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java

@@ -9,7 +9,6 @@ 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;
@@ -92,7 +91,20 @@ public class TeacherAttendanceController extends BaseController {
     @PostMapping("/queryTeacherAttendanceComplaints")
     @PreAuthorize("@pcs.hasPermissions('teacherAttendance/queryTeacherAttendanceComplaints')")
     public Object queryTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo){
-        teacherAttendanceService.queryTeacherAttendanceComplaints(queryInfo);
-        return succeed();
+        return succeed(teacherAttendanceService.queryTeacherAttendanceComplaints(queryInfo));
+    }
+
+    @ApiOperation(value = "同意教师课酬申述")
+    @PostMapping("/agreeTeacherAttendanceComplaints")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/agreeTeacherAttendanceComplaints')")
+    public Object agreeTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo){
+        return succeed(teacherAttendanceService.queryTeacherAttendanceComplaints(queryInfo));
+    }
+
+    @ApiOperation(value = "拒绝教师课酬申述")
+    @PostMapping("/rejectTeacherAttendanceComplaints")
+    @PreAuthorize("@pcs.hasPermissions('teacherAttendance/rejectTeacherAttendanceComplaints')")
+    public Object rejectTeacherAttendanceComplaints(TeacherAttendanceComplaintsQueryInfo queryInfo){
+        return succeed(teacherAttendanceService.queryTeacherAttendanceComplaints(queryInfo));
     }
 }