修改发送正常流转待办任务取消和发送的顺序

This commit is contained in:
wulin 2020-11-23 15:01:34 +08:00
parent ef891ecac6
commit 62129d354b

View File

@ -514,44 +514,26 @@ public class DingtalkBusiness {
}else{
logger.info("流程正常流转");
List<FlowRecord> flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(fromStaff.getResultRecord().getId(), 2);
if(flowRecords.size() > 0){//给下一步骤需要处理的人发送待办任务
if(flowRecords.get(0).getFlowProcess().intValue() != 2){//执行中流程的不发送待办
logger.info("非执行中的节点发送待办任务:{}", flowRecords.get(0).getFlowName());
List<Long> ids = flowRecords.stream().map(new Function<FlowRecord, Long>() {
@Override
public Long apply(FlowRecord flowRecord) {
return flowRecord.getApprovalStaffId();
}
}).collect(Collectors.toList());
List<StaffSimpleInfo> staffSimpleInfos = staffService.selectStaffSimpleInfos(ids);
for (StaffSimpleInfo staffSimpleInfo:staffSimpleInfos
) {
sendNotic(staffSimpleInfo.getId(), staffSimpleInfo.getEmployeeId(),
flowRecords.get(0).getFlowName(), fromStaff.getFlowStart().getName(),
fromStaff.getResultRecord().getStaffName(), token, url, fromStaff.getResultRecord().getId());
}
}
}
//取消上一步骤发送的待办任务
List<FlowRecord> cancelRecords;
if(flowRecords.size() == 0){//任务结束了
logger.info("任务结束了");
flowRecords = flowRecordService.selectLastFlowRecordsById(fromStaff.getResultRecord().getId());
cancelRecords = flowRecordService.selectLastFlowRecordsById(fromStaff.getResultRecord().getId());
}else{
if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.REJECT.getType()){//被拒
logger.info("任务驳回");
flowRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId()
cancelRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId()
, flowRecords.get(0).getFlowIndex().intValue() + 1);//获取下一步的数据
}else{
logger.info("任务流转下一步");
flowRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId()
cancelRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId()
, flowRecords.get(0).getFlowIndex().intValue() - 1);//获取上一步的数据
}
}
logger.info("查询到可能需要更新的待办任务数量{}", flowRecords.size());
if(flowRecords.size() > 0){
for (FlowRecord flowRecord:flowRecords
logger.info("查询到可能需要更新的待办任务数量{}", cancelRecords.size());
if(cancelRecords.size() > 0){
for (FlowRecord flowRecord:cancelRecords
) {
if(flowRecord.getStatus().intValue() == 1
|| flowRecord.getStatus().intValue() == 3
@ -571,6 +553,27 @@ public class DingtalkBusiness {
}
}
}
//给下一步需要处理的人员发送待办任务
if(flowRecords.size() > 0){//给下一步骤需要处理的人发送待办任务
if(flowRecords.get(0).getFlowProcess().intValue() != 2){//执行中流程的不发送待办
logger.info("非执行中的节点发送待办任务:{}", flowRecords.get(0).getFlowName());
List<Long> ids = flowRecords.stream().map(new Function<FlowRecord, Long>() {
@Override
public Long apply(FlowRecord flowRecord) {
return flowRecord.getApprovalStaffId();
}
}).collect(Collectors.toList());
List<StaffSimpleInfo> staffSimpleInfos = staffService.selectStaffSimpleInfos(ids);
for (StaffSimpleInfo staffSimpleInfo:staffSimpleInfos
) {
sendNotic(staffSimpleInfo.getId(), staffSimpleInfo.getEmployeeId(),
flowRecords.get(0).getFlowName(), fromStaff.getFlowStart().getName(),
fromStaff.getResultRecord().getStaffName(), token, url, fromStaff.getResultRecord().getId());
}
}
}
}
}