From bd953391a74b86db829df43992c7cf3c5207634b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 27 六月 2025 18:07:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java |   54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 11 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
index 5a18d8e..b1c7cbc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
@@ -82,6 +82,7 @@
         // 获取当前用户
         Long userId = tokenService.getLoginUser().getUserId();
         Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        query.setRoleType(roleType);
         if (roleType != 1){
             query.setUserId(userId);
             if(roleType ==2){
@@ -123,18 +124,29 @@
     public R<Boolean> add(@RequestBody String param) {
         TTestMethodConfirmSheetDTO dto = JSON.parseObject(param,TTestMethodConfirmSheetDTO.class);
         Long userId = tokenService.getLoginUser().getUserId();
-        dto.setCommitUserId(userId);
-        testMethodConfirmSheetService.save(dto);
-        List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms();
-        testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> {
-            testMethodConfirmSheetTerm.setTestId(dto.getId());
-            testMethodConfirmSheetTerm.setStatus(1);
-        });
-        testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms);
-        // 通过当前用户查询项目组
-        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
-                .eq(TProjectTeamStaff::getUserId, userId)
+
+        TExperimentDispatch experimentDispatch = experimentDispatchService.getOne(Wrappers.lambdaQuery(TExperimentDispatch.class)
+                .eq(TExperimentDispatch::getId, dto.getDispatchId()));
+        if(Objects.isNull(experimentDispatch)){
+            return R.fail("实验调度不存在");
+        }
+
+        // 查询调度的参与人员
+        TExperimentDispatchParticipants experimentDispatchParticipant = experimentDispatchParticipantsService.getOne(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dto.getDispatchId())
+                .eq(TExperimentDispatchParticipants::getRoleType,3)
                 .last("LIMIT 1"));
+        if(Objects.isNull(experimentDispatchParticipant)){
+            return R.fail("实验调度参与人员不存在");
+        }
+
+        // 查询工艺工程师所在的项目组
+        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                .eq(TProjectTeamStaff::getUserId, experimentDispatchParticipant.getUserId())
+                .eq(TProjectTeamStaff::getRoleType, 3)
+                .last("LIMIT 1"));
+
+        // 通过当前用户查询项目组
         if(Objects.isNull(projectTeamStaff)){
             return R.fail("当前用户未分配项目组,无法创建项目课题方案");
         }
@@ -146,6 +158,15 @@
         if(projectTeam.getStatus() == 2){
             return R.fail("项目组已封存,无法创建项目课题方案");
         }
+
+        dto.setCommitUserId(userId);
+        testMethodConfirmSheetService.save(dto);
+        List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms();
+        testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> {
+            testMethodConfirmSheetTerm.setTestId(dto.getId());
+            testMethodConfirmSheetTerm.setStatus(1);
+        });
+        testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms);
         // 生成原始记录编号
         String format = new SimpleDateFormat("yyyyMMdd").format(new Date());
         String originalCode = projectTeam.getTeamName() + format.substring(2) + "-JL";
@@ -215,11 +236,22 @@
         if(Objects.nonNull(experimentDispatch)){
             testMethodConfirmSheetVO.setExperimentName(experimentDispatch.getExperimentName());
             testMethodConfirmSheetVO.setExperimentCode(experimentDispatch.getExperimentCode());
+            testMethodConfirmSheetVO.setExperimentStartTime(experimentDispatch.getExperimentStartTime());
+            testMethodConfirmSheetVO.setExperimentEndTime(experimentDispatch.getExperimentEndTime());
+            testMethodConfirmSheetVO.setExperimentDate(experimentDispatch.getExperimentDate());
             // 查询项目课题方案
             TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
             if(Objects.nonNull(projectProposal)){
                 testMethodConfirmSheetVO.setProjectName(projectProposal.getProjectName());
             }
+            // 查询参与人员
+            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()));
+            List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+            String participantsName = sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
+            testMethodConfirmSheetVO.setParticipantsName(participantsName);
+            testMethodConfirmSheetVO.setStatus(experimentDispatch.getStatus());
         }
 
         // 查询审核人姓名

--
Gitblit v1.7.1