xiaofei 1 år sedan
förälder
incheckning
ceb5170194
24 ändrade filer med 164 tillägg och 42 borttagningar
  1. 2 2
      distributed-print-business/pom.xml
  2. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDetailCardDto.java
  3. 31 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/MakeupExamTaskDto.java
  4. 18 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  5. 9 2
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  6. 13 0
      distributed-print/install/mysql/upgrade/3.3.3.sql
  7. 2 2
      distributed-print/pom.xml
  8. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  9. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkArchiveController.java
  10. 1 1
      distributed-print/src/main/resources/application.properties
  11. 2 2
      pom.xml
  12. 2 2
      teachcloud-common-api/pom.xml
  13. 2 2
      teachcloud-common/pom.xml
  14. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  15. 2 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/ExamCategoryEnum.java
  16. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/kit/TikuUtils.java
  17. 2 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicCourseService.java
  18. 8 6
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java
  19. 2 2
      teachcloud-mark/pom.xml
  20. 2 0
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java
  21. 40 1
      teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java
  22. 2 2
      teachcloud-report-business/pom.xml
  23. 2 2
      teachcloud-report/pom.xml
  24. 2 2
      teachcloud-task/pom.xml

+ 2 - 2
distributed-print-business/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.business</groupId>
     <artifactId>distributed-print-business</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDetailCardDto.java

