抽查手动签到

beetlsql3-dev
Mlxa0324 2 years ago
parent 1f1deb663c
commit 224176f143

@ -31,6 +31,8 @@ import com.ibeetl.jlw.entity.vo.TeacherOpenCourseStudentSigninLogSummaryVO;
import com.ibeetl.jlw.enums.SignInTypeEnum; import com.ibeetl.jlw.enums.SignInTypeEnum;
import com.ibeetl.jlw.enums.StartStatusEnum; import com.ibeetl.jlw.enums.StartStatusEnum;
import com.ibeetl.jlw.validator.TeacherOpenCourseStudentSigninLogSigninDTOValidator; import com.ibeetl.jlw.validator.TeacherOpenCourseStudentSigninLogSigninDTOValidator;
import com.ibeetl.jlw.web.query.StudentQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeStudentQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseStudentSigninLogQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseStudentSigninLogQuery;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -52,11 +54,14 @@ import java.io.*;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.hutool.core.collection.CollUtil.emptyIfNull;
import static cn.jlw.util.CacheUserUtil.getStudent; import static cn.jlw.util.CacheUserUtil.getStudent;
import static cn.jlw.util.IpUtils.getIpAddr; import static cn.jlw.util.IpUtils.getIpAddr;
import static cn.jlw.util.IpUtils.isRangeInner; import static cn.jlw.util.IpUtils.isRangeInner;
import static cn.jlw.util.ValidatorUtil.getFirstErrorMessage; import static cn.jlw.util.ValidatorUtil.getFirstErrorMessage;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
import static com.ibeetl.admin.core.util.StreamUtils.getFieldToSet;
import static com.ibeetl.admin.core.util.StreamUtils.listJoin;
import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest; import static com.ibeetl.admin.core.util.servlet.ServletUtils.getRequest;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
import static com.ibeetl.jlw.entity.TeacherOpenCourseStudentSigninSetting.ALL_SCHOOL_CLASS_IDS_SIGN; import static com.ibeetl.jlw.entity.TeacherOpenCourseStudentSigninSetting.ALL_SCHOOL_CLASS_IDS_SIGN;
@ -80,6 +85,7 @@ public class TeacherOpenCourseStudentSigninLogService extends CoreBaseService<Te
@Autowired private StudentDao studentDao; @Autowired private StudentDao studentDao;
@Autowired private TeacherOpenCourseMergeSchoolClassDao teacherOpenCourseMergeSchoolClassDao; @Autowired private TeacherOpenCourseMergeSchoolClassDao teacherOpenCourseMergeSchoolClassDao;
@Autowired private TeacherOpenCourseMergeStudentService teacherOpenCourseMergeStudentService;
@Autowired private TeacherOpenCourseStudentSigninLogSigninDTOValidator teacherOpenCourseStudentSigninLogSigninDTOValidator; @Autowired private TeacherOpenCourseStudentSigninLogSigninDTOValidator teacherOpenCourseStudentSigninLogSigninDTOValidator;
public PageQuery<TeacherOpenCourseStudentSigninLog>queryByCondition(PageQuery query){ public PageQuery<TeacherOpenCourseStudentSigninLog>queryByCondition(PageQuery query){
@ -576,43 +582,64 @@ public class TeacherOpenCourseStudentSigninLogService extends CoreBaseService<Te
BeanUtil.copyProperties(signinSetting, entity); BeanUtil.copyProperties(signinSetting, entity);
DateTime now = DateUtil.date(); DateTime now = DateUtil.date();
// 默认的一些属性填充 // 默认的一些属性填充。添加主表
entity.setTeacherOpenCourseStudentSigninSettingSessionTime(now); entity.setTeacherOpenCourseStudentSigninSettingSessionTime(now);
entity.setTeacherOpenCourseStudentSigninSettingStartTime(now); entity.setTeacherOpenCourseStudentSigninSettingStartTime(now);
entity.setTeacherOpenCourseStudentSigninSettingEndTime(now);
entity.setTeacherOpenCourseStudentSigninSettingAddTime(now); entity.setTeacherOpenCourseStudentSigninSettingAddTime(now);
entity.setTeacherOpenCourseStudentSigninSettingType(manual_signin.name()); entity.setTeacherOpenCourseStudentSigninSettingType(manual_signin.name());
entity.setTeacherOpenCourseStudentSigninSettingStartStatus(StartStatusEnum.READY); entity.setTeacherOpenCourseStudentSigninSettingStartStatus(StartStatusEnum.END);
entity.setTeacherOpenCourseStudentSigninSettingStatus(1); entity.setTeacherOpenCourseStudentSigninSettingStatus(1);
entity.setOrgId(operatorUser.getOrgId()); entity.setOrgId(operatorUser.getOrgId());
entity.setUserId(operatorUser.getId()); entity.setUserId(operatorUser.getId());
teacherOpenCourseStudentSigninSettingDao.insert(entity); teacherOpenCourseStudentSigninSettingDao.insert(entity);
// 获取插入后的配置ID // 获取插入后的配置ID
final Long settingId = entity.getTeacherOpenCourseStudentSigninSettingId(); final Long settingId = entity.getTeacherOpenCourseStudentSigninSettingId();
// 查询所有要签到的班级,抽查几个学生以后,其他的学生全部默认是签到状态。
String schoolClassIds = signinSetting.getSchoolClassIds();
StudentQuery studentQuery = new StudentQuery();
studentQuery.setClassIds(schoolClassIds);
studentQuery.setStudentStatus(1);
// 查询指定班级下面的所有学生IDs
List<Student> studentList = studentDao.getValuesByQuery(studentQuery);
String allStudentIds = listJoin(studentList, Student::getStudentId);
// 查询这个开课下的所有学生
TeacherOpenCourseMergeStudentQuery mergeStudentQuery = new TeacherOpenCourseMergeStudentQuery();
mergeStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1);
mergeStudentQuery.setStudentIdPlural(allStudentIds);
Set<Long> mergeStudentIdsSet = getFieldToSet(teacherOpenCourseMergeStudentService.getValuesByQueryNotWithPermission(mergeStudentQuery), TeacherOpenCourseMergeStudent::getStudentId);
// 替换原来查询到的所有学生,过滤后的数据
studentList = studentList.stream().filter(item -> mergeStudentIdsSet.contains(item.getStudentId())).collect(Collectors.toList());
// 构建签到日志集合 // 构建签到日志集合
List<TeacherOpenCourseStudentSigninLog> signinLogList = dto.getSigninLogList().stream() List<TeacherOpenCourseStudentSigninLog> signinLogList = emptyIfNull(studentList).stream().map(studentInfo -> {
.map(item -> { Long classId = studentInfo.getClassId();
Student studentInfo = studentDao.getById(item.getStudentId()); Assert.notNull(classId, "学生姓名:{}, 编号:{} 信息异常,请联系管理员!"
Long classId = studentInfo.getClassId(); , studentInfo.getStudentName(), studentInfo.getStudentSn());
Assert.notNull(classId, "学生姓名:{}, 编号:{} 信息异常,请联系管理员!"
, studentInfo.getStudentName(), studentInfo.getStudentSn()); TeacherOpenCourseStudentSigninLog teacherOpenCourseStudentSigninLog = new TeacherOpenCourseStudentSigninLog();
TeacherOpenCourseStudentSigninLog teacherOpenCourseStudentSigninLog = new TeacherOpenCourseStudentSigninLog(); teacherOpenCourseStudentSigninLog.setStudentId(studentInfo.getStudentId());
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseId(entity.getTeacherOpenCourseId()); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseId(entity.getTeacherOpenCourseId());
teacherOpenCourseStudentSigninLog.setSchoolClassId(classId); teacherOpenCourseStudentSigninLog.setSchoolClassId(classId);
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogAddTime(now); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogAddTime(now);
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogIp(getIpAddr(request)); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogIp(getIpAddr(request));
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogTag(SIGN_IN); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogTag(SIGN_IN);
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninSettingSessionTime(now); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninSettingSessionTime(now);
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninSettingId(settingId); teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninSettingId(settingId);
teacherOpenCourseStudentSigninLog.setOrgId(operatorUser.getOrgId()); teacherOpenCourseStudentSigninLog.setOrgId(operatorUser.getOrgId());
teacherOpenCourseStudentSigninLog.setUserId(studentInfo.getUserId()); teacherOpenCourseStudentSigninLog.setUserId(studentInfo.getUserId());
// 拷贝前端传过来的值
BeanUtil.copyProperties(item, teacherOpenCourseStudentSigninLog); // 查询到抽取的学生信息,替换默认的参数
return teacherOpenCourseStudentSigninLog; emptyIfNull(dto.getSigninLogList()).stream().filter(ite -> studentInfo.getStudentId().equals(ite.getStudentId())).forEach(findOne -> {
// 默认的一些属性填充 teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogTag(findOne.getTeacherOpenCourseStudentSigninLogTag());
teacherOpenCourseStudentSigninLog.setTeacherOpenCourseStudentSigninLogRemark(findOne.getTeacherOpenCourseStudentSigninLogRemark());
});
return teacherOpenCourseStudentSigninLog;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
insertBatch(signinLogList); insertBatch(signinLogList);

Loading…
Cancel
Save