退伍复学修改

This commit is contained in:
2025-11-18 15:31:44 +08:00
parent 35259d7a15
commit cce9615f9a
3 changed files with 75 additions and 22 deletions

View File

@@ -5,6 +5,7 @@ import java.util.List;
import com.srs.common.doman.vo.TeacherVo; import com.srs.common.doman.vo.TeacherVo;
import com.srs.routine.domain.SysDisBasic; import com.srs.routine.domain.SysDisBasic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
/** /**
@@ -32,7 +33,7 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
List<SysDisBasic> selectSysDisBasicList(SysDisBasic sysDisBasic); List<SysDisBasic> selectSysDisBasicList(SysDisBasic sysDisBasic);
// 学号查询 // 学号查询
List<TeacherVo> getShenDataInfo(String roleName);
/** /**
* 新增退伍复学申请 * 新增退伍复学申请
@@ -40,6 +41,7 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
* @param sysDisBasic 退伍复学申请 * @param sysDisBasic 退伍复学申请
* @return 结果 * @return 结果
*/ */
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSysDisBasic(SysDisBasic sysDisBasic); int insertSysDisBasic(SysDisBasic sysDisBasic);
/** /**
@@ -71,6 +73,6 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
* @param * @param
* @return * @return
*/ */
TeacherVo getCounselorInfo(String stId); TeacherVo getCounselorInfo(@Param("stId") String stId);
} }

View File

