From 7c5d1aaa53e71f9bf859608ed72f49b6dfc71d2f Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 10 Nov 2020 16:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=BB=84=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=9A=84=E9=99=90=E5=88=B6=EF=BC=8C=E7=AE=A1=E7=90=86=E7=BB=84?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=9A=84=E7=9B=B8=E5=85=B3=E8=A1=A8=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/StaffRoleEvaluationGroupMapper.java | 3 + .../lz/modules/flow/dao/StaffRoleMapper.java | 4 ++ .../flow/service/EvaluationGroupService.java | 3 +- .../StaffRoleEvaluationGroupService.java | 3 + .../flow/service/StaffRoleService.java | 5 ++ .../impl/EvaluationGroupServiceImpl.java | 36 +++++++++- .../StaffRoleEvaluationGroupServiceImpl.java | 6 ++ .../service/impl/StaffRoleServiceImpl.java | 10 +++ .../controller/EvaluationGroupController.java | 67 +++++++++++-------- .../flow/StaffRoleEvaluationGroupMapper.xml | 9 +++ .../resources/mapper/flow/StaffRoleMapper.xml | 8 +++ 11 files changed, 122 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java index f9c7dc00..d5b65813 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleEvaluationGroupMapper.java @@ -9,6 +9,7 @@ package com.lz.modules.flow.dao; */ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lz.modules.app.dto.EvaluationGroupInfo; +import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,6 @@ public interface StaffRoleEvaluationGroupMapper extends BaseMapper selectStaffRoleEvaluationsGroupByStaffRoles(@Param("list") List staffRoles); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleMapper.java index 02b38dea..063b87fa 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleMapper.java @@ -58,4 +58,8 @@ public interface StaffRoleMapper extends BaseMapper { List selectAllByStaffId(@Param("staffId") Long staffId); List selectAllMenus(@Param("userId") Long userId); + + List selectMastRoles(); + + List selectAllGroupManageRoles(); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/EvaluationGroupService.java b/src/main/java/com/lz/modules/flow/service/EvaluationGroupService.java index 543168f9..3e3a4513 100644 --- a/src/main/java/com/lz/modules/flow/service/EvaluationGroupService.java +++ b/src/main/java/com/lz/modules/flow/service/EvaluationGroupService.java @@ -8,6 +8,7 @@ import com.lz.modules.flow.entity.EvaluationGroup; import com.lz.modules.flow.req.EvaluationGroupReq; import com.lz.modules.performance.dto.CheckStaffDto; import com.lz.modules.performance.req.CheckStaffReq; +import com.lz.modules.sys.entity.SysUserEntity; import java.util.List; @@ -41,7 +42,7 @@ public interface EvaluationGroupService extends IService { List selectAllStaffIdsByGroupId(Long id); - PageUtils selectEvaluationGroupByReq(EvaluationGroupReq req); + PageUtils selectEvaluationGroupByReq(EvaluationGroupReq req, SysUserEntity sysUserEntity); List selectEvaluationGroupByIds(List ids); diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java index 14c86c65..b658a0d8 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleEvaluationGroupService.java @@ -2,6 +2,7 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.modules.app.dto.EvaluationGroupInfo; +import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; import java.util.List; @@ -38,4 +39,6 @@ public interface StaffRoleEvaluationGroupService extends IService selectStaffRoleEvaluationGroupBy(Long id); void deleteStaffRoleEvaluationGroupByRoleId(Long roleId); + + List selectStaffRoleEvaluationsGroupByStaffRoles(List staffRoles); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java index 1f7f8467..c5abdd51 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java @@ -65,4 +65,9 @@ public interface StaffRoleService extends IService { List selectAllByStaffId(Long userId); Map getRoleByUserId(Long userId); + + //获取主管理员 + List selectMastRoles(); + //获取管理全部考评组 + List selectAllGroupManageRoles(); } \ No newline at end of file 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 b3468410..8d948a00 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 @@ -19,11 +19,16 @@ import com.lz.modules.flow.dao.EvaluationGroupMapper; import com.lz.modules.flow.dao.EvaluationStartStaffMapper; import com.lz.modules.flow.entity.EvaluationGroup; import com.lz.modules.flow.entity.FlowStart; +import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; import com.lz.modules.flow.req.EvaluationGroupReq; import com.lz.modules.flow.service.EvaluationGroupService; import com.lz.modules.flow.service.FlowStartService; +import com.lz.modules.flow.service.StaffRoleEvaluationGroupService; +import com.lz.modules.flow.service.StaffRoleService; import com.lz.modules.performance.dto.CheckStaffDto; import com.lz.modules.performance.req.CheckStaffReq; +import com.lz.modules.sys.entity.SysUserEntity; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -71,6 +76,12 @@ public class EvaluationGroupServiceImpl extends ServiceImpl gIds = null; - if(req.getStartId() != null){ + if(req.getStartId() != null){//发起评分时调用,传发起的id FlowStart flowStart = flowStartService.selectFlowStartById(req.getStartId()); if(flowStart == null){ return null; @@ -123,6 +134,27 @@ public class EvaluationGroupServiceImpl extends ServiceImpl staffRoles = staffRoleService.selectAllByStaffId(sysUserEntity.getUserId()); + if(staffRoles.size() == 0){ + return null; + } + List staffRoleEvaluationGroups = + staffRoleEvaluationGroupService.selectStaffRoleEvaluationsGroupByStaffRoles(staffRoles); + if(staffRoleEvaluationGroups.size() == 0){ + return null; + } + gIds = new ArrayList<>(); + for (StaffRoleEvaluationGroup staffRoleEvaluationGroup:staffRoleEvaluationGroups + ) { + if(staffRoleEvaluationGroup.getEvaluationGroupId().longValue() == 0l){//管理所有组 + gIds = null; + break; + } + gIds.add(staffRoleEvaluationGroup.getEvaluationGroupId());//管理特定组 + + } } List finalGIds = gIds; PageUtils pageUtils = PageUtils.startPage(req.getCurrPage(), req.getPageSize()) diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleEvaluationGroupServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleEvaluationGroupServiceImpl.java index e9f7d0d0..fc754da4 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleEvaluationGroupServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleEvaluationGroupServiceImpl.java @@ -3,6 +3,7 @@ package com.lz.modules.flow.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.modules.app.dto.EvaluationGroupInfo; import com.lz.modules.flow.dao.StaffRoleEvaluationGroupMapper; +import com.lz.modules.flow.entity.StaffRole; import com.lz.modules.flow.entity.StaffRoleEvaluationGroup; import com.lz.modules.flow.service.StaffRoleEvaluationGroupService; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,9 @@ public class StaffRoleEvaluationGroupServiceImpl extends ServiceImpl selectEvaluationGroupIdsByRoleId(Long roleId) { return staffRoleEvaluationGroupMapper.selectEvaluationGroupIdsByRoleId(roleId); } + + @Override + public List selectStaffRoleEvaluationsGroupByStaffRoles(List staffRoles){ + return staffRoleEvaluationGroupMapper.selectStaffRoleEvaluationsGroupByStaffRoles(staffRoles); + } } diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java index 4b4ba480..3f1eb113 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java @@ -532,4 +532,14 @@ public class StaffRoleServiceImpl extends ServiceImpl selectMastRoles(){ + return staffRoleMapper.selectMastRoles(); + } + + @Override + public List selectAllGroupManageRoles(){ + return staffRoleMapper.selectAllGroupManageRoles(); + } } diff --git a/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java b/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java index 062646c4..7faa4e36 100644 --- a/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java +++ b/src/main/java/com/lz/modules/performance/controller/EvaluationGroupController.java @@ -8,14 +8,13 @@ import com.lz.common.utils.StringUtil; import com.lz.modules.app.dto.DepartmentsSimpleDto; import com.lz.modules.app.dto.StaffSimpleDto; import com.lz.modules.app.service.StaffService; -import com.lz.modules.flow.entity.EvaluationGroup; -import com.lz.modules.flow.entity.FlowManager; -import com.lz.modules.flow.entity.ResultModel; -import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.flow.entity.*; import com.lz.modules.flow.model.EvaluationGroupDto; import com.lz.modules.flow.req.EvaluationGroupReq; import com.lz.modules.flow.service.*; import com.lz.modules.performance.req.CheckStaffReq; +import com.lz.modules.sys.controller.AbstractController; +import com.lz.modules.sys.entity.SysUserEntity; import io.swagger.annotations.*; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -28,7 +27,7 @@ import java.util.stream.Collectors; @RestController @RequestMapping("/evaluationGroup") @Api(tags="考评组") -public class EvaluationGroupController { +public class EvaluationGroupController extends AbstractController { @Autowired @@ -47,6 +46,8 @@ public class EvaluationGroupController { @Autowired private StaffRoleService staffRoleService; + @Autowired + private StaffRoleEvaluationGroupService staffRoleEvaluationGroupService; @@ -115,7 +116,8 @@ public class EvaluationGroupController { @ApiOperation("获取考评组列表") @ApiResponses({@ApiResponse(code=200,message = "成功", response=EvaluationGroup.class)}) public R getGroups(@RequestBody @ApiParam EvaluationGroupReq req) { - PageUtils pageUtils = evaluationGroupService.selectEvaluationGroupByReq(req); + SysUserEntity sysUserEntity = getUser(); + PageUtils pageUtils = evaluationGroupService.selectEvaluationGroupByReq(req, sysUserEntity); return R.ok().put("data",pageUtils); } @@ -160,37 +162,44 @@ public class EvaluationGroupController { } //更新组管理员信息 if(evaluationGroup.getManagerIds() != null && evaluationGroup.getManagerIds().length() > 0){ - List mIds = Arrays.stream(evaluationGroup.getManagerIds().split(",")).map(new Function() { + Map mapIds = Arrays.stream(evaluationGroup.getManagerIds().split(",")).map(new Function() { @Override public Long apply(String s) { return Long.parseLong(s); } - }).collect(Collectors.toList()); + }).collect(Collectors.toMap(Long::longValue, Function.identity(), (e, replace) -> e)); + List staffRoles = staffRoleService.selectMastRoles();//获取主绩效管理员 + for (StaffRole staffRole:staffRoles + ) {//去掉主管理员 + if(mapIds.containsKey(staffRole.getStaffId())){ + mapIds.remove(staffRole.getStaffId()); + } + } + //去掉管理全考评组 + staffRoles = staffRoleService.selectAllGroupManageRoles(); + for (StaffRole staffRole:staffRoles + ) { + if(mapIds.containsKey(staffRole.getStaffId())){ + mapIds.remove(staffRole.getStaffId()); + } + } + if(mapIds.size() > 0){ + List ids = mapIds.values().stream().collect(Collectors.toList()); + staffRoles = staffRoleService.selectStaffRolesByStaffId(ids); - List staffRoles = staffRoleService.selectByGroupId(evaluationGroup.getId()); - if(staffRoles.size() > 0){ - Map staffRoleMap = - staffRoles.stream().collect(Collectors.toMap(StaffRole::getStaffId, Function.identity(), (e, repace) -> e)); - for(int i = 0; i < mIds.size();){ - Long l = mIds.get(i); - if(staffRoleMap.containsKey(l)){ - mIds.remove(l); - continue; + if(staffRoles.size() > 0){ + List staffRoleEvaluationGroups = new ArrayList<>(); + for (StaffRole staffRole:staffRoles + ) { + StaffRoleEvaluationGroup staffRoleEvaluationGroup = new StaffRoleEvaluationGroup(); + staffRoleEvaluationGroup.setRoleId(staffRole.getId()); + staffRoleEvaluationGroup.setEvaluationGroupId(evaluationGroup.getId()); + staffRoleEvaluationGroups.add(staffRoleEvaluationGroup); } - i++; + staffRoleEvaluationGroupService.saveBatch(staffRoleEvaluationGroups); } } - if(mIds.size() > 0){ - staffRoles = new ArrayList<>(); - for (Long id:mIds - ) { - StaffRole staffRole = new StaffRole(); - staffRole.setStaffId(id); - staffRole.setEvaluationGroupId(evaluationGroup.getId()); - staffRoles.add(staffRole); - } - staffRoleService.saveBatch(staffRoles); - } + } return R.ok().put("data", evaluationGroup); } diff --git a/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml b/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml index f7b1c1c8..0a83ee90 100644 --- a/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleEvaluationGroupMapper.xml @@ -97,5 +97,14 @@ select evaluation_group_id from lz_staff_role_evaluation_group where is_delete = 0 and role_id = #{roleId} and is_select = 1 + + diff --git a/src/main/resources/mapper/flow/StaffRoleMapper.xml b/src/main/resources/mapper/flow/StaffRoleMapper.xml index fce0e7eb..0f053b1a 100644 --- a/src/main/resources/mapper/flow/StaffRoleMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleMapper.xml @@ -170,6 +170,14 @@ select id from lz_staff_role where staff_id = #{userId})) + + + +