|
@@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
@@ -45,6 +46,7 @@ import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* 企业任务控制器
|
|
@@ -398,71 +400,6 @@ public class WmDeptTaskController {
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
-// /**
|
|
|
-// * 企业任务保存
|
|
|
-// *
|
|
|
-// * @param taskTypeId 任务类型
|
|
|
-// * @param paramsStr 指定任务类型对应的参数
|
|
|
-// * @return {@link R}<{@link ?}> 结果
|
|
|
-// */
|
|
|
-// @SysLog("企业任务保存-缓存")
|
|
|
-// @PostMapping("/dept-task/save/{taskTypeId}")
|
|
|
-// public R<?> saveEntTask(@PathVariable("taskTypeId") String taskTypeId, @RequestBody String paramsStr) {
|
|
|
-// log.info("企业任务保存:taskTypeId={}, params={}", taskTypeId, paramsStr);
|
|
|
-// boolean b = Arrays.stream(DeptTaskDTO.DeptTaskTypeParam.values())
|
|
|
-// .map(DeptTaskDTO.DeptTaskTypeParam::getType)
|
|
|
-// .anyMatch(type -> StrUtil.equals(type, taskTypeId));
|
|
|
-// if (!b) {
|
|
|
-// return R.failed("不支持的企业任务类型");
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 根据任务类型,保存不同的任务参数
|
|
|
-// switch (taskTypeId) {
|
|
|
-// case "61":
|
|
|
-// DeptTaskDTO.TaskType61 o61 =
|
|
|
-// (DeptTaskDTO.TaskType61) JSONUtil.toBean(paramsStr,
|
|
|
-// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-// return R.ok(wmDeptTaskService.saveEntTaskForTaskType61(o61));
|
|
|
-// case "62":
|
|
|
-// DeptTaskDTO.TaskType62 o62 =
|
|
|
-// (DeptTaskDTO.TaskType62) JSONUtil.toBean(paramsStr,
|
|
|
-// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-// return R.ok(wmDeptTaskService.saveEntTaskForTaskType62(o62));
|
|
|
-// case "63":
|
|
|
-// DeptTaskDTO.TaskType63 o63 =
|
|
|
-// (DeptTaskDTO.TaskType63) JSONUtil.toBean(paramsStr,
|
|
|
-// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-// return R.ok(wmDeptTaskService.saveEntTaskForTaskType63(o63));
|
|
|
-// case "66":
|
|
|
-// DeptTaskDTO.TaskType66 o66 =
|
|
|
-// (DeptTaskDTO.TaskType66) JSONUtil.toBean(paramsStr,
|
|
|
-// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-// return R.ok(wmDeptTaskService.saveEntTaskForTaskType66(o66));
|
|
|
-//// case "67":
|
|
|
-//// DeptTaskDTO.TaskType67 o67 =
|
|
|
-//// (DeptTaskDTO.TaskType67) JSONUtil.toBean(paramsStr,
|
|
|
-//// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-//// return R.ok(wmDeptTaskService.saveEntTaskForTaskType67(o67));
|
|
|
-//// case "68":
|
|
|
-//// DeptTaskDTO.TaskType63 o63 =
|
|
|
-//// (DeptTaskDTO.TaskType63) JSONUtil.toBean(paramsStr,
|
|
|
-//// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-//// return R.ok(wmDeptTaskService.saveEntTaskForTaskType63(o63));
|
|
|
-//// case "69":
|
|
|
-//// DeptTaskDTO.TaskType63 o63 =
|
|
|
-//// (DeptTaskDTO.TaskType63) JSONUtil.toBean(paramsStr,
|
|
|
-//// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-//// return R.ok(wmDeptTaskService.saveEntTaskForTaskType63(o63));
|
|
|
-//// case "70":
|
|
|
-//// DeptTaskDTO.TaskType63 o63 =
|
|
|
-//// (DeptTaskDTO.TaskType63) JSONUtil.toBean(paramsStr,
|
|
|
-//// Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
-//// return R.ok(wmDeptTaskService.saveEntTaskForTaskType63(o63));
|
|
|
-// default:
|
|
|
-// return R.failed("不支持此任务类型");
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
/**
|
|
|
* 获取企业任务保存缓存数据
|
|
|
*
|
|
@@ -481,4 +418,82 @@ public class WmDeptTaskController {
|
|
|
Objects.requireNonNull(DeptTaskDTO.DeptTaskTypeParam.getByType(taskTypeId)).getClazz());
|
|
|
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()));
|
|
|
+
|
|
|
+ // 查询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()));
|
|
|
+ // 个人任务类型
|
|
|
+ List<String> personalTaskTypeIds = taskTypeList.stream()
|
|
|
+ .filter(taskType -> "1".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
+ .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
+ // 企业任务类型
|
|
|
+ List<String> entTaskTypeIds = taskTypeList.stream()
|
|
|
+ .filter(taskType -> "2".equals(taskType.getTaskReceiverType()) && !"p-19".equals(taskType.getParentId()))
|
|
|
+ .map(WmTaskType::getId).collect(Collectors.toList());
|
|
|
+ // 招商经理任务类型
|
|
|
+ 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)
|
|
|
+ .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_number", String.valueOf(personalTask.size()));
|
|
|
+
|
|
|
+ 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()));
|
|
|
+
|
|
|
+ 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");
|
|
|
+ // 审核任务数
|
|
|
+ result.put("audit_tasks_number", "0");
|
|
|
+ // 实际完成分值
|
|
|
+ result.put("actual_completion_score", "0");
|
|
|
+
|
|
|
+ return R.ok(result);
|
|
|
+ }
|
|
|
}
|