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 2e017239..7a09c566 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -461,7 +461,7 @@ public class DingtalkBusiness { logger.info("转交待办任务处理"); FlowChange flowChange = flowChangeService.selectFlowChangeByFlowRecordIdAndType( fromStaff.getFlowRecordId(), - 0); + 1); if(flowChange != null){ ThirdMsgSendRecord thirdMsgSendRecord = thirdMsgSendRecordService.selectThirdMsgSendRecordByWorkIdAndStaffIdAndTypeAndStatus( @@ -494,7 +494,6 @@ public class DingtalkBusiness { logger.info("查询到可能需要更新待办任务数量{}", flowRecords.size()); if(flowRecords.size() > 0){ //或签 - logger.info("或签,需要更新该节点下所有人员的待办任务"); for (FlowRecord flowRecord:flowRecords ) { logger.info("更新非直接跳关人员的待办任务,人员id:{}, 姓名:{}", flowRecord.getApprovalStaffId(), @@ -510,11 +509,14 @@ public class DingtalkBusiness { } } } + //获取具体跳过的步骤 + FlowRecord flowRecord = flowRecordService.selectFlowRecordById(fromStaff.getFlowRecordId());// }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()); + 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) { @@ -533,12 +535,15 @@ public class DingtalkBusiness { } //取消上一步骤发送的待办任务 if(flowRecords.size() == 0){//任务结束了 + logger.info("任务结束了"); flowRecords = flowRecordService.selectLastFlowRecordsById(fromStaff.getResultRecord().getId()); }else{ if(workMsgTypeEnum.getType() == WorkMsgTypeEnum.REJECT.getType()){//被拒 + logger.info("任务驳回"); flowRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() , flowRecords.get(0).getFlowIndex().intValue() + 1);//获取下一步的数据 }else{ + logger.info("任务流转下一步"); flowRecords = flowRecordService.selectLastFlowRecordsByIdAndFlowIndex(fromStaff.getResultRecord().getId() , flowRecords.get(0).getFlowIndex().intValue() - 1);//获取上一步的数据 }