From 63a4dd5239676ff135d05bfa31362a3fb36af3c1 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 14 Dec 2023 16:03:57 +0800
Subject: [PATCH] 我的评分列表

---
 src/main/java/org/springblade/modules/assessment/vo/AssessmentScoreVO.java                 |    5 +
 src/main/java/org/springblade/modules/assessment/wrapper/AssessmentScoreWrapper.java       |   40 +++++++++++++
 src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java          |    2 
 src/main/java/org/springblade/modules/evaluate/entity/EvaluateTaskEntity.java              |    6 ++
 src/main/java/org/springblade/modules/assessment/entity/AssessmentScoreEntity.java         |   11 +++
 src/main/java/org/springblade/modules/assessment/controller/AssessmentScoreController.java |   65 +++++++++++++++++++++
 6 files changed, 127 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/assessment/controller/AssessmentScoreController.java b/src/main/java/org/springblade/modules/assessment/controller/AssessmentScoreController.java
index 108d4bd..03052c7 100644
--- a/src/main/java/org/springblade/modules/assessment/controller/AssessmentScoreController.java
+++ b/src/main/java/org/springblade/modules/assessment/controller/AssessmentScoreController.java
@@ -28,6 +28,11 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.assessment.entity.AssessmentSetDeptEntity;
+import org.springblade.modules.assessment.entity.AssessmentSetEntity;
+import org.springblade.modules.assessment.entity.AssessmentTaskEntity;
+import org.springblade.modules.assessment.service.IAssessmentSetService;
+import org.springblade.modules.assessment.service.IAssessmentTaskService;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -41,6 +46,9 @@
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.tool.constant.BladeConstant;
 import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
