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); } /** * 考核评分 自定义分页 */ 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; } src/main/java/org/springblade/modules/assessment/entity/AssessmentTaskEntity.java
@@ -49,7 +49,7 @@ /** * 考核类型(0:员工考核,1:部门考核) */ @ApiModelProperty(value = "考核目的") @ApiModelProperty(value = "考核类型") private Integer type; /** * 开始时间 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;//考核任务 } 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()); } } 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 = "任务名称")