Quellcode durchsuchen

Merge branch 'dev' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev

xiaof vor 4 Jahren
Ursprung
Commit
f9e79b10ad

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

@@ -155,7 +155,7 @@ public interface CommonService {
      * @param courseCode
      * @param paperNumber
      */
-    public void checkData(Long schoolId, String courseCode, String paperNumber) throws IOException;
+    public void checkData(Long schoolId, String courseCode, String paperNumber,SysUser user) throws IOException;
 
     /**
      * 根据orgId查询所有子机构ID集合

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java

@@ -499,7 +499,7 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public void checkData(Long schoolId, String courseCode, String paperNumber) throws IOException {
+    public void checkData(Long schoolId, String courseCode, String paperNumber,SysUser user) throws IOException {
         // 校验命题任务是否提交
         ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
         if (examTask != null && !examTask.getEnable()) {
@@ -515,7 +515,7 @@ public class CommonServiceImpl implements CommonService {
                     List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetail.getId());
                     // 4.没有未完成的命题任务
                     if (examDetailCourses.isEmpty()) {
-                        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId());
+                        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId(),user);
                         if (Objects.nonNull(examDetail.getId())) {
                             map.computeIfAbsent("examDetailId", v -> examDetail.getId());
                         }

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

@@ -402,7 +402,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             statusEnum = ExamStatusEnum.FINISH;
             // 校验是否可以提交打印状态
             ExamTask examTask = this.getById(taskReviewLog.getExamTaskId());
-            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
+            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(),sysUser);
         } else {
             statusEnum = ExamStatusEnum.STAGE;
         }
@@ -497,7 +497,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         if (examTask.getStatus().name().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
             examTask.setStatus(ExamStatusEnum.FINISH);
             // 校验是否可以提交打印状态
-            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
+            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(),(SysUser) ServletUtil.getRequestUser());
         }
 
         UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();

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

@@ -239,6 +239,7 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
      *
      * @param basicAttachment
      * @param taskTypeEnum
+     * @param map
      * @param sysUser
      * @return
      */
@@ -250,7 +251,7 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
                 Objects.nonNull(basicAttachment) ? basicAttachment.getName() : null,
                 Objects.nonNull(basicAttachment) ? basicAttachment.getPath() : null,
                 requestUser.getId(),
-                Long.parseLong(ServletUtil.getRequestHeaderSchoolId().toString()));
+                requestUser.getSchoolId());
         map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
         map.computeIfAbsent(SystemConstant.USER, v -> requestUser);
         return tbTask;

+ 19 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -155,7 +155,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     JSONArray jsonArrayOrdinary = JSONArray.parseArray(examPrintPlan.getOrdinaryContent());
                     for (int i = 0; i < jsonArrayOrdinary.size(); i++) {
                         JSONObject jsonObjectOrdinary = jsonArrayOrdinary.getJSONObject(i);
-                        Long attachmentId = (Long) jsonObjectOrdinary.get("attachmentId");
+                        Long attachmentId = Long.parseLong((String) jsonObjectOrdinary.get("attachmentId"));
                         BasicAttachment basicAttachment = basicAttachmentService.getById(attachmentId);
                         createPdfUtil.createCheckIn(basicAttachment, ordinaryPdfList, (Integer) jsonObjectOrdinary.get("backupCount"));
                     }
@@ -221,7 +221,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                             //查询考生
                             QueryWrapper<ExamStudent> examStudentQueryWrapper = new QueryWrapper<>();
                             examStudentQueryWrapper.lambda().eq(ExamStudent::getSchoolId, sysUser.getSchoolId())
