|
@@ -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;
|
|
@@ -10,6 +12,7 @@ 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.dao.mapper.AttendanceQueryMapper;
|
|
|
import com.koobietech.eas.mbg.mapper.*;
|
|
|
import com.koobietech.eas.mbg.model.*;
|
|
|
import com.koobietech.eas.service.EasArcTlsAttendanceService;
|
|
@@ -19,6 +22,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.*;
|
|
@@ -48,6 +53,9 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
@Resource
|
|
|
EasArcArchivesMapper arcArchivesMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ AttendanceQueryMapper attendanceQueryMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public PageData query(EasArcTlsAttendance attendance) {
|
|
|
EasArcTlsAttendanceExample easArcTlsAttendanceExample = new EasArcTlsAttendanceExample();
|
|
@@ -87,8 +95,8 @@ public class EasArcTlsAttendanceServiceImpl implements EasArcTlsAttendanceServic
|
|
|
}
|
|
|
|
|
|
List<EasArcTlsAttendance> easArcTlsAttendances =
|
|
|
- easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
- long l = easArcTlsAttendanceMapper.countByExample(easArcTlsAttendanceExample);
|
|
|
+ attendanceQueryMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
+ long l = attendanceQueryMapper.countByExample(easArcTlsAttendanceExample);
|
|
|
PageData ret = new PageData();
|
|
|
ret.setData(easArcTlsAttendances);
|
|
|
ret.setTotal(l);
|
|
@@ -179,11 +187,54 @@ 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 {
|
|
|
+ //调用工具类导入excel
|
|
|
+ List<EasArcTlsAttendancePojo> attendance = ExcelImportUtil.importExcel(inputStream,
|
|
|
+ EasArcTlsAttendancePojo.class, importParams);
|
|
|
+ EasArcTlsAttendance easArcTlsAttendance = null;
|
|
|
+ //遍历存储考勤信息
|
|
|
+ for (EasArcTlsAttendancePojo attendancePojo : attendance) {
|
|
|
+ if ( !StringUtils.hasText(attendancePojo.getStudentNumber()) ) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ easArcTlsAttendance = new EasArcTlsAttendance();
|
|
|
+ //拷贝考勤信息
|
|
|
+ BeanUtil.copyProperties(attendancePojo, easArcTlsAttendance);
|
|
|
+ easArcTlsAttendance.setCreateUid( SecurityUtils.getLoginUid().intValue() );
|
|
|
+ easArcTlsAttendance.setModifyTime(new Date());
|
|
|
+ easArcTlsAttendance.setCreateTime(new Date());
|
|
|
+ easArcTlsAttendance.setMonth(attendancePojo.getCheckinDate().getMonth());
|
|
|
+ //将excel信息存入数据库
|
|
|
+ easArcTlsAttendanceMapper.insert(easArcTlsAttendance);
|
|
|
+ }
|
|
|
+ if ( Objects.nonNull (easArcTlsAttendance) ) {
|
|
|
+ //考勤信息不为空,存入学生档案
|
|
|
+ saveStudentAttendanceArchive(easArcTlsAttendance);
|
|
|
+ }
|
|
|
+ } 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());
|
|
|
- //criteria.andScheduleIdEqualTo(attendance.getScheduleId());
|
|
|
List<EasArcTlsAttendance> easArcTlsAttendances = easArcTlsAttendanceMapper.selectByExample(easArcTlsAttendanceExample);
|
|
|
ArchivesDto archivesDto = saveEasArcTlsAttendanceToExcel(easArcTlsAttendances, attendance.getStudentNumber());
|
|
|
EasArcArchives easArcArchives = new EasArcArchives();
|
|
@@ -191,26 +242,36 @@ 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) {
|
|
|
+ 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);
|
|
|
+ EasArcTlsAttendancePojo tlsAttendancePojo = attendanceQueryMapper.importExcel(studentNumber);
|
|
|
+ if ( Objects.nonNull(tlsAttendancePojo) ) {
|
|
|
+ easArcTlsAttendancePojo.setCategory(tlsAttendancePojo.getCategory());
|
|
|
+ easArcTlsAttendancePojo.setSubject(tlsAttendancePojo.getSubject());
|
|
|
+ easArcTlsAttendancePojo.setStudentId(tlsAttendancePojo.getStudentId());
|
|
|
+ easArcTlsAttendancePojo.setStartTime(tlsAttendancePojo.getStartTime());
|
|
|
+ easArcTlsAttendancePojo.setEndTime(tlsAttendancePojo.getEndTime());
|
|
|
+ }
|
|
|
arcTlsAttendanceList.add(easArcTlsAttendancePojo);
|
|
|
}
|
|
|
- ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
+ System.out.println( arcTlsAttendanceList );
|
|
|
+ ExportParams params = new ExportParams("学员签到表", "签到");
|
|
|
Workbook workbook = ExcelExportUtil.exportExcel(params,
|
|
|
- EasArcTlsScoresPojo.class, arcTlsAttendanceList);
|
|
|
+ EasArcTlsAttendancePojo.class, arcTlsAttendanceList);
|
|
|
ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|
|
|
return archivesDto;
|
|
|
}
|