diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index 89bae582..19e7b624 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -968,7 +968,7 @@ public class ResultRecordController extends AbstractController { /** * 删除 */ - // 审批:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=1&loginUserId=825&comment=xxx&menuName=bbb + // 审批:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=267&status=1&comment=xxx&menuName=bbb // 跳过:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=4&menuName=bbb&flowRecordId=360 // 转交:http://localhost:8080/lz_management/user/lzresultrecord/new/approval?resultRecordId=215&status=8&menuName=bbb&flowRecordId=360&transferStaffId=294 @RequestMapping("/new/approval") diff --git a/src/main/java/com/lz/modules/app/dao/StaffDao.java b/src/main/java/com/lz/modules/app/dao/StaffDao.java index 2a058a2b..70f7b8c8 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -96,4 +96,6 @@ public interface StaffDao extends BaseMapper { StaffSimpleInfo selectStaffSimpleInfo(@Param("staffId") Long staffId); List selectNamesByIds(@Param("list") List sIds); + + List selectStaffsByGroupId(@Param("copyId") Long copyId); } diff --git a/src/main/java/com/lz/modules/app/service/StaffService.java b/src/main/java/com/lz/modules/app/service/StaffService.java index 577094c1..dad4c18f 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -101,5 +101,7 @@ public interface StaffService extends IService { StaffSimpleInfo selectStaffSimpleInfo(Long staffId); List selectNamesByIds(List sIds); + //获取绩效考核管理员 + List selectStaffsByGroupId(Long copyId); } diff --git a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java index daa4731b..d2a37b33 100644 --- a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java @@ -524,5 +524,10 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffDao.selectNamesByIds(sIds); } + @Override + public List selectStaffsByGroupId(Long copyId){ + return staffDao.selectStaffsByGroupId(copyId); + } + } diff --git a/src/main/java/com/lz/modules/flow/model/GroupStaffs.java b/src/main/java/com/lz/modules/flow/model/GroupStaffs.java index 307a2a29..789ac5cd 100644 --- a/src/main/java/com/lz/modules/flow/model/GroupStaffs.java +++ b/src/main/java/com/lz/modules/flow/model/GroupStaffs.java @@ -1,11 +1,12 @@ package com.lz.modules.flow.model; +import com.lz.modules.flow.entity.EvaluationGroup; import lombok.Data; import java.util.List; //组,人员ids @Data public class GroupStaffs { - private Long groupId; + private EvaluationGroup evaluationGroup; private List staffIds; } diff --git a/src/main/java/com/lz/modules/flow/model/StartGroups.java b/src/main/java/com/lz/modules/flow/model/StartGroups.java index eb770c6b..fdd75add 100644 --- a/src/main/java/com/lz/modules/flow/model/StartGroups.java +++ b/src/main/java/com/lz/modules/flow/model/StartGroups.java @@ -7,5 +7,5 @@ import java.util.List; @Data public class StartGroups { private Long startId; - private List staffIds; + private List groups; } diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java index a7f4f48a..34f7fc6f 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java @@ -10,10 +10,7 @@ import com.lz.modules.app.entity.StaffSimpleInfo; import com.lz.modules.app.service.StaffService; import com.lz.modules.flow.dao.FlowStartMapper; import com.lz.modules.flow.entity.*; -import com.lz.modules.flow.model.DepartManagers; -import com.lz.modules.flow.model.ResultModelDto; -import com.lz.modules.flow.model.ResultTagetLibDto; -import com.lz.modules.flow.model.StartGroups; +import com.lz.modules.flow.model.*; import com.lz.modules.flow.service.*; import com.lz.modules.performance.service.ResultTagetLibService; import com.lz.modules.sys.entity.app.ResultDetail; @@ -131,11 +128,29 @@ public class FlowStartServiceImpl extends ServiceImpl staffSimpleInfos = staffService.selectStaffSimpleInfos(staffIds); - if(staffSimpleInfos.size() == 0){ - return R.error("无有效考核人员,考核人员已离职"); - }*/ - return R.ok(); + Map> staffManages = new HashedMap();//部门(id+几级)和部门几级管理对应关系,减少数据库查找 + for (GroupStaffs groupStaffs:startGroupStaffIds.getGroups() + ) { + List staffSimpleInfos = staffService.selectStaffSimpleInfos(groupStaffs.getStaffIds()); + if(staffSimpleInfos.size() == 0){ + R.error(groupStaffs.getEvaluationGroup().getName() + "——无有效考核人员"); + } + switch (start(groupStaffs.getEvaluationGroup(), flowStart, staffManages, staffSimpleInfos)){ + + case 1: + return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置考核模板"); + case 2: + return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有绩效流程节点"); + case 3: + return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置考核流程"); + case 4: + return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置绩效管理人员"); + case 5: + return R.error(groupStaffs.getEvaluationGroup().getName() + "——初始化考核流程失败"); + } + } + + return R.ok("发起成功").put("data", flowStart); } @Override @@ -166,7 +181,6 @@ public class FlowStartServiceImpl extends ServiceImpl> staffManages = new HashedMap();//部门(id+几级)和部门几级管理对应关系,减少数据库查找 //下面开始初始化流程 List ids = Arrays.stream(flowStart.getGroupIds().split(",")).map(new Function() { @@ -180,44 +194,45 @@ public class FlowStartServiceImpl extends ServiceImpl staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup); + + if(staffIds.size() == 0){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 + + return R.error(evaluationGroup.getName() + "——无有效考核人员"); + } + switch (start(evaluationGroup, flowStart, staffManages, staffIds)){ + case 1: - return R.error(evaluationGroup.getName() + "——无有效考核人员"); - case 2: return R.error(evaluationGroup.getName() + "——没有设置考核模板"); - case 3: + case 2: return R.error(evaluationGroup.getName() + "——没有绩效流程节点"); - case 4: + case 3: return R.error(evaluationGroup.getName() + "——没有设置考核流程"); - case 5: + case 4: return R.error(evaluationGroup.getName() + "——没有设置绩效管理人员"); - case 6: + case 5: return R.error(evaluationGroup.getName() + "——初始化考核流程失败"); } } return R.ok("发起成功").put("data", flowStart); } - private int start(EvaluationGroup evaluationGroup, FlowStart flowStart, Map> staffManages){ + private int start(EvaluationGroup evaluationGroup, FlowStart flowStart, + Map> staffManages, List staffIds){ - //下面初始化员工考核流程 - List staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup); - if(staffIds.size() == 0){ - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 - - return 1; - } List resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId()); if(resultModelDtos.size() == 0){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 - return 2; + return 1; } List flowCharts = flowChartService.selectFlowChartsByGroupId(evaluationGroup.getId()); if(flowCharts.size() == 0){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 - return 3; + return 2; } List flowChartDetailRecords = new ArrayList<>(); for (FlowChart chart:flowCharts @@ -229,35 +244,28 @@ public class FlowStartServiceImpl extends ServiceImpl chartNameMaps = flowCharts.stream().collect(Collectors.toMap(FlowChart::getId, FlowChart::getName));//流程节点与流程名称对应map,下面多次循环,减少数据库查找 - List staffManagers = null; - if(!StringUtil.isEmpty(evaluationGroup.getManagerIds())){ - List mIds = Arrays.stream(evaluationGroup.getManagerIds().split(",")) - .map(new Function() { - @Override - public Long apply(String s) { - return Long.parseLong(s); - } - }).collect(Collectors.toList()); - //查找在职的管理人员 - staffManagers = staffService.selectOnJobByIds(mIds); + //获取绩效考核管理员 + List staffManagers = staffService.selectStaffsByGroupId(evaluationGroup.getCopyId()); - } if(staffManagers == null || staffManagers.size() == 0){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 - return 5; + return 4; } //下面拷贝一份考评组信息发起后所使用的考评组id为复制后的id - evaluationGroup.setCopyId(evaluationGroup.getId()); - evaluationGroup.setId(null); - evaluationGroup.setGmtCreate(null); - evaluationGroup.setGmtModified(null); - evaluationGroupService.insertEvaluationGroup(evaluationGroup); + if(evaluationGroup.getCopyId() == null){ + evaluationGroup.setCopyId(evaluationGroup.getId()); + evaluationGroup.setId(null); + evaluationGroup.setGmtCreate(null); + evaluationGroup.setGmtModified(null); + evaluationGroupService.insertEvaluationGroup(evaluationGroup); + } + //拷贝考评组的指标信息 List resultTagetLibs = new ArrayList<>(); @@ -353,18 +361,7 @@ public class FlowStartServiceImpl extends ServiceImpl evaluationStartStaffs = new ArrayList<>(); - /*//下面初始化管理人员对应关系 - for (StaffEntity entity:staffManagers - ) { - EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff(); - evaluationStartStaff.setEvaluationId(evaluationGroup.getId()); - evaluationStartStaff.setEvaluationName(evaluationGroup.getName()); - evaluationStartStaff.setStaffId(entity.getId()); - evaluationStartStaff.setStartId(flowStart.getId()); - evaluationStartStaff.setType(CheckStaffType.MANAGER.getCode()); - evaluationStartStaffs.add(evaluationStartStaff); - }*/ //下面初始化参与人员 @@ -512,7 +509,7 @@ public class FlowStartServiceImpl extends ServiceImpl + + +