xieb
2023-12-25 03388da14240d0173cd22c332ba3905b57c2d870
解决选出候选人不正确问题
5 files modified
76 ■■■■■ changed files
src/main/java/org/springblade/modules/assessment/wrapper/AssessmentSetWrapper.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/mapper/EvaluateResultMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/mapper/EvaluateResultMapper.xml 7 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/service/IEvaluateResultService.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java 38 ●●●●● patch | view | raw | blame | history
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);
                }