|
@@ -1,7 +1,9 @@
|
|
|
package com.koobietech.eas.service.impl;
|
|
|
|
|
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
|
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
|
+import cn.afterturn.easypoi.excel.entity.ImportParams;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.koobietech.eas.common.constant.FileType;
|
|
|
import com.koobietech.eas.common.exception.EasException;
|
|
@@ -19,6 +21,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
+import java.io.InputStream;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.ZoneOffset;
|
|
|
import java.util.*;
|
|
@@ -179,7 +183,37 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- public boolean saveStudentAttendanceArchive(EasArcTlsAttendance attendance){
|
|
|
+ @Override
|
|
|
+ public Boolean importExcelAttendance(InputStream inputStream) {
|
|
|
+ ImportParams importParams = new ImportParams();
|
|
|
+ importParams.setTitleRows(1);
|
|
|
+ importParams.setHeadRows(1);
|
|
|
+ try {
|
|
|
+ List<EasArcTlsAttendancePojo> attendance = ExcelImportUtil.importExcel(inputStream,
|
|
|
+ EasArcTlsAttendancePojo.class, importParams);
|
|
|
+ for (EasArcTlsAttendancePojo attendancePojo : attendance) {
|
|
|
+ attendancePojo.setCreateTime(new Date());
|
|
|
+ EasArcTlsAttendance easArcTlsAttendance = new EasArcTlsAttendance();
|
|
|
+ BeanUtil.copyProperties(attendancePojo, easArcTlsAttendance);
|
|
|
+ easArcTlsAttendanceMapper.insert(easArcTlsAttendance);
|
|
|
+ saveStudentAttendanceArchive(easArcTlsAttendance);
|
|
|
+ }
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ throw new EasException(e.getMessage());
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new EasException(e.getMessage());
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ if (inputStream != null) {
|
|
|
+ inputStream.close();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public boolean saveStudentAttendanceArchive(EasArcTlsAttendance attendance) {
|
|
|
EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
|
EasArcTlsAttendanceExample.Criteria criteria = easArcTlsAttendanceExample.createCriteria();
|
|
|
criteria.andStudentNumberEqualTo(attendance.getStudentNumber());
|
|
@@ -191,24 +225,24 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
easArcArchives.setArchiveNumber(archivesDto.getArchiveCode());
|
|
|
easArcArchives.setFilePath(archivesDto.getPath());
|
|
|
easArcArchives.setCreateTime(new Date());
|
|
|
- easArcArchives.setCreateUid( SecurityUtils.getLoginUid().intValue() );
|
|
|
+ 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()) );
|
|
|
+ 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;
|
|
|
}
|
|
|
|
|
|
private ArchivesDto saveEasArcTlsAttendanceToExcel(List<EasArcTlsAttendance> easArcTlsAttendances, String studentNumber) {
|
|
|
List<EasArcTlsAttendancePojo> arcTlsAttendanceList = new ArrayList<>();
|
|
|
- for (EasArcTlsAttendance tlsAttendance: easArcTlsAttendances) {
|
|
|
+ for (EasArcTlsAttendance tlsAttendance : easArcTlsAttendances) {
|
|
|
EasArcTlsAttendancePojo easArcTlsAttendancePojo = new EasArcTlsAttendancePojo();
|
|
|
BeanUtil.copyProperties(tlsAttendance, easArcTlsAttendancePojo);
|
|
|
arcTlsAttendanceList.add(easArcTlsAttendancePojo);
|
|
|
}
|
|
|
- ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
+ ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
Workbook workbook = ExcelExportUtil.exportExcel(params,
|
|
|
EasArcTlsScoresPojo.class, arcTlsAttendanceList);
|
|
|
ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|