@@ -30,6 +30,7 @@ public class ExamTaskDetailCardDto {
     private String flowTaskId;
     private String examId;
     private String examModel;
+    private String category;
     private String examName;
     private String semesterName;
     private FlowStatusEnum flowStatus;
@@ -249,6 +250,14 @@ public class ExamTaskDetailCardDto {
         this.review = review;
     }
 
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
     public String getAuditContent() {
         return auditContent;
     }

+ 31 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/MakeupExamTaskDto.java

@@ -1,4 +1,5 @@
 package com.qmth.distributed.print.business.bean.dto;
+
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
@@ -17,8 +18,14 @@ public class MakeupExamTaskDto {
     private String courseCode;
     private String courseName;
     private String paperNumber;
+    // 校区
+    private String campusName;
+    // 班级
+    private String className;
     private String loginName;
     private String realName;
+    // 印刷室ID
+    private Long printHouseId;
     private String unexposedPaperType;
     private String exposedPaperType;
     private ExamDetailStatusEnum status;
@@ -74,6 +81,30 @@ public class MakeupExamTaskDto {
         this.paperNumber = paperNumber;
     }
 
+    public String getCampusName() {
+        return campusName;
+    }
+
+    public void setCampusName(String campusName) {
+        this.campusName = campusName;
+    }
+
+    public String getClassName() {
+        return className;
+    }
+
+    public void setClassName(String className) {
+        this.className = className;
+    }
+
+    public Long getPrintHouseId() {
+        return printHouseId;
+    }
+
+    public void setPrintHouseId(Long printHouseId) {
+        this.printHouseId = printHouseId;
+    }
+
     public String getLoginName() {
         return loginName;
     }

+ 18 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -40,7 +40,7 @@ import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.*;
-import com.qmth.teachcloud.common.enums.log.*;
+import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
 import com.qmth.teachcloud.common.kit.TikuUtils;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.*;
@@ -1305,15 +1305,17 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (ExamModelEnum.MODEL1.equals(basicExam.getExamModel()) || ExamModelEnum.MODEL2.equals(basicExam.getExamModel())) {
                 // 创建印刷计划
                 ExamDetailParams examDetailParams = JSONObject.parseObject(String.valueOf(jsonObject.get("examDetail")), ExamDetailParams.class);
-                ConvertUtil.analyzeAndCompareDateAndTime(examDetailParams.getExamStartTime(), examDetailParams.getExamEndTime());
                 ExamPrintPlan examPrintPlan = new ExamPrintPlan();
                 examPrintPlan.insertInfo(sysUser.getId());
                 examPrintPlan.setSchoolId(schoolId);
                 examPrintPlan.setExamId(examTask.getExamId());
                 examPrintPlan.setOrgId(sysUser.getOrgId());
                 examPrintPlan.setName(examTask.getCourseName() + examTask.getPaperNumber());
-                examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());
-                examPrintPlan.setExamEndTime(examDetailParams.getExamEndTime());
+                if (!ExamCategoryEnum.REBUILD.equals(basicExam.getCategory())) {
+                    ConvertUtil.analyzeAndCompareDateAndTime(examDetailParams.getExamStartTime(), examDetailParams.getExamEndTime());
+                    examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());
+                    examPrintPlan.setExamEndTime(examDetailParams.getExamEndTime());
+                }
                 List<String> stringList = JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class);
                 if (!stringList.contains("PAPER")) {
                     long count = paperInfoVoList.stream().filter(m -> Objects.isNull(m.getAttachmentId())).count();
@@ -1375,8 +1377,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         examDetail.setExamPlace(examDetailList.getExamPlace()); // 无默认值
                         examDetail.setExamRoom(examDetailList.getExamRoom()); // 无默认值
                         examDetail.setStatus(ExamDetailStatusEnum.NEW);
-                        examDetail.setExamStartTime(examDetailParams.getExamStartTime());
-                        examDetail.setExamEndTime(examDetailParams.getExamEndTime());
+                        if (!ExamCategoryEnum.REBUILD.equals(basicExam.getCategory())) {
+                            examDetail.setExamStartTime(examDetailParams.getExamStartTime());
+                            examDetail.setExamEndTime(examDetailParams.getExamEndTime());
+                        }
                         examDetail.setTotalSubjects(count);
                         examDetail.setExamDataSource(ExamDataSourceEnum.EXAM_TASK);
                         examDetail.setNormal(true);
@@ -1445,8 +1449,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 //                    examDetail.setExamPlace("考点1"); // 默认填充班级所在校区
 //                    examDetail.setExamRoom("考场1"); // 默认填充班级
                     examDetail.setStatus(ExamDetailStatusEnum.NEW);
-                    examDetail.setExamStartTime(examDetailParams.getExamStartTime());
-                    examDetail.setExamEndTime(examDetailParams.getExamEndTime());
+                    if (!ExamCategoryEnum.REBUILD.equals(basicExam.getCategory())) {
+                        examDetail.setExamStartTime(examDetailParams.getExamStartTime());
+                        examDetail.setExamEndTime(examDetailParams.getExamEndTime());
+                    }
                     examDetail.setTotalSubjects(examDetailParams.getTotalSubjects());
                     examDetail.setExamDataSource(ExamDataSourceEnum.EXAM_TASK);
                     examDetail.setNormal(true);
@@ -1464,6 +1470,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     examDetailCourse.setCourseName(examTask.getCourseName());
                     examDetailCourse.setPaperNumber(paperNumber);
                     examDetailCourse.setClazzId(examDetailParams.getClassId());
+                    if (StringUtils.isNotBlank(examDetailParams.getClassId())) {
+                        List<BasicClazz> basicClazzList = basicClazzService.listByIds(Arrays.asList(examDetailParams.getClassId().split(",")));
+                        examDetailCourse.setClazzName(basicClazzList.stream().map(BasicClazz::getClazzName).collect(Collectors.joining(",")));
+                    }
                     examDetailCourse.setTotalSubjects(examDetailParams.getTotalSubjects());
                     examDetailCourse.setCreateId(sysUser.getId());
                     examDetailCourseService.save(examDetailCourse);

+ 9 - 2
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -620,6 +620,7 @@
             e.cancel_remark cancelRemark,
             g.name examName,
             g.exam_model examModel,
+            g.category,
             h.name semesterName,
             case #{source} when 'REVIEW' then ifnull(c.paper_type, a.paper_type) else a.paper_type end paperType,
             case #{source} when 'REVIEW' then ifnull(c.paper_attachment_ids, a.paper_attachment_ids) else a.paper_attachment_ids end paperAttachmentIds,
@@ -1250,7 +1251,10 @@
             b.print_plan_id,
             b.total_subjects,
             b.backup_count,
-            b.status
+            b.status,
+            b.print_house_id,
+            b.exam_place campusName,
+            b.clazz_name className
         FROM
         (SELECT
             et.exam_id,
@@ -1297,7 +1301,10 @@
             edc.paper_number,
             ed.total_subjects,
             ed.backup_count,
-            ed.status
+            ed.status,
+            ed.print_house_id,
+            ed.exam_place,
+            edc.clazz_name
         FROM
             exam_detail ed
         LEFT JOIN exam_detail_course edc ON ed.id = edc.exam_detail_id

+ 13 - 0
distributed-print/install/mysql/upgrade/3.3.3.sql

@@ -0,0 +1,13 @@
+USE teachcloud_db;
+
+ALTER TABLE `exam_print_plan`
+    CHANGE COLUMN `exam_start_time` `exam_start_time` BIGINT NULL COMMENT '考试开始时间' ,
+    CHANGE COLUMN `exam_end_time` `exam_end_time` BIGINT NULL COMMENT '考试结束时间' ;
+
+ALTER TABLE `exam_detail`
+    CHANGE COLUMN `exam_start_time` `exam_start_time` BIGINT NULL COMMENT '考试开始日期' ,
+    CHANGE COLUMN `exam_end_time` `exam_end_time` BIGINT NULL COMMENT '考试结束日期' ;
+
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `related`, `enable`, `default_auth`, `front_display`) VALUES ('545', '成绩下载', 'DownloadScore', 'BUTTON', '487', '2', 'AUTH', '546', '1', '0', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('546', '成绩下载', '/api/admin/mark/archive/score/download', 'URL', '487', '2', 'AUTH', '1', '1', '1');
+INSERT INTO `sys_privilege` (`id`, `name`, `url`, `type`, `parent_id`, `sequence`, `property`, `enable`, `default_auth`, `front_display`) VALUES ('306', '从题库选择试卷', 'SelectTikuPaper', 'BUTTON', '40', '13', 'AUTH', '1', '0', '1');

+ 2 - 2
distributed-print/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print</groupId>
     <artifactId>distributed-print</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -151,9 +151,10 @@ public class BasicCourseController {
     @RequestMapping(value = "/list_by_org", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)})
     public Result findBasicCourseListByOrg(@ApiParam(value = "考试id", required = true) @RequestParam String examId,
-                                           @ApiParam(value = "所属机构id", required = true) @RequestParam String belongOrgId) {
+                                           @ApiParam(value = "所属机构id", required = true) @RequestParam String belongOrgId,
+                                           @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(basicCourseService.listByOrgId(SystemConstant.convertIdToLong(belongOrgId), SystemConstant.convertIdToLong(examId), sysUser));
+        return ResultUtil.ok(basicCourseService.listByOrgId(SystemConstant.convertIdToLong(belongOrgId), SystemConstant.convertIdToLong(examId),courseName, sysUser));
     }
 }
 

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkArchiveController.java