@@ -53,11 +61,15 @@
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("assessmentScore/assessmentScore")
+@RequestMapping("assessment/assessmentScore")
 @Api(value = "考核评分", tags = "考核评分接口")
 public class AssessmentScoreController extends BladeController {
 
 	private final IAssessmentScoreService assessmentScoreService;
+
+	private final IAssessmentTaskService assessmentTaskService;
+
+	private final IAssessmentSetService assessmentSetService;
 
 	/**
 	 * 考核评分 详情
@@ -80,6 +92,57 @@
 		return R.data(AssessmentScoreWrapper.build().pageVO(pages));
 	}
 
+	@GetMapping("/listGroupByTask/{scoreUserId}")
+	@ApiOperation(value = "我的得分列表", notes = "传入要查询的用户id")
+	public R listGroupByTask(@ApiIgnore @PathVariable Long scoreUserId) {
+		QueryWrapper<AssessmentScoreEntity> setEntityQueryWrapper = new QueryWrapper<>();
+		setEntityQueryWrapper.select("id,assessment_task_id,be_id,score_user_id,SUM(weight*score_val*0.01) as score_val,type");
+		setEntityQueryWrapper.eq("be_id",scoreUserId);
+		setEntityQueryWrapper.eq("type", 0l);
+		setEntityQueryWrapper.groupBy("assessment_task_id");
+		List<AssessmentScoreEntity> list = assessmentScoreService.list(setEntityQueryWrapper);
+		List<AssessmentScoreVO> voList = AssessmentScoreWrapper.build().listVO(list);
+
+		return R.data(voList);
+	}
+
+	@GetMapping("/listMyScore/{userId}")
+	@ApiOperation(value = "我的得分列表", notes = "传入要查询的用户id")
+	public R listMyScore(@ApiIgnore @PathVariable Long userId) {
+		QueryWrapper<AssessmentTaskEntity> taskEntityQueryWrapper = new QueryWrapper<>();
+		taskEntityQueryWrapper.eq("type", 0l);
+		List<AssessmentTaskEntity> assessmentTaskEntityList = assessmentTaskService.list(taskEntityQueryWrapper);
+		List<Map<String,Object>> retList = new ArrayList<>();
+		for (AssessmentTaskEntity po:assessmentTaskEntityList) {
+			Map<String,Object> map = new HashMap<>();
+
+			QueryWrapper<AssessmentSetEntity> setEntityQueryWrapper = new QueryWrapper<>();
+			setEntityQueryWrapper.eq("user_id",userId);
+			long userAssCount = assessmentSetService.count(setEntityQueryWrapper);
+			if (userAssCount > 0) {
+
+				map.put("assessmentTaskVO", po);
+
+				//已经考核数量 获取得分
+				QueryWrapper<AssessmentScoreEntity> scoreEntityQueryWrapper = new QueryWrapper<>();
+				scoreEntityQueryWrapper.eq("be_id",userId);
+				scoreEntityQueryWrapper.eq("type", 0l);
+				scoreEntityQueryWrapper.eq("assessment_task_id",po.getId());
+				List<AssessmentScoreEntity> scoreEntityList = assessmentScoreService.list(scoreEntityQueryWrapper);
+				double score = 0.0;
+				for (AssessmentScoreEntity scoreEntity:scoreEntityList) {
+					score += scoreEntity.getWeight() * scoreEntity.getScoreVal() * 0.01;
+				}
+				map.put("scoreVal", score);
+				map.put("isAssessmentOk", userAssCount == scoreEntityList.size());
+				retList.add(map);
+			}
+
+
+		}
+		return R.data(retList);
+	}
+
 	/**
 	 * 考核评分 自定义分页
 	 */
diff --git a/src/main/java/org/springblade/modules/assessment/entity/AssessmentScoreEntity.java b/src/main/java/org/springblade/modules/assessment/entity/AssessmentScoreEntity.java
index b94c90c..52da8c2 100644
--- a/src/main/java/org/springblade/modules/assessment/entity/AssessmentScoreEntity.java
+++ b/src/main/java/org/springblade/modules/assessment/entity/AssessmentScoreEntity.java
@@ -69,4 +69,15 @@
 	@ApiModelProperty(value = "类型(0:员工评分,1:部门评分)")
 	private Integer type;
 
+	/**
+	 * 权值
+	 */
+	@ApiModelProperty(value = "权值")
+	private Integer weight;
+	/**
+	 * 范围
+	 */
+	@ApiModelProperty(value = "范围")
+	private Integer rangeVal;
+
 }
diff --git a/src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java b/src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java
index 3fa8a25..32f966e 100644
--- a/src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java
+++ b/src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java
@@ -49,7 +49,7 @@
 	/**
 	 * 考核类型(0:员工考核,1:部门考核)
 	 */
-	@ApiModelProperty(value = "考核目的")
+	@ApiModelProperty(value = "考核类型")
 	private Integer type;
 	/**
 	 * 开始时间
diff --git a/src/main/java/org/springblade/modules/assessment/vo/AssessmentScoreVO.java b/src/main/java/org/springblade/modules/assessment/vo/AssessmentScoreVO.java
index 2b4dc83..cdb7e90 100644
--- a/src/main/java/org/springblade/modules/assessment/vo/AssessmentScoreVO.java
+++ b/src/main/java/org/springblade/modules/assessment/vo/AssessmentScoreVO.java
@@ -32,4 +32,9 @@
 public class AssessmentScoreVO extends AssessmentScoreEntity {
 	private static final long serialVersionUID = 1L;
 
+
+	private Boolean isAssessmentOk;//是否考核完成
+
+	private AssessmentTaskVO assessmentTaskVO;//考核任务
+
 }
diff --git a/src/main/java/org/springblade/modules/assessment/wrapper/AssessmentScoreWrapper.java b/src/main/java/org/springblade/modules/assessment/wrapper/AssessmentScoreWrapper.java
index 265e4f6..44a057d 100644
--- a/src/main/java/org/springblade/modules/assessment/wrapper/AssessmentScoreWrapper.java
+++ b/src/main/java/org/springblade/modules/assessment/wrapper/AssessmentScoreWrapper.java
@@ -16,11 +16,22 @@
  */
 package org.springblade.modules.assessment.wrapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.modules.assessment.entity.AssessmentScoreEntity;
