Browse Source

1、课酬确认相关
2、VIP课导出添加学生姓名和编号
3、学员服务信息统计优化

Joburgess 5 years ago
parent
commit
ac6fbd784d

+ 16 - 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;
 
-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.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 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):
@@ -116,6 +115,16 @@ public class Teacher extends SysUser {
 	
 	private String memo;
 
+	private BigDecimal serviceIndex;
+
+	public BigDecimal getServiceIndex() {
+		return serviceIndex;
+	}
+
+	public void setServiceIndex(BigDecimal serviceIndex) {
+		this.serviceIndex = serviceIndex;
+	}
+
 	public Integer getLectureNum() {
 		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.service.ClassGroupService;
 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.entity.ImGroupModel;
 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.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
+import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.idcard.IdcardValidator;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -59,6 +63,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	private ImFeignService imFeignService;
 	@Autowired
 	private SysConfigDao configDao;
+	@Autowired
+	private StudentExtracurricularExercisesSituationDao studentExtracurricularExercisesSituationDao;
 
 
 	@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());
 			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->{
 //				e.setSubjectName(subjectDao.findBySubIds(e.getSubjectId()));
 				e.setOrganName(organNames.get(e.getTeacherOrganId()));
@@ -449,6 +461,14 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				e.setVipNum(num == null?0:num);
 				Integer demoNum = demoNumMap.get(e.getId());
 				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;

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

@@ -240,7 +240,7 @@
 			COUNT( CASE WHEN actual_exercises_num_ = 1 THEN 1 ELSE NULL END ) actualExercisesNum
 		FROM
 			student_extracurricular_exercises_situation_
-		WHERE DATE_FORMAT(monday_, '%Y-%m') = #{monday}
+		WHERE monday_ = #{monday}
 			AND teacher_id_ IN
 			<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
 				#{teacherId}