@@ -3,6 +3,7 @@ package com.srs.routine.service.impl;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.io.InputStream;
import com.srs.common.core.domain.AjaxResult; import com.srs.common.core.domain.AjaxResult;
import com.srs.common.doman.dto.ProcessResultDto; import com.srs.common.doman.dto.ProcessResultDto;
@@ -10,6 +11,9 @@ import com.srs.common.doman.vo.TeacherVo;
import com.srs.common.exception.ServiceException; import com.srs.common.exception.ServiceException;
import com.srs.common.utils.SecurityUtils; import com.srs.common.utils.SecurityUtils;
import com.srs.flowable.service.IFlowDefinitionService; import com.srs.flowable.service.IFlowDefinitionService;
import com.srs.routine.mapper.RtEnlistmentReserveMapper;
import com.srs.routine.mapper.RtStuLeaveApplicationMapper;
import com.srs.routine.mapper.RtStuQuitSchoolMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.IdentityService; import org.flowable.engine.IdentityService;
import org.flowable.engine.TaskService; import org.flowable.engine.TaskService;
@@ -67,13 +71,28 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
if (inserData != null){ if (inserData != null){
throw new ServiceException("申请已提交,请勿重复提交", 500); throw new ServiceException("申请已提交,请勿重复提交", 500);
} }
// sysDisBasic.setStId(String.valueOf(SecurityUtils.getUserId())); if (sysDisBasic.getFxId() == null || sysDisBasic.getFxId().trim().isEmpty()) {
// ProcessResultDto processResultDto = startBasicProcess(sysDisBasic); String genFxId = (sysDisBasic.getStId() == null ? SecurityUtils.getUserId().toString() : sysDisBasic.getStId()) + "-" + System.currentTimeMillis();
// if (processResultDto != null){ sysDisBasic.setFxId(genFxId);
// sysDisBasic.setProcessId(processResultDto.getProcessInstanceId()); }
// sysDisBasic.setDeployId(processResultDto.getDeploymentId()); if ((sysDisBasic.getFxTime() == null || sysDisBasic.getFxTime().trim().isEmpty()) && sysDisBasic.getTimes() != null) {
// } sysDisBasic.setFxTime(sysDisBasic.getTimes());
return sysDisBasicMapper.insertSysDisBasic(sysDisBasic); }
int insertData = sysDisBasicMapper.insertSysDisBasic(sysDisBasic);
if (insertData <= 0) {
throw new ServiceException("申请表插入失败", 500);
}
Long applyId = sysDisBasic.getId();
if (applyId == null) {
throw new ServiceException("申请表 ID 生成失败,无法继续操作", 500);
}
ProcessResultDto processResultDto = startBasicProcess(sysDisBasic);
if (processResultDto != null){
sysDisBasic.setProcessId(processResultDto.getProcessInstanceId());
sysDisBasic.setDeployId(processResultDto.getDeploymentId());
}
return insertData;
} }
/** /**
@@ -116,12 +135,18 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
@Autowired @Autowired
IFlowDefinitionService flowDefinitionService; IFlowDefinitionService flowDefinitionService;
@Autowired @Autowired
TaskService taskService; TaskService taskService;
@Autowired @Autowired
IdentityService identityService; IdentityService identityService;
@Autowired
private RtStuLeaveApplicationMapper rtStuLeaveApplicationMapper;
@Autowired
private RtEnlistmentReserveMapper rtEnlistmentReserveMapper;
/** /**
* 开启请假工作流 * 开启请假工作流
* *
@@ -130,16 +155,32 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
private ProcessResultDto startBasicProcess(SysDisBasic sysDisBasic) { private ProcessResultDto startBasicProcess(SysDisBasic sysDisBasic) {
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
variables.put("fxId", sysDisBasic.getFxId()); variables.put("basicId", sysDisBasic.getId().toString());
variables.put("fxTime", sysDisBasic.getFxTime()); variables.put("conversion", sysDisBasic.getConversion());
variables.put("stId", sysDisBasic.getStId()); variables.put("stuId", sysDisBasic.getStId());
TeacherVo counselorInfo = sysDisBasicMapper.getCounselorInfo(sysDisBasic.getStId());
// 把辅导员的userId放到approval中 if ("N".equals(sysDisBasic.getConversion())) { // 修复字符串比较方式
TeacherVo counselorInfo = rtEnlistmentReserveMapper.getCounselorInfo(sysDisBasic.getStId());
if (counselorInfo == null) {
log.error("未查询到辅导员信息stuId: {}", sysDisBasic.getStId());
return null; // 避免空指针
}
variables.put("approval", counselorInfo.getUserId()); variables.put("approval", counselorInfo.getUserId());
variables.put("deptId", counselorInfo.getDeptId()); variables.put("deptId", counselorInfo.getDeptId());
// 无需重复设置 conversion = "N",因为已经通过上面的代码设置过了
}else {
List<TeacherVo> zjcData = sysDisBasicMapper.getShenDataInfo("招就处");
if (zjcData == null) {
log.error("未查询到辅导员信息stuId: {}", sysDisBasic.getStId());
return null; // 避免空指针
}
variables.put("approval", zjcData.get(0).getUserId());
variables.put("deptId", zjcData.get(0).getDeptId());
}
//
//flow_nrblbjev:6:1020016 //flow_m4npextk:28:257686 flow_m4npextk:31:755004
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:6:1020016", variables); AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:10:1120028", variables);
String code = ajaxResult.get("code").toString(); String code = ajaxResult.get("code").toString();
if (code.equals("200")) { if (code.equals("200")) {
@@ -162,8 +203,8 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
// 完成待办任务列表 // 完成待办任务列表
for (Task task : tasks) { for (Task task : tasks) {
String taskId = task.getId(); String taskId = task.getId();
String leaveId = taskService.getVariable(taskId, "fxId").toString(); String leaveId = taskService.getVariable(taskId, "basicId").toString();
if (leaveId.equals(sysDisBasic.getFxId())) { if (leaveId.equals(sysDisBasic.getId().toString())) {
taskService.complete(task.getId(), variables); taskService.complete(task.getId(), variables);
} }
} }

View File

@@ -92,7 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN srs_class b ON a.class_id = b.class_id LEFT JOIN srs_class b ON a.class_id = b.class_id
LEFT JOIN cph_teacher c ON b.teacher_id = c.teacher_id LEFT JOIN cph_teacher c ON b.teacher_id = c.teacher_id
LEFT JOIN sys_user d ON c.employee_id = d.user_name LEFT JOIN sys_user d ON c.employee_id = d.user_name
WHERE a.stu_id = #{stuId} WHERE a.stu_id = #{stId}
</select> </select>
@@ -161,6 +161,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<!-- 获取审批用户信息 -->
<select id="getShenDataInfo" resultType="com.srs.common.doman.vo.TeacherVo">
SELECT a.user_id userId, a.dept_id deptId, a.nick_name userNick, a.user_name userName
FROM sys_user a
LEFT JOIN sys_user_role b ON a.user_id = b.user_id
LEFT JOIN sys_role c ON b.role_id = c.role_id
WHERE c.role_name = #{roleName}
</select>
<insert id="insertSysDisBasic" parameterType="SysDisBasic" useGeneratedKeys="true" keyProperty="id"> <insert id="insertSysDisBasic" parameterType="SysDisBasic" useGeneratedKeys="true" keyProperty="id">
insert into sys_dis_basic insert into sys_dis_basic
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">