退伍复学修改

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.routine.domain.SysDisBasic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
/**
@@ -32,7 +33,7 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
List<SysDisBasic> selectSysDisBasicList(SysDisBasic sysDisBasic);
// 学号查询
List<TeacherVo> getShenDataInfo(String roleName);
/**
* 新增退伍复学申请
@@ -40,6 +41,7 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
* @param sysDisBasic 退伍复学申请
* @return 结果
*/
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSysDisBasic(SysDisBasic sysDisBasic);
/**
@@ -71,6 +73,6 @@ public interface SysDisBasicMapper extends BaseMapper<SysDisBasic> {
* @param
* @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.List;
import java.util.Map;
import java.io.InputStream;
import com.srs.common.core.domain.AjaxResult;
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.utils.SecurityUtils;
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 org.flowable.engine.IdentityService;
import org.flowable.engine.TaskService;
@@ -67,13 +71,28 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
if (inserData != null){
throw new ServiceException("申请已提交,请勿重复提交", 500);
}
// sysDisBasic.setStId(String.valueOf(SecurityUtils.getUserId()));
// ProcessResultDto processResultDto = startBasicProcess(sysDisBasic);
// if (processResultDto != null){
// sysDisBasic.setProcessId(processResultDto.getProcessInstanceId());
// sysDisBasic.setDeployId(processResultDto.getDeploymentId());
// }
return sysDisBasicMapper.insertSysDisBasic(sysDisBasic);
if (sysDisBasic.getFxId() == null || sysDisBasic.getFxId().trim().isEmpty()) {
String genFxId = (sysDisBasic.getStId() == null ? SecurityUtils.getUserId().toString() : sysDisBasic.getStId()) + "-" + System.currentTimeMillis();
sysDisBasic.setFxId(genFxId);
}
if ((sysDisBasic.getFxTime() == null || sysDisBasic.getFxTime().trim().isEmpty()) && sysDisBasic.getTimes() != null) {
sysDisBasic.setFxTime(sysDisBasic.getTimes());
}
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
IFlowDefinitionService flowDefinitionService;
@Autowired
TaskService taskService;
@Autowired
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) {
Map<String, Object> variables = new HashMap<>();
variables.put("fxId", sysDisBasic.getFxId());
variables.put("fxTime", sysDisBasic.getFxTime());
variables.put("stId", sysDisBasic.getStId());
TeacherVo counselorInfo = sysDisBasicMapper.getCounselorInfo(sysDisBasic.getStId());
// 把辅导员的userId放到approval中
variables.put("basicId", sysDisBasic.getId().toString());
variables.put("conversion", sysDisBasic.getConversion());
variables.put("stuId", sysDisBasic.getStId());
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("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
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:6:1020016", variables);
//flow_m4npextk:28:257686 flow_m4npextk:31:755004
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:10:1120028", variables);
String code = ajaxResult.get("code").toString();
if (code.equals("200")) {
@@ -162,8 +203,8 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
// 完成待办任务列表
for (Task task : tasks) {
String taskId = task.getId();
String leaveId = taskService.getVariable(taskId, "fxId").toString();
if (leaveId.equals(sysDisBasic.getFxId())) {
String leaveId = taskService.getVariable(taskId, "basicId").toString();
if (leaveId.equals(sysDisBasic.getId().toString())) {
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 cph_teacher c ON b.teacher_id = c.teacher_id
LEFT JOIN sys_user d ON c.employee_id = d.user_name
WHERE a.stu_id = #{stuId}
WHERE a.stu_id = #{stId}
</select>
@@ -161,6 +161,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</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 into sys_dis_basic
<trim prefix="(" suffix=")" suffixOverrides=",">