xieb
2024-01-02 5010d9601e510fb3b70bb9ca3a55ad2552b2ae16
h5评优任务返回自己是否评论完成
3 files modified
174 ■■■■ changed files
src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java 128 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/vo/EvaluateCandidateAssessorVO.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/wrapper/EvaluateCandidateAssessorWrapper.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java
@@ -99,133 +99,7 @@
    @Transactional
    public boolean saveOrUpdate(EvaluateResultEntity evaluateResult) {
        boolean ret = super.saveOrUpdate(evaluateResult);
        // 是否评分完成判断此操作
        if (ret) {
            EvaluateTaskEntity taskPO = evaluateTaskService.getById(evaluateResult.getEvaluateTaskId());
            //判断评分是否完成   0:type 判断设置的部门员工是否完成评分    1:type 判断设置的部门是否完成评分
            if (evaluateResult.getType() == 0) {
                List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class);
                List<Long> deptIds = new ArrayList<>();
                for (CandidateJsonObj obj:candidateJsonObjs) {
                    // 用户判断是否所有部门所有用户投票完成,改变任务状态使用
                    deptIds.add(obj.getDeptId());
                    //该部门是否投票完成,投票完成增加候选人信息   isAddCandidate已经增加了候选人信息不在增加数据
                    Boolean isAddCandidate = Func.toBoolean(bladeRedis.get(EVALUATE_CANDIDATE_DEPT_KEY + evaluateResult.getEvaluateTaskId() + obj.getDeptId()));
                    if (null == isAddCandidate || !isAddCandidate) {
                        //根据部门获取所有用户数量
                        QueryWrapper<User> queryWrapper = new QueryWrapper();
                        queryWrapper.eq("dept_id", obj.getDeptId());
                        List<User> deptUsers = userService.list(queryWrapper);
                        // 拿到设置部门所有用户数量
                        int userByDeptIdCount = deptUsers.size();
                        // 拿到该部门的所有投票结果
                        List<Long> userIds = new ArrayList<>();
                        for (User deptUser:deptUsers) {
                            userIds.add(deptUser.getId());
                        }
                        //部门所有用户数量和部门的所有投票结果
                        QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
                        resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
                        resultEntityQueryWrapper.in("score_user_id", userIds); //评分人
                        Long evaluateResultCount = count(resultEntityQueryWrapper);
                        if (userByDeptIdCount == evaluateResultCount) { //如果相等表示该部门所有人都投票完成 开始增加候选人
                            //开始增加候选人
                            Integer val = obj.getVal();
                            Page<EvaluateResultVO> page = new Page<>();
                            page.setCurrent(1);
                            page.setSize(val);
                            EvaluateResultVO vo = new EvaluateResultVO();
                            vo.setType(0);
                            vo.setEvaluateTaskId(evaluateResult.getEvaluateTaskId());
                            IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultByScoreIdsGroupBeId(page,vo,userIds);
                            for (EvaluateResultVO resultVO:evaluateResultVOIPage.getRecords()) {
                                EvaluateCandidateEntity evaluateCandidate = new EvaluateCandidateEntity();
                                evaluateCandidate.setEvaluateTaskId(evaluateResult.getEvaluateTaskId());
                                evaluateCandidate.setEvaluateTaskName(taskPO.getTaskName());
                                User user = UserCache.getUser(resultVO.getBeId());
                                evaluateCandidate.setUserId(user.getId());
                                evaluateCandidate.setUserName(user.getName());
                                evaluateCandidate.setDeptName(SysCache.getDeptName(Long.valueOf(user.getDeptId())));
                                evaluateCandidate.setPostName(SysCache.getPostName(Long.valueOf(user.getPostId())));
                                evaluateCandidateService.save(evaluateCandidate);
                                // 不加会重复处理候选人信息
                                bladeRedis.set(EVALUATE_CANDIDATE_DEPT_KEY + evaluateResult.getEvaluateTaskId() + obj.getDeptId(), true);
                            }
                        }
                    }
                }
                //根据部门获取所有用户数量
                QueryWrapper<User> queryWrapper = new QueryWrapper();
                queryWrapper.in("dept_id", deptIds);
                // 拿到设置部门所有用户数量
                Long userByDeptIdsCount = userService.count(queryWrapper);
                //用户数量和评优数据进行匹配 相同需要设置任务状态为已完成
                QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
                resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
                resultEntityQueryWrapper.eq("type", 0);
                Long evaluateResultCount = count(resultEntityQueryWrapper);
                // 相同需要设置任务状态为已完成 不同不处理    修改为一个部门投票结束就增加候选人
                if (userByDeptIdsCount == evaluateResultCount) {
                    taskPO.setCandidateState(2);//结束
                    evaluateTaskService.updateById(taskPO);
                }
            } else if (evaluateResult.getType() == 1) {
                QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
                resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
                Long evaluateResultCount = count(resultEntityQueryWrapper);
                //部门评优数量和所有用户匹配 修改为选定的评定人
                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 (setUserCount == evaluateResultCount) {
                    taskPO.setEvaluateState(2);//结束
                    evaluateTaskService.updateById(taskPO);
                }
            } else if (evaluateResult.getType() == 2) {
                QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
                resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
                resultEntityQueryWrapper.eq("type", 2);
                Long evaluateResultCount = count(resultEntityQueryWrapper);
                //公司评优数量和所有员工用户数量比对,相同则表示评分完成
                QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
                userQueryWrapper.eq("user_type", 2);
                Long setUserCount = userService.count(userQueryWrapper);
                // 相同需要设置任务状态为已完成 不同不处理
                if (setUserCount == evaluateResultCount) {
                    taskPO.setEvaluateState(2);//结束
                    evaluateTaskService.updateById(taskPO);
                }
            }
        }
        return ret;
        return super.saveOrUpdate(evaluateResult);
    }
}
src/main/java/org/springblade/modules/evaluate/vo/EvaluateCandidateAssessorVO.java
@@ -35,4 +35,10 @@
    private EvaluateCandidateVO evaluateCandidateVO;
    private EvaluateTaskVO evaluateTaskVO;
    private Boolean isEvaluateOneOk;//第一轮是否评论完成
    private Boolean isEvaluateTwoOk;//第二轮是否评论完成
    private EvaluateResultVO evaluateResultOneVO;//第一轮评论信息
    private EvaluateResultVO evaluateResultTwoVO;//第二轮评论信息
}
src/main/java/org/springblade/modules/evaluate/wrapper/EvaluateCandidateAssessorWrapper.java
@@ -25,9 +25,11 @@
import org.springblade.modules.evaluate.entity.EvaluateCandidateAssessorEntity;
import org.springblade.modules.evaluate.entity.EvaluateCandidateEntity;
import org.springblade.modules.evaluate.service.IEvaluateCandidateService;
import org.springblade.modules.evaluate.service.IEvaluateResultService;
import org.springblade.modules.evaluate.service.IEvaluateTaskService;
import org.springblade.modules.evaluate.vo.EvaluateCandidateAssessorVO;
import org.springblade.modules.evaluate.vo.EvaluateCandidateVO;
import org.springblade.modules.evaluate.vo.EvaluateResultVO;
import java.util.List;
import java.util.Objects;
@@ -43,9 +45,12 @@
    private static final IEvaluateCandidateService evaluateCandidateService;
    private static final IEvaluateTaskService evaluateTaskService;
    private static final IEvaluateResultService evaluateResultService;
    static {
        evaluateCandidateService = SpringUtil.getBean(IEvaluateCandidateService.class);
        evaluateTaskService = SpringUtil.getBean(IEvaluateTaskService.class);
        evaluateResultService = SpringUtil.getBean(IEvaluateResultService.class);
    }
    public static EvaluateCandidateAssessorWrapper build() {
        return new EvaluateCandidateAssessorWrapper();
@@ -64,13 +69,46 @@
    }
    public IPage<EvaluateCandidateAssessorVO> h5PageVO(IPage<EvaluateCandidateAssessorEntity> pages, Long userId) {
        System.out.println(userId);
        List<EvaluateCandidateAssessorVO> records = listVO(pages.getRecords());
        for (EvaluateCandidateAssessorVO vo : records) {
            EvaluateCandidateVO candidateVO = EvaluateCandidateWrapper.build().entityVO(evaluateCandidateService.getById(vo.getEvaluateCandidateId()));
            vo.setEvaluateCandidateVO(candidateVO);
            vo.setEvaluateTaskVO(EvaluateTaskWrapper.build().entityVO(evaluateTaskService.getById(candidateVO.getEvaluateTaskId())));
            // 任务状态是个人还是部门
            if (vo.getEvaluateTaskVO().getType() == 0) {
                //是否评论完成
                QueryWrapper queryWrapper = new QueryWrapper();
                queryWrapper.eq("type", 0);
                queryWrapper.eq("score_user_id", userId);
                queryWrapper.eq("evaluate_task_id", vo.getEvaluateTaskVO().getId());// 任务id
                EvaluateResultVO resultVO = EvaluateResultWrapper.build().entityVO(evaluateResultService.getOne(queryWrapper));
                vo.setIsEvaluateOneOk(null != resultVO);
                vo.setEvaluateResultOneVO(resultVO);
                queryWrapper.eq("type", 2);
                queryWrapper.eq("score_user_id", userId);
                queryWrapper.eq("evaluate_task_id", vo.getEvaluateTaskVO().getId());// 任务id
                resultVO = EvaluateResultWrapper.build().entityVO(evaluateResultService.getOne(queryWrapper));
                vo.setIsEvaluateTwoOk(null != resultVO);
                vo.setEvaluateResultTwoVO(resultVO);
            } else {// 部门
                //是否评论完成
                QueryWrapper queryWrapper = new QueryWrapper();
                queryWrapper.eq("type", 1);
                queryWrapper.eq("score_user_id", userId);
                queryWrapper.eq("evaluate_task_id", vo.getEvaluateTaskVO().getId());// 任务id
                EvaluateResultVO resultVO = EvaluateResultWrapper.build().entityVO(evaluateResultService.getOne(queryWrapper));
                vo.setIsEvaluateOneOk(null != resultVO);
                vo.setEvaluateResultOneVO(resultVO);
            }
        }
        IPage<EvaluateCandidateAssessorVO> pageVo = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal());