|
@@ -17,6 +17,7 @@ import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskService;
|
|
@@ -38,9 +39,11 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -434,37 +437,95 @@ public class WmDeptTaskController {
|
|
|
// 积分包包值
|
|
|
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());
|
|
|
|
|
|
- // 查询所有审核通过的任务 TODO 待确认 是否要审核通过的
|
|
|
- List<WmTask> taskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().eq(WmTask::getScorePackageId, packageId)
|
|
|
+ // 查询所有审核通过的任务
|
|
|
+ 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()));
|
|
|
|
|
|
- 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_score", "0");
|
|
|
// 个人任务条数
|
|
|
- result.put("personal_task_number", String.valueOf(personalTask.size()));
|
|
|
+ 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()))
|
|
@@ -474,24 +535,15 @@ public class WmDeptTaskController {
|
|
|
// 企业任务条数
|
|
|
result.put("ent_task_number", String.valueOf(entTask.size()));
|
|
|
|
|
|
- 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()));
|
|
|
-
|
|
|
- // TODO
|
|
|
- // 全职分值
|
|
|
- result.put("full_time_task_score", "0");
|
|
|
- // 全职任务数
|
|
|
- result.put("full_time_task_number", "0");
|
|
|
// 审核管理费分值
|
|
|
- result.put("audit_management_fee", "0");
|
|
|
- // 审核任务数
|
|
|
+ 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());
|
|
|
+ // 审核任务数 TODO
|
|
|
result.put("audit_tasks_number", "0");
|
|
|
- // 实际完成分值
|
|
|
+ // 实际完成分值 TODO
|
|
|
result.put("actual_completion_score", "0");
|
|
|
|
|
|
return R.ok(result);
|