From b5b3e3a21323a55dfc576435f4c25a46f7c29b37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=83=AD=E5=BA=86=E6=B3=B0?=
<12369755+htcloud1@user.noreply.gitee.com>
Date: Wed, 26 Aug 2026 00:41:33 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=9A=E8=AE=AE=E6=89=B9=E9=87=8F?=
=?UTF-8?q?=E5=AE=A1=E6=A0=B8=20+=20=E5=85=AC=E7=A4=BA=E6=8C=89=E5=8F=91?=
=?UTF-8?q?=E5=B8=83=E6=97=B6=E9=97=B4=E5=80=92=E5=BA=8F=20+=20=E7=8E=B0?=
=?UTF-8?q?=E5=9C=BA=E7=85=A7=E7=89=87=20dialog=20=E9=A2=84=E8=A7=88=20+?=
=?UTF-8?q?=20=E9=87=8D=E5=A4=8D=E6=8A=A5=E9=94=99=E7=B2=BE=E7=A1=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 会议列表 manager 批量合规审核 (批量通过/退回, best-effort 逐条回执)
- 公示列表按 publish_time 倒序, 发布/开通写本地 publish_time (修 toISOString UTC 时区 bug)
- 签到表/前全景/后全景「查看照片」改 dialog 预览 (复用 Preview.vue)
- 手机号/用户名重复报错精确提示 (后端 fieldMap + 前端 duplicateTip)
- 医生首页欢迎语改「欢迎使用合规系统」
---
.../controller/BizMeetingController.java | 77 +++++-
.../controller/BizPublicController.java | 5 +-
.../business/mapper/BizProjectMapper.java | 2 +
.../business/service/IBizProjectService.java | 2 +
.../service/impl/BizProjectServiceImpl.java | 3 +
.../mapper/business/BizProjectMapper.xml | 16 +-
.../web/exception/GlobalExceptionHandler.java | 1 +
ry-vue3/src/components/CameraQrUpload.vue | 19 +-
ry-vue3/src/views/doctor/Home.vue | 2 +-
ry-vue3/src/views/executor/NewPerson.vue | 10 +-
ry-vue3/src/views/manager/ProjectsNew.vue | 8 +-
ry-vue3/src/views/meetings/Meetings.vue | 84 +++++-
ry-vue3/src/views/portal/Publicity.vue | 253 +++++++++++-------
ry-vue3/src/views/sponsor/NewPerson.vue | 10 +-
ry-vue3/src/views/sponsor/Projects.vue | 10 +-
15 files changed, 387 insertions(+), 115 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 0985412..4dbdf4d 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
@@ -1,7 +1,9 @@
package com.ruoyi.business.controller;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.business.domain.BizMeetingMaterial;
@@ -283,22 +285,72 @@ public class BizMeetingController extends BaseController {
@Log(title = "会议审核", businessType = BusinessType.UPDATE)
@PostMapping("/{meetingId}/audit-compliance")
public AjaxResult auditCompliance(@PathVariable("meetingId") Long meetingId, @RequestBody AuditBody body) {
- String roleType = SecurityUtils.getLoginUser().getUser().getRoleType();
- if (!"manager".equals(roleType)) throw new ServiceException("仅合规人员可操作");
-
+ if (!"manager".equals(SecurityUtils.getLoginUser().getUser().getRoleType())) {
+ throw new ServiceException("仅合规人员可操作");
+ }
BizMeeting m = bizMeetingService.getById(meetingId);
if (m == null) throw new ServiceException("会议不存在");
+ boolean approved = Boolean.TRUE.equals(body.getApproved());
+ if (!approved && (body.getOpinion() == null || body.getOpinion().isEmpty())) {
+ throw new ServiceException("拒绝时意见不能为空");
+ }
+ return success(doComplianceAudit(m, approved, body.getOpinion()));
+ }
+ /**
+ * 批量合规审核 (role_type=manager): 一次对多个会议执行材料一级审核.
+ *
+ * body: { "meetingIds": [..], "approved": true|false, "opinion": "..." }
+ *
best-effort: 逐条审核, 状态不符的会议跳过并回执失败原因, 不整批回滚.
+ */
+ @Log(title = "会议审核", businessType = BusinessType.UPDATE)
+ @PostMapping("/batch-audit-compliance")
+ public AjaxResult batchAuditCompliance(@RequestBody BatchAuditBody body) {
+ if (!"manager".equals(SecurityUtils.getLoginUser().getUser().getRoleType())) {
+ throw new ServiceException("仅合规人员可操作");
+ }
+ List meetingIds = body.getMeetingIds();
+ if (meetingIds == null || meetingIds.isEmpty()) {
+ throw new ServiceException("请选择会议");
+ }
boolean approved = Boolean.TRUE.equals(body.getApproved());
if (!approved && (body.getOpinion() == null || body.getOpinion().isEmpty())) {
throw new ServiceException("拒绝时意见不能为空");
}
+ List successIds = new ArrayList<>();
+ List