|
@@ -1,11 +1,112 @@
|
|
|
package com.qmth.eds.service.impl;
|
|
|
|
|
|
+import com.alibaba.excel.EasyExcel;
|
|
|
+import com.alibaba.excel.ExcelWriter;
|
|
|
+import com.alibaba.excel.write.metadata.WriteSheet;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.eds.common.entity.CloudMarkingScoreForeign;
|
|
|
+import com.qmth.eds.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.eds.common.util.FileUtil;
|
|
|
+import com.qmth.eds.common.util.ServletUtil;
|
|
|
import com.qmth.eds.mapper.CloudMarkingScoreForeignMapper;
|
|
|
import com.qmth.eds.service.CloudMarkingScoreForeignService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
@Service
|
|
|
public class CloudMarkingScoreForeignServiceImpl extends ServiceImpl<CloudMarkingScoreForeignMapper, CloudMarkingScoreForeign> implements CloudMarkingScoreForeignService {
|
|
|
+ @Override
|
|
|
+ public IPage<CloudMarkingScoreForeign> pageData(Long semesterId, Long examTypeId, String examId, Integer pageNumber, Integer pageSize) {
|
|
|
+ Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
+ QueryWrapper<CloudMarkingScoreForeign> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId);
|
|
|
+ if (semesterId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSemesterId, semesterId);
|
|
|
+ }
|
|
|
+ if (examTypeId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId);
|
|
|
+ }
|
|
|
+ if (examId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamId, examId);
|
|
|
+ }
|
|
|
+ queryWrapper.lambda().orderByDesc(CloudMarkingScoreForeign::getJxbId, CloudMarkingScoreForeign::getXh);
|
|
|
+ return this.page(new Page<>(pageNumber, pageSize), queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void downloadScore(Long semesterId, Long examTypeId, String examId, HttpServletResponse response) {
|
|
|
+ Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
|
|
|
+
|
|
|
+ // 查询数据
|
|
|
+ QueryWrapper<CloudMarkingScoreForeign> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSchoolId, schoolId);
|
|
|
+ if (semesterId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getSemesterId, semesterId);
|
|
|
+ }
|
|
|
+ if (examTypeId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamTypeId, examTypeId);
|
|
|
+ }
|
|
|
+ if (examId != null) {
|
|
|
+ queryWrapper.lambda().eq(CloudMarkingScoreForeign::getExamId, examId);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CloudMarkingScoreForeign> cloudMarkingScoreForeignList = this.list(queryWrapper);
|
|
|
+
|
|
|
+ File file = null;
|
|
|
+ try {
|
|
|
+ List<List<String>> head = new ArrayList<>();
|
|
|
+ List<String> headTitle0 = new ArrayList<>();
|
|
|
+ headTitle0.add("云阅卷考试ID");
|
|
|
+ List<String> headTitle1 = new ArrayList<>();
|
|
|
+ headTitle1.add("学年");
|
|
|
+ List<String> headTitle2 = new ArrayList<>();
|
|
|
+ headTitle2.add("学期");
|
|
|
+ List<String> headTitle3 = new ArrayList<>();
|
|
|
+ headTitle3.add("教学班ID");
|
|
|
+ List<String> headTitle4 = new ArrayList<>();
|
|
|
+ headTitle4.add("课程号");
|
|
|
+ List<String> headTitle5 = new ArrayList<>();
|
|
|
+ headTitle5.add("课程名称");
|
|
|
+ List<String> headTitle6 = new ArrayList<>();
|
|
|
+ headTitle6.add("学号");
|
|
|
+ List<String> headTitle7 = new ArrayList<>();
|
|
|
+ headTitle7.add("成绩");
|
|
|
+
|
|
|
+
|
|
|
+ head.add(headTitle0);
|
|
|
+ head.add(headTitle1);
|
|
|
+ head.add(headTitle2);
|
|
|
+ head.add(headTitle3);
|
|
|
+ head.add(headTitle4);
|
|
|
+ head.add(headTitle5);
|
|
|
+ head.add(headTitle6);
|
|
|
+ head.add(headTitle7);
|
|
|
+
|
|
|
+ String fileName = "file-folder" + File.separator + schoolId + File.separator + System.currentTimeMillis() + ".xlsx";
|
|
|
+ file = new File(fileName);
|
|
|
+ if (!file.exists()) {
|
|
|
+ file.createNewFile();
|
|
|
+ }
|
|
|
+ ExcelWriter excelWriter = EasyExcel.write(file).build();
|
|
|
+ //动态表头
|
|
|
+ WriteSheet writeSheet1 = EasyExcel.writerSheet(0, "回传成绩数据").head(head).build();
|
|
|
+ excelWriter.write(cloudMarkingScoreForeignList, writeSheet1);
|
|
|
+ excelWriter.finish();
|
|
|
+ FileUtil.outputFile(response, file, file.getName());
|
|
|
+ } catch (IOException e) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("下载失败:" + e.getMessage());
|
|
|
+ } finally {
|
|
|
+ if (file != null && file.exists()) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|