From 6ab1565a1a86623af925719935d605e875d98af4 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期五, 23 十月 2026 18:08:56 +0800
Subject: [PATCH] 设备核查计划:设备档案变更即时登记计划明细,提前核查复用待核查明细并回写档案,已完成记录不可覆盖;新增附件字段、明细固定排序与删除保护;人员查询新增包含admin的类型;检验保存/提交按页面模板校验,复核驳回按检验室删除复核人
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
index 4833322..f8e1376 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -35,6 +35,7 @@
import com.ruoyi.common.constant.InsOrderTypeConstants;
import com.ruoyi.common.constant.MenuJumpPathConstants;
import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.InformationNotification;
import com.ruoyi.common.utils.DateImageUtil;
import com.ruoyi.common.utils.QueryWrappers;
@@ -53,6 +54,7 @@
import com.ruoyi.inspect.util.ReportSealLayoutUtil;
import com.ruoyi.inspect.util.ReportSignaturePictureUtils;
import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.InformationNotificationService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
@@ -111,6 +113,8 @@
private InsProductMapper insProductMapper;
@Resource
private InformationNotificationService informationNotificationService;
+ @Resource
+ private ISysMenuService menuService;
@Value("${wordUrl}")
private String wordUrl;
@Value("${file.path}")
@@ -198,6 +202,7 @@
if (userId == null) {
throw new ErrorException("缂哄皯瀹℃牳浜�");
}
+ ensureReportPreparationPermission(userId, "瀹℃牳浜�");
insReport.setExamineUserId(userId);//瀹℃牳浜�
insReport.setWriteTime(LocalDateTime.now());//鎻愪氦鏃堕棿
//鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃
@@ -265,6 +270,33 @@
return 1;
}
+ /**
+ * 鎸囧畾瀹℃牳浜�/鎵瑰噯浜烘椂锛岀‘璁ゅ鏂圭櫥褰曞悗鑳界湅鍒般�屾姤鍛婄紪鍒躲�嶉〉闈紝
+ * 閬垮厤鎸囧畾鍚庣櫥褰曞彧鍓╅椤点�佹棤娉曠户缁鎵广��
+ */
+ private void ensureReportPreparationPermission(Integer userId, String userLabel) {
+ List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId.longValue());
+ if (!containsReportPreparation(menus)) {
+ throw new ErrorException("鎵�閫�" + userLabel + "娌℃湁銆屼笟鍔$鐞� 鈫� 鎶ュ憡缂栧埗銆嶉〉闈㈡潈闄愶紝璇峰厛鍦ㄣ�岀郴缁熺鐞� 鈫� 鐢ㄦ埛绠$悊銆嶄负鍏跺垎閰嶅搴旇鑹�");
+ }
+ }
+
+ private boolean containsReportPreparation(List<SysMenu> menus) {
+ if (CollectionUtils.isEmpty(menus)) {
+ return false;
+ }
+ for (SysMenu menu : menus) {
+ if (Long.valueOf(1129L).equals(menu.getMenuId())
+ || "reportPreparation".equals(menu.getPath())) {
+ return true;
+ }
+ if (containsReportPreparation(menu.getChildren())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
//瀹℃牳
@Override
@Transactional(rollbackFor = Exception.class)
@@ -320,6 +352,7 @@
if (userId == null) {
throw new ErrorException("缂哄皯鎵瑰噯浜�");
}
+ ensureReportPreparationPermission(userId, "鎵瑰噯浜�");
if (Objects.equals(insReport.getExamineUserId(), userId)) {
throw new ErrorException("瀹℃牳浜哄拰鎵瑰噯浜轰笉鑳戒负鍚屼竴浜猴紝璇烽噸鏂伴�夋嫨鎵瑰噯浜�");
}
--
Gitblit v1.9.3