From 944846d7ec7775c8ef4490ac5f90f84854f7fa1a Mon Sep 17 00:00:00 2001 From: wulin Date: Sun, 25 Oct 2020 22:21:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B5=B7=E8=80=83=E6=A0=B8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lz/modules/app/dao/DepartmentsDao.java | 2 + .../app/dao/DepartmentsStaffRelateDao.java | 2 + .../java/com/lz/modules/app/dao/StaffDao.java | 2 + .../modules/app/entity/StaffSimpleInfo.java | 2 + .../app/service/DepartmentsService.java | 3 + .../DepartmentsStaffRelateService.java | 2 + .../lz/modules/app/service/StaffService.java | 5 + .../service/impl/DepartmentsServiceImpl.java | 5 + .../DepartmentsStaffRelateServiceImpl.java | 6 + .../app/service/impl/StaffServiceImpl.java | 50 +++++ .../lz/modules/flow/dao/FlowStartMapper.java | 1 + .../modules/flow/dao/ResultModelMapper.java | 2 + .../modules/flow/entity/EvaluationGroup.java | 4 + .../lz/modules/flow/model/DepartManagers.java | 12 ++ .../flow/service/FlowStartService.java | 2 +- .../flow/service/ResultModelService.java | 2 + .../impl/EvaluationGroupServiceImpl.java | 4 + .../service/impl/FlowStartServiceImpl.java | 4 + .../service/impl/ResultModelServiceImpl.java | 6 +- .../controller/FlowStartController.java | 203 ++++++++++++++---- .../app/impl/ResultDetailServiceImpl.java | 27 ++- .../mapper/flow/EvaluationGroupMapper.xml | 16 +- .../resources/mapper/flow/FlowStartMapper.xml | 4 + .../mapper/flow/ResultModelMapper.xml | 2 + .../mapper/generator/DepartmentsDao.xml | 9 + .../generator/DepartmentsStaffRelateDao.xml | 6 + .../resources/mapper/generator/StaffDao.xml | 23 +- src/test/java/com/lz/mysql/MysqlMain.java | 2 +- 28 files changed, 349 insertions(+), 59 deletions(-) create mode 100644 src/main/java/com/lz/modules/flow/model/DepartManagers.java diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java index 0462f621..7fa7d9d9 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java @@ -55,4 +55,6 @@ public interface DepartmentsDao extends BaseMapper { List selectEntityByDepartmentIds(@Param("dIds") List dIds); List selectEntityByParentDepartmentIds(@Param("dIds") List dIds); + + DepartmentsEntity selectParentDepartmentByDepartmentId(String departmentId); } diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java index c79cdb10..858e7c18 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -64,4 +64,6 @@ public interface DepartmentsStaffRelateDao extends BaseMapper getDepartmentNameByStaffIds(@Param("staffIds") List staffIds); List selectStaffIdsByDepartments(@Param("deparmentIds")List deparmentIds); + + List selectLeadersByDepartmentId(@Param("depId") String depId); } 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 08d82262..ea5a4486 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -90,4 +90,6 @@ public interface StaffDao extends BaseMapper { List selectAllStaffSimpleInfos(@Param("depart") DepartmentsEntity depart); List selectStaffSimpleInfos(@Param("sIds") List sIds); + + List selectOnJobByIds(@Param("mIds") List mIds); } diff --git a/src/main/java/com/lz/modules/app/entity/StaffSimpleInfo.java b/src/main/java/com/lz/modules/app/entity/StaffSimpleInfo.java index f84e3a1b..adecad38 100644 --- a/src/main/java/com/lz/modules/app/entity/StaffSimpleInfo.java +++ b/src/main/java/com/lz/modules/app/entity/StaffSimpleInfo.java @@ -42,6 +42,8 @@ public class StaffSimpleInfo implements Serializable { private String departmentName; //部门id private String departmentId; + //钉钉,飞书等第三方人员id + private String employeeId; } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsService.java b/src/main/java/com/lz/modules/app/service/DepartmentsService.java index 37c017f2..78d42872 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java @@ -54,5 +54,8 @@ public interface DepartmentsService extends IService { List getDepartmentTreeByStaffId(String staffId,boolean containSelf); List selectAllDepartmentIds(List dIds); + + //查找父级部门 + DepartmentsEntity selectParentDepartmentByDepartmentId(String departmentId); } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java index f2c7233a..8c8ef60c 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java @@ -42,5 +42,7 @@ public interface DepartmentsStaffRelateService extends IService selectStaffIdsByDepartments(List deparmentIds); + + List selectLeadersByDepartmentId(String depId); } 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 75b4a912..d6731bf0 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -8,6 +8,7 @@ import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.entity.StaffSimpleInfo; import com.lz.modules.equipment.entity.model.FindByNameModel; +import com.lz.modules.flow.model.DepartManagers; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; import com.lz.modules.sys.entity.SysUserEntity; @@ -92,5 +93,9 @@ public interface StaffService extends IService { List selectAllStaffSimpleInfos(DepartmentsEntity depart); List selectStaffSimpleInfos(List sIds); + //查找第几及领导 + DepartManagers findLeader(Long id, Integer type); + //查找在职的 + List selectOnJobByIds(List mIds); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java index 73eaff46..ea3648da 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java @@ -290,5 +290,10 @@ public class DepartmentsServiceImpl extends ServiceImpl selectLeadersByDepartmentId(String depId){ + return departmentsStaffRelateDao.selectLeadersByDepartmentId(depId); + } } 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 fad8d263..8d2abf42 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 @@ -13,8 +13,10 @@ import com.lz.modules.app.dao.StaffDao; import com.lz.modules.app.entity.*; import com.lz.modules.app.service.*; import com.lz.modules.equipment.entity.model.FindByNameModel; +import com.lz.modules.flow.model.DepartManagers; import com.lz.modules.job.model.responseBo.DepartmentStaffBo; import com.lz.modules.sys.entity.SysUserEntity; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -32,6 +34,7 @@ import java.util.stream.Collectors; @Service("staffService") +@Slf4j public class StaffServiceImpl extends ServiceImpl implements StaffService { protected final static org.slf4j.Logger logger = LoggerFactory.getLogger(StaffServiceImpl.class); @@ -463,5 +466,52 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffDao.selectStaffSimpleInfos(sIds); } + @Override + //查找第几及领导 + public DepartManagers findLeader(Long id, Integer type){ + DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectByStaffId(id); + DepartManagers departManagers = new DepartManagers(); + if(departmentsStaffRelateEntity != null){ + if(departmentsStaffRelateEntity.getIsLeader().intValue() == 1 + & departmentsStaffRelateEntity.getStaffId().longValue() == id.longValue()){ + //自己是部门领导 + type++; + } + String depId = departmentsStaffRelateEntity.getDepartmentId(); + departManagers.setDepartmentId(depId); + while(type > 1){ + //查找父级部门 + DepartmentsEntity departmentsEntity = + departmentsService.selectParentDepartmentByDepartmentId(depId); + if(departmentsEntity != null){ + depId = departmentsEntity.getDepartmentId(); + }else{ + log.info("没有找到父级部门,部门id{}", depId); + departManagers.setManagers(new ArrayList<>()); + } + type--; + } + List staffEntities = + departmentsStaffRelateService.selectLeadersByDepartmentId(depId); + departManagers.setManagers(staffEntities); + if(staffEntities.size() == 0){ + log.info("无法找到管理人员.部门id{}", depId); + } + + return departManagers; + + + } + log.info("没有找到部门信息,员工id{}", id); + departManagers.setManagers(new ArrayList<>()); + return departManagers; + + } + + @Override + public List selectOnJobByIds(List mIds){ + return staffDao.selectOnJobByIds(mIds); + } + } diff --git a/src/main/java/com/lz/modules/flow/dao/FlowStartMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowStartMapper.java index bde2f8e2..9270bc6b 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowStartMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowStartMapper.java @@ -35,4 +35,5 @@ public interface FlowStartMapper extends BaseMapper { List selectListByTime(@Param("page") IPage page, @Param("cycleType")Integer cycleType,@Param("name")String name); + FlowStart selectFlowStartByName(@Param("name") String name); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/dao/ResultModelMapper.java b/src/main/java/com/lz/modules/flow/dao/ResultModelMapper.java index 6fb00c52..ab7d315d 100644 --- a/src/main/java/com/lz/modules/flow/dao/ResultModelMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/ResultModelMapper.java @@ -9,6 +9,7 @@ package com.lz.modules.flow.dao; */ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.lz.modules.flow.entity.ResultModel; +import com.lz.modules.flow.entity.ResultTagetLib; import com.lz.modules.flow.model.ResultModelDto; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +40,5 @@ public interface ResultModelMapper extends BaseMapper { List selectResultDtoByGroupId(Long id); int deleteResultModelByGroupId(Long id); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java b/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java index 93fd209b..6660f0d8 100644 --- a/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java +++ b/src/main/java/com/lz/modules/flow/entity/EvaluationGroup.java @@ -49,6 +49,9 @@ public class EvaluationGroup implements java.io.Serializable { @ApiModelProperty(value = "排除人员ids,逗号隔开", name = "outIds") private String outIds; + @ApiModelProperty(value = "本记录被拷贝的id,每次发起绩效备份一份copy_id表示被复制的那份id。发起后所有相关逻辑表使用的是拷贝后新生成的ID。绩效考核流程中,如果原考评组有人员变动,该拷贝也将变动", name = "copyId") + private Long copyId; + @TableField(exist = false) @ApiModelProperty(value = "参与考核人数", name = "counts") private int counts; @@ -201,6 +204,7 @@ public class EvaluationGroup implements java.io.Serializable { ",depIds=" + depIds + ",staffIds=" + staffIds + ",outIds=" + outIds + + ",copyId=" + copyId + "}"; } } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/model/DepartManagers.java b/src/main/java/com/lz/modules/flow/model/DepartManagers.java new file mode 100644 index 00000000..9f0e4be9 --- /dev/null +++ b/src/main/java/com/lz/modules/flow/model/DepartManagers.java @@ -0,0 +1,12 @@ +package com.lz.modules.flow.model; + +import com.lz.modules.app.entity.StaffEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class DepartManagers { + private String departmentId; + private List managers; +} diff --git a/src/main/java/com/lz/modules/flow/service/FlowStartService.java b/src/main/java/com/lz/modules/flow/service/FlowStartService.java index dbe95a97..a75945fd 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowStartService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowStartService.java @@ -32,5 +32,5 @@ public interface FlowStartService extends IService { int deleteFlowStartById(Long id); - + FlowStart selectFlowStartByName(String name); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/ResultModelService.java b/src/main/java/com/lz/modules/flow/service/ResultModelService.java index bac12ee6..ed888a0e 100644 --- a/src/main/java/com/lz/modules/flow/service/ResultModelService.java +++ b/src/main/java/com/lz/modules/flow/service/ResultModelService.java @@ -3,6 +3,7 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.R; import com.lz.modules.flow.entity.ResultModel; +import com.lz.modules.flow.entity.ResultTagetLib; import com.lz.modules.flow.model.ResultModelDto; import java.util.List; @@ -39,4 +40,5 @@ public interface ResultModelService extends IService { List selectResultDtoByGroupId(Long id); R deleteResultModelByGroupId(Long id); + } \ 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 3a60922d..63a418a2 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 @@ -144,6 +144,7 @@ public class EvaluationGroupServiceImpl extends ServiceImpl selectAllStaffSimpleInfoByGroupId(EvaluationGroup evaluationGroup){ List staffSimpleInfos = new ArrayList<>(); + //下面获取部门人员 if(!StringUtil.isEmpty(evaluationGroup.getDepIds())){ @@ -167,6 +168,7 @@ public class EvaluationGroupServiceImpl extends ServiceImpl sIds = Arrays.stream(evaluationGroup.getStaffIds() @@ -200,6 +202,8 @@ public class EvaluationGroupServiceImpl extends ServiceImpl staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup); //flowStart = flowStartService.selectFlowStartById(flowStart.getId()); + //List staffEntity = staffService.findLeader(id, type); return R.ok().put("data",staffIds); } @@ -89,8 +102,33 @@ public class FlowStartController { @PostMapping("/save") @ApiOperation("发起新的考核任务") public R save(@RequestBody @ApiParam FlowStart flowStart) { - flowStartService.insertFlowStart(flowStart); - Map chartNameMaps = new HashedMap(); + //下面生成或者合并发起绩效 + if(flowStart.getStartTime() == null){ + return R.error("未设置有效考核月份"); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月"); + String startDate = sdf.format(flowStart.getStartTime()); + + if(flowStart.getCycleType().intValue() != 0){ + //月份 + if(flowStart.getEndTime() == null){ + return R.error("未设置有效考核结束月份"); + } + String endDate = sdf.format(flowStart.getStartTime()); + flowStart.setName(startDate + "-" + endDate + "绩效考核"); + }else{ + flowStart.setName(startDate + "绩效考核"); + } + FlowStart flowStart1 = flowStartService.selectFlowStartByName(flowStart.getName()); + if(flowStart1 == null){ + flowStartService.insertFlowStart(flowStart); + }else{ + flowStart = flowStart1; + } + + + Map chartNameMaps = new HashedMap();//流程节点与流程名称对应map,下面多次循环,减少数据库查找 + Map> staffManages = new HashedMap();//部门(id+几级)和部门几级管理对应关系,减少数据库查找 //下面开始初始化流程 List ids = Arrays.stream(flowStart.getGroupIds().split(",")).map(new Function() { @Override @@ -100,28 +138,61 @@ public class FlowStartController { }).collect(Collectors.toList()); List evaluationGroups = evaluationGroupService.selectEvaluationGroupByIds(ids); - for (EvaluationGroup evaluationGroup:evaluationGroups + for (int n = 0; n < evaluationGroups.size(); n++ ) { + EvaluationGroup evaluationGroup = evaluationGroups.get(n); //下面初始化员工考核流程 List staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup); - Map staffSimpleInfoMap = - staffIds.stream().collect(Collectors.toMap(StaffSimpleInfo::getId, Function.identity(), (e, replacement) -> e)); - if(staffIds.size() == 0){ + if(n == 0){//如果一个组都没有添加,那么直接删除 + flowStartService.deleteFlowStartById(flowStart.getId()); + } + return R.error(evaluationGroup.getName() + "——无有效考核人员"); } List resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId()); if(resultModelDtos.size() == 0){ + if(n == 0){//如果一个组都没有添加,那么直接删除 + flowStartService.deleteFlowStartById(flowStart.getId()); + } return R.error(evaluationGroup.getName() + "——没有设置考核模板"); } List flowChartDetailRecords = flowChartDetailRecordService.selectFlowChartDetailRecordByGroupId(evaluationGroup.getId()); if(flowChartDetailRecords.size() == 0){ + if(n == 0){//如果一个组都没有添加,那么直接删除 + flowStartService.deleteFlowStartById(flowStart.getId()); + } return R.error(evaluationGroup.getName() + "——没有设置考核流程"); } + 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); + + } + if(staffManagers == null || staffManagers.size() == 0){ + if(n == 0){//如果一个组都没有添加,那么直接删除 + flowStartService.deleteFlowStartById(flowStart.getId()); + } + return R.error(evaluationGroup.getName() + "——没有设置绩效管理人员"); + } + + //下面拷贝一份考评组信息发起后所使用的考评组id为复制后的id + evaluationGroup.setCopyId(evaluationGroup.getId()); + evaluationGroup.setId(null); + evaluationGroupService.insertEvaluationGroup(evaluationGroup); + //下面初始化lz_flow流程表 lz_flow_approval_role流程审批表 List flowApprovalRoles = new ArrayList<>(); int stepIndex = 0; @@ -132,8 +203,10 @@ public class FlowStartController { flow.setOpt("+"); flow.setStartId(flowStart.getId()); flow.setChartId(flowChartDetailRecord.getChartId()); - String optName = chartNameMaps.get(flowChartDetailRecord.getChartId()); - if(optName == null){ + String optName; + if(chartNameMaps.containsKey(flowChartDetailRecord.getChartId())){//缓存 + optName = chartNameMaps.get(flowChartDetailRecord.getChartId()); + }else{//查找数据库 FlowChart flowChart = flowChartService.selectFlowChartById(flowChartDetailRecord.getChartId()); chartNameMaps.put(flowChart.getId(), flowChart.getName()); optName = flowChart.getName(); @@ -182,8 +255,25 @@ public class FlowStartController { //初始化lz_result_details数据 List resultDetails = new ArrayList<>(); + //拷贝考评组的指标信息 + List resultTagetLibs = new ArrayList<>(); List evaluationStartStaffs = new ArrayList<>(); + + + for (StaffEntity entity:staffManagers + ) { + EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff(); + evaluationStartStaff.setEvaluationId(evaluationGroup.getId()); + evaluationStartStaff.setEvaluationName(evaluationGroup.getName()); + evaluationStartStaff.setStaffId(entity.getId()); + evaluationStartStaff.setStaffId(flowStart.getId()); + evaluationStartStaff.setType(CheckStaffType.MANAGER.getCode()); + evaluationStartStaffs.add(evaluationStartStaff); + + } + + //下面初始化参与人员 for (StaffSimpleInfo staffInfo:staffIds ) { @@ -212,29 +302,82 @@ public class FlowStartController { String roleJSON = "["; for (int i = 0; i < flowApprovalRoles.size() ;i++){ FlowApprovalRole approvalRole = flowApprovalRoles.get(i); - if(approvalRole.getStepIndex().intValue() == 0){ - if(i == 0){ + if(approvalRole.getStepIndex().intValue() == 0){//找到所有步骤为0的人员 + Long staffId = approvalRole.getApprovalId();//默认为指定人员。 + if(approvalRole.getType().intValue() == ChartOptType.SELF.getCode()){ + //制定人员为自己的 + staffId = staffInfo.getId(); + } else if(approvalRole.getType().intValue() > 0){//当设置为几级领导时 + ///查找领导,如果不存在那么设置管理人员 + List staffLeader; + String key = staffInfo.getDepartmentId() + approvalRole.getType(); + if(staffManages.containsKey(key)){ + staffLeader = staffManages.get(staffInfo.getDepartmentId()); + }else{ + DepartManagers departManagers = + staffService.findLeader(staffInfo.getId(), approvalRole.getType()); + staffLeader = departManagers.getManagers(); + staffManages.put(key, departManagers.getManagers()); + } + + if(staffLeader.size() == 0){ + //没有领导,通知到组设置的绩效管理人员 + for (StaffEntity entity:staffManagers + ) { + roleJSON += ("{\"roleId\":0,\"staffId\":" + entity.getId() + "},");//这里写死了权限为0的即为找不到领导 + + } + }else{ + for(int j = 0; j 0){//模板里面有添加指标 for (ResultTagetLibDto libDto: modelDto.getTagetLibs()) { + //下面拷贝考评组里面的指标信息 + ResultTagetLib resultTagetLib = new ResultTagetLib(); + BeanUtils.copyProperties(libDto, resultTagetLib); + resultTagetLib.setModelId(resultModel.getId());//设置新的维度id + resultTagetLib.setId(null); + resultTagetLibs.add(resultTagetLib); + ResultDetail resultDetail = new ResultDetail(); resultDetail.setRecordId(resultRecord.getId()); resultDetail.setTarget(libDto.getName()); @@ -252,38 +395,20 @@ public class FlowStartController { if(resultDetails.size() > 0){ // resultDetailService.insertResultDetails(resultDetails); + //插入备份的考评组指标信息 + resultTagetLibService.insertResultTagetLibs(resultTagetLibs); } - //下面初始化管理人员 - if(!StringUtil.isEmpty(evaluationGroup.getManagerIds())){ - String[] managerIds = evaluationGroup.getManagerIds().split(","); - for (String staffId:managerIds - ) { - EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff(); - evaluationStartStaff.setEvaluationId(evaluationGroup.getId()); - evaluationStartStaff.setEvaluationName(evaluationGroup.getName()); - evaluationStartStaff.setStaffId(Long.parseLong(staffId)); - evaluationStartStaff.setStaffId(flowStart.getId()); - evaluationStartStaff.setType(CheckStaffType.MANAGER.getCode()); - evaluationStartStaffs.add(evaluationStartStaff); - } - } evaluationStartStaffService.insertEvaluationStartStaffs(evaluationStartStaffs); + //下面通知所有参与考核人员 + + //如果有下面通知所有管理人员 }else{ return R.error(evaluationGroup.getName() + "——初始化考核流程失败"); } - - - //下面初始化lz_result_record表和lz_result_detail表 - - - - - - } return R.ok(); } diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java index 210f6d95..5c1dfe64 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java @@ -10,10 +10,7 @@ import com.lz.modules.app.resp.Step; import com.lz.modules.app.service.DepartmentsService; import com.lz.modules.app.service.StaffService; import com.lz.modules.app.utils.t.TwoTuple; -import com.lz.modules.flow.entity.Flow; -import com.lz.modules.flow.entity.FlowDepartment; -import com.lz.modules.flow.entity.FlowRecord; -import com.lz.modules.flow.entity.FlowRelation; +import com.lz.modules.flow.entity.*; import com.lz.modules.flow.model.Auth; import com.lz.modules.flow.model.StaffRoleDto; import com.lz.modules.flow.service.*; @@ -313,6 +310,28 @@ public class ResultDetailServiceImpl extends ServiceImpl resultDetails1 = new ArrayList<>(); + for (ResultDetail detail:resultDetails + ) { + resultDetails1.add(detail); + insert++; + if(insert >= maxInsertSQL){ + count += resultDetailMapper.insertResultDetails(resultDetails1); + resultDetails1.clear(); + insert = 0; + } + + } + if(resultDetails1.size() > 0){ + count += resultDetailMapper.insertResultDetails(resultDetails1); + } + return count; + + + } } diff --git a/src/main/resources/mapper/flow/EvaluationGroupMapper.xml b/src/main/resources/mapper/flow/EvaluationGroupMapper.xml index 26ff7360..94b81d02 100644 --- a/src/main/resources/mapper/flow/EvaluationGroupMapper.xml +++ b/src/main/resources/mapper/flow/EvaluationGroupMapper.xml @@ -13,12 +13,13 @@ + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, name AS name, manager_ids AS managerIds, dep_ids AS depIds, staff_ids AS staffIds, out_ids AS outIds + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, name AS name, manager_ids AS managerIds, dep_ids AS depIds, staff_ids AS staffIds, out_ids AS outIds, copy_id AS copyId @@ -36,6 +37,7 @@ dep_ids, staff_ids, out_ids, + copy_id, is_delete, gmt_create, gmt_modified @@ -45,6 +47,7 @@ #{ depIds}, #{ staffIds}, #{ outIds}, + #{ copyId}, 0, now(), now() @@ -62,7 +65,8 @@ manager_ids = #{managerIds}, dep_ids = #{depIds}, staff_ids = #{staffIds}, - out_ids = #{outIds} + out_ids = #{outIds}, + copy_id = #{copyId} ,gmt_modified = now() where id = #{id} @@ -79,18 +83,19 @@ manager_ids = #{managerIds}, dep_ids = #{depIds}, staff_ids = #{staffIds}, - out_ids = #{outIds} + out_ids = #{outIds}, + copy_id = #{copyId} ,gmt_modified = now() where id = #{id} - update lz_evaluation_group set is_delete = 1 where id=#{id} limit 1 + update lz_evaluation_group set is_delete = 1 where id=#{id} limit 1 - diff --git a/src/main/resources/mapper/flow/FlowStartMapper.xml b/src/main/resources/mapper/flow/FlowStartMapper.xml index 1899ec85..ac15bf19 100644 --- a/src/main/resources/mapper/flow/FlowStartMapper.xml +++ b/src/main/resources/mapper/flow/FlowStartMapper.xml @@ -97,5 +97,9 @@ and name LIKE CONCAT('%',#{name},'%') + + diff --git a/src/main/resources/mapper/flow/ResultModelMapper.xml b/src/main/resources/mapper/flow/ResultModelMapper.xml index 13061ce1..b1f5619d 100644 --- a/src/main/resources/mapper/flow/ResultModelMapper.xml +++ b/src/main/resources/mapper/flow/ResultModelMapper.xml @@ -121,5 +121,7 @@ update lz_result_model set is_delete = 1 where evaluation_group_id=#{id} + + diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml index 0d9280ad..6ce1c363 100644 --- a/src/main/resources/mapper/generator/DepartmentsDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsDao.xml @@ -170,5 +170,14 @@ ) + + diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index cb8e442b..519a57b9 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -103,4 +103,10 @@ #{department_id} + + diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index f3e0247f..ce32b558 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -481,24 +481,33 @@ + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 98389dd8..b7b7460d 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -96,7 +96,7 @@ public class MysqlMain { //list.add(new TablesBean("lz_flow_chart_detail_record")); //list.add(new TablesBean("lz_flow_approval_role")); - list.add(new TablesBean("lz_evaluation_start_staff")); + list.add(new TablesBean("lz_evaluation_group")); List list2 = new ArrayList(); Map map = MysqlUtil2ShowCreateTable.getComments();