From 2f07589b54d56085af77b50d580890cd4130b444 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:53 +0800
Subject: [PATCH] 设备模块后端业务规则、计划接口与日期联动
---
cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 45 insertions(+), 5 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
index 4f4a327..e833754 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceAccidentReportServiceImpl.java
@@ -6,6 +6,7 @@
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.dto.DeviceAccidentReportDto;
@@ -14,6 +15,7 @@
import com.ruoyi.device.pojo.Device;
import com.ruoyi.device.pojo.DeviceAccidentReport;
import com.ruoyi.device.service.DeviceAccidentReportService;
+import com.ruoyi.device.util.DeviceFlowPermissionUtils;
import com.ruoyi.inspect.util.UserUtils;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
@@ -65,6 +67,7 @@
public boolean addDeviceAccidentReport(DeviceAccidentReport deviceAccidentReport) {
DeviceAccidentReport accidentReport = new DeviceAccidentReport();
User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
+ checkFlowPermission(deviceAccidentReport, user);
switch (deviceAccidentReport.getFlowType()) {
case 0:
// 鎶ュ憡
@@ -136,6 +139,43 @@
return true;
}
+ private void checkFlowPermission(DeviceAccidentReport deviceAccidentReport, User user) {
+ Integer flowType = deviceAccidentReport.getFlowType();
+ Integer accidentReportId = deviceAccidentReport.getAccidentReportId();
+ if (flowType != null && flowType > 0) {
+ DeviceAccidentReport existing = baseMapper.selectById(accidentReportId);
+ if (existing == null) {
+ throw new ServiceException("鍗曟嵁涓嶅瓨鍦�");
+ }
+ DeviceFlowPermissionUtils.checkFinished(existing.getIsFinish());
+ Integer expectedUserId;
+ switch (flowType) {
+ case 1:
+ expectedUserId = existing.getAssessorUserId();
+ break;
+ case 2:
+ expectedUserId = existing.getDepartmentHeadUserId();
+ break;
+ case 3:
+ expectedUserId = existing.getTechnicalDirectorUserId();
+ break;
+ case 4:
+ expectedUserId = existing.getDirectorHeadUserId();
+ break;
+ default:
+ expectedUserId = null;
+ break;
+ }
+ DeviceFlowPermissionUtils.checkResponsible(expectedUserId, user.getId());
+ } else if (accidentReportId != null) {
+ DeviceAccidentReport existing = baseMapper.selectById(accidentReportId);
+ if (existing != null) {
+ DeviceFlowPermissionUtils.checkFinished(existing.getIsFinish());
+ DeviceFlowPermissionUtils.checkResponsible(existing.getReportUserId(), user.getId());
+ }
+ }
+ }
+
/**
* 瀵煎嚭璁惧浜嬫晠鎶ュ憡
* @param accidentReportId 璁惧浜嬫晠鎶ュ憡id
@@ -159,15 +199,15 @@
put("deviceAccidentReport", deviceAccidentReport);
put("device", finalDevice);
// 鎶ュ憡浜虹鍚�
- put("reportUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getReportUserId()));
+ put("reportUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceAccidentReport.getReportUserId()));
// 璇勪及浜虹鍚�
- put("assessorUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getAssessorUserId()));
+ put("assessorUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceAccidentReport.getAssessorUserId()));
// 閮ㄩ棬璐熻矗浜虹鍚�
- put("departmentHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId()));
+ put("departmentHeadUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceAccidentReport.getDepartmentHeadUserId()));
// 鎶�鏈礋璐d汉绛惧悕
- put("technicalDirectorUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getTechnicalDirectorUserId()));
+ put("technicalDirectorUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceAccidentReport.getTechnicalDirectorUserId()));
// 涓讳换绛惧悕
- put("directorHeadUserUrl", UserUtils.getFinalUserSignatureUrl(deviceAccidentReport.getDepartmentHeadUserId()));
+ put("directorHeadUserUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceAccidentReport.getDirectorHeadUserId()));
}});
try {
--
Gitblit v1.9.3