Browse Source

3.0.0-bug修改

xiaof 3 years ago
parent
commit
3588647f2e

+ 19 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -218,17 +218,20 @@ public class ClientServiceImpl implements ClientService {
                 }).distinct().collect(Collectors.toList());
                 List<ClientPrintBackupDataDto> paperBackupList = new ArrayList<>();
                 for (Map<String, String> keyMap : keyMaps) {
-                    for (int i = 0; i < backupCount; i++) {
-                        ClientPrintBackupDataDto clientPrintBackupDataDto = new ClientPrintBackupDataDto();
-                        clientPrintBackupDataDto.setCourseCode(keyMap.get("courseCode"));
-                        clientPrintBackupDataDto.setCourseName(keyMap.get("courseName"));
-                        clientPrintBackupDataDto.setPaperNumber(keyMap.get("paperNumber"));
-                        clientPrintBackupDataDto.setPaperType(keyMap.get("paperType"));
-                        StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
-                        String key = sj.add(keyMap.get("courseCode")).add(keyMap.get("paperNumber")).add(keyMap.get("paperType")).toString();
-                        clientPrintBackupDataDto.setMd5(map.get(key).get("md5"));
-                        clientPrintBackupDataDto.setUrl(map.get(key).get("url"));
-                        paperBackupList.add(clientPrintBackupDataDto);
+                    List<String> paperTypes = Arrays.stream(keyMap.get("paperType").split(",")).sorted(Comparator.comparing(String::valueOf)).collect(Collectors.toList());
+                    for (String paperType : paperTypes) {
+                        for (int i = 0; i < backupCount; i++) {
+                            ClientPrintBackupDataDto clientPrintBackupDataDto = new ClientPrintBackupDataDto();
+                            clientPrintBackupDataDto.setCourseCode(keyMap.get("courseCode"));
+                            clientPrintBackupDataDto.setCourseName(keyMap.get("courseName"));
+                            clientPrintBackupDataDto.setPaperNumber(keyMap.get("paperNumber"));
+                            clientPrintBackupDataDto.setPaperType(paperType);
+                            StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
+                            String key = sj.add(keyMap.get("courseCode")).add(keyMap.get("paperNumber")).add(paperType).toString();
+                            clientPrintBackupDataDto.setMd5(map.get(key).get("md5"));
+                            clientPrintBackupDataDto.setUrl(map.get(key).get("url"));
+                            paperBackupList.add(clientPrintBackupDataDto);
+                        }
                     }
                 }
                 backupMap.put("paper", paperBackupList);
@@ -665,10 +668,13 @@ public class ClientServiceImpl implements ClientService {
                     clientPrintDataDtos.add(printDataDto);
                 }
             } else if (printCount > 0) {
+                List<String> paperTypes = Arrays.stream(examDetailCours.get("paperType").toString().split(",")).sorted(Comparator.comparing(String::valueOf)).collect(Collectors.toList());
                 for (int i = 0; i < printCount; i++) {
+                    int mod = i % paperTypes.size();
+                    String tempPaperType = paperTypes.get(mod);
                     ClientPrintDataDto printDataDto = newClientPrintDataDto(examDetailCours);
                     StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
-                    String key = sj.add(printDataDto.getCourseCode()).add(examDetailCours.get("paperNumber").toString()).add(printDataDto.getPaperType()).toString();
+                    String key = sj.add(printDataDto.getCourseCode()).add(examDetailCours.get("paperNumber").toString()).add(tempPaperType).toString();
                     printDataDto.setMd5(map.get(key).get("md5"));
                     printDataDto.setUrl(map.get(key).get("url"));
                     clientPrintDataDtos.add(printDataDto);
@@ -698,12 +704,10 @@ public class ClientServiceImpl implements ClientService {
                     clientPrintDataDtos.add(printDataDto);
                 }
             } else if (printCount != null && printCount > 0) {
-                AtomicInteger atomicInteger = new AtomicInteger(0);
                 List<JSONObject> commonAttachmentIds = JSONObject.parseArray(examDetailCours.get("commonAttachmentId").toString(), JSONObject.class);
                 List<String> paperTypes = Arrays.stream(examDetailCours.get("paperType").toString().split(",")).sorted(Comparator.comparing(String::valueOf)).collect(Collectors.toList());
                 for (int i = 0; i < printCount; i++) {
-                    int seq = atomicInteger.getAndIncrement();
-                    int mod = seq % commonAttachmentIds.size();
+                    int mod = i % commonAttachmentIds.size();
                     String tempPaperType = paperTypes.get(mod);
                     JSONObject jsonObject = commonAttachmentIds.stream().filter(j -> tempPaperType.equals(j.getString("name"))).findFirst().get();
                     ClientPrintDataDto printDataDto = newClientPrintDataDto(examDetailCours);

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

@@ -386,9 +386,9 @@
             c.paper_type paperType
         FROM
             exam_detail a
-               LEFT JOIN
+                JOIN
             exam_detail_course b ON a.id = b.exam_detail_id
-               LEFT JOIN
+                JOIN
             exam_student c ON b.id = c.exam_detail_course_id
         WHERE
             b.id = #{examDetailCourseId}