提交修改

This commit is contained in:
quyixiao 2022-06-13 12:17:17 +08:00
parent 104f818e4a
commit 73619c25c1
2 changed files with 801 additions and 804 deletions

View File

@ -19,7 +19,6 @@ import com.lz.modules.sys.entity.app.ResultDetail;
import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.app.ResultDetailService; import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService; import com.lz.modules.sys.service.app.ResultRecordService;
import com.mchange.lang.IntegerUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -33,13 +32,13 @@ import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* <p> * <p>
* 发起考核表 服务类 * 发起考核表 服务类
* </p> * </p>
* *
* @author quyixiao * @author quyixiao
* @since 2020-10-13 * @since 2020-10-13
*/ */
@Service @Service
@Slf4j @Slf4j
@ -89,55 +88,45 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
private DingtalkBusiness dingtalkBusiness; private DingtalkBusiness dingtalkBusiness;
@Override @Override
public FlowStart selectFlowStartById(Long id){ public FlowStart selectFlowStartById(Long id) {
return flowStartMapper.selectFlowStartById(id); return flowStartMapper.selectFlowStartById(id);
} }
@Override @Override
public Long insertFlowStart(FlowStart flowStart){ public Long insertFlowStart(FlowStart flowStart) {
return flowStartMapper.insertFlowStart(flowStart); return flowStartMapper.insertFlowStart(flowStart);
} }
@Override @Override
public int updateFlowStartById(FlowStart flowStart){ public int updateFlowStartById(FlowStart flowStart) {
return flowStartMapper.updateFlowStartById(flowStart); return flowStartMapper.updateFlowStartById(flowStart);
} }
@Override @Override
public int updateCoverFlowStartById(FlowStart flowStart){ public int updateCoverFlowStartById(FlowStart flowStart) {
return flowStartMapper.updateCoverFlowStartById(flowStart); return flowStartMapper.updateCoverFlowStartById(flowStart);
} }
@Override @Override
public int deleteFlowStartById(Long id){ public int deleteFlowStartById(Long id) {
return flowStartMapper.deleteFlowStartById(id); return flowStartMapper.deleteFlowStartById(id);
} }
@Override @Override
public FlowStart selectFlowStartByName(String name){ public FlowStart selectFlowStartByName(String name) {
return flowStartMapper.selectFlowStartByName(name); return flowStartMapper.selectFlowStartByName(name);
} }
//发起指定用户的绩效中途添加的时候 //发起指定用户的绩效中途添加的时候
public R startStaffs(StartGroups startGroupStaffIds){ public R startStaffs(StartGroups startGroupStaffIds) {
log.info("发起指定用户的绩效,中途添加的时候{}", startGroupStaffIds); log.info("发起指定用户的绩效,中途添加的时候{}", startGroupStaffIds);
FlowStart flowStart = flowStartMapper.selectFlowStartById(startGroupStaffIds.getStartId()); FlowStart flowStart = flowStartMapper.selectFlowStartById(startGroupStaffIds.getStartId());
if(flowStart == null){ if (flowStart == null) {
log.info("发起任务不存在"); log.info("发起任务不存在");
return R.error("发起任务不存在"); return R.error("发起任务不存在");
} }
@ -147,10 +136,10 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
Map<Long, List<FlowChartRole>> selfMustRole = new HashMap<>(); Map<Long, List<FlowChartRole>> selfMustRole = new HashMap<>();
List<StaffSimpleInfo> noticeStaff = new ArrayList<>(); List<StaffSimpleInfo> noticeStaff = new ArrayList<>();
List<StartStartDto> resultRecords = new ArrayList<>(); List<StartStartDto> resultRecords = new ArrayList<>();
for (GroupStaffs groupStaffs:startGroupStaffIds.getGroups() for (GroupStaffs groupStaffs : startGroupStaffIds.getGroups()
) { ) {
List<StaffSimpleInfo> staffSimpleInfos = staffService.selectStaffSimpleInfos(groupStaffs.getStaffIds()); List<StaffSimpleInfo> staffSimpleInfos = staffService.selectStaffSimpleInfos(groupStaffs.getStaffIds());
if(staffSimpleInfos.size() == 0){ if (staffSimpleInfos.size() == 0) {
log.info("无有效考核人员"); log.info("无有效考核人员");
R.error(groupStaffs.getEvaluationGroup().getName() + "——无有效考核人员"); R.error(groupStaffs.getEvaluationGroup().getName() + "——无有效考核人员");
} }
@ -159,7 +148,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
evaluationGroupService.selectEvaluationGroupById(groupStaffs.getEvaluationGroup().getId()); evaluationGroupService.selectEvaluationGroupById(groupStaffs.getEvaluationGroup().getId());
//evaluationGroupService.selectEvaluationGroupByCopyId(groupStaffs.getEvaluationGroup().getId(),flowStart.getId());//20201218注释不适用历史数据使用最新模板数据 //evaluationGroupService.selectEvaluationGroupByCopyId(groupStaffs.getEvaluationGroup().getId(),flowStart.getId());//20201218注释不适用历史数据使用最新模板数据
StartStartDto startDto = start(evaluationGroup, flowStart, staffManages, staffSimpleInfos, mustRole, selfMustRole, false); StartStartDto startDto = start(evaluationGroup, flowStart, staffManages, staffSimpleInfos, mustRole, selfMustRole, false);
switch (startDto.getStatus()){ switch (startDto.getStatus()) {
case 1: case 1:
return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置考核模板"); return R.error(groupStaffs.getEvaluationGroup().getName() + "——没有设置考核模板");
@ -195,42 +184,42 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
ids.add("140"); ids.add("140");
ids.add("141"); ids.add("141");
ids.add("134"); ids.add("134");
Map<String, String> maps = ids.stream().collect(Collectors.toMap(e->e, e->e)); Map<String, String> maps = ids.stream().collect(Collectors.toMap(e -> e, e -> e));
System.out.println(maps); System.out.println(maps);
} }
@Override @Override
public R saveStart(FlowStart flowStart){ public R saveStart(FlowStart flowStart) {
log.info("发起考核{}", flowStart); log.info("发起考核{}", flowStart);
//下面生成或者合并发起绩效 //下面生成或者合并发起绩效
if(flowStart.getStartTime() == null){ if (flowStart.getStartTime() == null) {
log.info("未设置有效考核月份"); log.info("未设置有效考核月份");
return R.error("未设置有效考核月份"); return R.error("未设置有效考核月份");
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
String startDate = sdf.format(flowStart.getStartTime()); String startDate = sdf.format(flowStart.getStartTime());
if(flowStart.getCycleType().intValue() != 0){ if (flowStart.getCycleType().intValue() != 0) {
//月份 //月份
if(flowStart.getEndTime() == null){ if (flowStart.getEndTime() == null) {
log.info("未设置有效考核结束月份"); log.info("未设置有效考核结束月份");
return R.error("未设置有效考核结束月份"); return R.error("未设置有效考核结束月份");
} }
String endDate = sdf.format(flowStart.getEndTime()); String endDate = sdf.format(flowStart.getEndTime());
flowStart.setName(startDate + "" + endDate + "绩效考核"); flowStart.setName(startDate + "" + endDate + "绩效考核");
}else{ } else {
flowStart.setName(startDate + "绩效考核"); flowStart.setName(startDate + "绩效考核");
} }
List<String> newIds = new ArrayList<>(); List<String> newIds = new ArrayList<>();
FlowStart flowStart1 = selectFlowStartByName(flowStart.getName()); FlowStart flowStart1 = selectFlowStartByName(flowStart.getName());
if(flowStart1 == null){ if (flowStart1 == null) {
insertFlowStart(flowStart); insertFlowStart(flowStart);
flowStart1 = flowStart; flowStart1 = flowStart;
}else{ } else {
//因为保存的时拷贝后的组所以这里查询原来的组 //因为保存的时拷贝后的组所以这里查询原来的组
List<Long> lIds= Arrays.stream(flowStart1.getGroupIds().split(",")).map(new Function<String, Long>() { List<Long> lIds = Arrays.stream(flowStart1.getGroupIds().split(",")).map(new Function<String, Long>() {
@Override @Override
public Long apply(String s) { public Long apply(String s) {
newIds.add(s); newIds.add(s);
@ -239,7 +228,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
}).collect(Collectors.toList()); }).collect(Collectors.toList());
List<EvaluationGroup> evaluationGroups = evaluationGroupService.selectEvaluationGroupByCopyIds(lIds); List<EvaluationGroup> evaluationGroups = evaluationGroupService.selectEvaluationGroupByCopyIds(lIds);
List<String> ids1= evaluationGroups.stream().map(new Function<EvaluationGroup, String>() { List<String> ids1 = evaluationGroups.stream().map(new Function<EvaluationGroup, String>() {
@Override @Override
public String apply(EvaluationGroup evaluationGroup) { public String apply(EvaluationGroup evaluationGroup) {
return evaluationGroup.getId().toString(); return evaluationGroup.getId().toString();
@ -248,32 +237,31 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
//查询拷贝后的 //查询拷贝后的
Map<String, String> maps = ids1.stream().collect(Collectors.toMap(e -> e, e -> e));
Map<String, String> maps = ids1.stream().collect(Collectors.toMap(e->e, e->e));
//求差集发起但是历史记录怎么搞 //求差集发起但是历史记录怎么搞
List<String> ids= Arrays.stream(flowStart.getGroupIds().split(",")).map(new Function<String, String>() { List<String> ids = Arrays.stream(flowStart.getGroupIds().split(",")).map(new Function<String, String>() {
@Override @Override
public String apply(String s) { public String apply(String s) {
return s; return s;
} }
}).collect(Collectors.toList()); }).collect(Collectors.toList());
for(int i = 0; i < ids.size();){//过滤掉已经发起的 for (int i = 0; i < ids.size(); ) {//过滤掉已经发起的
String str = ids.get(i); String str = ids.get(i);
if(maps.containsKey(str)){ if (maps.containsKey(str)) {
ids.remove(str); ids.remove(str);
continue; continue;
} }
i++; i++;
} }
if(ids.size() == 0){ if (ids.size() == 0) {
/*return R.ok("发起成功,该任务已经发起过") /*return R.ok("发起成功,该任务已经发起过")
.put("data", flowStart1);*/ .put("data", flowStart1);*/
log.info("可能会使用历史数模板数据"); log.info("可能会使用历史数模板数据");
flowStart.setId(flowStart1.getId()); flowStart.setId(flowStart1.getId());
flowStart.setIsDelete(flowStart1.getIsDelete()); flowStart.setIsDelete(flowStart1.getIsDelete());
}else{ } else {
log.info("有新增组"); log.info("有新增组");
ids1.addAll(ids); ids1.addAll(ids);
flowStart1.setGroupIds(ids1.stream().collect(Collectors.joining(",")));//把新的组信息加入把拷贝前的组信息保存下来 flowStart1.setGroupIds(ids1.stream().collect(Collectors.joining(",")));//把新的组信息加入把拷贝前的组信息保存下来
@ -305,24 +293,24 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
EvaluationGroup evaluationGroup = evaluationGroups.get(n); EvaluationGroup evaluationGroup = evaluationGroups.get(n);
//下面初始化员工考核流程 //下面初始化员工考核流程
List<StaffSimpleInfo> staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup); List<StaffSimpleInfo> staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup);
if(staffIds.size() == 0){ if (staffIds.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("无有效考核人员"); log.info("无有效考核人员");
return R.error(evaluationGroup.getName() + "——无有效考核人员"); return R.error(evaluationGroup.getName() + "——无有效考核人员");
} }
if(flowStart.getIsDelete() != null){//已经发起过的 if (flowStart.getIsDelete() != null) {//已经发起过的
//下面去掉已经发起的用户 //下面去掉已经发起的用户
List<Long> longs = evaluationStartStaffService.selectStaffIdsByStartAndStaffId(flowStart.getId(), staffIds); List<Long> longs = evaluationStartStaffService.selectStaffIdsByStartAndStaffId(flowStart.getId(), staffIds);
if(longs.size() > 0){ if (longs.size() > 0) {
Map<Long, StaffSimpleInfo> map Map<Long, StaffSimpleInfo> map
= staffIds.stream().collect(Collectors.toMap(StaffSimpleInfo::getId, e->e)); = staffIds.stream().collect(Collectors.toMap(StaffSimpleInfo::getId, e -> e));
for (Long key:longs for (Long key : longs
) { ) {
map.remove(key); map.remove(key);
} }
staffIds = map.values().stream().collect(Collectors.toList()); staffIds = map.values().stream().collect(Collectors.toList());
if(staffIds.size() == 0){ if (staffIds.size() == 0) {
log.info("本次发起参与人员为0"); log.info("本次发起参与人员为0");
return R.error(evaluationGroup.getName() + "——本次发起参与人员为0"); return R.error(evaluationGroup.getName() + "——本次发起参与人员为0");
} }
@ -332,7 +320,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
StartStartDto startDto = start(evaluationGroup, flowStart, staffManages, staffIds, mustRole, selfMustRole, false); StartStartDto startDto = start(evaluationGroup, flowStart, staffManages, staffIds, mustRole, selfMustRole, false);
switch (startDto.getStatus()){ switch (startDto.getStatus()) {
case 1: case 1:
return R.error(evaluationGroup.getName() + "——没有设置考核模板"); return R.error(evaluationGroup.getName() + "——没有设置考核模板");
@ -358,14 +346,15 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
//dingtalkBusiness.sendWorkMSGWithAsyn(noticeStaff, WorkMsgTypeEnum.START_WORK.getType()); //dingtalkBusiness.sendWorkMSGWithAsyn(noticeStaff, WorkMsgTypeEnum.START_WORK.getType());
return R.ok("发起成功").put("data", flowStart); return R.ok("发起成功").put("data", flowStart);
} }
//isInsert表示是否中途加人 //isInsert表示是否中途加人
private StartStartDto start(EvaluationGroup evaluationGroup, FlowStart flowStart, private StartStartDto start(EvaluationGroup evaluationGroup, FlowStart flowStart,
Map<String, List<StaffEntity>> staffManages, List<StaffSimpleInfo> staffIds, Map<String, List<StaffEntity>> staffManages, List<StaffSimpleInfo> staffIds,
Map<Long, List<FlowChartRole>> mustRole, Map<Long, List<FlowChartRole>> selfMustRole, boolean isInsert){ Map<Long, List<FlowChartRole>> mustRole, Map<Long, List<FlowChartRole>> selfMustRole, boolean isInsert) {
log.info("开始发起考评组考核{}", evaluationGroup); log.info("开始发起考评组考核{}", evaluationGroup);
StartStartDto startStartDto = new StartStartDto(); StartStartDto startStartDto = new StartStartDto();
List<ResultModelDto> resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId()); List<ResultModelDto> resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId());
if(resultModelDtos.size() == 0){ if (resultModelDtos.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("没有设置考核模板"); log.info("没有设置考核模板");
startStartDto.setStatus(1); startStartDto.setStatus(1);
@ -373,21 +362,21 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
List<FlowChart> flowCharts = flowChartService.selectFlowChartsByGroupId(evaluationGroup.getId()); List<FlowChart> flowCharts = flowChartService.selectFlowChartsByGroupId(evaluationGroup.getId());
if(flowCharts.size() == 0){ if (flowCharts.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("无有效绩效流程节点"); log.info("无有效绩效流程节点");
startStartDto.setStatus(2); startStartDto.setStatus(2);
return startStartDto; return startStartDto;
} }
List<FlowChartDetailRecord> flowChartDetailRecords = new ArrayList<>(); List<FlowChartDetailRecord> flowChartDetailRecords = new ArrayList<>();
for (FlowChart chart:flowCharts for (FlowChart chart : flowCharts
) {//按照节点顺序获取正确的流程 ) {//按照节点顺序获取正确的流程
List<FlowChartDetailRecord> flowChartDetailRecords1 List<FlowChartDetailRecord> flowChartDetailRecords1
= flowChartDetailRecordService.selectOpenFlowChartDetailRecordByGroupIdAndChartId(evaluationGroup.getId(), chart.getId()); = flowChartDetailRecordService.selectOpenFlowChartDetailRecordByGroupIdAndChartId(evaluationGroup.getId(), chart.getId());
flowChartDetailRecords.addAll(flowChartDetailRecords1); flowChartDetailRecords.addAll(flowChartDetailRecords1);
} }
if(flowChartDetailRecords.size() == 0){ if (flowChartDetailRecords.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("没有设置考核流程"); log.info("没有设置考核流程");
startStartDto.setStatus(3); startStartDto.setStatus(3);
@ -399,7 +388,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
//获取绩效考核管理员 //获取绩效考核管理员
List<StaffEntity> staffManagers = staffService.selectStaffsByGroupId(evaluationGroup.getCopyId()); List<StaffEntity> staffManagers = staffService.selectStaffsByGroupId(evaluationGroup.getCopyId());
if(staffManagers == null || staffManagers.size() == 0){ if (staffManagers == null || staffManagers.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("没有设置绩效管理人员"); log.info("没有设置绩效管理人员");
startStartDto.setStatus(4); startStartDto.setStatus(4);
@ -410,7 +399,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
List<Flow> flows; List<Flow> flows;
List<FlowApprovalRole> flowApprovalRoles; List<FlowApprovalRole> flowApprovalRoles;
//下面拷贝一份考评组信息发起后所使用的考评组id为复制后的id //下面拷贝一份考评组信息发起后所使用的考评组id为复制后的id
if(!isInsert){ if (!isInsert) {
evaluationGroup.setCopyId(evaluationGroup.getId()); evaluationGroup.setCopyId(evaluationGroup.getId());
evaluationGroup.setId(null); evaluationGroup.setId(null);
evaluationGroup.setGmtCreate(null); evaluationGroup.setGmtCreate(null);
@ -421,7 +410,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
//拷贝考评组的指标信息 //拷贝考评组的指标信息
List<ResultTagetLib> resultTagetLibs = new ArrayList<>(); List<ResultTagetLib> resultTagetLibs = new ArrayList<>();
for (ResultModelDto dto:resultModelDtos for (ResultModelDto dto : resultModelDtos
) { ) {
dto.setEvaluationGroupId(evaluationGroup.getId());//设置拷贝组的id dto.setEvaluationGroupId(evaluationGroup.getId());//设置拷贝组的id
//下面拷贝一份考评组信息的维度信息 //下面拷贝一份考评组信息的维度信息
@ -432,7 +421,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
List<ResultTagetLibDto> libDtos = resultTagetLibService.selectResultTagetLibDtoByModelId(dto.getId()); List<ResultTagetLibDto> libDtos = resultTagetLibService.selectResultTagetLibDtoByModelId(dto.getId());
dto.setTagetLibs(libDtos); dto.setTagetLibs(libDtos);
for (ResultTagetLibDto libDto: libDtos for (ResultTagetLibDto libDto : libDtos
) { ) {
//下面拷贝考评组里面的指标信息 //下面拷贝考评组里面的指标信息
ResultTagetLib resultTagetLib = new ResultTagetLib(); ResultTagetLib resultTagetLib = new ResultTagetLib();
@ -443,33 +432,33 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
dto.setId(resultModel.getId()); dto.setId(resultModel.getId());
} }
if(resultTagetLibs.size() > 0){ if (resultTagetLibs.size() > 0) {
//插入备份的考评组指标信息 //插入备份的考评组指标信息
resultTagetLibService.saveBatch(resultTagetLibs); resultTagetLibService.saveBatch(resultTagetLibs);
} }
//拷贝一份流程 //拷贝一份流程
for(FlowChartDetailRecord flowChartDetailRecord: flowChartDetailRecords){ for (FlowChartDetailRecord flowChartDetailRecord : flowChartDetailRecords) {
flowChartDetailRecord.setId(null); flowChartDetailRecord.setId(null);
flowChartDetailRecord.setGmtCreate(null); flowChartDetailRecord.setGmtCreate(null);
flowChartDetailRecord.setGmtModified(null); flowChartDetailRecord.setGmtModified(null);
flowChartDetailRecord.setEvaluationGroupId(evaluationGroup.getId()); flowChartDetailRecord.setEvaluationGroupId(evaluationGroup.getId());
} }
flowChartDetailRecordService.saveBatch(flowChartDetailRecords); flowChartDetailRecordService.saveBatch(flowChartDetailRecords);
}else{ } else {
if(evaluationGroup == null){ if (evaluationGroup == null) {
log.info("无法找到拷贝组信息"); log.info("无法找到拷贝组信息");
startStartDto.setStatus(5); startStartDto.setStatus(5);
return startStartDto; return startStartDto;
} }
resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId()); resultModelDtos = resultModelService.selectResultDtoByGroupId(evaluationGroup.getId());
if(resultModelDtos.size() == 0){ if (resultModelDtos.size() == 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("拷贝组的维度信息错误"); log.info("拷贝组的维度信息错误");
startStartDto.setStatus(1); startStartDto.setStatus(1);
return startStartDto; return startStartDto;
} }
for (ResultModelDto modelDto:resultModelDtos for (ResultModelDto modelDto : resultModelDtos
) { ) {
List<ResultTagetLibDto> resultTagetLibDtos = resultTagetLibService.selectResultTagetLibDtoByModelId(modelDto.getId()); List<ResultTagetLibDto> resultTagetLibDtos = resultTagetLibService.selectResultTagetLibDtoByModelId(modelDto.getId());
modelDto.setTagetLibs(resultTagetLibDtos); modelDto.setTagetLibs(resultTagetLibDtos);
@ -481,7 +470,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
List<EvaluationStartStaff> evaluationStartStaffs = new ArrayList<>(); List<EvaluationStartStaff> evaluationStartStaffs = new ArrayList<>();
List<ResultDetail> resultDetails = new ArrayList(); List<ResultDetail> resultDetails = new ArrayList();
//下面初始化参与人员 //下面初始化参与人员
for (StaffSimpleInfo staffInfo:staffIds for (StaffSimpleInfo staffInfo : staffIds
) { ) {
EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff(); EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff();
@ -514,18 +503,17 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
resultRecordService.insertResultRecord(resultRecord); resultRecordService.insertResultRecord(resultRecord);
//resultRecordService.initFlowRecord(resultRecord.getId()); //resultRecordService.initFlowRecord(resultRecord.getId());
//下面生成实际的考核流程 //下面生成实际的考核流程
staffInfo.setResultRecord(resultRecord); staffInfo.setResultRecord(resultRecord);
staffInfo.setFlowStart(flowStart); staffInfo.setFlowStart(flowStart);
for (ResultModelDto modelDto:resultModelDtos for (ResultModelDto modelDto : resultModelDtos
) { ) {
log.info("发起考核modelDto:{}, tagetLibsSize:{}", modelDto, modelDto.getTagetLibs().size()); log.info("发起考核modelDto:{}, tagetLibsSize:{}", modelDto, modelDto.getTagetLibs().size());
if(modelDto.getTagetLibs() != null && modelDto.getTagetLibs().size() > 0){//模板里面有添加指标 if (modelDto.getTagetLibs() != null && modelDto.getTagetLibs().size() > 0) {//模板里面有添加指标
for (ResultTagetLibDto libDto: for (ResultTagetLibDto libDto :
modelDto.getTagetLibs()) { modelDto.getTagetLibs()) {
ResultDetail resultDetail = new ResultDetail(); ResultDetail resultDetail = new ResultDetail();
@ -539,21 +527,21 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
resultDetail.setModelId(modelDto.getId()); resultDetail.setModelId(modelDto.getId());
resultDetails.add(resultDetail); resultDetails.add(resultDetail);
} }
}else{ } else {
log.info("无考评组信息"); log.info("无考评组信息");
} }
} }
//如果有数据插入lz_result_detail表 //如果有数据插入lz_result_detail表
log.info("发起考核,新增绩效详情个数{}", resultDetails.size()); log.info("发起考核,新增绩效详情个数{}", resultDetails.size());
if(resultDetails.size() > 0){ if (resultDetails.size() > 0) {
// //
resultDetailService.saveBatch(resultDetails); resultDetailService.saveBatch(resultDetails);
} }
} }
evaluationStartStaffService.saveBatch(evaluationStartStaffs); evaluationStartStaffService.saveBatch(evaluationStartStaffs);
startStartDto.setResultRecordList(resultRecords); startStartDto.setResultRecordList(resultRecords);
flows = flowService.selectByFlowId(evaluationGroup.getId(),flowStart.getId()); flows = flowService.selectByFlowId(evaluationGroup.getId(), flowStart.getId());
List<Long> flowIds = flows.stream().map(new Function<Flow, Long>() { List<Long> flowIds = flows.stream().map(new Function<Flow, Long>() {
@Override @Override
public Long apply(Flow flow) { public Long apply(Flow flow) {
@ -561,7 +549,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
}).collect(Collectors.toList()); }).collect(Collectors.toList());
flowApprovalRoles =flowApprovalRoleService.selectFlowApprovalRoleList(flowIds); flowApprovalRoles = flowApprovalRoleService.selectFlowApprovalRoleList(flowIds);
startStartDto.setFlows(flows); startStartDto.setFlows(flows);
startStartDto.setFlowApprovalRoles(flowApprovalRoles); startStartDto.setFlowApprovalRoles(flowApprovalRoles);
startStartDto.setStatus(0); startStartDto.setStatus(0);
@ -572,7 +560,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
flows = new ArrayList<>(); flows = new ArrayList<>();
flowApprovalRoles = new ArrayList<>(); flowApprovalRoles = new ArrayList<>();
int stepIndex = 0; int stepIndex = 0;
for (FlowChartDetailRecord flowChartDetailRecord:flowChartDetailRecords for (FlowChartDetailRecord flowChartDetailRecord : flowChartDetailRecords
) {//初始化考评组对应的的flow ) {//初始化考评组对应的的flow
Flow flow = new Flow(); Flow flow = new Flow();
flow.setFlowId(evaluationGroup.getId()); flow.setFlowId(evaluationGroup.getId());
@ -585,18 +573,18 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
FlowApprovalRole flowApprovalRole = null; FlowApprovalRole flowApprovalRole = null;
List<FlowChartRole> flowChartRoles = null; List<FlowChartRole> flowChartRoles = null;
//获取必备权限 //获取必备权限
if(mustRole.containsKey(flow.getChartId())){ if (mustRole.containsKey(flow.getChartId())) {
flowChartRoles = mustRole.get(flow.getChartId()); flowChartRoles = mustRole.get(flow.getChartId());
}else{ } else {
flowChartRoles = flowChartRoles =
flowChartRoleService.selectFlowChartRolesByChartIdAndType(flow.getChartId(), 1); flowChartRoleService.selectFlowChartRolesByChartIdAndType(flow.getChartId(), 1);
mustRole.put(flow.getChartId(), flowChartRoles); mustRole.put(flow.getChartId(), flowChartRoles);
} }
if(flowChartDetailRecord.getOptType().intValue() == ChartOptType.APPOINT.getCode()){//指定人员的 if (flowChartDetailRecord.getOptType().intValue() == ChartOptType.APPOINT.getCode()) {//指定人员的
String roles = null; String roles = null;
if(flowChartRoles != null && flowChartRoles.size() > 0){// if (flowChartRoles != null && flowChartRoles.size() > 0) {//
roles = flowChartRoles.stream().map(new Function<FlowChartRole, String>() { roles = flowChartRoles.stream().map(new Function<FlowChartRole, String>() {
@Override @Override
public String apply(FlowChartRole flowChartRole) { public String apply(FlowChartRole flowChartRole) {
@ -607,7 +595,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
String[] optIds = flowChartDetailRecord.getOptIds().split(","); String[] optIds = flowChartDetailRecord.getOptIds().split(",");
for (String id:optIds for (String id : optIds
) {//初始化考评组对应的的FlowApprovalRole ) {//初始化考评组对应的的FlowApprovalRole
flowApprovalRole = new FlowApprovalRole(); flowApprovalRole = new FlowApprovalRole();
@ -618,26 +606,26 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
flowApprovalRole.setType(flowChartDetailRecord.getOptType()); flowApprovalRole.setType(flowChartDetailRecord.getOptType());
flowApprovalRoles.add(flowApprovalRole); flowApprovalRoles.add(flowApprovalRole);
flowApprovalRole.setStepIndex(stepIndex); flowApprovalRole.setStepIndex(stepIndex);
if(roles != null){ if (roles != null) {
if(flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0){ if (flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0) {
flowApprovalRole.setRoleId(roles); flowApprovalRole.setRoleId(roles);
}else{ } else {
flowApprovalRole.setRoleId(flowApprovalRole.getRoleId() + "," + roles); flowApprovalRole.setRoleId(flowApprovalRole.getRoleId() + "," + roles);
} }
} }
if(flowChartDetailRecord.getStepType().intValue() == 0){ if (flowChartDetailRecord.getStepType().intValue() == 0) {
//依次 //依次
stepIndex++; stepIndex++;
} }
} }
if(flowApprovalRole != null){ if (flowApprovalRole != null) {
stepIndex = flowApprovalRole.getStepIndex() + 1; stepIndex = flowApprovalRole.getStepIndex() + 1;
} }
}else{ } else {
if(flowChartDetailRecord.getOptType().intValue() == ChartOptType.SELF.getCode()) {//参与人员为自己的 if (flowChartDetailRecord.getOptType().intValue() == ChartOptType.SELF.getCode()) {//参与人员为自己的
//获取被考核人的必备权限 //获取被考核人的必备权限
if (selfMustRole.containsKey(flow.getChartId())) { if (selfMustRole.containsKey(flow.getChartId())) {
flowChartRoles.addAll(selfMustRole.get(flow.getChartId())); flowChartRoles.addAll(selfMustRole.get(flow.getChartId()));
@ -656,16 +644,16 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
flowApprovalRoles.add(flowApprovalRole); flowApprovalRoles.add(flowApprovalRole);
flowApprovalRole.setStepIndex(stepIndex); flowApprovalRole.setStepIndex(stepIndex);
if(flowChartRoles != null && flowChartRoles.size() > 0){// if (flowChartRoles != null && flowChartRoles.size() > 0) {//
String roles = flowChartRoles.stream().map(new Function<FlowChartRole, String>() { String roles = flowChartRoles.stream().map(new Function<FlowChartRole, String>() {
@Override @Override
public String apply(FlowChartRole flowChartRole) { public String apply(FlowChartRole flowChartRole) {
return flowChartRole.getRoleId().toString(); return flowChartRole.getRoleId().toString();
} }
}).collect(Collectors.joining(",")); }).collect(Collectors.joining(","));
if(flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0){ if (flowApprovalRole.getRoleId() == null || flowApprovalRole.getRoleId().length() == 0) {
flowApprovalRole.setRoleId(roles); flowApprovalRole.setRoleId(roles);
}else{ } else {
flowApprovalRole.setRoleId(flowApprovalRole.getRoleId() + "," + roles); flowApprovalRole.setRoleId(flowApprovalRole.getRoleId() + "," + roles);
} }
} }
@ -674,7 +662,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
} }
//插入记录/flowChart/saveDetailProcs //插入记录/flowChart/saveDetailProcs
if(flowApprovalRoles.size() > 0){ if (flowApprovalRoles.size() > 0) {
flowApprovalRoleService.saveBatch(flowApprovalRoles); flowApprovalRoleService.saveBatch(flowApprovalRoles);
//初始化lz_result_details数据 //初始化lz_result_details数据
@ -683,7 +671,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
List<EvaluationStartStaff> evaluationStartStaffs = new ArrayList<>(); List<EvaluationStartStaff> evaluationStartStaffs = new ArrayList<>();
//下面初始化参与人员 //下面初始化参与人员
for (StaffSimpleInfo staffInfo:staffIds for (StaffSimpleInfo staffInfo : staffIds
) { ) {
EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff(); EvaluationStartStaff evaluationStartStaff = new EvaluationStartStaff();
@ -708,59 +696,57 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
resultRecord.setFlowProcess(0);//设置为目标制定 resultRecord.setFlowProcess(0);//设置为目标制定
//下面初始化flow_staff_id_role字段步骤为0的 //下面初始化flow_staff_id_role字段步骤为0的
String roleJSON = "["; String roleJSON = "[";
for (int i = 0; i < flowApprovalRoles.size() ;i++){ for (int i = 0; i < flowApprovalRoles.size(); i++) {
FlowApprovalRole approvalRole = flowApprovalRoles.get(i); FlowApprovalRole approvalRole = flowApprovalRoles.get(i);
if(approvalRole.getStepIndex().intValue() == 0){//找到所有步骤为0的人员 if (approvalRole.getStepIndex().intValue() == 0) {//找到所有步骤为0的人员
Long staffId = approvalRole.getApprovalId();//默认为指定人员 Long staffId = approvalRole.getApprovalId();//默认为指定人员
if(approvalRole.getType().intValue() == ChartOptType.SELF.getCode()){ if (approvalRole.getType().intValue() == ChartOptType.SELF.getCode()) {
//制定人员为自己的 //制定人员为自己的
staffId = staffInfo.getId(); staffId = staffInfo.getId();
if(i == 0){//目前只设置一个多个不明确是否支持roleJSON是支持多个的 if (i == 0) {//目前只设置一个多个不明确是否支持roleJSON是支持多个的
//设置当前审批员工id current_approval_staff_id //设置当前审批员工id current_approval_staff_id
resultRecord.setCurrentApprovalStaffId(staffInfo.getId()); resultRecord.setCurrentApprovalStaffId(staffInfo.getId());
//设置当前审批员工姓名 current_approval_staff_name //设置当前审批员工姓名 current_approval_staff_name
resultRecord.setCurrentApprovalStaffName(staffInfo.getName()); resultRecord.setCurrentApprovalStaffName(staffInfo.getName());
} }
} else if(approvalRole.getType().intValue() > 0){//当设置为几级领导时 } else if (approvalRole.getType().intValue() > 0) {//当设置为几级领导时
///查找领导如果不存在那么设置管理人员 ///查找领导如果不存在那么设置管理人员
List<StaffEntity> staffLeader; List<StaffEntity> staffLeader;
String key = staffInfo.getDepartmentId() + "_" + approvalRole.getType(); String key = staffInfo.getDepartmentId() + "_" + approvalRole.getType();
if(staffManages.containsKey(key)){ if (staffManages.containsKey(key)) {
staffLeader = staffManages.get(staffInfo.getDepartmentId()); staffLeader = staffManages.get(staffInfo.getDepartmentId());
}else{ } else {
DepartManagers departManagers = DepartManagers departManagers =
staffService.findLeader(staffInfo.getId(), approvalRole.getType()); staffService.findLeader(staffInfo.getId(), approvalRole.getType());
staffLeader = departManagers.getManagers(); staffLeader = departManagers.getManagers();
staffManages.put(key, departManagers.getManagers()); staffManages.put(key, departManagers.getManagers());
} }
if(staffLeader == null || staffLeader.size() == 0){ if (staffLeader == null || staffLeader.size() == 0) {
//没有领导通知到组设置的绩效管理人员 //没有领导通知到组设置的绩效管理人员
for (StaffEntity entity:staffManagers for (StaffEntity entity : staffManagers
) { ) {
roleJSON += ("{\"roleId\":0,\"staffId\":" + entity.getId() + "},");//这里写死了权限为0的即为找不到领导 roleJSON += ("{\"roleId\":0,\"staffId\":" + entity.getId() + "},");//这里写死了权限为0的即为找不到领导
} }
if(i == 0){//目前只设置一个多个不明确是否支持roleJSON是支持多个的 if (i == 0) {//目前只设置一个多个不明确是否支持roleJSON是支持多个的
//设置当前审批员工id current_approval_staff_id //设置当前审批员工id current_approval_staff_id
resultRecord.setCurrentApprovalStaffId(staffManagers.get(0).getId()); resultRecord.setCurrentApprovalStaffId(staffManagers.get(0).getId());
//设置当前审批员工姓名 current_approval_staff_name //设置当前审批员工姓名 current_approval_staff_name
resultRecord.setCurrentApprovalStaffName(staffManagers.get(0).getName()); resultRecord.setCurrentApprovalStaffName(staffManagers.get(0).getName());
} }
}else{ } else {
for(int j = 0; j <staffLeader.size(); j++ ){ for (int j = 0; j < staffLeader.size(); j++) {
StaffEntity staff = staffLeader.get(j); StaffEntity staff = staffLeader.get(j);
roleJSON += ("{\"roleId\":"+ approvalRole.getRoleId() + roleJSON += ("{\"roleId\":" + approvalRole.getRoleId() +
",\"staffId\":" + staff.getId() + "},"); ",\"staffId\":" + staff.getId() + "},");
} }
if(i == 0){//目前只设置一个多个不明确是否支持roleJSON是支持多个的 if (i == 0) {//目前只设置一个多个不明确是否支持roleJSON是支持多个的
//设置当前审批员工id current_approval_staff_id //设置当前审批员工id current_approval_staff_id
resultRecord.setCurrentApprovalStaffId(staffLeader.get(0).getId()); resultRecord.setCurrentApprovalStaffId(staffLeader.get(0).getId());
//设置当前审批员工姓名 current_approval_staff_name //设置当前审批员工姓名 current_approval_staff_name
@ -770,8 +756,8 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
continue; continue;
}else{ } else {
if(i == 0){//目前只设置一个多个不明确是否支持roleJSON是支持多个的 if (i == 0) {//目前只设置一个多个不明确是否支持roleJSON是支持多个的
//设置当前审批员工id current_approval_staff_id //设置当前审批员工id current_approval_staff_id
resultRecord.setCurrentApprovalStaffId(approvalRole.getApprovalId()); resultRecord.setCurrentApprovalStaffId(approvalRole.getApprovalId());
//设置当前审批员工姓名 current_approval_staff_name //设置当前审批员工姓名 current_approval_staff_name
@ -780,7 +766,7 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
} }
roleJSON += ("{\"roleId\":"+ approvalRole.getRoleId() + roleJSON += ("{\"roleId\":" + approvalRole.getRoleId() +
",\"staffId\":" + staffId + "},"); ",\"staffId\":" + staffId + "},");
continue; continue;
} }
@ -809,10 +795,10 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
//resultRecordService.initFlowRecord(resultRecord.getId()); //resultRecordService.initFlowRecord(resultRecord.getId());
//下面生成ResultDetail对象 //下面生成ResultDetail对象
for (ResultModelDto modelDto:resultModelDtos for (ResultModelDto modelDto : resultModelDtos
) { ) {
if(modelDto.getTagetLibs() != null && modelDto.getTagetLibs().size() > 0){//模板里面有添加指标 if (modelDto.getTagetLibs() != null && modelDto.getTagetLibs().size() > 0) {//模板里面有添加指标
for (ResultTagetLibDto libDto: for (ResultTagetLibDto libDto :
modelDto.getTagetLibs()) { modelDto.getTagetLibs()) {
ResultDetail resultDetail = new ResultDetail(); ResultDetail resultDetail = new ResultDetail();
resultDetail.setRecordId(resultRecord.getId()); resultDetail.setRecordId(resultRecord.getId());
@ -832,12 +818,12 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
startStartDto.setFlowApprovalRoles(flowApprovalRoles); startStartDto.setFlowApprovalRoles(flowApprovalRoles);
startStartDto.setFlows(flows); startStartDto.setFlows(flows);
//如果有数据插入lz_result_detail表 //如果有数据插入lz_result_detail表
if(resultDetails.size() > 0){ if (resultDetails.size() > 0) {
// //
resultDetailService.saveBatch(resultDetails); resultDetailService.saveBatch(resultDetails);
} }
evaluationStartStaffService.saveBatch(evaluationStartStaffs); evaluationStartStaffService.saveBatch(evaluationStartStaffs);
}else{ } else {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//事务回滚
log.info("初始化考核流程失败"); log.info("初始化考核流程失败");
startStartDto.setStatus(5); startStartDto.setStatus(5);
@ -849,16 +835,16 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
@Override @Override
public R getModelById(Long id, int type){ public R getModelById(Long id, int type) {
/*EvaluationGroup evaluationGroup = evaluationGroupService.selectEvaluationGroupById(id); /*EvaluationGroup evaluationGroup = evaluationGroupService.selectEvaluationGroupById(id);
List<StaffSimpleInfo> staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup);*/ List<StaffSimpleInfo> staffIds = evaluationGroupService.selectAllStaffSimpleInfoByGroupId(evaluationGroup);*/
//flowStart = flowStartService.selectFlowStartById(flowStart.getId()); //flowStart = flowStartService.selectFlowStartById(flowStart.getId());
DepartManagers staffEntity = staffService.findLeader(id, type); DepartManagers staffEntity = staffService.findLeader(id, type);
return R.ok().put("data",staffEntity); return R.ok().put("data", staffEntity);
} }
private void initFlowRecordAnsy(List<StartStartDto> resultRecords, List<StaffSimpleInfo> noticeStaff){ private void initFlowRecordAnsy(List<StartStartDto> resultRecords, List<StaffSimpleInfo> noticeStaff) {
if(resultRecords.size() > 0){ if (resultRecords.size() > 0) {
ThreadInitFlowRecord threadInitFlowRecord = new ThreadInitFlowRecord(resultRecords, noticeStaff); ThreadInitFlowRecord threadInitFlowRecord = new ThreadInitFlowRecord(resultRecords, noticeStaff);
Thread thread = new Thread(threadInitFlowRecord); Thread thread = new Thread(threadInitFlowRecord);
@ -868,11 +854,11 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
} }
public class ThreadInitFlowRecord implements Runnable{ public class ThreadInitFlowRecord implements Runnable {
List<StartStartDto> resultStarts; List<StartStartDto> resultStarts;
List<StaffSimpleInfo> noticeStaff; List<StaffSimpleInfo> noticeStaff;
public ThreadInitFlowRecord(List<StartStartDto> resultRecords, List<StaffSimpleInfo> noticeStaff){ public ThreadInitFlowRecord(List<StartStartDto> resultRecords, List<StaffSimpleInfo> noticeStaff) {
this.resultStarts = resultRecords; this.resultStarts = resultRecords;
this.noticeStaff = noticeStaff; this.noticeStaff = noticeStaff;
@ -880,25 +866,31 @@ public class FlowStartServiceImpl extends ServiceImpl<FlowStartMapper, FlowStart
@Override @Override
public void run() { public void run() {
String oldNo = Logger.inheritableThreadLocalNo.get();//.threadLocalNo.get(); try {
String newNo = oldNo + "_initFlowRecord" ;//+ resultRecord.getStaffId() + "_" + resultRecord.getId();
ch.qos.logback.classic.Logger.threadLocalNo.set(newNo);
log.info("开始批量初始化流程,任务数量{}", resultStarts.size()); log.info("开始批量初始化流程,任务数量{}", resultStarts.size());
String oldNo = Logger.inheritableThreadLocalNo.get();
for (StartStartDto startStartDto: resultStarts for (StartStartDto startStartDto : resultStarts) {
) { try {
oldNo = Logger.inheritableThreadLocalNo.get();
String newNo = oldNo + "_initFlowRecord_" + startStartDto.getResultRecordList().get(0).getStartId();
Logger.threadLocalNo.set(newNo);
log.info("初始化任务中绩效数量{}", startStartDto.getResultRecordList().size()); log.info("初始化任务中绩效数量{}", startStartDto.getResultRecordList().size());
for (ResultRecord resultRecord:startStartDto.getResultRecordList() for (ResultRecord resultRecord : startStartDto.getResultRecordList()) {
) {
log.info("初始化绩效{}", resultRecord); log.info("初始化绩效{}", resultRecord);
resultRecordService.initFlowRecord(resultRecord, startStartDto.getFlows(), startStartDto.getFlowApprovalRoles()); resultRecordService.initFlowRecord(resultRecord, startStartDto.getFlows(), startStartDto.getFlowApprovalRoles());
} }
} catch (Exception e) {
log.error("发出异常", e);
} finally {
Logger.threadLocalNo.set(oldNo);
}
}
Logger.threadLocalNo.set(oldNo);
dingtalkBusiness.sendWorkMSGWithAsyn(noticeStaff, WorkMsgTypeEnum.START_WORK.getType());
} catch (Exception e) {
log.error("异常", e);
} }
ch.qos.logback.classic.Logger.threadLocalNo.set(oldNo);
dingtalkBusiness.sendWorkMSGWithAsyn(noticeStaff, WorkMsgTypeEnum.START_WORK.getType());
} }
} }
} }

View File

@ -796,6 +796,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
@Override @Override
public R initFlowRecord(ResultRecord resultRecord, List<Flow> flows, List<FlowApprovalRole> flowApprovalRoles) { public R initFlowRecord(ResultRecord resultRecord, List<Flow> flows, List<FlowApprovalRole> flowApprovalRoles) {
log.info("员工id :" + resultRecord.getStaffId() + " ,员工名称 " + resultRecord.getStaffName());
int i = 0; int i = 0;
for (FlowApprovalRole flowApprovalRole : flowApprovalRoles) { for (FlowApprovalRole flowApprovalRole : flowApprovalRoles) {
FlowRecord flowRecord = new FlowRecord(); FlowRecord flowRecord = new FlowRecord();
@ -817,14 +818,17 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
approvalStaff = getDepartmentStaff(resultRecord.getStaffId(), 5); approvalStaff = getDepartmentStaff(resultRecord.getStaffId(), 5);
} }
if (approvalStaff != null && StringUtil.isNotBlank(approvalStaff.getName())) { if (approvalStaff != null && StringUtil.isNotBlank(approvalStaff.getName())) {
log.info("插入xxx");
insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, null); insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, null);
} else { } else {
List<StaffRole> staffRoles = staffRoleService.selectAllStaffRoleByDepartmentLevel(Arrays.asList(new String[]{RoleEnums.MASTER_PM.getName(), RoleEnums.CHILD_PM.getName()})); List<StaffRole> staffRoles = staffRoleService.selectAllStaffRoleByDepartmentLevel(Arrays.asList(new String[]{RoleEnums.MASTER_PM.getName(), RoleEnums.CHILD_PM.getName()}));
for (StaffRole staffRole : staffRoles) { for (StaffRole staffRole : staffRoles) {
approvalStaff = staffService.selectStaffById(staffRole.getStaffId()); approvalStaff = staffService.selectStaffById(staffRole.getStaffId());
if (staffRole.getDepartmentId() == 0) { //如果是管理所有部门 if (staffRole.getDepartmentId() == 0) { //如果是管理所有部门
log.info("如果是管理所有部门------");
insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, 1); insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, 1);
} else { } else {
log.info("222222222------");
DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(resultRecord.getStaffId()); DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(resultRecord.getStaffId());
Map<String, String> map = departmentsService.selectUserAllDepartmentIds(relateEntity.getDepartmentId()); Map<String, String> map = departmentsService.selectUserAllDepartmentIds(relateEntity.getDepartmentId());
List<StaffRoleDepartment> staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId()); List<StaffRoleDepartment> staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId());
@ -837,6 +841,7 @@ public class ResultRecordServiceImpl extends ServiceImpl<ResultRecordMapper, Res
} }
} }
if (flag) { //如果管理员是管理特定部门 if (flag) { //如果管理员是管理特定部门
log.info("如果管理员是管理特定部门===========");
insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, 1); insertFlowRecord(flowRecord, approvalStaff, flows, flowApprovalRole, resultRecord, i, 1);
} }
} }