diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 7a09c566..6b062fee 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -514,44 +514,26 @@ public class DingtalkBusiness { }else{ logger.info("流程正常流转"); List 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 ids = flowRecords.stream().map(new Function() { - @Override - public Long apply(FlowRecord flowRecord) { - return flowRecord.getApprovalStaffId(); - } - }).collect(Collectors.toList()); - List 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 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 ids = flowRecords.stream().map(new Function() { + @Override + public Long apply(FlowRecord flowRecord) { + return flowRecord.getApprovalStaffId(); + } + }).collect(Collectors.toList()); + List 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()); + + } + } + } + } }