Răsfoiți Sursa

3.2.5 bug修复

xiaofei 2 ani în urmă
părinte
comite
021fd218ef

+ 34 - 29
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.EnumResult;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.DigestUtils;
@@ -61,7 +62,7 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
             List<EnumResult> requiredFields = JSON.parseArray(basicExamRule.getRequiredFields(), EnumResult.class);
             for (EnumResult enumResult : enumResultList) {
                 Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getCode().equals(t.getCode())).findFirst();
-                if(resultOptional.isPresent()){
+                if (resultOptional.isPresent()) {
                     enumResult.setEnable(resultOptional.get().getEnable());
                 } else {
                     enumResult.setEnable(false);
@@ -70,44 +71,48 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
             basicExamRule.setRequiredFields(JSON.toJSONString(enumResultList));
 
             List<EnumResult> extendFields = JSON.parseArray(basicExamRule.getExtendFields(), EnumResult.class);
-            if(!CollectionUtils.isEmpty(extendFields)){
+            if (!CollectionUtils.isEmpty(extendFields)) {
                 requiredFields.addAll(extendFields);
             }
             // 签到表范围
-            JSONObject signJson = JSON.parseObject(basicExamRule.getSignScope());
-            List<JSONObject> signScopeBasicFields = JSON.parseArray(signJson.getString("basic"), JSONObject.class);
-            List<JSONObject> newSignScopeBasicFields = new ArrayList<>();
-            for (JSONObject enumResult : signScopeBasicFields) {
-                Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
-                if(resultOptional.isPresent() && resultOptional.get().getEnable()){
-                    newSignScopeBasicFields.add(enumResult);
+            if (StringUtils.isNotBlank(basicExamRule.getSignScope())) {
+                JSONObject signJson = JSON.parseObject(basicExamRule.getSignScope());
+                List<JSONObject> signScopeBasicFields = JSON.parseArray(signJson.getString("basic"), JSONObject.class);
+                List<JSONObject> newSignScopeBasicFields = new ArrayList<>();
+                for (JSONObject enumResult : signScopeBasicFields) {
+                    Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
+                    if (resultOptional.isPresent() && resultOptional.get().getEnable()) {
+                        newSignScopeBasicFields.add(enumResult);
+                    }
                 }
-            }
-            signJson.put("basic", newSignScopeBasicFields);
-
-            List<JSONObject> signScopeTableFields = JSON.parseArray(signJson.getString("table"), JSONObject.class);
-            List<JSONObject> newSignScopeTableFields = new ArrayList<>();
-            for (JSONObject enumResult : signScopeTableFields) {
-                Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
-                if(resultOptional.isPresent() && resultOptional.get().getEnable()){
-                    newSignScopeTableFields.add(enumResult);
+                signJson.put("basic", newSignScopeBasicFields);
+
+                List<JSONObject> signScopeTableFields = JSON.parseArray(signJson.getString("table"), JSONObject.class);
+                List<JSONObject> newSignScopeTableFields = new ArrayList<>();
+                for (JSONObject enumResult : signScopeTableFields) {
+                    Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
+                    if (resultOptional.isPresent() && resultOptional.get().getEnable()) {
+                        newSignScopeTableFields.add(enumResult);
+                    }
                 }
+                signJson.put("table", newSignScopeTableFields);
+                basicExamRule.setSignScope(JSON.toJSONString(signJson));
             }
-            signJson.put("table", newSignScopeTableFields);
-            basicExamRule.setSignScope(JSON.toJSONString(signJson));
 
             // 卷袋贴范围
-            JSONObject packageJson = JSON.parseObject(basicExamRule.getPackageScope());
-            List<JSONObject> packageScopeFields = JSON.parseArray(packageJson.getString("basic"), JSONObject.class);
-            List<JSONObject> newPackageScopeFields = new ArrayList<>();
-            for (JSONObject enumResult : packageScopeFields) {
-                Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
-                if(resultOptional.isPresent() && resultOptional.get().getEnable()){
-                    newPackageScopeFields.add(enumResult);
+            if (StringUtils.isNotBlank(basicExamRule.getPackageScope())) {
+                JSONObject packageJson = JSON.parseObject(basicExamRule.getPackageScope());
+                List<JSONObject> packageScopeFields = JSON.parseArray(packageJson.getString("basic"), JSONObject.class);
+                List<JSONObject> newPackageScopeFields = new ArrayList<>();
+                for (JSONObject enumResult : packageScopeFields) {
+                    Optional<EnumResult> resultOptional = requiredFields.stream().filter(t -> enumResult.getString("code").equals(t.getCode())).findFirst();
+                    if (resultOptional.isPresent() && resultOptional.get().getEnable()) {
+                        newPackageScopeFields.add(enumResult);
+                    }
                 }
+                packageJson.put("basic", newPackageScopeFields);
+                basicExamRule.setPackageScope(JSON.toJSONString(packageJson));
             }
-            packageJson.put("basic", newPackageScopeFields);
-            basicExamRule.setPackageScope(JSON.toJSONString(packageJson));
 
         }
         return basicExamRule;

+ 11 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -165,6 +165,8 @@ public class DataSyncServiceImpl implements DataSyncService {
                     }
                     examTaskSyncService.saveOrUpdate(examTaskSync);
 
+                    String errorMsg = null;
+                    ExamTaskSyncStatusEnum taskSyncStatusEnum = null;
                     try {
                         List<Long> printPlanIds = Arrays.asList(param.getPrintPlanIds().split(",")).stream().map(m -> Long.parseLong(m)).collect(Collectors.toList());
                         List<ExamDetailCourseDto> examDetailCourseList = examDetailCourseService.listByPrintPlanIdAndExamTaskId(printPlanIds, examTaskId);
@@ -191,13 +193,19 @@ public class DataSyncServiceImpl implements DataSyncService {
                             cardUpload(schoolId, thirdRelateId, examTask, examDetailCourseDto.getPaperType());
                         }
                     } catch (Exception e) {
-                        examTaskSync.setErrorMsg(e.getMessage());
-                        examTaskSync.setSyncStatus(ExamTaskSyncStatusEnum.FAIL);
+                        errorMsg = e.getMessage();
+                        taskSyncStatusEnum = ExamTaskSyncStatusEnum.FAIL;
                     } finally {
-                        examTaskSync.setSyncStatus(ExamTaskSyncStatusEnum.FINISH);
+                        examTaskSync.setErrorMsg(errorMsg);
+                        taskSyncStatusEnum = taskSyncStatusEnum == null ? ExamTaskSyncStatusEnum.FINISH : taskSyncStatusEnum;
+                        examTaskSync.setSyncStatus(taskSyncStatusEnum);
                     }
                     examTaskSync.setSyncEndTime(System.currentTimeMillis());
                     examTaskSyncService.saveOrUpdate(examTaskSync);
+
+                    if(StringUtils.isNotBlank(errorMsg)){
+                        throw ExceptionResultEnum.ERROR.exception(errorMsg);
+                    }
                 }
 
             }