From 44d49207777a3607354f624149a0c736e7e95eff Mon Sep 17 00:00:00 2001 From: john Date: Wed, 14 Oct 2026 13:39:13 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E8=A7=84=E5=91=98(manager)=20?= =?UTF-8?q?=E8=87=AA=E5=BB=BA=E4=BC=9A=E8=AE=AE=E5=8F=AF=E8=87=AA=E4=BC=A0?= =?UTF-8?q?=E8=87=AA=E5=AE=A1,=20=E7=8E=B0=E5=9C=BA=E7=85=A7=E7=89=87?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9B=B4=E6=8E=A5=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 后端 submitMaterial: manager 跳过执行方/已执行/已冻结三道门槛 - 前端提交按钮门槛同步放宽 (manager 不受已执行/已冻结限制) - 现场照片(签到表/前全景/后全景) 新增直接上传入口, 与扫码拍照并存 - 劳务材料 tab 增加"劳务明细表"小标题 Co-Authored-By: Claude Code --- .../controller/BizMeetingController.java | 14 +++++--- ry-vue3/src/views/meetings/MeetingDetail.vue | 35 +++++++++++++------ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMeetingController.java b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMeetingController.java index e7fbba2..cf58014 100644 --- a/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMeetingController.java +++ b/ry-api/ruoyi-business/src/main/java/com/ruoyi/business/controller/BizMeetingController.java @@ -351,8 +351,8 @@ public class BizMeetingController extends BaseController { /** * 执行人员提交材料 (分轨: 劳务 LABOR / 会务 SERVICE 可多选, 每轨独立提交). * @@ -366,11 +366,15 @@ public class BizMeetingController extends BaseController { if (m == null) throw new ServiceException("会议不存在"); Long userId = SecurityUtils.getUserId(); - if (!bizProjectService.isExecutorOfProject(m.getProjectId(), userId)) { + String roleType = SecurityUtils.getLoginUser().getUser().getRoleType(); + // 合规员(manager) 自建会议可自传自审: 跳过"必须是项目执行方"的强校验 + if (!"manager".equals(roleType) && !bizProjectService.isExecutorOfProject(m.getProjectId(), userId)) { throw new ServiceException("您不是该项目的执行方, 无法提交材料"); } - if (!isExecuted(m)) throw new ServiceException("会议尚未执行, 不能提交材料"); - if (isFrozen(m)) throw new ServiceException("会议已冻结, 不能提交材料"); + // 合规员(manager) 自建会议自传自审: 不依赖 scheduler 翻 is_executed, 跳过"已执行"时间门槛 + if (!"manager".equals(roleType) && !isExecuted(m)) throw new ServiceException("会议尚未执行, 不能提交材料"); + // 合规员(manager) 自建会议自传自审: 同样跳过"已冻结"门槛 (冻结=提交截止已过, 但自审流程不应对合规员本人设卡) + if (!"manager".equals(roleType) && isFrozen(m)) throw new ServiceException("会议已冻结, 不能提交材料"); List types = body == null ? null : body.getTypes(); if (types == null || types.isEmpty()) throw new ServiceException("请选择要提交的材料类型"); diff --git a/ry-vue3/src/views/meetings/MeetingDetail.vue b/ry-vue3/src/views/meetings/MeetingDetail.vue index 2be43fc..0c0640f 100644 --- a/ry-vue3/src/views/meetings/MeetingDetail.vue +++ b/ry-vue3/src/views/meetings/MeetingDetail.vue @@ -63,8 +63,9 @@
材料管理
- +
+
劳务明细表
+ 新增参会人 批量导入 @@ -195,7 +196,10 @@