Bläddra i källkod

feat: 1.批量审批改积分包状态问题;2.查积分包下拉框优化

李学松 2 år sedan
förälder
incheckning
da3aa21661

+ 28 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -3447,8 +3447,31 @@ public class ApiController {
 
 		List<Map<String, Object>> listMap = new ArrayList<>();
 
+		if (CollUtil.isEmpty(statusList)) {
+			return R.ok(listMap);
+		}
+
+		// 查询积分包
+		Set<String> packageIds = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
+		List<WmScorePackage> scorePackages = wmScorePackageService.listByIds(packageIds);
+		Map<String, WmScorePackage> scorePackageMap = scorePackages.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
+		// 查询任务类型count
+//		WmScoreTaskType taskType = new WmScoreTaskType();
+//		taskType.setTaskTypeId(type);
+//		taskType.setScoreId(wmScorePackage.getId());
+//				List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.
+//						list(Wrappers.query(taskType));
+		List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.list(Wrappers.<WmScoreTaskType>lambdaQuery()
+				.eq(WmScoreTaskType::getTaskTypeId, type)
+				.in(WmScoreTaskType::getScoreId, packageIds)
+				.select(WmScoreTaskType::getId));
+		Map<String, List<WmScoreTaskType>> taskTypesMap = new HashMap<>();
+		if (CollUtil.isNotEmpty(taskTypes)) {
+			taskTypesMap = taskTypes.stream().collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
+		}
+
 		for (WmScorePackageStatus item : statusList) {
-			WmScorePackage wmScorePackage = wmScorePackageService.getById(item.getPackageId());
+			WmScorePackage wmScorePackage = scorePackageMap.get(item.getPackageId());
 			if (null != wmScorePackage) {
 				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
 					continue;
@@ -3466,12 +3489,12 @@ public class ApiController {
 				/**
 				 * 过滤有效任务类型
 				 */
-				WmScoreTaskType taskType = new WmScoreTaskType();
-				taskType.setTaskTypeId(type);
-				taskType.setScoreId(wmScorePackage.getId());
+//				WmScoreTaskType taskType = new WmScoreTaskType();
+//				taskType.setTaskTypeId(type);
+//				taskType.setScoreId(wmScorePackage.getId());
 //				List<WmScoreTaskType> taskTypes = wmScoreTaskTypeService.
 //						list(Wrappers.query(taskType));
-				int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
+				int total = taskTypesMap.getOrDefault(wmScorePackage.getId(), Collections.emptyList()).size();
 
 				if (total != 0) {
 					Map<String, Object> map = new HashMap<>();

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -715,7 +715,8 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 								.or().eq(WmTask::getReportOneApprovalOpinion, "1")));
 				int totalScore = approvalTaskList.stream().mapToInt(WmTask::getScore).sum();
 				String scorePackageStatus = totalScore >= taskScorePackage.getScore() ?
-						ScorePackageStatusEnum.TO_BE_SETTLED.val() : ScorePackageStatusEnum.TO_BE_APPROVAL.val();
+						ScorePackageStatusEnum.TO_BE_SETTLED.val() : approvedCount >= taskScorePackage.getScore() ?
+						ScorePackageStatusEnum.TO_BE_APPROVAL.val() : ScorePackageStatusEnum.IN_PROGRESS.val();
 				String taskAddFlagStr = totalScore >= taskScorePackage.getScore() ? "0" : "1";
 				// 更新积分包
 				log.info("scorePackage更新参数:条件id={},updateTime={},updateUser={},更新项scorePackageStatus={},taskAddFlag={},updateTime={},updateUser={}",