|
@@ -69,6 +69,134 @@ public class WmDeptTaskController {
|
|
|
private final SysUserService sysUserService;
|
|
|
private final RedisTemplate redisTemplate;
|
|
|
|
|
|
+ /**
|
|
|
+ * 积分包任务统计
|
|
|
+ *
|
|
|
+ * @param packageId 积分包id
|
|
|
+ * @return {@link R}<{@link ?}> 统计结果
|
|
|
+ */
|
|
|
+ @GetMapping("/dept-task/task-statistics/{pacakgeId}")
|
|
|
+ public R<?> getTaskStatistics(@PathVariable("pacakgeId") String packageId) {
|
|
|
+ Map<String, String> result = new HashMap<>();
|
|
|
+
|
|
|
+ WmScorePackage scorePackage = wmScorePackageService.getById(packageId);
|
|
|
+
|
|
|
+ // 积分包包值
|
|
|
+ result.put("package_score", String.valueOf(scorePackage.getScore()));
|
|
|
+
|
|
|
+ Set<String> allPackageIds = new HashSet<>();
|
|
|
+ allPackageIds.add(packageId);
|
|
|
+ // 查询所有子包值
|
|
|
+ List<WmScorePackage> subPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .eq(WmScorePackage::getRelationScoreId, packageId)
|
|
|
+ .ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
|
|
|
+ if (CollUtil.isNotEmpty(subPackageList)) {
|
|
|
+ Set<String> subPackageIds = subPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
+ allPackageIds.addAll(subPackageIds);
|
|
|
+ // 查询所有子子包值
|
|
|
+ List<WmScorePackage> subSubPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .in(WmScorePackage::getRelationScoreId, subPackageIds)
|
|
|
+ .ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
|
|
|
+ if (CollUtil.isNotEmpty(subSubPackageList)) {
|
|
|
+ Set<String> subSubPackageIds = subSubPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
+ allPackageIds.addAll(subSubPackageIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询taskType
|
|
|
+ List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
+ .eq(WmTaskType::getTaskTypeLevel, "1")
|
|
|
+ .eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
+ .eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
+
|
|
|
+ // 个人任务类型id
|
|
|
+ List<String> personalTaskTypeIds = taskTypeList.stream()
|
|
|
+ .filter(taskType -> "1".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
+ .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
+ // 企业任务类型id
|
|
|
+ List<String> entTaskTypeIds = taskTypeList.stream()
|
|
|
+ .filter(taskType -> "2".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
+ .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
+ // 招商经理任务类型id
|
|
|
+ List<String> p19TaskTypeIds = taskTypeList.stream()
|
|
|
+ .filter(taskType -> "p-19".equals(taskType.getParentId()))
|
|
|
+ .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 查询所有审核通过的任务
|
|
|
+ List<WmTask> taskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .in(WmTask::getScorePackageId, allPackageIds)
|
|
|
+ .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
+ .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_number", "0");
|
|
|
+ // 招商经理任务分值
|
|
|
+ result.put("investment_manager_task_score", "0");
|
|
|
+ // 招商经理任务条数
|
|
|
+ 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:
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WmTask> entTaskList = taskList.stream()
|
|
|
+ .filter(task -> entTaskTypeIds.contains(task.getTaskTypeId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 企业任务分值
|
|
|
+ result.put("ent_task_score", String.valueOf(entTaskList.stream().mapToInt(WmTask::getScore).sum()));
|
|
|
+ // 企业任务条数
|
|
|
+ result.put("ent_task_number", String.valueOf(entTaskList.size()));
|
|
|
+
|
|
|
+ // 审核管理费分值
|
|
|
+ int taskScoreSum = taskList.stream().mapToInt(WmTask::getScore).sum();
|
|
|
+ BigDecimal auditManagementFee = BigDecimal.valueOf(taskScoreSum)
|
|
|
+ .multiply(scorePackage.getAuditManagementFeeRates())
|
|
|
+ .divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN);
|
|
|
+ result.put("audit_management_fee", auditManagementFee.toString());
|
|
|
+ // 审核任务数(所有审核通过的任务数)
|
|
|
+ result.put("audit_tasks_number", String.valueOf(taskList.size()));
|
|
|
+ // 实际完成分值(所有审核通过的任务分+审核管理费分值)
|
|
|
+ int totalTaskScore = taskList.stream().mapToInt(WmTask::getScore).sum();
|
|
|
+ result.put("actual_completion_score", auditManagementFee.add(BigDecimal.valueOf(totalTaskScore)).toString());
|
|
|
+
|
|
|
+ return R.ok(result);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询关联的企业积分包
|
|
|
*
|
|
@@ -422,131 +550,4 @@ public class WmDeptTaskController {
|
|
|
return R.ok(o);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 积分包任务统计
|
|
|
- *
|
|
|
- * @param packageId 积分包id
|
|
|
- * @return {@link R}<{@link ?}> 统计结果
|
|
|
- */
|
|
|
- @GetMapping("/dept-task/task-statistics/{pacakgeId}")
|
|
|
- public R<?> getTaskStatistics(@PathVariable("pacakgeId") String packageId) {
|
|
|
- Map<String, String> result = new HashMap<>();
|
|
|
-
|
|
|
- WmScorePackage scorePackage = wmScorePackageService.getById(packageId);
|
|
|
-
|
|
|
- // 积分包包值
|
|
|
- result.put("package_score", String.valueOf(scorePackage.getScore()));
|
|
|
-
|
|
|
- Set<String> allPackageIds = new HashSet<>();
|
|
|
- allPackageIds.add(packageId);
|
|
|
- // 查询所有子包值
|
|
|
- List<WmScorePackage> subPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .eq(WmScorePackage::getRelationScoreId, packageId)
|
|
|
- .ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
|
|
|
- if (CollUtil.isNotEmpty(subPackageList)) {
|
|
|
- Set<String> subPackageIds = subPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
- allPackageIds.addAll(subPackageIds);
|
|
|
- // 查询所有子子包值
|
|
|
- List<WmScorePackage> subSubPackageList = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
- .in(WmScorePackage::getRelationScoreId, subPackageIds)
|
|
|
- .ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
|
|
|
- if (CollUtil.isNotEmpty(subSubPackageList)) {
|
|
|
- Set<String> subSubPackageIds = subSubPackageList.stream().map(WmScorePackage::getId).collect(Collectors.toSet());
|
|
|
- allPackageIds.addAll(subSubPackageIds);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 查询taskType
|
|
|
- List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
- .eq(WmTaskType::getTaskTypeLevel, "1")
|
|
|
- .eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
- .eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
-
|
|
|
- // 个人任务类型id
|
|
|
- List<String> personalTaskTypeIds = taskTypeList.stream()
|
|
|
- .filter(taskType -> "1".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
- .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
- // 企业任务类型id
|
|
|
- List<String> entTaskTypeIds = taskTypeList.stream()
|
|
|
- .filter(taskType -> "2".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
- .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
- // 招商经理任务类型id
|
|
|
- List<String> p19TaskTypeIds = taskTypeList.stream()
|
|
|
- .filter(taskType -> "p-19".equals(taskType.getParentId()))
|
|
|
- .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- // 查询所有审核通过的任务
|
|
|
- List<WmTask> taskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
|
|
|
- .in(WmTask::getScorePackageId, allPackageIds)
|
|
|
- .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
- .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_number", "0");
|
|
|
- // 招商经理任务分值
|
|
|
- result.put("investment_manager_task_score", "0");
|
|
|
- // 招商经理任务条数
|
|
|
- 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> p19Task = taskList.stream()
|
|
|
- .filter(task -> p19TaskTypeIds.contains(task.getTaskTypeId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- // 招商经理任务分值
|
|
|
- result.put("investment_manager_task_score", String.valueOf(p19Task.stream().mapToInt(WmTask::getScore).sum()));
|
|
|
- // 招商经理任务条数
|
|
|
- result.put("investment_manager_task_number", String.valueOf(p19Task.size()));
|
|
|
- break;
|
|
|
- default:
|
|
|
- }
|
|
|
-
|
|
|
- List<WmTask> entTask = taskList.stream()
|
|
|
- .filter(task -> entTaskTypeIds.contains(task.getTaskTypeId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- // 企业任务分值
|
|
|
- result.put("ent_task_score", String.valueOf(entTask.stream().mapToInt(WmTask::getScore).sum()));
|
|
|
- // 企业任务条数
|
|
|
- result.put("ent_task_number", String.valueOf(entTask.size()));
|
|
|
-
|
|
|
- // 审核管理费分值
|
|
|
- int taskScoreSum = taskList.stream().mapToInt(WmTask::getScore).sum();
|
|
|
- BigDecimal auditManagementFee = BigDecimal.valueOf(taskScoreSum)
|
|
|
- .multiply(scorePackage.getAuditManagementFeeRates())
|
|
|
- .divide(new BigDecimal("100.00"), RoundingMode.HALF_EVEN);
|
|
|
- result.put("audit_management_fee", auditManagementFee.toString());
|
|
|
- // 审核任务数(所有审核通过的任务数)
|
|
|
- result.put("audit_tasks_number", "0");
|
|
|
- // 实际完成分值(所有审核通过的任务分+审核管理费分值)
|
|
|
- int totalTaskScore = taskList.stream().mapToInt(WmTask::getScore).sum();
|
|
|
- result.put("actual_completion_score", auditManagementFee.add(BigDecimal.valueOf(totalTaskScore)).toString());
|
|
|
-
|
|
|
- return R.ok(result);
|
|
|
- }
|
|
|
}
|