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/DeviceBreakdownMaintenanceServiceImpl.java | 44 +++++++++++++++++++++++++++++++++++++-------
1 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
index 24bd8be..0de29d7 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceBreakdownMaintenanceServiceImpl.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.DeviceBreakdownMaintenance;
@@ -13,6 +14,7 @@
import com.ruoyi.device.mapper.DeviceMapper;
import com.ruoyi.device.pojo.Device;
import com.ruoyi.device.service.DeviceBreakdownMaintenanceService;
+import com.ruoyi.device.util.DeviceFlowPermissionUtils;
import com.ruoyi.inspect.util.UserUtils;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
@@ -63,6 +65,7 @@
DeviceBreakdownMaintenance breakdownMaintenance = new DeviceBreakdownMaintenance();
//褰撳墠鐧诲綍鐢ㄦ埛
User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
+ checkFlowPermission(deviceBreakdownMaintenance, user);
switch (deviceBreakdownMaintenance.getFlowType()) {
case 0:
@@ -72,11 +75,6 @@
breakdownMaintenance.setApplicantUserId(user.getId());
breakdownMaintenance.setApplicantUser(user.getName());
breakdownMaintenance.setRepairDate(deviceBreakdownMaintenance.getRepairDate());
-
- // 澶勭悊浜轰俊鎭�
- User departmentHeadUser = userMapper.selectById(deviceBreakdownMaintenance.getDepartmentHeadUserId());
- breakdownMaintenance.setApplicantUserId(departmentHeadUser.getId());
- breakdownMaintenance.setApplicantUser(departmentHeadUser.getName());
baseMapper.insert(breakdownMaintenance);
break;
@@ -101,6 +99,38 @@
break;
}
return true;
+ }
+
+ private void checkFlowPermission(DeviceBreakdownMaintenance deviceBreakdownMaintenance, User user) {
+ Integer flowType = deviceBreakdownMaintenance.getFlowType();
+ Integer maintenanceId = deviceBreakdownMaintenance.getMaintenanceId();
+ if (flowType != null && flowType > 0) {
+ DeviceBreakdownMaintenance existing = baseMapper.selectById(maintenanceId);
+ if (existing == null) {
+ throw new ServiceException("鍗曟嵁涓嶅瓨鍦�");
+ }
+ DeviceFlowPermissionUtils.checkFinished(existing.getIsFinish());
+ Integer expectedUserId;
+ switch (flowType) {
+ case 1:
+ expectedUserId = existing.getDepartmentHeadUserId();
+ break;
+ case 2:
+ // 缁翠慨璁板綍鐜妭鏈崟鐙寚瀹氳矗浠讳汉锛岀敱鐢宠浜哄~鍐欑淮淇粨鏋�
+ expectedUserId = existing.getApplicantUserId();
+ break;
+ default:
+ expectedUserId = null;
+ break;
+ }
+ DeviceFlowPermissionUtils.checkResponsible(expectedUserId, user.getId());
+ } else if (maintenanceId != null) {
+ DeviceBreakdownMaintenance existing = baseMapper.selectById(maintenanceId);
+ if (existing != null) {
+ DeviceFlowPermissionUtils.checkFinished(existing.getIsFinish());
+ DeviceFlowPermissionUtils.checkResponsible(existing.getApplicantUserId(), user.getId());
+ }
+ }
}
/**
@@ -128,9 +158,9 @@
put("deviceBreakdownMaintenance", deviceBreakdownMaintenance);
put("device", finalDevice);
// 鐢宠浜虹鍚�
- put("applicantUrl", UserUtils.getFinalUserSignatureUrl(deviceBreakdownMaintenance.getApplicantUserId()));
+ put("applicantUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceBreakdownMaintenance.getApplicantUserId()));
// 閮ㄩ棬璐熻矗浜虹鍚�
- put("headUrl", UserUtils.getFinalUserSignatureUrl(deviceBreakdownMaintenance.getDepartmentHeadUserId()));
+ put("headUrl", UserUtils.getFinalUserSignatureOrTransparent(deviceBreakdownMaintenance.getDepartmentHeadUserId()));
}});
try {
--
Gitblit v1.9.3