Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -37,9 +37,6 @@ public class DiscListener implements ExecutionListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notify(DelegateExecution execution) {
|
public void notify(DelegateExecution execution) {
|
||||||
log.info("===== 退伍复学审批监听器触发 =====");
|
|
||||||
log.info("当前节点ID:{}", execution.getCurrentActivityId());
|
|
||||||
log.info("流程实例ID:{}", execution.getProcessInstanceId());
|
|
||||||
// 1. 获取当前节点ID和流程定义ID
|
// 1. 获取当前节点ID和流程定义ID
|
||||||
String currentActivityId = execution.getCurrentActivityId(); // 当前节点ID(兼容所有版本)
|
String currentActivityId = execution.getCurrentActivityId(); // 当前节点ID(兼容所有版本)
|
||||||
String processDefinitionId = execution.getProcessDefinitionId(); // 流程定义ID
|
String processDefinitionId = execution.getProcessDefinitionId(); // 流程定义ID
|
||||||
@@ -117,9 +114,17 @@ public class DiscListener implements ExecutionListener {
|
|||||||
switch (currentNodeName) {
|
switch (currentNodeName) {
|
||||||
|
|
||||||
case "招生与就业处":
|
case "招生与就业处":
|
||||||
return counselorInfo.getUserId();
|
List<TeacherVo> zjcData = sysDisBasicMapper.getShenDataInfo("招就处");
|
||||||
|
return zjcData.get(0).getUserId();
|
||||||
|
|
||||||
|
|
||||||
case "辅导员审核":
|
case "辅导员审核":
|
||||||
|
|
||||||
|
// 返回匹配的辅导员用户ID(作为下一个节点负责人)
|
||||||
|
return counselorInfo.getUserId();
|
||||||
|
|
||||||
|
case "学务审核":
|
||||||
|
|
||||||
// 辅导员通过后 → 下一个节点:学务(筛选出角色ID=105,且与当前部门一致)
|
// 辅导员通过后 → 下一个节点:学务(筛选出角色ID=105,且与当前部门一致)
|
||||||
// 查询角色ID=105(学务)的所有用户
|
// 查询角色ID=105(学务)的所有用户
|
||||||
SysUser queryUser = new SysUser();
|
SysUser queryUser = new SysUser();
|
||||||
@@ -134,12 +139,8 @@ public class DiscListener implements ExecutionListener {
|
|||||||
.filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配
|
.filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配
|
||||||
.findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整)
|
.findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整)
|
||||||
.orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人"));
|
.orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人"));
|
||||||
|
|
||||||
|
|
||||||
// 返回匹配的辅导员用户ID(作为下一个节点负责人)
|
|
||||||
return targetAcademic.getUserId();
|
return targetAcademic.getUserId();
|
||||||
|
|
||||||
case "学务审核":
|
|
||||||
// 学务通过后 → 下一个节点:二级学院(角色ID=106,匹配学生所属学院)
|
// 学务通过后 → 下一个节点:二级学院(角色ID=106,匹配学生所属学院)
|
||||||
// 查询当前流程对应的业务数据(获取学生所属学院ID)
|
// 查询当前流程对应的业务数据(获取学生所属学院ID)
|
||||||
// RtEnlistmentReserve reserve = enlistmentReserveMapper.selectRtEnlistmentReserveByProcessInstanceId(processInstanceId);
|
// RtEnlistmentReserve reserve = enlistmentReserveMapper.selectRtEnlistmentReserveByProcessInstanceId(processInstanceId);
|
||||||
@@ -147,6 +148,24 @@ public class DiscListener implements ExecutionListener {
|
|||||||
// throw new RuntimeException("未查询到流程对应的业务数据,processInstanceId=" + processInstanceId);
|
// throw new RuntimeException("未查询到流程对应的业务数据,processInstanceId=" + processInstanceId);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case "二级学院审核":
|
||||||
|
// 二级学院通过后 → 下一个节点:学籍管理科
|
||||||
|
|
||||||
|
// 获取学籍管理科审核人
|
||||||
|
List<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
|
||||||
|
|
||||||
|
if (shenDataInfo.isEmpty()) {
|
||||||
|
throw new RuntimeException("未查询到对应的用户");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 暂时选择学籍管理科第一个人作为审核人
|
||||||
|
return shenDataInfo.get(0).getUserId();
|
||||||
|
|
||||||
|
case "学籍管理":
|
||||||
|
|
||||||
// 查询角色ID=106(二级学院)的所有用户
|
// 查询角色ID=106(二级学院)的所有用户
|
||||||
SysUser qUser = new SysUser();
|
SysUser qUser = new SysUser();
|
||||||
qUser.setRoleId(106L); // 二级学院角色固定ID=106
|
qUser.setRoleId(106L); // 二级学院角色固定ID=106
|
||||||
@@ -165,25 +184,13 @@ public class DiscListener implements ExecutionListener {
|
|||||||
|
|
||||||
// 返回匹配的二级学院负责人ID
|
// 返回匹配的二级学院负责人ID
|
||||||
return targetCollegeLeader.getUserId();
|
return targetCollegeLeader.getUserId();
|
||||||
|
|
||||||
case "二级学院审核":
|
|
||||||
// 二级学院通过后 → 下一个节点:学籍管理科
|
|
||||||
|
|
||||||
// 获取学籍管理科审核人
|
|
||||||
List<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
|
|
||||||
|
|
||||||
if (shenDataInfo.isEmpty()) {
|
|
||||||
throw new RuntimeException("未查询到对应的用户");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 暂时选择学籍管理科第一个人作为审核人
|
|
||||||
return shenDataInfo.get(0).getUserId();
|
|
||||||
|
|
||||||
case "学籍管理":
|
|
||||||
// 学籍管理科通过后 → 下一个节点:教务处主管领导(假设部门ID=40)
|
// 学籍管理科通过后 → 下一个节点:教务处主管领导(假设部门ID=40)
|
||||||
|
|
||||||
// 获取学教务处主管领导审核人
|
// 获取学教务处主管领导审核人
|
||||||
|
|
||||||
|
|
||||||
|
case "教务处主管":
|
||||||
|
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
||||||
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");
|
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");
|
||||||
|
|
||||||
if (teacherVos.isEmpty()) {
|
if (teacherVos.isEmpty()) {
|
||||||
@@ -193,10 +200,6 @@ public class DiscListener implements ExecutionListener {
|
|||||||
// 暂时选择教务处主管领导第一个人作为审核人
|
// 暂时选择教务处主管领导第一个人作为审核人
|
||||||
return teacherVos.get(0).getUserId();
|
return teacherVos.get(0).getUserId();
|
||||||
|
|
||||||
case "教务处主管":
|
|
||||||
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则");
|
throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --------------- 原有流程启动逻辑(不变)---------------
|
// --------------- 原有流程启动逻辑(不变)---------------
|
||||||
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:20:1347543", variables);
|
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:21:1517504", variables);
|
||||||
String code = ajaxResult.get("code").toString();
|
String code = ajaxResult.get("code").toString();
|
||||||
if (code.equals("200")) {
|
if (code.equals("200")) {
|
||||||
log.info("流程启动成功 - stId: {}, applyId: {}", stId, basicId);
|
log.info("流程启动成功 - stId: {}, applyId: {}", stId, basicId);
|
||||||
|
|||||||
Reference in New Issue
Block a user