From 0220811fbcffd4bd4df334502a2af272ae29f1e3 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期一, 13 七月 2026 10:14:30 +0800
Subject: [PATCH] 修复了已知BUG

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
index 0912568..4a0d0d3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.ApplicationTerminationAuditDTO;
 import com.ruoyi.system.dto.ApplicationTerminationDTO;
@@ -223,14 +224,21 @@
     @PostMapping(value = "/api/t-experiment-scheme/update")
     public R<Boolean> update(@RequestBody String param) {
         TExperimentSchemeDTO dto = JSON.parseObject(param,TExperimentSchemeDTO.class);
+
+        if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+            dto.setStatus(null);
+        }
+
         experimentSchemeService.updateById(dto);
         experimentSchemePersonService.remove(Wrappers.lambdaQuery(TExperimentSchemePerson.class).eq(TExperimentSchemePerson::getSchemeId,dto.getId()));
         List<TExperimentSchemePerson> experimentSchemePersons = dto.getExperimentSchemePersons();
-        experimentSchemePersons.forEach(experimentSchemePerson -> {
-            experimentSchemePerson.setSchemeId(dto.getId());
-            experimentSchemePerson.setCommitTime(LocalDateTime.now());
-        });
-        experimentSchemePersonService.saveBatch(experimentSchemePersons);
+        if (experimentSchemePersons != null) {
+            experimentSchemePersons.forEach(experimentSchemePerson -> {
+                experimentSchemePerson.setSchemeId(dto.getId());
+                experimentSchemePerson.setCommitTime(LocalDateTime.now());
+            });
+            experimentSchemePersonService.saveBatch(experimentSchemePersons);
+        }
         return R.ok();
     }
 
@@ -279,13 +287,17 @@
         List<TExperimentSchemePerson> experimentSchemePersons = experimentSchemePersonService.list(Wrappers.lambdaQuery(TExperimentSchemePerson.class)
                 .eq(TExperimentSchemePerson::getSchemeId, id));
         List<Long> userIds = experimentSchemePersons.stream().map(TExperimentSchemePerson::getUserId).collect(Collectors.toList());
-        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
-        sysUsers.forEach(sysUser -> {
-            experimentSchemePersons.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> {
-                experimentSchemePerson.setNickName(sysUser.getNickName());
-                experimentSchemePerson.setAvatar(sysUser.getAvatar());
+
+        if (!userIds.isEmpty()) {
+            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+            sysUsers.forEach(sysUser -> {
+                experimentSchemePersons.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> {
+                    experimentSchemePerson.setNickName(sysUser.getNickName());
+                    experimentSchemePerson.setAvatar(sysUser.getAvatar());
+                });
             });
-        });
+        }
+
         experimentSchemeVO.setExperimentSchemePersons(experimentSchemePersons);
         // 查询实验调度信息
         TExperimentDispatch experimentDispatch = experimentDispatchService.getById(experimentSchemeVO.getDispatchId());

--
Gitblit v1.7.1