退伍复学表单
This commit is contained in:
@@ -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<TeacherVo> 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<TeacherVo> 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<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
|
||||
|
||||
if (shenDataInfo.isEmpty()) {
|
||||
throw new RuntimeException("未查询到对应的用户");
|
||||
}
|
||||
|
||||
|
||||
// 暂时选择学籍管理科第一个人作为审核人
|
||||
return shenDataInfo.get(0).getUserId();
|
||||
|
||||
case "学籍管理":
|
||||
// 学籍管理科通过后 → 下一个节点:教务处主管领导(假设部门ID=40)
|
||||
|
||||
// 获取学教务处主管领导审核人
|
||||
|
||||
|
||||
case "教务处主管":
|
||||
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
||||
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");
|
||||
|
||||
if (teacherVos.isEmpty()) {
|
||||
@@ -193,10 +200,6 @@ public class DiscListener implements ExecutionListener {
|
||||
// 暂时选择教务处主管领导第一个人作为审核人
|
||||
return teacherVos.get(0).getUserId();
|
||||
|
||||
case "教务处主管":
|
||||
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
||||
return null;
|
||||
|
||||
default:
|
||||
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();
|
||||
if (code.equals("200")) {
|
||||
log.info("流程启动成功 - stId: {}, applyId: {}", stId, basicId);
|
||||
|
||||
Reference in New Issue
Block a user