src/main/java/org/springblade/modules/assessment/wrapper/AssessmentSetWrapper.java
@@ -70,6 +70,11 @@ assessmentSetVO.setDeptName(SysCache.getDeptName(Long.valueOf(user.getDeptId()))); assessmentSetVO.setPostName(SysCache.getPostName(Long.valueOf(user.getPostId()))); user = UserCache.getUser(assessmentSetVO.getToUserId()); //考核人 assessmentSetVO.setToUserName(user.getName()); assessmentSetVO.setToDeptName(SysCache.getDeptName(Long.valueOf(user.getDeptId()))); assessmentSetVO.setToPostName(SysCache.getPostName(Long.valueOf(user.getPostId()))); return assessmentSetVO; } @@ -98,15 +103,19 @@ vo.setAssessmentTaskVO(null); QueryWrapper<AssessmentScoreEntity> setEntityQueryWrapper = new QueryWrapper<>(); setEntityQueryWrapper.eq("score_user_id", vo.getToUserId()); //考核人id setEntityQueryWrapper.eq("be_id", vo.getUserId()); //被考核人id setEntityQueryWrapper.eq("assessment_task_id", vo.getAssessmentTaskVO().getId());//考核任务 List<AssessmentScoreEntity> assessmentScoreEntityList = assessmentScoreService.list(setEntityQueryWrapper); if (assessmentScoreEntityList.size() > 0) vo.setAssessmentScoreVO(AssessmentScoreWrapper.build().entityVO(assessmentScoreEntityList.get(0))); else vo.setAssessmentScoreVO(null); if(null != vo.getAssessmentTaskVO()) { QueryWrapper<AssessmentScoreEntity> setEntityQueryWrapper = new QueryWrapper<>(); setEntityQueryWrapper.eq("score_user_id", vo.getToUserId()); //考核人id setEntityQueryWrapper.eq("be_id", vo.getUserId()); //被考核人id setEntityQueryWrapper.eq("assessment_task_id", vo.getAssessmentTaskVO().getId());//考核任务 List<AssessmentScoreEntity> assessmentScoreEntityList = assessmentScoreService.list(setEntityQueryWrapper); if (assessmentScoreEntityList.size() > 0) vo.setAssessmentScoreVO(AssessmentScoreWrapper.build().entityVO(assessmentScoreEntityList.get(0))); else vo.setAssessmentScoreVO(null); } } IPage<AssessmentSetVO> pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal()); pageVo.setRecords(records); src/main/java/org/springblade/modules/evaluate/mapper/EvaluateResultMapper.java
@@ -42,7 +42,7 @@ */ List<EvaluateResultVO> selectEvaluateResultPage(IPage page, EvaluateResultVO evaluateResult); List<EvaluateResultEntity> selectEvaluateResultGroupBeId(IPage page,EvaluateResultVO evaluateResult); List<EvaluateResultEntity> selectEvaluateResultGroupBeId(IPage page,EvaluateResultVO evaluateResult, List<Long> userIds); /** src/main/java/org/springblade/modules/evaluate/mapper/EvaluateResultMapper.xml
@@ -34,7 +34,12 @@ <if test="evaluateResult.evaluateTaskId !=null and evaluateResult.evaluateTaskId!=''"> AND evaluate_task_id = #{evaluateResult.evaluateTaskId} </if> GROUP BY be_id AND be_id in <foreach collection="userIds" item="userId" index="index" open="(" close=")" separator=","> #{userId} </foreach> GROUP BY be_id ORDER BY count(*) desc </select> src/main/java/org/springblade/modules/evaluate/service/IEvaluateResultService.java
@@ -40,7 +40,7 @@ */ IPage<EvaluateResultVO> selectEvaluateResultPage(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult); IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult); IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult, List<Long> userIds); /** src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java
@@ -25,6 +25,7 @@ import org.springblade.common.cache.UserCache; import org.springblade.core.tool.utils.StringUtil; import org.springblade.modules.assessment.wrapper.CandidateJsonObj; import org.springblade.modules.assessment.wrapper.UserJsonObj; import org.springblade.modules.evaluate.entity.EvaluateCandidateEntity; import org.springblade.modules.evaluate.entity.EvaluateResultEntity; import org.springblade.modules.evaluate.entity.EvaluateTaskEntity; @@ -45,6 +46,7 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** @@ -69,8 +71,8 @@ } @Override public IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult) { return page.setRecords(EvaluateResultWrapper.build().listVO(baseMapper.selectEvaluateResultGroupBeId(page, evaluateResult))); public IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult,List<Long> userIds) { return page.setRecords(EvaluateResultWrapper.build().listVO(baseMapper.selectEvaluateResultGroupBeId(page, evaluateResult, userIds))); } @Override @@ -94,19 +96,14 @@ //判断评分是否完成 0:type 判断设置的部门员工是否完成评分 1:type 判断设置的部门是否完成评分 if (evaluateResult.getType() == 0) { List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class); String deptIdsStr = ""; List<Long> deptIds = new ArrayList<>(); for (CandidateJsonObj obj:candidateJsonObjs) { if (StringUtil.isNotBlank(deptIdsStr)) { deptIdsStr += "," + obj.getDeptId(); } else { deptIdsStr = obj.getDeptId() + ""; } deptIds.add(obj.getDeptId()); } //根据部门获取所有用户数量 QueryWrapper<User> queryWrapper = new QueryWrapper(); queryWrapper.in("dept_id", deptIdsStr); queryWrapper.in("dept_id", deptIds); // 拿到设置部门所有用户数量 Long userByDeptIdsCount = userService.count(queryWrapper); @@ -130,7 +127,12 @@ EvaluateResultVO vo = new EvaluateResultVO(); vo.setType(0); vo.setEvaluateTaskId(evaluateResult.getEvaluateTaskId()); IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultGroupBeId(page,vo); List<Long> userIds = new ArrayList<>(); for (UserJsonObj userJsonObj:obj.getUsers()) { userIds.add(userJsonObj.getId()); } IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultGroupBeId(page,vo,userIds); for (EvaluateResultVO resultVO:evaluateResultVOIPage.getRecords()) { EvaluateCandidateEntity evaluateCandidate = new EvaluateCandidateEntity(); @@ -152,14 +154,16 @@ resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId()); Long evaluateResultCount = count(resultEntityQueryWrapper); //部门评优数量和所有用户匹配 QueryWrapper<User> queryWrapper = new QueryWrapper(); queryWrapper.in("user_type", 2);//员工用户 // 拿到设置部门所有用户数量 Long userByDeptIdsCount = userService.count(queryWrapper); //部门评优数量和所有用户匹配 修改为选定的评定人 List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class); int setUserCount = 0; for (CandidateJsonObj obj:candidateJsonObjs) { List<UserJsonObj> userJsonObjs = obj.getUsers(); setUserCount += userJsonObjs.size(); } // 相同需要设置任务状态为已完成 不同不处理 if (userByDeptIdsCount == evaluateResultCount) { if (setUserCount == evaluateResultCount) { taskPO.setEvaluateState(2);//结束 evaluateTaskService.updateById(taskPO); }