|
@@ -7,9 +7,8 @@ import com.koobietech.eas.common.constant.FileType;
|
|
|
import com.koobietech.eas.common.exception.EasException;
|
|
|
import com.koobietech.eas.common.result.PageDataResult;
|
|
|
import com.koobietech.eas.common.utils.SecurityManager;
|
|
|
-import com.koobietech.eas.dao.pojo.EasArcTlsAttendancePojo;
|
|
|
-import com.koobietech.eas.dao.pojo.EasArcTlsScoresPojo;
|
|
|
import com.koobietech.eas.dao.dto.ArchivesDto;
|
|
|
+import com.koobietech.eas.dao.pojo.EasArcTlsAttendancePojo;
|
|
|
import com.koobietech.eas.mbg.mapper.*;
|
|
|
import com.koobietech.eas.mbg.model.*;
|
|
|
import com.koobietech.eas.service.EasArcTlsAttendanceService;
|
|
@@ -48,12 +47,17 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
@Resource
|
|
|
EasArcArchivesMapper arcArchivesMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ EasEduCategoryMapper easEduCategoryMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ EasEduSubjectsMapper easEduSubjectsMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public PageDataResult query(EasArcTlsAttendance attendance) {
|
|
|
EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
|
EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
|
|
|
if (Objects.nonNull(attendance)) {
|
|
|
-
|
|
|
if (Objects.nonNull(attendance.getId()) && attendance.getId() != 0) {
|
|
|
criteria.andIdEqualTo(attendance.getId());
|
|
|
}
|
|
@@ -85,15 +89,14 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
criteria.andModifyTimeEqualTo(attendance.getModifyTime());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
List<EasArcTlsAttendance> easArcTlsAttendances =
|
|
|
easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
long l = easArcTlsAttendanceMapper.countByExample(easArcTlsAttendanceExample);
|
|
|
+
|
|
|
PageDataResult ret = new PageDataResult();
|
|
|
ret.setData(easArcTlsAttendances);
|
|
|
ret.setTotal(l);
|
|
|
return ret;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -101,6 +104,7 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
//签到日期前端会自己传 所以就不需要再写一次了
|
|
|
attendance.setCreateTime(new Date());
|
|
|
attendance.setModifyTime(new Date());
|
|
|
+ attendance.setCreateUid( SecurityManager.getLoginUid().intValue() );
|
|
|
int insert = easArcTlsAttendanceMapper.insert(attendance);
|
|
|
saveStudentAttendanceArchive(attendance);
|
|
|
return insert == 1;
|
|
@@ -124,8 +128,36 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
|
|
|
@Override
|
|
|
public Boolean update(EasArcTlsAttendance attendance) {
|
|
|
- attendance.setModifyTime(new Date());
|
|
|
- int i = easArcTlsAttendanceMapper.updateByPrimaryKey(attendance);
|
|
|
+ int i;
|
|
|
+ //有则更新 没有则添加
|
|
|
+ Calendar calender = Calendar.getInstance();
|
|
|
+ calender.setTime(new Date());
|
|
|
+ attendance.setMonth( calender.get(Calendar.MONTH) + 1);
|
|
|
+ EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
|
+ EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
|
|
|
+ criteria.andStudentNumberEqualTo(attendance.getStudentNumber());
|
|
|
+ criteria.andScheduleIdEqualTo(attendance.getScheduleId());
|
|
|
+ long l = easArcTlsAttendanceMapper.countByExample(easArcTlsAttendanceExample);
|
|
|
+ if ( Objects.isNull(attendance.getModifyTime()) ) {
|
|
|
+ attendance.setModifyTime(new Date());
|
|
|
+ }
|
|
|
+ if ( Objects.isNull(attendance.getCreateTime()) ) {
|
|
|
+ attendance.setCreateTime(new Date());
|
|
|
+ }
|
|
|
+ if ( Objects.isNull(attendance.getCreateUid()) ) {
|
|
|
+ attendance.setCreateUid(SecurityManager.getLoginUid().intValue());
|
|
|
+ }
|
|
|
+ if ( l > 0 ) {
|
|
|
+ //修改的清空下 不允许修改更多信息
|
|
|
+ EasArcTlsAttendance easArcTlsAttendance = new EasArcTlsAttendance();
|
|
|
+ easArcTlsAttendance.setModifyTime(new Date());
|
|
|
+ easArcTlsAttendance.setCreateTime(attendance.getCreateTime());
|
|
|
+ easArcTlsAttendance.setAfternoon(attendance.getAfternoon());
|
|
|
+ easArcTlsAttendance.setMorning(attendance.getMorning());
|
|
|
+ i = easArcTlsAttendanceMapper.updateByExampleSelective(easArcTlsAttendance, easArcTlsAttendanceExample);
|
|
|
+ } else {
|
|
|
+ i = easArcTlsAttendanceMapper.insert(attendance);
|
|
|
+ }
|
|
|
saveStudentAttendanceArchive(attendance);
|
|
|
return i == 1;
|
|
|
}
|
|
@@ -147,6 +179,13 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
|
|
|
@Override
|
|
|
public List<EasArcTlsAttendance> getStudentList(Long scheduleId) {
|
|
|
+ HashMap<String, EasArcTlsAttendance> attendanceHistory = new HashMap<>();
|
|
|
+ EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
|
+ easArcTlsAttendanceExample.createCriteria().andScheduleIdEqualTo(scheduleId.intValue());
|
|
|
+ List<EasArcTlsAttendance> easArcTlsAttendances = easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
+ for (EasArcTlsAttendance attendance: easArcTlsAttendances) {
|
|
|
+ attendanceHistory.put(attendance.getStudentNumber(), attendance);
|
|
|
+ }
|
|
|
// 根据课表ID查找EasEduSchedule表,获取班级ID
|
|
|
EasEduSchedule easEduSchedule = easEduScheduleMapper.selectByPrimaryKey(scheduleId);
|
|
|
Long classId = Optional.ofNullable(easEduSchedule)
|
|
@@ -167,13 +206,21 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
EasSysStudentExample easSysStudentExample = new EasSysStudentExample();
|
|
|
easSysStudentExample.createCriteria().andIdIn(studentIds);
|
|
|
List<EasSysStudent> easSysStudents = easSysStudentMapper.selectByExample(easSysStudentExample);
|
|
|
-
|
|
|
// 封装查询结果到PageData对象并返回
|
|
|
return easSysStudents.stream()
|
|
|
.map(s -> {
|
|
|
EasArcTlsAttendance easArcTlsAttendance = new EasArcTlsAttendance();
|
|
|
easArcTlsAttendance.setStudentNumber(s.getStudentNumber());
|
|
|
easArcTlsAttendance.setStudentName(s.getStudentName());
|
|
|
+ easArcTlsAttendance.setScheduleId( scheduleId.intValue() );
|
|
|
+ easArcTlsAttendance.setCheckinDate( easEduSchedule.getStartTime() );
|
|
|
+ if ( !Objects.isNull(attendanceHistory.get(s.getStudentNumber())) ) {
|
|
|
+ easArcTlsAttendance.setAfternoon(attendanceHistory.get(s.getStudentNumber()).getAfternoon());
|
|
|
+ easArcTlsAttendance.setMorning(attendanceHistory.get(s.getStudentNumber()).getMorning());
|
|
|
+ easArcTlsAttendance.setCreateTime(attendanceHistory.get(s.getStudentNumber()).getCreateTime());
|
|
|
+ easArcTlsAttendance.setModifyTime(attendanceHistory.get(s.getStudentNumber()).getModifyTime());
|
|
|
+ easArcTlsAttendance.setCreateUid(attendanceHistory.get(s.getStudentNumber()).getCreateUid());
|
|
|
+ }
|
|
|
return easArcTlsAttendance;
|
|
|
})
|
|
|
.collect(Collectors.toList());
|
|
@@ -202,17 +249,23 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
}
|
|
|
|
|
|
private ArchivesDto saveEasArcTlsAttendanceToExcel(List<EasArcTlsAttendance> easArcTlsAttendances, String studentNumber) {
|
|
|
+
|
|
|
List<EasArcTlsAttendancePojo> arcTlsAttendanceList = new ArrayList<>();
|
|
|
for (EasArcTlsAttendance tlsAttendance: easArcTlsAttendances) {
|
|
|
+ EasEduSchedule easEduSchedule = easEduScheduleMapper.selectByPrimaryKey(tlsAttendance.getScheduleId().longValue());
|
|
|
+ EasEduCategory easEduCategory = easEduCategoryMapper.selectByPrimaryKey(easEduSchedule.getCategoryId());
|
|
|
+ EasEduSubjects easEduSubjects = easEduSubjectsMapper.selectByPrimaryKey(easEduSchedule.getSubjectsId());
|
|
|
EasArcTlsAttendancePojo easArcTlsAttendancePojo = new EasArcTlsAttendancePojo();
|
|
|
BeanUtil.copyProperties(tlsAttendance, easArcTlsAttendancePojo);
|
|
|
+ easArcTlsAttendancePojo.setSubject(easEduSubjects.getName());
|
|
|
+ easArcTlsAttendancePojo.setCategory(easEduCategory.getName());
|
|
|
arcTlsAttendanceList.add(easArcTlsAttendancePojo);
|
|
|
}
|
|
|
- ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
+ ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
+ params.setHeaderHeight(30);
|
|
|
Workbook workbook = ExcelExportUtil.exportExcel(params,
|
|
|
- EasArcTlsScoresPojo.class, arcTlsAttendanceList);
|
|
|
- ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|
|
|
- return archivesDto;
|
|
|
+ EasArcTlsAttendancePojo.class, arcTlsAttendanceList);
|
|
|
+ return easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|
|
|
}
|
|
|
|
|
|
}
|