diff --git a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/JYSController.java b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/JYSController.java index 1ecc7bec9..209598a5b 100644 --- a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/JYSController.java +++ b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/JYSController.java @@ -213,6 +213,18 @@ public class JYSController { return Result.success(); } + /** + * 复职(还原离职状态)教员 + * + * @param jybh 教员编号 + */ + @PreAuthorize("@ss.hasPermi('teach:teacher:list')") + @PostMapping("/teacher/enable") + public Result enableTeacher(@RequestParam("jybh") String jybh) { + facultyService.enableJYB(jybh); + return Result.success(); + } + /** * 单个教员补建/对齐系统账号(幂等:已有账号直接返回用户编号)。 */ @@ -303,7 +315,8 @@ public class JYSController { @RequestParam(required = false) String jyxm, @RequestParam(required = false) String jysdh, @RequestParam(required = false) String zc, - @RequestParam(required = false) String jylb) { + @RequestParam(required = false) String jylb, + @RequestParam(required = false) Integer lzzt) { PageQuery query = new PageQuery(); query.setPageNum(pageNum); query.setPageSize(pageSize); @@ -312,6 +325,7 @@ public class JYSController { cond.setJysdh(jysdh); cond.setZc(zc); cond.setJylb(jylb); + cond.setLzzt(lzzt); PageResult pageResult = facultyService.pageJYBDetail(query, cond); return Result.success(pageResult); } diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYBMapper.xml b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYBMapper.xml index b84a9e77c..de171588a 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYBMapper.xml +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/mapper/JYBMapper.xml @@ -75,11 +75,20 @@ t."虚实类型" AS xslx, t."教研室代号" AS jysdh, t."用户编号" AS yhbh, - t."部门编号" AS bmbh + t."部门编号" AS bmbh, + t."离职状态" AS lzzt FROM "教员表" t LEFT JOIN "教员属性" s ON s."教员编号" = t."教员编号" LEFT JOIN "教研室表" j ON j."教研室代号" = t."教研室代号" - WHERE t."离职状态" = 0 + WHERE 1=1 + + + AND t."离职状态" = #{jyb.lzzt} + + + AND t."离职状态" = 0 + + AND t."教员姓名" LIKE CONCAT('%', #{jyb.jyxm}, '%') diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/FacultyService.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/FacultyService.java index d3ccc2cf8..90773e891 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/FacultyService.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/FacultyService.java @@ -79,6 +79,11 @@ public interface FacultyService { */ void disableJYB(String jYBH); + /** + * 复职(还原离职状态)教员 + */ + void enableJYB(String jYBH); + /** * 更新教员基本信息 */ diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/FacultyServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/FacultyServiceImpl.java index a55546937..332362b9e 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/FacultyServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/FacultyServiceImpl.java @@ -299,6 +299,23 @@ public class FacultyServiceImpl implements FacultyService { } } + @Override + @Transactional(rollbackFor = Exception.class) + public void enableJYB(String jybh) { + JYB before = jybMapper.selectById(jybh); + JYB entity = new JYB(); + entity.setJybh(jybh); + entity.setLzzt(0); + jybMapper.updateById(entity); + // 复职同步启用关联账号 + if (before != null) { + JYB after = new JYB(); + after.setJybh(jybh); + after.setLzzt(0); + orgSyncService.syncTeacherAccount(before, after); + } + } + @Override @Transactional(rollbackFor = Exception.class) public void updateJYB(JYB entity) { diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/vo/faculty/TeacherListVO.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/vo/faculty/TeacherListVO.java index f7ca43334..1e5fd4c71 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/vo/faculty/TeacherListVO.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/vo/faculty/TeacherListVO.java @@ -55,4 +55,7 @@ public class TeacherListVO { /** 部门编号(SYS_DEPT.DEPT_ID) */ private Long bmbh; + + /** 离职状态(0-在职 1-离职) */ + private Integer lzzt; } diff --git a/frontend/src/api/teachOffice/teacher.js b/frontend/src/api/teachOffice/teacher.js index 40fce00b1..d69346f66 100644 --- a/frontend/src/api/teachOffice/teacher.js +++ b/frontend/src/api/teachOffice/teacher.js @@ -56,6 +56,15 @@ export function disableTeacher(jybh) { }) } +/** 教员复职(还原离职状态)POST /jys/teacher/enable?jybh= */ +export function enableTeacher(jybh) { + return request({ + url: '/jys/teacher/enable', + method: 'post', + params: { jybh } + }) +} + /** 查询教员属性 GET /jys/teacher/attribute/get?jybh= */ export function getTeacherAttribute(jybh) { return request({ diff --git a/frontend/src/views/teachOffice/teacher/index.vue b/frontend/src/views/teachOffice/teacher/index.vue index 7d46fa1b8..0620d82f2 100644 --- a/frontend/src/views/teachOffice/teacher/index.vue +++ b/frontend/src/views/teachOffice/teacher/index.vue @@ -24,6 +24,14 @@ + + + + 在职 + 离职 + + +
@@ -45,7 +53,7 @@ 对齐到用户表
- @@ -75,12 +83,16 @@ @click="handleCreateAccount(row)">创建账号 - + @@ -718,6 +730,7 @@ import { addTeacher, updateTeacher, disableTeacher, + enableTeacher, getTeacherAttribute, updateTeacherAttribute, downloadTeacherTemplate, @@ -739,7 +752,7 @@ export default { data() { return { // 查询条件(仅后端 JYBMapper.xml 支持的字段:jyxm 模糊 / jysdh 等值 / zc 模糊 / jylb 等值) - searchForm: { jyxm: '', jysdh: '', zc: '', jylb: '' }, + searchForm: { jyxm: '', jysdh: '', zc: '', jylb: '', lzzt: '0' }, // 列表 loading: false, @@ -946,7 +959,7 @@ export default { // ==================== 列表 ==================== buildQuery() { const params = {} - ;['jyxm', 'jysdh', 'zc', 'jylb'].forEach(key => { + ;['jyxm', 'jysdh', 'zc', 'jylb', 'lzzt'].forEach(key => { const value = this.searchForm[key] if (value !== '' && value !== null && value !== undefined) { params[key] = String(value).trim() @@ -967,6 +980,9 @@ export default { this.tableData = data.records || [] this.pagination.total = data.total || 0 this.loading = false + this.$nextTick(() => { + this.$refs.teacherTable && this.$refs.teacherTable.doLayout() + }) }).catch(() => { this.tableData = [] this.pagination.total = 0 @@ -980,7 +996,7 @@ export default { }, handleReset() { - this.searchForm = { jyxm: '', jysdh: '', zc: '', jylb: '' } + this.searchForm = { jyxm: '', jysdh: '', zc: '', jylb: '', lzzt: '0' } this.pagination.pageNum = 1 this.fetchList() }, @@ -1172,6 +1188,24 @@ export default { }).catch(() => {}) }, + // ==================== 复职(还原离职状态) ==================== + handleEnable(row) { + if (!row.jybh) { + this.$message.warning('当前行缺少教员编号') + return + } + this.$confirm(`确定要办理教员「${row.jyxm || row.jybh}」复职吗?`, '系统提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + enableTeacher(row.jybh).then(() => { + this.$message.success('已办理复职') + this.fetchList() + }).catch(() => {}) + }).catch(() => {}) + }, + // ==================== 教员属性 ==================== handleViewAttribute(row) { this.attributeMode = 'view' @@ -1352,6 +1386,17 @@ export default {