瀏覽代碼

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父節點
當前提交
0522adae54

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 package com.ym.mec.biz.dal.dao;
 
 
 import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
 import com.ym.mec.biz.dal.dto.StudentExercisesSituationDto;
+import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -32,5 +33,16 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
     int countExercisesSituations(Map<String, Object> params);
     int countExercisesSituations(Map<String, Object> params);
 
 
     List<StudentExercisesSituationDto> findExercisesSituationsById(@Param("ids") List<Long> ids);
     List<StudentExercisesSituationDto> findExercisesSituationsById(@Param("ids") List<Long> ids);
+
+    /**
+     * @describe 统计老师指定星期的服务指标
+     * @author Joburgess
+     * @date 2020/4/17
+     * @param monday:
+     * @param teacherIds:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.TeaherExercisesServiceDto>
+     */
+    List<TeacherExercisesServiceDto> findTeacherExercisesServiceSituations(@Param("monday") String monday,
+                                                                           @Param("teacherIds") List<Integer> teacherIds);
 	
 	
 }
 }

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherExercisesServiceDto.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.dto;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/4/17
+ */
+public class TeacherExercisesServiceDto {
+
+    private Integer teacherId;
+
+    /** 预期训练次数 */
+    private Integer expectExercisesNum;
+
+    /** 实际训练次数 */
+    private Integer actualExercisesNum;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getExpectExercisesNum() {
+        return expectExercisesNum;
+    }
+
+    public void setExpectExercisesNum(Integer expectExercisesNum) {
+        this.expectExercisesNum = expectExercisesNum;
+    }
+
+    public Integer getActualExercisesNum() {
+        return actualExercisesNum;
+    }
+
+    public void setActualExercisesNum(Integer actualExercisesNum) {
+        this.actualExercisesNum = actualExercisesNum;
+    }
+}

+ 25 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java

@@ -1,16 +1,15 @@
 package com.ym.mec.biz.dal.entity;
 package com.ym.mec.biz.dal.entity;
 
 
