Bläddra i källkod

add boundary checks

dengjia 4 månader sedan
förälder
incheckning
fdd1e3e3ef

+ 17 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmPackageManager.java

@@ -1151,6 +1151,11 @@ public class WmPackageManager {
         .flatMap(list -> list.stream())
         .sorted()
         .collect(Collectors.toList());
+      
+      if(CollUtil.isEmpty(cPkgIdBatch)) {
+        log.warn("No child pkg found in batch: {}", i);
+        continue;
+      }
       List<WmTask> tasks =
         taskService.list(
             Wrappers.<WmTask>lambdaQuery()
@@ -1191,6 +1196,10 @@ public class WmPackageManager {
                   model.setTaskNumSubmitted(Integer.toString(actualQty));
                   
                   List<Map<String, Object>> checkList = pkg2CheckListMap.getOrDefault(pkg.getId(), new ArrayList<>());
+                  if(CollUtil.isEmpty(checkList)) {
+                    log.warn("No check his found for pkg: {}", pkg.getId());
+                    return model;
+                  }
                   checkList.sort((a, b) -> {
                       int ret = Integer.compare(toInteger(a.get("task_id")), toInteger(b.get("task_id")));
                       if(ret == 0) {
@@ -1379,6 +1388,10 @@ public class WmPackageManager {
             Wrappers.<WmScorePackage>lambdaQuery()
                 .eq(WmScorePackage::getEnableFlag, EnableEnum.ENABLE.val())
                 .in(WmScorePackage::getRelationScoreId, pkgIds));
+
+    if (CollUtil.isEmpty(childrenPkgs)) {
+      throw new BizException("没有找到可导出的个人包记录");
+    }
     List<String> cPkgIds =
         childrenPkgs.stream()
             .map(WmScorePackage::getId)
@@ -1405,6 +1418,10 @@ public class WmPackageManager {
             .distinct()
             .sorted()
             .collect(Collectors.toList()));
+
+    if (CollUtil.isEmpty(taskTypeQties)) {
+      throw new BizException("没有找到可导出的任务下发记录");
+    }
     Map<Integer, List<WmPackageTaskTypeQty>> pttMap =
         taskTypeQties.stream().collect(Collectors.groupingBy(WmPackageTaskTypeQty::getPackageId));