Ver Fonte

fix:电子交卷部分改动

caozixuan há 3 anos atrás
pai
commit
0fe9e69f52

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPrintPlan.java

@@ -109,16 +109,16 @@ public class ExamPrintPlan extends BaseEntity implements Serializable {
     @TableField("sync_status")
     private ExamPrintPlanSyncStatusEnum syncStatus;
 
-    @ApiModelProperty(value = "学期id")
+    @ApiModelProperty(value = "考试id")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long semesterId;
+    private Long examId;
 
-    public Long getSemesterId() {
-        return semesterId;
+    public Long getExamId() {
+        return examId;
     }
 
-    public void setSemesterId(Long semesterId) {
-        this.semesterId = semesterId;
+    public void setExamId(Long examId) {
+        this.examId = examId;
     }
 
     public static long getSerialVersionUID() {

+ 19 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/BackupMethodEnum.java

@@ -4,6 +4,7 @@ import com.qmth.teachcloud.common.enums.EnumResult;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 试卷备份方式
@@ -40,4 +41,22 @@ public enum BackupMethodEnum {
         return list;
     }
 
+    public static String convertToName(String desc) {
+        for (BackupMethodEnum e : BackupMethodEnum.values()) {
+            if (Objects.equals(desc, e.getDesc())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+
+    public static BackupMethodEnum convertToEnum(String desc) {
+        for (BackupMethodEnum e : BackupMethodEnum.values()) {
+            if (Objects.equals(desc, e.getDesc())) {
+                return e;
+            }
+        }
+        return null;
+    }
+
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -260,4 +260,6 @@ public interface ExamTaskService extends IService<ExamTask> {
     void applyResave(ExamTaskReApplyParam map);
 
     ExamTaskDto getByExamTaskId(Long examTaskId);
+
+
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java

@@ -76,7 +76,7 @@ public class BasicExamServiceImpl extends ServiceImpl<BasicExamMapper, BasicExam
     @Override
     public boolean deleteBasicExamById(Long id) {
         // todo 学期改为考试ID
-        List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId, id));
+        List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getExamId, id));
         if (examPrintPlanList.size() > 0) {
             throw ExceptionResultEnum.ERROR.exception("考试已被绑定,不能删除");
         }

+ 8 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicSemesterServiceImpl.java

@@ -5,12 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.mapper.BasicSemesterMapper;
+import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.teachcloud.common.bean.params.BasicSemesterParams;
 import com.qmth.teachcloud.common.bean.result.BasicSemesterResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.BasicSemester;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -38,6 +39,9 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
     @Resource
     ExamPrintPlanService examPrintPlanService;
 
+    @Resource
+    BasicExamService basicExamService;
+
     @Override
     public IPage<BasicSemesterResult> basicSemesterPage(Long schoolId, int pageNumber, int pageSize) {
         return this.baseMapper.findBasicSemesterPage(new Page<>(pageNumber, pageSize), schoolId, null);
@@ -94,9 +98,9 @@ public class BasicSemesterServiceImpl extends ServiceImpl<BasicSemesterMapper, B
     @Transactional
     @Override
     public boolean deleteBasicSemesterById(Long id) {
-        List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getSemesterId, id));
-        if (examPrintPlanList.size() > 0) {
-            throw ExceptionResultEnum.ERROR.exception("印刷计划中已使用了该学期,不能删除");
+        List<BasicExam> examList = basicExamService.list(new QueryWrapper<BasicExam>().lambda().eq(BasicExam::getSemesterId,id));
+        if (examList.size() > 0){
+            throw ExceptionResultEnum.ERROR.exception("所选学期中包含考试 不能被删除");
         }
         return this.removeById(id);
     }

+ 15 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1682,21 +1682,27 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             examTaskDetailService.save(examTaskDetail);
 
-            ExamPrintPlan examPrintPlan = JSONObject.parseObject(String.valueOf(jsonObject.get("examPrintPlan")), ExamPrintPlan.class);
-
+            // 创建印刷计划
+            Long examId = examTask.getId();
+            String courseCode = examTask.getCourseCode();
             ExamDetailParams examDetailParams = JSONObject.parseObject(String.valueOf(jsonObject.get("examDetail")), ExamDetailParams.class);
-            List<String> printContentList = JSONObject.parseArray(examPrintPlan.getPrintContent(), String.class);
-            examPrintPlan.setId(SystemConstant.getDbUuid());
+            BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examId,courseCode);
+            ExamPrintPlan examPrintPlan = new ExamPrintPlan();
+            examPrintPlan.insertInfo(sysUser.getId());
             examPrintPlan.setSchoolId(schoolId);
             examPrintPlan.setOrgId(sysUser.getOrgId());
-            examPrintPlan.setPrintContent(String.join(",", printContentList));
-            examPrintPlan.setExamStartTime(Long.valueOf(examDetailParams.getExamStartTime()));
-            examPrintPlan.setExamEndTime(Long.valueOf(examDetailParams.getExamEndTime()));
-            // 课程+试卷编号
             examPrintPlan.setName(examTask.getCourseName() + examTask.getPaperNumber());
+            examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());
+            examPrintPlan.setExamEndTime(examDetailParams.getExamEndTime());
+            examPrintPlan.setPrintContent(String.join(",", JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class)));
+            examPrintPlan.setBackupMethod(BackupMethodEnum.convertToEnum(basicPrintConfig.getBackupMethod()));
+            examPrintPlan.setBackupCount(basicPrintConfig.getBackupCount());
+            examPrintPlan.setDrawRule(basicPrintConfig.getDrawRule());
+            examPrintPlan.setVariableContent(basicPrintConfig.getVariableContent());
+            examPrintPlan.setOrdinaryContent(basicPrintConfig.getOrdinaryContent());
             examPrintPlan.setStatus(PrintPlanStatusEnum.READY);
             examPrintPlan.setSyncStatus(ExamPrintPlanSyncStatusEnum.INIT);
-            examPrintPlan.setCreateId(sysUser.getId());
+            examPrintPlan.setExamId(examId);
             examPrintPlanService.save(examPrintPlan);
 
             List<ExamDetailList> examDetailLists = JSONObject.parseArray(JSONObject.toJSONString(examDetailParams.getList()), ExamDetailList.class);

+ 18 - 0
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.dto.examObject.ExamObjectDto;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
@@ -11,6 +12,7 @@ import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.entity.BasicPrintConfig;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import org.junit.Test;
@@ -51,6 +53,8 @@ public class ServiceTest {
     private PrintCommonService printCommonService;
     @Resource
     private ExamCardDetailService examCardDetailService;
+    @Resource
+    private BasicPrintConfigService basicPrintConfigService;
 
 
     @Test
@@ -147,4 +151,18 @@ public class ServiceTest {
         System.out.println(JSON.toJSONString(examObjectDto));
     }
 
+    @Test
+    public void findBasicPrintConfig(){
+        Long examId = 228554176387354624L;
+        String courseCode = "gd-gdsx";
+//        BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examId,courseCode);
+        BasicPrintConfig basicPrintConfig = basicPrintConfigService.getById(228554329928241152L);
+        List<String> tempList = JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class);
+        for (String s : tempList) {
+            System.out.println(s);
+        }
+        String var = basicPrintConfig.getVariableContent();
+        System.out.println(var);
+    }
+
 }