Browse Source

fix: 快速批量任务审核-审核功能

李学松 2 years ago
parent
commit
afad07f6bb

+ 15 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -117,6 +117,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
@@ -2642,9 +2643,13 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		// 批量查询任务
 		List<WmTask> wmTasks = this.listByIds(idList);
 		Map<String, WmTask> taskMap = wmTasks.stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
+
+		Set<String> scorePackageIds = wmTasks.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet());
+		if (scorePackageIds.size() > 1) {
+			throw new RuntimeException("只能处理同一个积分包下的任务");
+		}
 		// 批量查询积分包
-		List<WmScorePackage> scorePackages = wmScorePackageService.listByIds(wmTasks.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet()));
-		Map<String, WmScorePackage> scorePackageMap = scorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
+		WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageIds.iterator().next());
 
 		idList.forEach(id -> {
 			// 查询这条任务
@@ -2664,7 +2669,6 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 
 			// 查询积分包
 			String scorePackageId = queryTask.getScorePackageId();
-			WmScorePackage wmScorePackage = scorePackageMap.get(scorePackageId);
 			if (!StrUtil.equals(ScorePackageStatusEnum.IN_PROGRESS.val(), wmScorePackage.getScorePackageStatus())) {
 				throw new RuntimeException("积分包状态不支持审核");
 			}
@@ -2825,7 +2829,14 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 			field.setAccessible(true);
 
 			try {
-				String fieldVal = (String) field.get(content);
+				Object o = field.get(content);
+				if (!(o instanceof String)) {
+					return;
+				}
+				String fieldVal = (String) o;
+				if (StrUtil.isBlank(fieldVal)) {
+					return;
+				}
 
 				if (fieldVal.startsWith("/admin/sys-file/wmkj")) {