From 12eddac276636c3f3073f0089cfefb81452d76d4 Mon Sep 17 00:00:00 2001 From: liweijie Date: Mon, 21 Sep 2026 17:48:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=AD=A6=E5=A4=A7=E7=BA=B2=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=80=89=E4=B8=AD=E6=95=B0=E6=8D=AE=EF=BC=8C?= =?UTF-8?q?=E6=9C=89=E5=8B=BE=E9=80=89=E5=AF=BC=E5=87=BA=E5=8B=BE=E9=80=89?= =?UTF-8?q?=E6=9D=A1=E7=9B=AE=EF=BC=8C=E6=97=A0=E5=8B=BE=E9=80=89=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=89=80=E6=9C=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/jwgl/ZYJXJHBController.java | 5 ++-- .../roomroot/jwgl/service/ZYJXJHBService.java | 3 ++- .../jwgl/service/impl/ZYJXJHBServiceImpl.java | 27 ++++++++++++------- .../views/teachBusiness/syllabus/index.vue | 9 +++++-- 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java index beb75630..4808bd59 100644 --- a/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java +++ b/backend/roomroot-admin/src/main/java/com/roomroot/web/controller/jwgl/ZYJXJHBController.java @@ -119,7 +119,8 @@ public class ZYJXJHBController { public void exportData( HttpServletResponse response, @RequestParam(required = false) String zydh, - @RequestParam(required = false) Integer ty) throws Exception { - zyjxjhbService.exportZYJXJHBExcel(response, zydh, ty); + @RequestParam(required = false) Integer ty, + @RequestParam(required = false) List bhList) throws Exception { + zyjxjhbService.exportZYJXJHBExcel(response, zydh, ty, bhList); } } diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java index 7cd14625..e3c7d18c 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/ZYJXJHBService.java @@ -82,5 +82,6 @@ public interface ZYJXJHBService { * @param zydh 专业代号(可选) * @param ty 停用标识(可选,0-正常,1-停用) */ - void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty) throws Exception; + void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty, + java.util.List bhList) throws Exception; } diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java index 3ad66233..53257586 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ZYJXJHBServiceImpl.java @@ -307,16 +307,25 @@ public class ZYJXJHBServiceImpl implements ZYJXJHBService { } @Override - public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty) throws Exception { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - if (zydh != null && !zydh.isEmpty()) { - wrapper.eq(ZYJXJHB::getZydh, zydh); + public void exportZYJXJHBExcel(jakarta.servlet.http.HttpServletResponse response, String zydh, Integer ty, + java.util.List bhList) throws Exception { + List list; + if (bhList != null && !bhList.isEmpty()) { + // 勾选导出:按编号集合取数,忽略筛选条件 + list = zyjxjhbMapper.selectBatchIds(bhList); + list.sort(java.util.Comparator.comparing(ZYJXJHB::getZydh, + java.util.Comparator.nullsLast(String::compareTo))); + } else { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (zydh != null && !zydh.isEmpty()) { + wrapper.eq(ZYJXJHB::getZydh, zydh); + } + if (ty != null) { + wrapper.eq(ZYJXJHB::getTy, ty); + } + wrapper.orderByAsc(ZYJXJHB::getZydh); + list = zyjxjhbMapper.selectList(wrapper); } - if (ty != null) { - wrapper.eq(ZYJXJHB::getTy, ty); - } - wrapper.orderByAsc(ZYJXJHB::getZydh); - List list = zyjxjhbMapper.selectList(wrapper); String[] headers = {"专业代号", "课编号", "学期第次", "课类型", "学时", "学分", "周课时", "课程定位", "模块", "成绩分制", "理论学时", "实践学时", "考试课时", "教研室代号", "简称"}; byte[] bytes = com.roomroot.jwgl.utils.ExcelExportUtil.export("专业教学计划", headers, list, diff --git a/frontend/src/views/teachBusiness/syllabus/index.vue b/frontend/src/views/teachBusiness/syllabus/index.vue index 135bcc80..3aca58d0 100644 --- a/frontend/src/views/teachBusiness/syllabus/index.vue +++ b/frontend/src/views/teachBusiness/syllabus/index.vue @@ -574,8 +574,13 @@ export default { /* ---------- 下载 ---------- */ handleDownload() { const query = {} - if (this.searchForm.zydh) query.zydh = this.searchForm.zydh - if (this.searchForm.ty === 0 || this.searchForm.ty === 1) query.ty = this.searchForm.ty + // 勾选行优先:有勾选则只导出所选,否则按筛选条件导出 + if (this.selection.length) { + query.bhList = this.selection.map(row => row.bh).join(',') + } else { + if (this.searchForm.zydh) query.zydh = this.searchForm.zydh + if (this.searchForm.ty === 0 || this.searchForm.ty === 1) query.ty = this.searchForm.ty + } exportSyllabus(query).then(blob => { saveAs(blob, '教学大纲.xlsx') this.$message.success('导出成功')