-                                    .eq(ExamStudent::getExamDetailCourseId, examTaskDetail.getId());
+                                    .eq(ExamStudent::getExamDetailCourseId, examDetailCourse.getId());
                             List<ExamStudent> examStudentList = examStudentService.list(examStudentQueryWrapper);
 
                             if (Objects.nonNull(examPrintPlan.getVariableContent())) {
@@ -230,7 +230,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                 for (int i = 0; i < jsonArrayVariable.size(); i++) {
                                     JSONObject jsonObjectVariable = jsonArrayVariable.getJSONObject(i);
                                     String type = (String) jsonObjectVariable.get("type");
-                                    Long attachmentId = (Long) jsonObjectVariable.get("attachmentId");
+                                    Long attachmentId = Long.parseLong((String) jsonObjectVariable.get("attachmentId"));
                                     BasicAttachment basicAttachment = basicAttachmentService.getById(attachmentId);
                                     ftlList.add(commonService.getFile(basicAttachment.getPath(), false));
                                     if (Objects.nonNull(type) && Objects.equals(type.toUpperCase(), "SIGN")) {//签到表
@@ -505,20 +505,22 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         examDetailService.disposeExamStudentByExaminationExcel(dataList, userId);
 
         // TODO: 2021/4/13 调用检验接口 dataList按照schoolId,courseCode,paperNumber归集
-//        List<Map<String, Object>> checkList = dataList.stream().flatMap(e -> {
-//            Map<String, Object> tmp = new HashMap<>();
-//            tmp.put("schoolId", e.get("schoolId"));
-//            tmp.put("courseCode", e.get("courseCode"));
-//            tmp.put("paperNumber", e.get("paperNumber"));
-//            return Stream.of(tmp);
-//        }).distinct().collect(Collectors.toList());
-//        for (Map<String, Object> stringObjectMap : checkList) {
-//            Long checkSchoolId = SystemConstant.convertIdToLong(String.valueOf(stringObjectMap.get("schoolId")));
-//            String checkCourseCode = String.valueOf(stringObjectMap.get("courseCode"));
-//            String checkPaperNumber = String.valueOf(stringObjectMap.get("paperNumber"));
-//            commonService.checkData(checkSchoolId, checkCourseCode, checkPaperNumber);
-//        }
-        map.put("dataCount",dataList.size());
+        List<Map<String, Object>> checkList = dataList.stream().flatMap(e -> {
+            Map<String, Object> tmp = new HashMap<>();
+            tmp.put("schoolId", e.get("schoolId"));
+            tmp.put("courseCode", e.get("courseCode"));
+            tmp.put("paperNumber", e.get("paperNumber"));
+            return Stream.of(tmp);
+        }).distinct().collect(Collectors.toList());
+        for (Map<String, Object> stringObjectMap : checkList) {
+            Long checkSchoolId = SystemConstant.convertIdToLong(String.valueOf(stringObjectMap.get("schoolId")));
+            String checkCourseCode = String.valueOf(stringObjectMap.get("courseCode"));
+            String checkPaperNumber = String.valueOf(stringObjectMap.get("paperNumber"));
+            SysUser user = (SysUser) map.get(SystemConstant.USER);
+            user.setSchoolId(schoolId);
+            commonService.checkData(checkSchoolId, checkCourseCode, checkPaperNumber, user);
+        }
+        map.put("dataCount", dataList.size());
         return map;
     }
 }

+ 5 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -228,7 +228,7 @@ public class CreatePdfUtil {
             for (int i = 0; i < jsonArrayCard.size(); i++) {
                 JSONObject object = (JSONObject) jsonArrayCard.get(i);
                 if (Objects.nonNull(object.get("attachmentId"))) {
-                    attachmentIds.add(Long.parseLong(String.valueOf(object.get("attachmentId"))));
+                    attachmentIds.add((Long) (object.get("attachmentId")));
                 }
             }
         }
@@ -244,12 +244,11 @@ public class CreatePdfUtil {
      * @throws IOException
      */
     public void getPaperPdf(ExamTaskDetail examTaskDetail, Integer backupCount, List<PdfDto>... pdfList) throws IOException {
-        JSONObject jsonObjectPaper = JSONObject.parseObject(examTaskDetail.getPaperAttachmentIds());
-        JSONArray jsonArrayPaper = jsonObjectPaper.getJSONArray("paper");
+        JSONArray jsonArrayPaper = JSONArray.parseArray(examTaskDetail.getPaperAttachmentIds());
         for (int i = 0; i < jsonArrayPaper.size(); i++) {
             JSONObject object = (JSONObject) jsonArrayPaper.get(i);
             if (Objects.nonNull(object.get("attachmentId"))) {
-                Long attachmentId = Long.parseLong(String.valueOf(object.get("attachmentId")));
+                Long attachmentId = Long.parseLong((String) (object.get("attachmentId")));
                 BasicAttachment basicAttachment = basicAttachmentService.getById(attachmentId);
                 File file = commonService.getFile(basicAttachment.getPath(), false);
                 int pageCount = PdfUtil.addPdfPage(file);
@@ -315,9 +314,9 @@ public class CreatePdfUtil {
         int pageA3Count = 0;
         int pageA4Count = 0;
         for (int i = 0; i < list.length; i++) {
-            if (list[i].get(0).getPageSize() == PageSizeEnum.A4) {
+            if (list[i].size() > 0 && list[i].get(0).getPageSize() == PageSizeEnum.A4) {
                 pageA4Count = pageA4Count + list[i].stream().mapToInt(PdfDto::getPageCount).sum();
-            } else {
+            } else if (list[i].size() > 0 && list[i].get(0).getPageSize() == PageSizeEnum.A3) {
                 pageA3Count = pageA3Count + list[i].stream().mapToInt(PdfDto::getPageCount).sum();
             }
             mergePdfList.addAll(list[i]);