|
@@ -1,36 +1,80 @@
|
|
|
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.afterturn.easypoi.handler.inter.IExcelExportServer;
|
|
|
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.common.utils.FileManager;
|
|
|
+import com.koobietech.eas.common.utils.SecurityUtils;
|
|
|
+import com.koobietech.eas.common.utils.StudentArchiveGenerator;
|
|
|
import com.koobietech.eas.dao.Pojo.EasArcTlsScoresPojo;
|
|
|
+import com.koobietech.eas.dao.dto.ArchivesDto;
|
|
|
+import com.koobietech.eas.mbg.mapper.EasArcArchivesMapper;
|
|
|
import com.koobietech.eas.mbg.mapper.EasArcTlsScoresMapper;
|
|
|
+import com.koobietech.eas.mbg.model.EasArcArchives;
|
|
|
import com.koobietech.eas.mbg.model.EasArcTlsScores;
|
|
|
import com.koobietech.eas.mbg.model.EasArcTlsScoresExample;
|
|
|
import com.koobietech.eas.service.EasArcTlsScoresService;
|
|
|
+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.io.FileNotFoundException;
|
|
|
import java.io.InputStream;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.ZoneOffset;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
+/**
|
|
|
+ * @author lc
|
|
|
+ */
|
|
|
@Service
|
|
|
public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
|
|
|
|
|
|
@Resource
|
|
|
EasArcTlsScoresMapper easArcTlsScoresMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ EasArchivesFilesService easArchivesFilesService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ EasArcArchivesMapper arcArchivesMapper;
|
|
|
|
|
|
@Override
|
|
|
public int addStudentScore(EasArcTlsScores easArcTlsScores) {
|
|
|
easArcTlsScores.setCreateTime(new Date());
|
|
|
easArcTlsScores.setModifyTime(new Date());
|
|
|
- return easArcTlsScoresMapper.insert(easArcTlsScores);
|
|
|
+ easArcTlsScoresMapper.insert(easArcTlsScores);
|
|
|
+ return saveStudentScoreArchive(easArcTlsScores) ? 1: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean saveStudentScoreArchive(EasArcTlsScores easArcTlsScores){
|
|
|
+ EasArcTlsScoresExample easArcTlsScoresExample = new EasArcTlsScoresExample();
|
|
|
+ List<EasArcTlsScores> easArcTlsScoresList = easArcTlsScoresMapper.selectByExample(easArcTlsScoresExample);
|
|
|
+ ArchivesDto archivesDto = saveEasArcTlsScoresToExcel(easArcTlsScoresList, easArcTlsScores.getStudentNumber());
|
|
|
+ EasArcArchives easArcArchives = new EasArcArchives();
|
|
|
+ easArcArchives.setStudentNumber(easArcTlsScores.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
|
|
@@ -84,30 +128,53 @@ public class EasArcTlsScoresServiceImpl implements EasArcTlsScoresService {
|
|
|
return PageData.init(easArcTlsScores1,l);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
+ @Override
|
|
|
public Boolean importExcelScores(InputStream inputStream) {
|
|
|
- ImportParams params = new ImportParams();
|
|
|
- params.setTitleRows(1);
|
|
|
- params.setHeadRows(1);
|
|
|
- try {
|
|
|
- List<EasArcTlsScoresPojo> score = ExcelImportUtil.importExcel(
|
|
|
- inputStream, EasArcTlsScoresPojo.class, params);
|
|
|
- for ( EasArcTlsScoresPojo easArcTlsScoresPojo : score) {
|
|
|
- if ( easArcTlsScoresPojo.getScore() == null
|
|
|
- || easArcTlsScoresPojo.getScore().equals("") ) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- easArcTlsScoresPojo.setCreateTime(new Date());
|
|
|
- EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
|
|
|
- BeanUtil.copyProperties(easArcTlsScoresPojo, easArcTlsScores);
|
|
|
- easArcTlsScoresMapper.insert(easArcTlsScores);
|
|
|
+ ImportParams params = new ImportParams();
|
|
|
+ params.setTitleRows(1);
|
|
|
+ params.setHeadRows(1);
|
|
|
+ try {
|
|
|
+ List<EasArcTlsScoresPojo> score = ExcelImportUtil.importExcel(
|
|
|
+ inputStream, EasArcTlsScoresPojo.class, params);
|
|
|
+ for ( EasArcTlsScoresPojo easArcTlsScoresPojo : score) {
|
|
|
+ if ( easArcTlsScoresPojo.getScore() == null
|
|
|
+ || easArcTlsScoresPojo.getScore().equals("") ) {
|
|
|
+ continue;
|
|
|
}
|
|
|
- } catch (FileNotFoundException e) {
|
|
|
- e.printStackTrace();
|
|
|
- } catch (Exception e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
+ easArcTlsScoresPojo.setCreateTime(new Date());
|
|
|
+ EasArcTlsScores easArcTlsScores = new EasArcTlsScores();
|
|
|
+ BeanUtil.copyProperties(easArcTlsScoresPojo, easArcTlsScores);
|
|
|
+ easArcTlsScoresMapper.insert(easArcTlsScores);
|
|
|
}
|
|
|
- return true;
|
|
|
+ } 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;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 将学员考试分数保存为Execl文件
|
|
|
+ */
|
|
|
+ public ArchivesDto saveEasArcTlsScoresToExcel(List<EasArcTlsScores> easArcTlsScoresList,
|
|
|
+ String studentNumber) {
|
|
|
+ List<EasArcTlsScoresPojo> easArcTlsScoresPojoList = new ArrayList<>();
|
|
|
+ for (EasArcTlsScores easArcTlsScores: easArcTlsScoresList) {
|
|
|
+ EasArcTlsScoresPojo easArcTlsScoresPojo = new EasArcTlsScoresPojo();
|
|
|
+ BeanUtil.copyProperties(easArcTlsScores, easArcTlsScoresPojo);
|
|
|
+ easArcTlsScoresPojoList.add(easArcTlsScoresPojo);
|
|
|
+ }
|
|
|
+ ExportParams params = new ExportParams("考试成绩表", "考试成绩");
|
|
|
+ Workbook workbook = ExcelExportUtil.exportExcel(params,
|
|
|
+ EasArcTlsScoresPojo.class, easArcTlsScoresPojoList);
|
|
|
+ ArchivesDto archivesDto = easArchivesFilesService.saveArchiveFile(studentNumber, workbook);
|
|
|
+ return archivesDto;
|
|
|
+ }
|
|
|
}
|