|
@@ -1,20 +1,32 @@
|
|
|
package com.koobietech.eas.service.impl;
|
|
|
|
|
|
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
+import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import com.koobietech.eas.common.constant.FileType;
|
|
|
import com.koobietech.eas.common.exception.EasException;
|
|
|
import com.koobietech.eas.common.result.PageData;
|
|
|
-import com.koobietech.eas.mbg.mapper.EasArcTlsAttendanceMapper;
|
|
|
-import com.koobietech.eas.mbg.mapper.EasEduCltRelationMapper;
|
|
|
-import com.koobietech.eas.mbg.mapper.EasEduScheduleMapper;
|
|
|
-import com.koobietech.eas.mbg.mapper.EasSysStudentMapper;
|
|
|
+import com.koobietech.eas.common.utils.SecurityUtils;
|
|
|
+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.mbg.mapper.*;
|
|
|
import com.koobietech.eas.mbg.model.*;
|
|
|
import com.koobietech.eas.service.EasArcTlsAttendanceService;
|
|
|
+import com.koobietech.eas.service.EasArchivesFilesService;
|
|
|
+import org.apache.poi.ss.usermodel.Workbook;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.ZoneOffset;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+/**
|
|
|
+ * @author lc
|
|
|
+ */
|
|
|
@Service
|
|
|
public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceService {
|
|
|
|
|
@@ -30,6 +42,11 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
@Resource
|
|
|
private EasEduScheduleMapper easEduScheduleMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ EasArchivesFilesService easArchivesFilesService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ EasArcArchivesMapper arcArchivesMapper;
|
|
|
|
|
|
@Override
|
|
|
public PageData query(EasArcTlsAttendance attendance) {
|
|
@@ -84,8 +101,9 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
//签到日期前端会自己传 所以就不需要再写一次了
|
|
|
attendance.setCreateTime(new Date());
|
|
|
attendance.setModifyTime(new Date());
|
|
|
- return easArcTlsAttendanceMapper.insert(attendance) == 1;
|
|
|
-
|
|
|
+ int insert = easArcTlsAttendanceMapper.insert(attendance);
|
|
|
+ saveStudentAttendanceArchive(attendance);
|
|
|
+ return insert == 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -107,7 +125,9 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
@Override
|
|
|
public Boolean update(EasArcTlsAttendance attendance) {
|
|
|
attendance.setModifyTime(new Date());
|
|
|
- return easArcTlsAttendanceMapper.updateByPrimaryKey(attendance) == 1;
|
|
|
+ int i = easArcTlsAttendanceMapper.updateByPrimaryKey(attendance);
|
|
|
+ saveStudentAttendanceArchive(attendance);
|
|
|
+ return i == 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -159,51 +179,41 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
+ public boolean saveStudentAttendanceArchive(EasArcTlsAttendance attendance){
|
|
|
+ EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
|
+ EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
|
|
|
+ criteria.andStudentNumberEqualTo(attendance.getStudentNumber());
|
|
|
+ //criteria.andScheduleIdEqualTo(attendance.getScheduleId());
|
|
|
+ List<EasArcTlsAttendance> easArcTlsAttendances = easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
+ ArchivesDto archivesDto = saveEasArcTlsAttendanceToExcel(easArcTlsAttendances, attendance.getStudentNumber());
|
|
|
+ EasArcArchives easArcArchives = new EasArcArchives();
|
|
|
+ easArcArchives.setStudentNumber(attendance.getStudentNumber());
|
|
|
+ easArcArchives.setArchiveNumber(archivesDto.getArchiveCode());
|
|
|
+ easArcArchives.setFilePath(archivesDto.getPath());
|
|
|
+ easArcArchives.setCreateTime(new Date());
|
|
|
+ easArcArchives.setCreateUid( SecurityUtils.getLoginUid().intValue() );
|
|
|
+ easArcArchives.setModifyTime(new Date());
|
|
|
+ easArcArchives.setArctype(FileType.XLSX.name());
|
|
|
+ easArcArchives.setManagerId( SecurityUtils.getLoginUid().intValue() );
|
|
|
+ easArcArchives.setValidityTime( new Date(LocalDate.now().plusMonths(20)
|
|
|
+ .atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli()) );
|
|
|
+ int insert = arcArchivesMapper.insert(easArcArchives);
|
|
|
+ return insert == 1;
|
|
|
+ }
|
|
|
|
|
|
-// @Override
|
|
|
-// public List<EasArcTlsAttendance> getStudentList(Long scheduleId) {
|
|
|
-// // 创建查询条件,根据课表ID查找EasEduSchedule表,获取班级ID
|
|
|
-// EasEduSchedule easEduSchedule = easEduScheduleMapper.selectByPrimaryKey(scheduleId);
|
|
|
-// if (Objects.nonNull(easEduSchedule)) {
|
|
|
-// Long classId = Long.valueOf(easEduSchedule.getClassId()); // 将班级ID赋值给classId变量
|
|
|
-// System.out.println("!!!!查出来的对应scheduleId的classId = " + classId);
|
|
|
-//
|
|
|
-// // 创建查询条件,根据班级ID查找EasEduCltRelation表,获取学生ID
|
|
|
-// EasEduCltRelationExample easEduCltRelationExample = new EasEduCltRelationExample();
|
|
|
-// EasEduCltRelationExample.Criteria criteriaFindStuId = easEduCltRelationExample.createCriteria();
|
|
|
-// criteriaFindStuId.andClassIdEqualTo(classId); // 设置班级ID作为查询条件
|
|
|
-//
|
|
|
-// // 查询EasEduCltRelation表,获取符合条件的学生ID列表
|
|
|
-// List<EasEduCltRelation> easEduCltRelations = easEduCltRelationMapper.selectByExample(easEduCltRelationExample);
|
|
|
-// List<Long> studentIds = new ArrayList<>();
|
|
|
-// for (EasEduCltRelation easEduCltRelation : easEduCltRelations) {
|
|
|
-// studentIds.add(Long.valueOf(easEduCltRelation.getStudentId())); // 将学生ID添加到列表中
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 根据学生ID列表查询EasSysStudent表,获取学生信息
|
|
|
-// EasSysStudentExample easSysStudentExample = new EasSysStudentExample();
|
|
|
-// EasSysStudentExample.Criteria criteriaFindStu = easSysStudentExample.createCriteria();
|
|
|
-// if (!studentIds.isEmpty()) {
|
|
|
-// criteriaFindStu.andIdIn(studentIds); // 设置学生ID列表作为查询条件
|
|
|
-// }
|
|
|
-// List<EasSysStudent> easSysStudents = easSysStudentMapper.selectByExample(easSysStudentExample);
|
|
|
-//
|
|
|
-// // 封装查询结果到PageData对象并返回
|
|
|
-// PageData ret = new PageData();
|
|
|
-// ret.setData(easSysStudents);
|
|
|
-// List<EasArcTlsAttendance> list = new ArrayList<>();
|
|
|
-// easSysStudents.forEach(easSysStudent -> {
|
|
|
-// EasArcTlsAttendance easArcTlsAttendance = new EasArcTlsAttendance();
|
|
|
-// easArcTlsAttendance.setStudentNumber(easSysStudent.getStudentNumber());
|
|
|
-// easArcTlsAttendance.setStudentName(easSysStudent.getStudentName());
|
|
|
-// list.add(easArcTlsAttendance);
|
|
|
-// });
|
|
|
-// return list;
|
|
|
-// } else {
|
|
|
-// throw new EasException("未查询到对应课表,请检查数据库", 9595); // 如果查询不到课表,则返回空列表
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
+ private ArchivesDto saveEasArcTlsAttendanceToExcel(List<EasArcTlsAttendance> easArcTlsAttendances, String studentNumber) {
|
|
|
+ List<EasArcTlsAttendancePojo> arcTlsAttendanceList = new ArrayList<>();
|
|
|
+ for (EasArcTlsAttendance tlsAttendance: easArcTlsAttendances) {
|
|
|
+ EasArcTlsAttendancePojo easArcTlsAttendancePojo = new EasArcTlsAttendancePojo();
|
|
|
+ BeanUtil.copyProperties(tlsAttendance, easArcTlsAttendancePojo);
|
|
|
+ arcTlsAttendanceList.add(easArcTlsAttendancePojo);
|
|
|
+ }
|
|
|
+ ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(params,
|
|
|
+ EasArcTlsScoresPojo.class, arcTlsAttendanceList);
|
|
|
+ ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|
|
|
+ return archivesDto;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|