-import io.swagger.annotations.ApiModelProperty;
-
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 
 /**
 /**
  * 对应数据库表(teacher):
  * 对应数据库表(teacher):
@@ -116,6 +115,25 @@ public class Teacher extends SysUser {
 	
 	
 	private String memo;
 	private String memo;
 
 
+	private BigDecimal operatingIndex;
+	private BigDecimal serviceIndex;
+
+	public BigDecimal getOperatingIndex() {
+		return operatingIndex;
+	}
+
+	public void setOperatingIndex(BigDecimal operatingIndex) {
+		this.operatingIndex = operatingIndex;
+	}
+
+	public BigDecimal getServiceIndex() {
+		return serviceIndex;
+	}
+
+	public void setServiceIndex(BigDecimal serviceIndex) {
+		this.serviceIndex = serviceIndex;
+	}
+
 	public Integer getLectureNum() {
 	public Integer getLectureNum() {
 		return lectureNum;
 		return lectureNum;
 	}
 	}

+ 21 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImResult;
@@ -19,14 +20,17 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.idcard.IdcardValidator;
 import com.ym.mec.util.idcard.IdcardValidator;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -59,6 +63,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	private ImFeignService imFeignService;
 	private ImFeignService imFeignService;
 	@Autowired
 	@Autowired
 	private SysConfigDao configDao;
 	private SysConfigDao configDao;
+	@Autowired
+	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 
 
 
 
 	@Override
 	@Override
@@ -439,6 +445,12 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 
 			Set<Integer> organIds = rows.stream().map(e -> e.getTeacherOrganId()).collect(Collectors.toSet());
 			Set<Integer> organIds = rows.stream().map(e -> e.getTeacherOrganId()).collect(Collectors.toSet());
 			Map<Integer,String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
 			Map<Integer,String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
+
+			LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
+			LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
+			List<TeacherExercisesServiceDto> teacherExercisesServiceSituations = studentExtracurricularExercisesSituationDao.findTeacherExercisesServiceSituations(monDayDate.toString(), new ArrayList<>(teachers));
+			Map<Integer, TeacherExercisesServiceDto> teacherServiceMap = teacherExercisesServiceSituations.stream().collect(Collectors.toMap(TeacherExercisesServiceDto::getTeacherId, t -> t));
+
 			rows.forEach(e->{
 			rows.forEach(e->{
 //				e.setSubjectName(subjectDao.findBySubIds(e.getSubjectId()));
 //				e.setSubjectName(subjectDao.findBySubIds(e.getSubjectId()));
 				e.setOrganName(organNames.get(e.getTeacherOrganId()));
 				e.setOrganName(organNames.get(e.getTeacherOrganId()));
@@ -449,6 +461,14 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				e.setVipNum(num == null?0:num);
 				e.setVipNum(num == null?0:num);
 				Integer demoNum = demoNumMap.get(e.getId());
 				Integer demoNum = demoNumMap.get(e.getId());
 				e.setDemoNum(demoNum == null?0:demoNum);
 				e.setDemoNum(demoNum == null?0:demoNum);
+
+				TeacherExercisesServiceDto teacherService = teacherServiceMap.get(e.getId());
+				if(Objects.nonNull(teacherService)){
+					BigDecimal serviceIndex = new BigDecimal(teacherService.getActualExercisesNum()).multiply(new BigDecimal(100)).divide(new BigDecimal(teacherService.getExpectExercisesNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+					e.setServiceIndex(serviceIndex);
+				}else{
+					e.setServiceIndex(BigDecimal.ZERO);
+				}
 			});
 			});
 		}
 		}
 		return pageInfo;
 		return pageInfo;

+ 10 - 4
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -450,7 +450,8 @@
 	</update>
 	</update>
 	<update id="updateTeacherSalaryConfirmStatus">
 	<update id="updateTeacherSalaryConfirmStatus">
 		UPDATE course_schedule_teacher_salary SET confirm_status_=#{confirmStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		UPDATE course_schedule_teacher_salary SET confirm_status_=#{confirmStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
-		WHERE id_ IN
+		WHERE group_type_!='COMM'
+		AND id_ IN
 		<foreach collection="ids" item="id" open="(" close=")" separator=",">
 		<foreach collection="ids" item="id" open="(" close=")" separator=",">
 			#{id}
 			#{id}
 		</foreach>
 		</foreach>
@@ -458,6 +459,7 @@
 	<update id="updateTeacherSalaryConfirmStatusToComplied">
 	<update id="updateTeacherSalaryConfirmStatusToComplied">
 		UPDATE course_schedule_teacher_salary SET confirm_status_=3
 		UPDATE course_schedule_teacher_salary SET confirm_status_=3
 		WHERE confirm_status_!=2
 		WHERE confirm_status_!=2
+        AND group_type_!='COMM'
 		AND id_ IN
 		AND id_ IN
 		<foreach collection="ids" item="id" open="(" close=")" separator=",">
 		<foreach collection="ids" item="id" open="(" close=")" separator=",">
 			#{id}
 			#{id}
@@ -754,6 +756,7 @@
 	<sql id="queryCourseSalaryCondition">
 	<sql id="queryCourseSalaryCondition">
 		<where>
 		<where>
 			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
 			(cs.del_flag_ IS NULL OR cs.del_flag_=0)
+            AND csts.group_type_!='COMM'
 			AND csts.settlement_time_ IS NOT NULL
 			AND csts.settlement_time_ IS NOT NULL
 			<if test="teacherId!=null">
 			<if test="teacherId!=null">
 				AND csts.user_id_=#{teacherId}
 				AND csts.user_id_=#{teacherId}
@@ -882,6 +885,7 @@
 			LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
 			LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
 		WHERE
 		WHERE
 			( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
 			( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
+			AND csts.group_type_!='COMM'
 			AND csts.settlement_time_ IS NOT NULL
 			AND csts.settlement_time_ IS NOT NULL
 			<if test="teacherId!=null">
 			<if test="teacherId!=null">
 				AND csts.user_id_ = #{teacherId}
 				AND csts.user_id_ = #{teacherId}
@@ -895,9 +899,10 @@
         course_schedule_teacher_salary csts
         course_schedule_teacher_salary csts
         LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
         LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
         WHERE
         WHERE
-        ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
-        AND csts.settlement_time_ IS NOT NULL
-        AND DATE_FORMAT( cs.class_date_, '%Y-%m' ) = #{month}
+        	( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
+			AND csts.group_type_!='COMM'
+        	AND csts.settlement_time_ IS NOT NULL
+        	AND DATE_FORMAT( cs.class_date_, '%Y-%m' ) = #{month}
     </select>
     </select>
 
 
 	<select id="countOpenConfirmSalarysWithMonth" resultType="int">
 	<select id="countOpenConfirmSalarysWithMonth" resultType="int">
@@ -908,6 +913,7 @@
 			LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 			LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 		WHERE
 		WHERE
 			DATE_FORMAT( cs.class_date_, '%Y-%m' ) = #{month}
 			DATE_FORMAT( cs.class_date_, '%Y-%m' ) = #{month}
+			AND csts.group_type_!='COMM'
 			AND csts.settlement_time_ IS NOT NULL
 			AND csts.settlement_time_ IS NOT NULL
 			<if test="confirmStatus!=null">
 			<if test="confirmStatus!=null">
 				AND csts.confirm_status_=#{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 				AND csts.confirm_status_=#{confirmStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}

+ 15 - 0
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -233,4 +233,19 @@
 			#{id}
 			#{id}
 		</foreach>
 		</foreach>
 	</select>
 	</select>
+    <select id="findTeacherExercisesServiceSituations" resultType="com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto">
+		SELECT
+			teacher_id_ teacherId,
+			COUNT( exercises_reply_num_ ) expectExercisesNum,
+			COUNT( CASE WHEN actual_exercises_num_ = 1 THEN 1 ELSE NULL END ) actualExercisesNum
+		FROM
+			student_extracurricular_exercises_situation_
+		WHERE monday_ = #{monday}
+			AND teacher_id_ IN
+			<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+				#{teacherId}
+			</foreach>
+		GROUP BY
+			teacher_id_;
+    </select>
 </mapper>
 </mapper>

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleTeacherSalaryController.java

@@ -13,7 +13,6 @@ import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.exception.BizException;
-import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -77,11 +76,11 @@ public class CourseScheduleTeacherSalaryController extends BaseController {
 
 
         Map<String, Object> result=new HashMap<>();
         Map<String, Object> result=new HashMap<>();
         result.put("pageInfo", courseScheduleTeacherSalaryService.findIsSettlementCourseSalarys(queryInfo));
         result.put("pageInfo", courseScheduleTeacherSalaryService.findIsSettlementCourseSalarys(queryInfo));
-        int i = courseScheduleTeacherSalaryDao.countOpenConfirmSalarysWithMonth(DateUtil.dateToString(DateUtil.addMonths(new Date(), -1), "yyyy-MM"), TeacherSalaryConfirmStatus.UNCONFIRMED);
+        int i = courseScheduleTeacherSalaryDao.countOpenConfirmSalarysWithMonth(queryInfo.getMonth(), TeacherSalaryConfirmStatus.UNCONFIRMED);
         if(i>0){
         if(i>0){
             result.put("isOpenConfirm", 1);
             result.put("isOpenConfirm", 1);
         }else{
         }else{
-            int j = courseScheduleTeacherSalaryDao.countOpenConfirmSalarysWithMonth(DateUtil.dateToString(DateUtil.addMonths(new Date(), -1), "yyyy-MM"), null);
+            int j = courseScheduleTeacherSalaryDao.countOpenConfirmSalarysWithMonth(queryInfo.getMonth(), null);
             if(j<=0){
             if(j<=0){
                 result.put("isOpenConfirm", 2);
                 result.put("isOpenConfirm", 2);
             }else{
             }else{