Эх сурвалжийг харах

fix: 1.企业任务统计;2.结算报告审批NPE异常

lixuesong 1 жил өмнө
parent
commit
4f8b9c4aa2

+ 16 - 40
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskController.java

@@ -127,50 +127,26 @@ public class WmDeptTaskController {
 				.eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
 				.eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val()));
 
-		// 给个默认值
-		// 个人任务分值
-		result.put("personal_task_score", "0");
-		// 个人任务条数
-		result.put("personal_task_number", "0");
 		// 全职分值
-		result.put("full_time_task_score", "0");
+		result.put("full_time_task_score", String.valueOf(taskList.stream().mapToInt(WmTask::getScore).sum()));
 		// 全职任务数
-		result.put("full_time_task_number", "0");
+		result.put("full_time_task_number", String.valueOf(taskList.size()));
+
+		List<WmTask> personalTask = taskList.stream()
+				.filter(task -> personalTaskTypeIds.contains(task.getTaskTypeId()))
+				.collect(Collectors.toList());
+		// 个人任务分值
+		result.put("personal_task_score", String.valueOf(personalTask.stream().mapToInt(WmTask::getScore).sum()));
+		// 个人任务条数
+		result.put("personal_task_number", String.valueOf(personalTask.size()));
+		List<WmTask> p19TaskList = taskList.stream()
+				.filter(task -> p19TaskTypeIds.contains(task.getTaskTypeId()))
+				.collect(Collectors.toList());
+
 		// 招商经理任务分值
-		result.put("investment_manager_task_score", "0");
+		result.put("investment_manager_task_score", String.valueOf(p19TaskList.stream().mapToInt(WmTask::getScore).sum()));
 		// 招商经理任务条数
-		result.put("investment_manager_task_number", "0");
-
-		// 3,全职学术信息沟通专员
-		// 4,兼职学术信息沟通专员
-		// 5,招商经理
-		switch (scorePackage.getTypeid()) {
-			case "3":
-				List<WmTask> personalTask = taskList.stream()
-						.filter(task -> personalTaskTypeIds.contains(task.getTaskTypeId()))
-						.collect(Collectors.toList());
-				// 个人任务分值
-				result.put("personal_task_score", String.valueOf(personalTask.stream().mapToInt(WmTask::getScore).sum()));
-				// 个人任务条数
-				result.put("personal_task_number", String.valueOf(personalTask.size()));
-				break;
-			case "4":
-				// 全职分值
-				result.put("full_time_task_score", String.valueOf(taskList.stream().mapToInt(WmTask::getScore).sum()));
-				// 全职任务数
-				result.put("full_time_task_number", String.valueOf(taskList.size()));
-				break;
-			case "5":
-				List<WmTask> p19TaskList = taskList.stream()
-						.filter(task -> p19TaskTypeIds.contains(task.getTaskTypeId()))
-						.collect(Collectors.toList());
-				// 招商经理任务分值
-				result.put("investment_manager_task_score", String.valueOf(p19TaskList.stream().mapToInt(WmTask::getScore).sum()));
-				// 招商经理任务条数
-				result.put("investment_manager_task_number", String.valueOf(p19TaskList.size()));
-				break;
-			default:
-		}
+		result.put("investment_manager_task_number", String.valueOf(p19TaskList.size()));
 
 		List<WmTask> entTaskList = taskList.stream()
 				.filter(task -> entTaskTypeIds.contains(task.getTaskTypeId()))

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

@@ -153,7 +153,11 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
 		List<WmReport> records = reportListPage.getRecords();
 
-		WmScorePackage scorePackage = wmScorePackageService.getById(scoreId);
+		Set<Integer> scoreIds = records.stream().map(WmReport::getScoreId).collect(Collectors.toSet());
+		List<WmScorePackage> scorePackageList = wmScorePackageService.listByIds(scoreIds);
+		// 积分包对应的审核管理费
+		Map<String, BigDecimal> packageAuditManagFeeRatesMap = scorePackageList.stream()
+				.collect(Collectors.toMap(WmScorePackage::getId, WmScorePackage::getAuditManagementFeeRates));
 
 		for (WmReport report : records){
 
@@ -236,7 +240,8 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 
 			// 完成积分值(最终完成积分值 = 完成积分值 * (1+审核管理费比例))
 			int actualScore = new BigDecimal(report.getTotalScore()).multiply(
-					scorePackage.getAuditManagementFeeRates().divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN).add(BigDecimal.ONE)
+					packageAuditManagFeeRatesMap.get(String.valueOf(report.getScoreId()))
+							.divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN).add(BigDecimal.ONE)
 			).intValue();
 			report.setTotalScore(String.valueOf(actualScore));
 		}