diff --git a/srs-flowable/src/main/java/com/srs/flowable/listener/disbasic/DiscListener.java b/srs-flowable/src/main/java/com/srs/flowable/listener/disbasic/DiscListener.java index 4d4bb98..56c64c4 100644 --- a/srs-flowable/src/main/java/com/srs/flowable/listener/disbasic/DiscListener.java +++ b/srs-flowable/src/main/java/com/srs/flowable/listener/disbasic/DiscListener.java @@ -37,9 +37,6 @@ public class DiscListener implements ExecutionListener { @Override public void notify(DelegateExecution execution) { - log.info("===== 退伍复学审批监听器触发 ====="); - log.info("当前节点ID:{}", execution.getCurrentActivityId()); - log.info("流程实例ID:{}", execution.getProcessInstanceId()); // 1. 获取当前节点ID和流程定义ID String currentActivityId = execution.getCurrentActivityId(); // 当前节点ID(兼容所有版本) String processDefinitionId = execution.getProcessDefinitionId(); // 流程定义ID @@ -117,9 +114,17 @@ public class DiscListener implements ExecutionListener { switch (currentNodeName) { case "招生与就业处": - return counselorInfo.getUserId(); + List zjcData = sysDisBasicMapper.getShenDataInfo("招就处"); + return zjcData.get(0).getUserId(); + case "辅导员审核": + + // 返回匹配的辅导员用户ID(作为下一个节点负责人) + return counselorInfo.getUserId(); + + case "学务审核": + // 辅导员通过后 → 下一个节点:学务(筛选出角色ID=105,且与当前部门一致) // 查询角色ID=105(学务)的所有用户 SysUser queryUser = new SysUser(); @@ -134,12 +139,8 @@ public class DiscListener implements ExecutionListener { .filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配 .findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整) .orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人")); - - - // 返回匹配的辅导员用户ID(作为下一个节点负责人) return targetAcademic.getUserId(); - case "学务审核": // 学务通过后 → 下一个节点:二级学院(角色ID=106,匹配学生所属学院) // 查询当前流程对应的业务数据(获取学生所属学院ID) // RtEnlistmentReserve reserve = enlistmentReserveMapper.selectRtEnlistmentReserveByProcessInstanceId(processInstanceId); @@ -147,6 +148,24 @@ public class DiscListener implements ExecutionListener { // throw new RuntimeException("未查询到流程对应的业务数据,processInstanceId=" + processInstanceId); // } + + + case "二级学院审核": + // 二级学院通过后 → 下一个节点:学籍管理科 + + // 获取学籍管理科审核人 + List shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科"); + + if (shenDataInfo.isEmpty()) { + throw new RuntimeException("未查询到对应的用户"); + } + + + // 暂时选择学籍管理科第一个人作为审核人 + return shenDataInfo.get(0).getUserId(); + + case "学籍管理": + // 查询角色ID=106(二级学院)的所有用户 SysUser qUser = new SysUser(); qUser.setRoleId(106L); // 二级学院角色固定ID=106 @@ -165,25 +184,13 @@ public class DiscListener implements ExecutionListener { // 返回匹配的二级学院负责人ID return targetCollegeLeader.getUserId(); - - case "二级学院审核": - // 二级学院通过后 → 下一个节点:学籍管理科 - - // 获取学籍管理科审核人 - List shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科"); - - if (shenDataInfo.isEmpty()) { - throw new RuntimeException("未查询到对应的用户"); - } - - - // 暂时选择学籍管理科第一个人作为审核人 - return shenDataInfo.get(0).getUserId(); - - case "学籍管理": // 学籍管理科通过后 → 下一个节点:教务处主管领导(假设部门ID=40) // 获取学教务处主管领导审核人 + + + case "教务处主管": + // 最后一个节点通过后 → 流程结束(无需设置负责人) List teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导"); if (teacherVos.isEmpty()) { @@ -193,13 +200,9 @@ public class DiscListener implements ExecutionListener { // 暂时选择教务处主管领导第一个人作为审核人 return teacherVos.get(0).getUserId(); - case "教务处主管": - // 最后一个节点通过后 → 流程结束(无需设置负责人) - return null; - default: throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则"); } } -} +} \ No newline at end of file diff --git a/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java b/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java index cc8b1d8..8ca202f 100644 --- a/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java +++ b/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java @@ -283,7 +283,7 @@ public class SysDisBasicServiceImpl extends ServiceImpl