@@ -72,6 +72,12 @@ public class MarkArchiveController {
         markStudentService.scoreExport(query, response);
     }
 
+    @ApiOperation(value = "成绩下载")
+    @RequestMapping(value = "score/download", method = RequestMethod.POST)
+    public void scoreDownload(@Validated ArchiveStudentQuery query, HttpServletResponse response) {
+        markStudentService.scoreDownload(query, response);
+    }
+
     @ApiOperation(value = "成绩导出")
     @RequestMapping(value = "/score/report/download", method = RequestMethod.POST)
     public void scoreReportDownload(@RequestBody JSONObject jsonObject, HttpServletResponse response) {

+ 1 - 1
distributed-print/src/main/resources/application.properties

@@ -12,7 +12,7 @@ spring.application.name=teachcloud
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=teachcloud-3.4.0
+db.name=teachcloud-3.3.3
 db.username=root
 db.password=12345678
 

+ 2 - 2
pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.distributed.print.service</groupId>
     <artifactId>distributed-print-service</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <packaging>pom</packaging>
 
     <modules>
@@ -46,7 +46,7 @@
         <netty-all.version>4.1.49.Final</netty-all.version>
         <itextpdf.version>5.5.13</itextpdf.version>
         <itextasian.version>5.2.0</itextasian.version>
-        <googleBar.version>3.4.0</googleBar.version>
+        <googleBar.version>3.3.3</googleBar.version>
         <freemarker.version>2.3.30</freemarker.version>
         <commons-text.version>1.9</commons-text.version>
         <junit.version>4.13</junit.version>

+ 2 - 2
teachcloud-common-api/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.teachcloud.common.api</groupId>
 	<artifactId>teachcloud-common-api</artifactId>
-	<version>3.4.0</version>
+	<version>3.3.3</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>3.4.0</version>
+		<version>3.3.3</version>
 	</parent>
 
 	<dependencies>

+ 2 - 2
teachcloud-common/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.common</groupId>
     <artifactId>teachcloud-common</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -258,7 +258,7 @@ public class SystemConstant {
     public static final String ID = "id";
     public static final String MODEL = "model";
     public static final String VERSION = "version";
-    public static final String VERSION_VALUE = "3.4.0.1";
+    public static final String VERSION_VALUE = "3.3.3.1";
     public static final String FLOW_ENTITY_ID = "flowEntityId";
     public static final String CUSTOM_FLOW_ID = "customFlowId";
     public static final String ACT_FLOW_ID = "actFlowId";

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/ExamCategoryEnum.java

@@ -9,7 +9,8 @@ public enum ExamCategoryEnum {
 
     FORMAL("正式考试"),
 
-    MAKEUP("补考");
+    MAKEUP("补考"),
+    REBUILD("重修");
 
     private String desc;
 

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/kit/TikuUtils.java

@@ -154,7 +154,7 @@ public class TikuUtils {
      */
     private String getHostUrl(Long schoolId) {
         SysConfig sysConfig = commonCacheService.addSysConfigCache(schoolId, SystemConstant.QUESTION_HOST_URL);
-        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置题库地址"));
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未开通题库模块,请联系管理员"));
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
         return SystemConstant.getHost(sysConfig.getConfigValue(), basicSchool.getCode());
     }

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/BasicCourseService.java

@@ -108,10 +108,11 @@ public interface BasicCourseService extends IService<BasicCourse> {
      *
      * @param orgId       机构id
      * @param examId      考试id
+     * @param courseName
      * @param requestUser 请求用户
      * @return 可选基础课程结果
      */
-    List<TeachCourseSelectResult> listByOrgId(Long orgId, Long examId, SysUser requestUser);
+    List<TeachCourseSelectResult> listByOrgId(Long orgId, Long examId, String courseName, SysUser requestUser);
 
     BasicCourse getByCode(String courseCode);
 }

+ 8 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -26,7 +27,6 @@ import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.JdbcErrorUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import io.netty.util.collection.ShortObjectHashMap;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.jdbc.BadSqlGrammarException;
@@ -38,7 +38,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import javax.websocket.RemoteEndpoint;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.*;
@@ -449,7 +448,7 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     }
 
     @Override
-    public List<TeachCourseSelectResult> listByOrgId(Long orgId, Long examId, SysUser requestUser) {
+    public List<TeachCourseSelectResult> listByOrgId(Long orgId, Long examId, String courseName, SysUser requestUser) {
         List<Long> temp = new ArrayList<>();
         temp.add(orgId);
 
@@ -468,9 +467,12 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
             }
             // 查询本次考试已选择的课程编号
             List<String> occupiedCourseCodeList = this.baseMapper.findOccupiedCourseCode(examId, requestUser.getId());
-
-            result = this.list(new QueryWrapper<BasicCourse>().lambda().in(BasicCourse::getTeachingRoomId, orgIdSet)
-                    .orderByAsc(BasicCourse::getOrgId)).stream().filter(e -> !occupiedCourseCodeList.contains(e.getCode())).flatMap(e -> {
+            LambdaQueryWrapper<BasicCourse> lambda = new QueryWrapper<BasicCourse>().lambda();
+            lambda.in(BasicCourse::getTeachingRoomId, orgIdSet).orderByAsc(BasicCourse::getOrgId);
+            if(StringUtils.isNotBlank(courseName)){
+                lambda.like(BasicCourse::getName, courseName);
+            }
+            result = this.list(lambda).stream().filter(e -> !occupiedCourseCodeList.contains(e.getCode())).flatMap(e -> {
                 TeachCourseSelectResult teachCourseSelectResult = new TeachCourseSelectResult();
                 teachCourseSelectResult.setBasicCourseId(e.getId());
                 teachCourseSelectResult.setCourseName(e.getName());

+ 2 - 2
teachcloud-mark/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.mark</groupId>
     <artifactId>teachcloud-mark</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -167,4 +167,6 @@ public interface MarkStudentService extends IService<MarkStudent> {
     void deleteByExamIdAndPaperNumberAndStudentCode(Long examId, String paperNumber, String studentCode);
 
     Integer maxCardNumber(Long examId, String paperNumber, String paperType);
+
+    void scoreDownload(ArchiveStudentQuery query, HttpServletResponse response);
 }

+ 40 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -514,7 +514,7 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
                 studentObjectiveAnswerDto.setSubNumber(q != null ? q.getSubNumber() : 0);
                 studentObjectiveAnswerDto.setAnswer(answer);
                 studentObjectiveAnswerDto.setExist(q != null && q.getTotalScore() > 0);
-                studentObjectiveAnswerDto.setQuestionType(q !=null ? q.getQuestionType():0);
+                studentObjectiveAnswerDto.setQuestionType(q != null ? q.getQuestionType() : 0);
                 answerDtoList.add(studentObjectiveAnswerDto);
 
                 if (q != null) {
@@ -1601,4 +1601,43 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
     public Integer maxCardNumber(Long examId, String paperNumber, String paperType) {
         return this.baseMapper.maxCardNumber(examId, paperNumber, paperType);
     }
+
+    @Override
+    public void scoreDownload(ArchiveStudentQuery query, HttpServletResponse response) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        //生成表头
+        String[] columnName1 = new String[]{"学生姓名", "学号", "学院", "班级", "课程代码", "课程名称", "客观分", "主观分", "成绩"};
+        String[] columnNames = new String[]{"序号", "班级", "学号", "姓名", "平时(必填)", "实验(必填)", "期末(必填)", "备注"};
+        //生成动态内容
+        List<String[]> columnValues = new ArrayList<>();
+        List<ArchiveStudentVo> ret = baseMapper.studentList(schoolId, query, null);
+        for (int i = 0; i < ret.size(); i++) {
+            ArchiveStudentVo s = ret.get(i);
+            List<String> valueList = new ArrayList<>();
+            valueList.add(String.valueOf(i + 1));
+            valueList.add(s.getClassName());
+            valueList.add(s.getStudentCode());
+            valueList.add(s.getStudentName());
+            valueList.add("");
+            valueList.add("");
+            valueList.add(s.getTotalScore() == null ? "" : s.getTotalScore().toString());
+            valueList.add("");
+            String[] columnValue = valueList.toArray(new String[valueList.size()]);
+            columnValues.add(columnValue);
+        }
+        try {
+            log.debug("导出Excel开始...");
+            response.setHeader("Content-Disposition", "inline;filename=" + URLEncoder.encode("成绩下载", SystemConstant.CHARSET_NAME) + ".xlsx");
+            response.setContentType("application/vnd.ms-excel");
+            ServletOutputStream outputStream = response.getOutputStream();
+            ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
+            writer.writeDataArrays("成绩下载", null, columnNames, columnValues.listIterator());
+            writer.output(outputStream);
+            outputStream.flush();
+            outputStream.close();
+            log.debug("导出Excel结束");
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
 }

+ 2 - 2
teachcloud-report-business/pom.xml

@@ -4,7 +4,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.report.business</groupId>
     <artifactId>teachcloud-report-business</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <build>
         <plugins>
             <plugin>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>

+ 2 - 2
teachcloud-report/pom.xml

@@ -4,13 +4,13 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>com.qmth.teachcloud.report</groupId>
 	<artifactId>teachcloud-report</artifactId>
-	<version>3.4.0</version>
+	<version>3.3.3</version>
 	<packaging>jar</packaging>
 
 	<parent>
 		<groupId>com.qmth.distributed.print.service</groupId>
 		<artifactId>distributed-print-service</artifactId>
-		<version>3.4.0</version>
+		<version>3.3.3</version>
 	</parent>
 
 	<dependencies>

+ 2 - 2
teachcloud-task/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.task</groupId>
     <artifactId>teachcloud-task</artifactId>
-    <version>3.4.0</version>
+    <version>3.3.3</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.distributed.print.service</groupId>
         <artifactId>distributed-print-service</artifactId>
-        <version>3.4.0</version>
+        <version>3.3.3</version>
     </parent>
 
     <dependencies>