From b2406efb21391cf68087f22a2738a38c129f3adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com> Date: Fri, 30 Oct 2020 14:11:22 +0800 Subject: [PATCH] fix --- .../impl/EvaluationGroupServiceImpl.java | 2 +- .../impl/AssessManagerServiceImpl.java | 58 +++++++++++++++---- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java index 86d1c5c7..9157782a 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/EvaluationGroupServiceImpl.java @@ -276,7 +276,7 @@ public class EvaluationGroupServiceImpl extends ServiceImpl() { @Override public CheckStaffDto apply(EvaluationGroup evaluationGroup) { - evaluationGroupService. + //evaluationGroupService. return null; } }); diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java index 0d362450..9f8bdd7e 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java @@ -1,6 +1,7 @@ package com.lz.modules.performance.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.common.collect.Maps; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; import com.lz.common.utils.StringUtil; @@ -12,9 +13,12 @@ import com.lz.modules.flow.dao.FlowStartMapper; import com.lz.modules.flow.entity.EvaluationGroup; import com.lz.modules.flow.entity.EvaluationStartStaff; import com.lz.modules.flow.entity.FlowStart; +import com.lz.modules.flow.model.GroupStaffs; +import com.lz.modules.flow.model.StartGroups; import com.lz.modules.flow.service.EvaluationGroupService; import com.lz.modules.flow.service.EvaluationStartStaffService; import com.lz.modules.flow.service.FlowRecordService; +import com.lz.modules.flow.service.FlowStartService; import com.lz.modules.performance.req.AssessChangeReq; import com.lz.modules.performance.req.AssessDetailReq; import com.lz.modules.performance.req.AssessListReq; @@ -58,6 +62,8 @@ public class AssessManagerServiceImpl implements AssessManagerService { private ResultRecordService resultRecordService; @Autowired private EvaluationStartStaffMapper evaluationStartStaffMapper; + @Autowired + private FlowStartService flowStartService; @Override public PageUtils assessList(AssessListReq req) { @@ -127,29 +133,55 @@ public class AssessManagerServiceImpl implements AssessManagerService { List strings = Arrays.asList(split); List ids = strings.stream().map(s -> Long.valueOf(s)).collect(toList()); List evaluationGroups = evaluationGroupService.selectEvaluationGroupByIds(ids); - Set staffIds = new HashSet<>(); - //获取所有考核人员 - for(EvaluationGroup group:evaluationGroups){ - List staff = evaluationGroupService.selectAllStaffIdsByGroupId(group.getId()); - staffIds.addAll(staff); - } - List all = new ArrayList<>(staffIds); + + //获取变更人员 String[] changeStaffIds = req.getStaffIds().split(","); - List change = Arrays.asList(changeStaffIds); + List change = new ArrayList<>(Arrays.asList(changeStaffIds)); + if(req.getChangeType() == 0){ - //获取不在考评组的人员 + //获取所有考核人员 + List all = new ArrayList<>(); + + //根据组id成员分组 + Map> map = Maps.newHashMap(); + for(EvaluationGroup group:evaluationGroups){ + List staff = evaluationGroupService.selectAllStaffIdsByGroupId(group.getId()); + all.addAll(staff); + map.put(group.getId(),staff); + } + + //获取不在考核组成员 List notInGroup = change.stream().filter(item -> !all.contains(item)).collect(toList()); + + //获取不在考评组的人员 if(CollectionUtils.isNotEmpty(notInGroup)){ - List collect = notInGroup.stream().map(s -> Long.valueOf(s)).collect(toList()); + List collect = notInGroup.stream().map(s -> Long.valueOf(s)).distinct().collect(toList()); List staffSimpleDtos = staffService.selectStaffSimpleInfoByIds(collect); String notInGroupNames = StringUtil.EMPTY; for(StaffSimpleDto dto:staffSimpleDtos){ notInGroupNames = notInGroupNames + dto.getName() + " "; } - return notInGroupNames; + return notInGroupNames + "已在其他类型为月度的考评组中,是否改为到此考评组中进行考核"; } - //初始化添加用户的数据 TODO + //初始化添加用户的数据 + List groupS = new ArrayList<>(); + + for(EvaluationGroup group:evaluationGroups){ + List staffs = map.get(group.getId()); + staffs.retainAll(notInGroup); + map.put(group.getId(),staffs); + GroupStaffs groupStaffs = new GroupStaffs(); + groupStaffs.setGroupId(group.getId()); + List collect = staffs.stream().map(s -> Long.valueOf(s)).collect(toList()); + groupStaffs.setStaffIds(collect); + groupS.add(groupStaffs); + } + + StartGroups startGroups = new StartGroups(); + startGroups.setStartId(req.getStartId()); + startGroups.setStaffIds(groupS); + flowStartService.startStaffs(startGroups); return ok; @@ -205,4 +237,6 @@ public class AssessManagerServiceImpl implements AssessManagerService { return evaluationStartStaffs; } + + }