+import org.springblade.modules.assessment.entity.AssessmentSetDeptEntity;
+import org.springblade.modules.assessment.entity.AssessmentSetEntity;
+import org.springblade.modules.assessment.service.IAssessmentScoreService;
+import org.springblade.modules.assessment.service.IAssessmentSetDeptService;
+import org.springblade.modules.assessment.service.IAssessmentSetService;
+import org.springblade.modules.assessment.service.IAssessmentTaskService;
 import org.springblade.modules.assessment.vo.AssessmentScoreVO;
+
+import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 考核评分 包装类,返回视图层所需的字段
@@ -29,6 +40,18 @@
  * @since 2023-12-13
  */
 public class AssessmentScoreWrapper extends BaseEntityWrapper<AssessmentScoreEntity, AssessmentScoreVO>  {
+
+	private static final IAssessmentSetService assessmentSetService;
+	private static final IAssessmentSetDeptService assessmentSetDeptService;
+	private static final IAssessmentScoreService assessmentScoreService;
+	private static final IAssessmentTaskService assessmentTaskService;
+
+	static {
+		assessmentSetService = SpringUtil.getBean(IAssessmentSetService.class);
+		assessmentSetDeptService = SpringUtil.getBean(IAssessmentSetDeptService.class);
+		assessmentScoreService = SpringUtil.getBean(IAssessmentScoreService.class);
+		assessmentTaskService = SpringUtil.getBean(IAssessmentTaskService.class);
+	}
 
 	public static AssessmentScoreWrapper build() {
 		return new AssessmentScoreWrapper();
@@ -43,8 +66,25 @@
 		//assessmentScoreVO.setCreateUserName(createUser.getName());
 		//assessmentScoreVO.setUpdateUserName(updateUser.getName());
 
+		//考核数量
+		QueryWrapper<AssessmentSetEntity> AssessmentSetEntityWrapper = new QueryWrapper<>();
+		AssessmentSetEntityWrapper.eq("user_id",assessmentScoreVO.getBeId());
+		long userAssCount = assessmentSetService.count(AssessmentSetEntityWrapper);
+		//已经考核数量
+		QueryWrapper<AssessmentScoreEntity> wrapper = new QueryWrapper<>();
+		wrapper.eq("be_id",assessmentScoreVO.getBeId());
+		long assCount = assessmentScoreService.count(wrapper);
+
+		assessmentScoreVO.setIsAssessmentOk(userAssCount == assCount);
+		assessmentScoreVO.setAssessmentTaskVO(AssessmentTaskWrapper.build().entityVO(assessmentTaskService.getById(assessmentScoreVO.getAssessmentTaskId())));
 		return assessmentScoreVO;
 	}
 
+	@Override
+	public List<AssessmentScoreVO> listVO(List<AssessmentScoreEntity> list) {
+
+		return list.stream().map(this::entityVO).collect(Collectors.toList());
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/evaluate/entity/EvaluateTaskEntity.java b/src/main/java/org/springblade/modules/evaluate/entity/EvaluateTaskEntity.java
index 40a5828..564aaf6 100644
--- a/src/main/java/org/springblade/modules/evaluate/entity/EvaluateTaskEntity.java
+++ b/src/main/java/org/springblade/modules/evaluate/entity/EvaluateTaskEntity.java
@@ -40,6 +40,12 @@
 public class EvaluateTaskEntity extends TenantEntity {
 
 	/**
+	 * 评优类型(0:员工评优,1:部门评优)
+	 */
+	@ApiModelProperty(value = "评优类型")
+	private Integer type;
+
+	/**
 	 * 任务名称
 	 */
 	@ApiModelProperty(value = "任务名称")

--
Gitblit v1.9.3