From bd6b08e65fe29994c6c6b5430639022f2a4f5e5c Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期二, 14 七月 2026 11:48:08 +0800
Subject: [PATCH] 修复了已知的BUG

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainValidationDataServiceImpl.java    |   15 +
 ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml                            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java                             |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java              |   55 +++++-
 ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml                                |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TTrainLibraryService.java                     |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationVO.java                    |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java            |   29 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TStrainValidationDataVO.java                       |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java            |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationDetailVO.java              |    3 
 .idea/jarRepositories.xml                                                                         |    5 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java               |   36 ++++
 ruoyi-admin/target/classes/application-prod.yml                                                   |    2 
 ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml                      |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java               |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AddStrainValidationDataDetailVO.java               |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBreedingAndPreservationServiceImpl.java |   15 +
 ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml                                 |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TTrainLibrary.java                              |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java       |  100 ++++++++++--
 ruoyi-system/src/main/resources/mapper/system/TBreedingAndPreservationMapper.xml                  |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java               |   62 +++---
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TPedigreeChartVO.java                              |    3 
 ruoyi-admin/src/main/resources/application-prod.yml                                               |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java           |   17 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java    |   48 ++++-
 ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml                             |    3 
 28 files changed, 349 insertions(+), 88 deletions(-)

diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 350ae52..a67ee4e 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -8,6 +8,11 @@
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
       <option name="name" value="Maven Central repository" />
       <option name="url" value="https://repo1.maven.org/maven2" />
     </remote-repository>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
index 11b071c..ddd14bd 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
@@ -5,8 +5,10 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.system.dto.TConfirmBreedingAndPreservationDTO;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
 import com.ruoyi.system.model.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 
@@ -89,18 +91,20 @@
                 return R.ok(new PageInfo<>());
             }
         }else if (!sysUser.getRoleType().equals("1")){
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (!allProjectIds.isEmpty()){
-                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
-                        .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
+            if (query.getProjectIds() == null || query.getProjectIds().isEmpty()){
+                List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                        .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+                if (!allProjectIds.isEmpty()){
+                    List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+                            .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
 
-                if (projectIds.isEmpty()){
+                    if (projectIds.isEmpty()){
+                        return R.ok(new PageInfo<>());
+                    }
+                    query.setProjectIds(projectIds);
+                }else {
                     return R.ok(new PageInfo<>());
                 }
-                query.setProjectIds(projectIds);
-            }else {
-                return R.ok(new PageInfo<>());
             }
         }
 
@@ -294,6 +298,10 @@
         culturePreservationService.updateById(culturePreservation);
         return R.ok();
     }
+
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
+
     //@PreAuthorize("@ss.hasPermi('system:breedingAndPreservation:detail')")
     @ApiOperation(value = "选育保藏记录详情")
     @GetMapping(value = "/open/t-breeding-and-preservation/getDetailById")
@@ -320,6 +328,28 @@
                 vaccinationSlope.setHandleName(sysUser.getNickName());
             }
         }
+
+        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(breedingAndPreservation.getProjectId())) {
+            TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(breedingAndPreservation.getProjectId());
+            if (tProjectTeam != null) {
+                List<TProjectTeamStaff> list = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
+                StringBuilder staffNames = new StringBuilder();
+                for (TProjectTeamStaff tProjectTeamStaff : list) {
+                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
+                    if (sysUser!=null){
+                        staffNames.append(sysUser.getNickName()).append(",");
+                    }
+                }
+                if (StringUtils.hasLength(staffNames.toString())){
+                    tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
+                }
+
+                List<TProjectTeam> tProjectTeamList = new ArrayList<>();
+                tProjectTeamList.add(tProjectTeam);
+                res.setTProjectTeamList(tProjectTeamList);
+            }
+        }
+
         res.setSeparationOfCultureDishesList(separationOfCultureDishesList);
         res.setObservationOfPetriDishes(observationOfPetriDishes);
         res.setVaccinationSlopes(vaccinationSlopes);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
index ffcfceb..9c1f879 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
@@ -16,6 +16,7 @@
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.*;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TPedigreeChartConfirmQuery;
 import com.ruoyi.system.query.TPedigreeChartDetailConfirmCountDTO;
@@ -87,17 +88,22 @@
             }
         }else if (!sysUser.getRoleType().equals("1")){
             query.setRoleType(3);
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (!allProjectIds.isEmpty()){                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
-                        .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
-                if (projectIds.isEmpty()){
+
+            if (query.getProjectIds() == null || query.getProjectIds().isEmpty()){
+                List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                        .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+                if (!allProjectIds.isEmpty()){
+                    List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+                            .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
+                    if (projectIds.isEmpty()){
+                        return R.ok(new PageInfo<>());
+                    }
+                    query.setProjectIds(projectIds);
+                }else{
                     return R.ok(new PageInfo<>());
                 }
-                query.setProjectIds(projectIds);
-            }else{
-                return R.ok(new PageInfo<>());
             }
+
         }else{
             query.setRoleType(1);
         }
@@ -291,6 +297,13 @@
             String child = JSON.toJSONString(dto.getOne().get(0));
             parent.setJson(child);
         }
+
+        //不能修改别人的数据
+        TPedigreeChart byId = pedigreeChartService.getById(parent.getId());
+        if (!loginUser.getUser().getNickName().equals(byId.getCreateBy())) {
+            return R.fail("不能修改其他工程师数据");
+        }
+
         List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId,
                         tokenService.getLoginUser().getUserId())
                 .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
@@ -666,6 +679,10 @@
         TPedigreeChartDetailQuery query = JSON.parseObject(param, TPedigreeChartDetailQuery.class);
         return R.ok(pedigreeChartService.pageListDetail(query));
     }
+
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
+
     /**
      * 谱系图-菌种传代生产谱系图详情
      */
@@ -730,6 +747,28 @@
             tPedigreeChartParentAllDetailDTO.setOne(tPedigreeChartParentOneDTOS);
         }
         pedigreeChart.setPedigreeChartParentAllDetailDTO(tPedigreeChartParentAllDetailDTO);
+
+        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(pedigreeChart.getProjectId())) {
+            TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(pedigreeChart.getProjectId());
+            if (tProjectTeam != null) {
+                List<TProjectTeamStaff> list = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
+                StringBuilder staffNames = new StringBuilder();
+                for (TProjectTeamStaff tProjectTeamStaff : list) {
+                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
+                    if (sysUser!=null){
+                        staffNames.append(sysUser.getNickName()).append(",");
+                    }
+                }
+                if (org.springframework.util.StringUtils.hasLength(staffNames.toString())){
+                    tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
+                }
+
+                List<TProjectTeam> tProjectTeamList = new ArrayList<>();
+                tProjectTeamList.add(tProjectTeam);
+                pedigreeChart.setTProjectTeamList(tProjectTeamList);
+            }
+        }
+
         return R.ok(pedigreeChart);
     }
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java
index 063a2fa..2fb8e75 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectGroupController.java
@@ -31,6 +31,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -64,6 +65,41 @@
         TProjectTeamQuery query = JSON.parseObject(param, TProjectTeamQuery.class);
         return R.ok(projectTeamService.pageList(query));
     }
+
+    @ApiOperation(value = "获取当前用户的所属项目组")
+    @PostMapping(value = "/api/t_project_myteam/pageList")
+    public R<List<TProjectTeam>> myTeamPageList() {
+        Long userId = tokenService.getLoginUser().getUserId();
+        List<TProjectTeam> list;
+
+        // 判断是否为管理员(超级管理员)
+        if (tokenService.getLoginUser().getUser().isAdmin()) {
+            // 管理员查询全部
+            list = projectTeamService.lambdaQuery()
+                    .eq(TProjectTeam::getStatus, 1)
+                    .list();
+        } else {
+            // 普通用户查询自己的项目组
+            List<String> projetIds = projectTeamStaffService.lambdaQuery()
+                    .eq(TProjectTeamStaff::getUserId, userId)
+                    .list()
+                    .stream()
+                    .map(TProjectTeamStaff::getTeamId)
+                    .collect(Collectors.toList());
+
+            if (projetIds.isEmpty()) {
+                list = new ArrayList<>();
+            } else {
+                list = projectTeamService.lambdaQuery()
+                        .eq(TProjectTeam::getStatus, 1)
+                        .in(TProjectTeam::getId, projetIds)
+                        .list();
+            }
+        }
+
+        return R.ok(list);
+    }
+
     @ApiOperation(value = "新增报告-获取项目组分页列表")
     @PostMapping(value = "/api/t_project_team/pageList1")
     public R<PageInfo<TProjectTeamVO>> pageList1(@RequestBody String param) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java
index 77ea143..e75c5d4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java
@@ -305,8 +305,7 @@
                     tStrainReportDetailExperimentVO.setUserName(sysUserService.selectUserById(Long.valueOf(tStrainReportDetail.getExperimentId())).getNickName());
                     tStrainReportDetailExperimentVO.setHandleCount((int) collect.stream().filter(e -> e.getExperimentId().equals(tStrainReportDetail.getExperimentId())).count());
                     BigDecimal handleIntegral = collect.stream()
-                            .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")
-                                    &&e.getReportType()==1)
+                            .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"") &&e.getReportType()==1)
                             .map(TStrainReportDetail::getEvaluateTotal)
                             .reduce(BigDecimal::add)
                             .orElse(BigDecimal.ZERO);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
index 1e613ee..5099f11 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
@@ -13,6 +13,7 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.*;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TBreedingAndPreservationQuery;
 import com.ruoyi.system.query.TStrainValidationDataQuery;
@@ -30,6 +31,7 @@
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -75,18 +77,22 @@
                 return R.ok(new PageInfo<>());
             }
         }else if (!sysUser.getRoleType().equals("1")){
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (!allProjectIds.isEmpty()){
-                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
-                        .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
+            if (query.getProjectIds() == null || query.getProjectIds().isEmpty()) {
+                if (query.getProjectIds() == null || query.getProjectIds().isEmpty()) {
+                    List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                            .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+                    if (!allProjectIds.isEmpty()){
+                        List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+                                .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
 
-                if (projectIds.isEmpty()){
-                    return R.ok(new PageInfo<>());
+                        if (projectIds.isEmpty()){
+                            return R.ok(new PageInfo<>());
+                        }
+                        query.setProjectIds(projectIds);
+                    }else {
+                        return R.ok(new PageInfo<>());
+                    }
                 }
-                query.setProjectIds(projectIds);
-            }else {
-                return R.ok(new PageInfo<>());
             }
         }
         return R.ok(strainValidationDataService.pageList(query));
@@ -103,15 +109,19 @@
         if (StringUtils.hasLength(dto.getHandleSignature())){
             dto.setHandleTime(LocalDateTime.now());
         }
-        List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-        if (!projectIds.isEmpty()){
-            TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
-                    .eq(TProjectTeam::getStatus, 1)
-                    .orderByDesc(BaseModel::getCreateTime)
-                    .last("limit 1").one();
-            dto.setProjectId(projectTeam.getId());
+
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(dto.getProjectId())) {
+            List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+            if (!projectIds.isEmpty()){
+                TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
+                        .eq(TProjectTeam::getStatus, 1)
+                        .orderByDesc(BaseModel::getCreateTime)
+                        .last("limit 1").one();
+                dto.setProjectId(projectTeam.getId());
+            }
         }
+
         strainValidationDataService.save(dto);
         if (dto.getIsDraft()==0){
             dto.setStatus(1);
@@ -179,6 +189,7 @@
         strainValidationDataService.updateById(dto);
         return R.ok();
     }
+
     @Log(title = "菌种验证数据资料-确认验证资料", businessType = BusinessType.INSERT)
     @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class)
     @PostMapping(value = "/api/t-strain-validation-data/confirm")
@@ -190,9 +201,39 @@
         }
         dto.setStatus(2);
         strainValidationDataService.updateById(dto);
+
+        // 先删除该 dataId 的所有数据
+        LambdaQueryWrapper<TStrainValidationDataDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TStrainValidationDataDetail::getDataId, dto.getId());
+        strainValidationDataDetailService.remove(wrapper);
+
         strainValidationDataDetailService.saveBatch(list);
         return R.ok();
     }
+
+    @Log(title = "菌种验证数据资料-存草稿", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class)
+    @PostMapping(value = "/api/t-strain-validation-data/saveDraf")
+    public R<Boolean> saveDraf(@RequestBody String param) {
+        AddStrainValidationDataDetailDTO dto = JSON.parseObject(param,AddStrainValidationDataDetailDTO.class);
+        List<TStrainValidationDataDetail> list = dto.getList();
+        for (TStrainValidationDataDetail tStrainValidationDataDetail : list) {
+            tStrainValidationDataDetail.setDataId(dto.getId());
+        }
+        dto.setIsDraft(1);
+        strainValidationDataService.updateById(dto);
+
+        // 先删除该 dataId 的所有数据
+        LambdaQueryWrapper<TStrainValidationDataDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TStrainValidationDataDetail::getDataId, dto.getId());
+        strainValidationDataDetailService.remove(wrapper);
+
+        strainValidationDataDetailService.saveBatch(list);
+        return R.ok();
+    }
+
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
 
     /**
      * 查看菌种验证数据资料详情
@@ -205,6 +246,29 @@
         BeanUtils.copyProperties(strainValidationData,res);
         List<TStrainValidationDataDetail> list = strainValidationDataDetailService.lambdaQuery().eq(TStrainValidationDataDetail::getDataId, id).list();
         res.setList(list);
+
+        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(strainValidationData.getProjectId())) {
+            TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(strainValidationData.getProjectId());
+            if (tProjectTeam != null) {
+                List<TProjectTeamStaff> listProsd = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
+                StringBuilder staffNames = new StringBuilder();
+                for (TProjectTeamStaff tProjectTeamStaff : listProsd) {
+                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
+                    if (sysUser!=null){
+                        staffNames.append(sysUser.getNickName()).append(",");
+                    }
+                }
+                if (StringUtils.hasLength(staffNames.toString())){
+                    tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
+                }
+
+                List<TProjectTeam> tProjectTeamList = new ArrayList<>();
+                tProjectTeamList.add(tProjectTeam);
+                res.setTProjectTeamList(tProjectTeamList);
+                res.setProjectName(tProjectTeam.getTeamName());
+            }
+        }
+
         return R.ok(res);
     }
     @Log(title = "主细胞-删除菌种验证数据资料", businessType = BusinessType.DELETE)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
index 4234335..ca18284 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
@@ -116,35 +117,32 @@
         SysUser sysUser = sysUserService.selectUserById(userId);
         TTrainLibraryQuery query = JSON.parseObject(param, TTrainLibraryQuery.class);
         if (sysUser.getRoleType().equals("2")){
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (!allProjectIds.isEmpty()){                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
-                    .list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
-
-                if (projectIds.isEmpty()){
-                    return R.ok(new PageInfo<>());
-                }
-                query.setProjectIds(projectIds);
-            }else {
-                return R.ok(new PageInfo<>());
+            if (CollectionUtils.isNotEmpty(query.getProjectIds())) {
+                query.setProjectIds(query.getProjectIds());
             }
         }else if (!sysUser.getRoleType().equals("1")){
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (!allProjectIds.isEmpty()){
-                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
-                        .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(query.getProjectIds())) {
+                query.setProjectIds(query.getProjectIds());
+            }else {
+                // 没有根据项目组查询
+                List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                        .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+                if (!allProjectIds.isEmpty()){
+                    List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+                            .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
 
-                if (projectIds.isEmpty()){
+                    if (projectIds.isEmpty()){
+                        return R.ok(new PageInfo<>());
+                    }
+                    query.setProjectIds(projectIds);
+                }else {
                     return R.ok(new PageInfo<>());
                 }
-                query.setProjectIds(projectIds);
-            }else {
-                return R.ok(new PageInfo<>());
             }
         }
-        return R.ok(tTrainLibraryService.pageList(query));
+        return R.ok(tTrainLibraryService.pageList(query, sysUser.getRoleType()));
     }
+
     /**
      * 获取菌种库出入库时间轴列表
      */
@@ -185,15 +183,17 @@
             return R.fail(401,"登陆失效");
         }
         TTrainLibraryDTO dto = JSON.parseObject(param,TTrainLibraryDTO.class);
-        List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-        if (!projectIds.isEmpty()){
-            TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
-                    .eq(TProjectTeam::getStatus, 1)
-                    .orderByDesc(BaseModel::getCreateTime)
-                    .last("limit 1").one();
-            dto.setProjectId(projectTeam.getId());
-        }
+
+        //改为前端传值
+//        List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+//                .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+//        if (!projectIds.isEmpty()){
+//            TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
+//                    .eq(TProjectTeam::getStatus, 1)
+//                    .orderByDesc(BaseModel::getCreateTime)
+//                    .last("limit 1").one();
+//            dto.setProjectId(projectTeam.getId());
+//        }
         tTrainLibraryService.save(dto);
         if (dto.getIsDraft()==0){
             // 新增入库记录
@@ -343,7 +343,7 @@
         }
         TTrainLibraryDTO dto = JSON.parseObject(param,TTrainLibraryDTO.class);
         tTrainLibraryService.updateById(dto);
-        if (dto.getIsDraft()==0){
+        if (dto.getIsDraft()==0) {
             List<TTrainLibraryWarehousing> list = tTrainLibraryWarehousingService.lambdaQuery().eq(TTrainLibraryWarehousing::getTrainLibraryId, dto.getId()).list();
             if (list.isEmpty()){
                 // 新增入库记录
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 097f7da..478473b 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -190,7 +190,7 @@
     location: /file/
     qrLocation: /file/qrCode/
     accessPath: /file/
-    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
+    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar|.ppt|.pptx
   url:
     #    prefix: http://localhost:${server.port}${server.servlet.context-path}
     prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
diff --git a/ruoyi-admin/target/classes/application-prod.yml b/ruoyi-admin/target/classes/application-prod.yml
index 097f7da..478473b 100644
--- a/ruoyi-admin/target/classes/application-prod.yml
+++ b/ruoyi-admin/target/classes/application-prod.yml
@@ -190,7 +190,7 @@
     location: /file/
     qrLocation: /file/qrCode/
     accessPath: /file/
-    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
+    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar|.ppt|.pptx
   url:
     #    prefix: http://localhost:${server.port}${server.servlet.context-path}
     prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java
index 31d7b6b..a3c920e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TPedigreeChart.java
@@ -70,4 +70,7 @@
     @TableField("status")
     private Integer status;
 
+    @ApiModelProperty("项目组数据")
+    @TableField(exist = false)
+    private List<TProjectTeam> tProjectTeamList;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTrainLibrary.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTrainLibrary.java
index 47a633e..59adfde 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTrainLibrary.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTrainLibrary.java
@@ -44,6 +44,10 @@
     @TableField("project_id")
     private String projectId;
 
+    @ApiModelProperty(value = "项目组名称")
+    @TableField(exist = false)
+    private String projectName;
+
     @ApiModelProperty(value = "菌种来源1 是沙土管或甘油管的源头菌种;入原始细胞库(祖代-0) 2 是斜面的源头菌种;接种入主细胞库(祖代-0)。经过育种、验证后,菌种保藏为甘油管或沙土管的,入原始细胞库(祖代-0)3 是含菌物质自己分离后获得的斜面源头菌种,接种入主细胞库;经生产验证后,保藏为沙土管或甘油管,入原始细胞库(祖代-O)")
     @TableField("strain_source")
     private String strainSource;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTrainLibraryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTrainLibraryService.java
index a21503d..4dd356b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTrainLibraryService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTrainLibraryService.java
@@ -18,7 +18,7 @@
  */
 public interface TTrainLibraryService extends IService<TTrainLibrary> {
 
-    PageInfo<TTrainLibraryVO> pageList(TTrainLibraryQuery query);
+    PageInfo<TTrainLibraryVO> pageList(TTrainLibraryQuery query, String roleType);
 
     TTrainLibraryDetailVO getDetailById(TTrainLibraryDetailQuery query);
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBreedingAndPreservationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBreedingAndPreservationServiceImpl.java
index f5af72a..afd7914 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBreedingAndPreservationServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBreedingAndPreservationServiceImpl.java
@@ -3,14 +3,19 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.mapper.TBreedingAndPreservationMapper;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
+import com.ruoyi.system.mapper.TProjectTeamStaffMapper;
 import com.ruoyi.system.model.TBreedingAndPreservation;
+import com.ruoyi.system.model.TProjectTeam;
 import com.ruoyi.system.model.TProjectTeamStaff;
 import com.ruoyi.system.query.TBreedingAndPreservationQuery;
 import com.ruoyi.system.service.TBreedingAndPreservationService;
 import com.ruoyi.system.vo.TBreedingAndPreservationVO;
 import com.ruoyi.system.vo.TPedigreeChartVO;
 import com.ruoyi.system.vo.TProjectTeamVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -27,11 +32,21 @@
  */
 @Service
 public class TBreedingAndPreservationServiceImpl extends ServiceImpl<TBreedingAndPreservationMapper, TBreedingAndPreservation> implements TBreedingAndPreservationService {
+    @Autowired
+    private TProjectTeamMapper projectTeamMapper;
 
     @Override
     public PageInfo<TBreedingAndPreservationVO> pageList(TBreedingAndPreservationQuery query) {
         PageInfo<TBreedingAndPreservationVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TBreedingAndPreservationVO> list = this.baseMapper.pageList(query,pageInfo);
+        for (TBreedingAndPreservationVO tBreedingAndPreservationVO : list) {
+            if (StringUtils.isNotEmpty(tBreedingAndPreservationVO.getProjectId())) {
+                TProjectTeam tProjectTeam = projectTeamMapper.selectById(tBreedingAndPreservationVO.getProjectId());
+                if (tProjectTeam != null) {
+                    tBreedingAndPreservationVO.setProjectName(tProjectTeam.getTeamName());
+                }
+            }
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
index 0aa0881..be1c6f1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
@@ -4,11 +4,14 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.TPedigreeChartDetailMapper;
 import com.ruoyi.system.mapper.TPedigreeChartMapper;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
 import com.ruoyi.system.model.TPedigreeChart;
 import com.ruoyi.system.model.TPedigreeChartDetail;
+import com.ruoyi.system.model.TProjectTeam;
 import com.ruoyi.system.model.TProjectTeamStaff;
 import com.ruoyi.system.query.TPedigreeChartConfirmQuery;
 import com.ruoyi.system.query.TPedigreeChartDetailQuery;
@@ -22,6 +25,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -35,7 +39,8 @@
  */
 @Service
 public class TPedigreeChartServiceImpl extends ServiceImpl<TPedigreeChartMapper, TPedigreeChart> implements TPedigreeChartService {
-
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
     @Autowired
     private SysUserMapper sysUserMapper;
     @Autowired
@@ -44,6 +49,16 @@
     public PageInfo<TPedigreeChartVO> pageList(TPedigreeChartQuery query) {
         PageInfo<TPedigreeChartVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TPedigreeChartVO> list = this.baseMapper.pageList(query,pageInfo);
+
+        for (TPedigreeChartVO tPedigreeChartVO : list) {
+            if (StringUtils.isNotEmpty(tPedigreeChartVO.getProjectId())) {
+                TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(tPedigreeChartVO.getProjectId());
+                if (tProjectTeam != null) {
+                    tPedigreeChartVO.setProjectName(tProjectTeam.getTeamName());
+                }
+            }
+        }
+
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java
index bc95c9f..0876e1f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainReportServiceImpl.java
@@ -58,7 +58,8 @@
     public PageInfo<TStrainReportProjectVO> pageListProject(TStrainReportProjectQuery query) {
         PageInfo<TStrainReportProjectVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TStrainReportProjectVO> list = this.baseMapper.pageListProject(query,pageInfo);
-        LambdaQueryWrapper<TStrainReport> queryWrapper = new LambdaQueryWrapper<TStrainReport>().eq(TStrainReport::getStatus, 3);
+        LambdaQueryWrapper<TStrainReport> queryWrapper = new LambdaQueryWrapper<TStrainReport>().eq(TStrainReport::getStatus, 3)
+                .orderByDesc(TStrainReport::getEvaluateTime);
 
         List<TStrainReport> tStrainReports = this.baseMapper.selectList(
                 queryWrapper);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainValidationDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainValidationDataServiceImpl.java
index 2c4228d..db04291 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainValidationDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStrainValidationDataServiceImpl.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.mapper.TProjectTeamMapper;
 import com.ruoyi.system.mapper.TStrainValidationDataMapper;
+import com.ruoyi.system.model.TProjectTeam;
 import com.ruoyi.system.model.TProjectTeamStaff;
 import com.ruoyi.system.model.TStrainValidationData;
 import com.ruoyi.system.query.TStrainValidationDataQuery;
@@ -13,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -26,12 +30,21 @@
  */
 @Service
 public class TStrainValidationDataServiceImpl extends ServiceImpl<TStrainValidationDataMapper, TStrainValidationData> implements TStrainValidationDataService {
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
 
     @Override
     public PageInfo<TStrainValidationDataVO> pageList(TStrainValidationDataQuery query) {
         PageInfo<TStrainValidationDataVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TStrainValidationDataVO> list = this.baseMapper.pageList(query,pageInfo);
-
+        for (TStrainValidationDataVO tStrainValidationDataVO : list) {
+            if (StringUtils.isNotEmpty(tStrainValidationDataVO.getProjectId())) {
+                TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(tStrainValidationDataVO.getProjectId());
+                if (tProjectTeam != null) {
+                    tStrainValidationDataVO.setProjectName(tProjectTeam.getTeamName());
+                }
+            }
+        }
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
index 2ea7409..053bdbd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
@@ -2,20 +2,22 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.system.mapper.TTrainLibraryMapper;
+import com.ruoyi.system.model.TProjectTeam;
 import com.ruoyi.system.model.TTrainLibrary;
-import com.ruoyi.system.model.TTrainLibraryWarehousing;
 import com.ruoyi.system.query.TTrainLibraryDetailQuery;
 import com.ruoyi.system.query.TTrainLibraryQuery;
+import com.ruoyi.system.service.TProjectTeamService;
 import com.ruoyi.system.service.TTrainLibraryService;
-import com.ruoyi.system.vo.TProjectTeamVO;
 import com.ruoyi.system.vo.TTrainLibraryDetailVO;
 import com.ruoyi.system.vo.TTrainLibraryVO;
 import com.ruoyi.system.vo.TTrainLibraryWarehousingVO;
-import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,12 +30,29 @@
  */
 @Service
 public class TTrainLibraryServiceImpl extends ServiceImpl<TTrainLibraryMapper, TTrainLibrary> implements TTrainLibraryService {
+    @Resource
+    private TProjectTeamService projectTeamService;
 
     @Override
-    public PageInfo<TTrainLibraryVO> pageList(TTrainLibraryQuery query) {
+    public PageInfo<TTrainLibraryVO> pageList(TTrainLibraryQuery query, String roleType) {
         PageInfo<TTrainLibraryVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TTrainLibraryVO> list = this.baseMapper.pageList(query,pageInfo);
-        pageInfo.setRecords(list);
+
+        List<TTrainLibraryVO> resultList = new ArrayList<>();
+
+        for (TTrainLibraryVO tTrainLibraryVO : list) {
+            if (StringUtils.isNotEmpty(tTrainLibraryVO.getProjectId())) {
+                TProjectTeam byId = projectTeamService.getById(tTrainLibraryVO.getProjectId());
+                //未封存的数据
+                if (byId != null && ("2".equals(roleType) || byId.getStatus() == 1)) {  // 只处理status为1的数据
+                    tTrainLibraryVO.setProjectName(byId.getTeamName());
+                    resultList.add(tTrainLibraryVO);
+                }
+            }
+        }
+
+        pageInfo.setRecords(resultList);
+        pageInfo.setTotal(resultList.size());  // 重新设置总记录数
         return pageInfo;
     }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AddStrainValidationDataDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AddStrainValidationDataDetailVO.java
index ca83d5d..b0dc989 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AddStrainValidationDataDetailVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AddStrainValidationDataDetailVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.vo;
 
+import com.ruoyi.system.model.TProjectTeam;
 import com.ruoyi.system.model.TStrainValidationData;
 import com.ruoyi.system.model.TStrainValidationDataDetail;
 import io.swagger.annotations.ApiModel;
@@ -13,4 +14,9 @@
 public class AddStrainValidationDataDetailVO extends TStrainValidationData {
     @ApiModelProperty("确认详情列表")
     private List<TStrainValidationDataDetail> list;
+    @ApiModelProperty("项目组名称")
+    private String projectName;
+    @ApiModelProperty("项目组数据")
+    private List<TProjectTeam> tProjectTeamList;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationDetailVO.java
index a3b4ffc..757582f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationDetailVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationDetailVO.java
@@ -19,5 +19,6 @@
     private List<TVaccinationSlope> vaccinationSlopes;
     @ApiModelProperty("菌种保藏记录")
     private List<TCulturePreservation> culturePreservations;
-
+    @ApiModelProperty("项目组数据")
+    private List<TProjectTeam> tProjectTeamList;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationVO.java
index 12dd06b..c6b087c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TBreedingAndPreservationVO.java
@@ -1,14 +1,18 @@
 package com.ruoyi.system.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.system.model.TBreedingAndPreservation;
 import com.ruoyi.system.model.TPedigreeChart;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 @ApiModel(value = "菌种选育保藏记录分页列表返回VO")
 public class TBreedingAndPreservationVO extends TBreedingAndPreservation {
 
+    @ApiModelProperty(value = "项目组名称")
+    private String projectName;
 
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TPedigreeChartVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TPedigreeChartVO.java
index abc9e2c..d3f5fd9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TPedigreeChartVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TPedigreeChartVO.java
@@ -13,6 +13,5 @@
 @ApiModel(value = "谱系图分页列表返回VO")
 public class TPedigreeChartVO extends TPedigreeChart {
 
-
-
+    private String projectName;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TStrainValidationDataVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TStrainValidationDataVO.java
index 2b22a7b..ac7dc2f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TStrainValidationDataVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TStrainValidationDataVO.java
@@ -1,14 +1,18 @@
 package com.ruoyi.system.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.system.model.TBreedingAndPreservation;
 import com.ruoyi.system.model.TStrainValidationData;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 @ApiModel(value = "菌种验证数据资料分页列表返回VO")
 public class TStrainValidationDataVO extends TStrainValidationData {
 
+    @ApiModelProperty(value = "项目组名称")
+    private String projectName;
 
 
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/TBreedingAndPreservationMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBreedingAndPreservationMapper.xml
index 62d7e22..46f9728 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TBreedingAndPreservationMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TBreedingAndPreservationMapper.xml
@@ -20,11 +20,12 @@
         <result column="temperature" property="temperature" />
         <result column="aerobic_type" property="aerobicType" />
         <result column="is_draft" property="isDraft" />
+        <result column="project_id" property="projectId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, create_time, update_time, create_by, update_by, disabled, preserve_source, strain_name, strain_code, formula, source_material_time_batch_number, separate_colony_number, culture_medium, temperature, aerobic_type, is_draft
+        id, create_time, update_time, create_by, project_id, update_by, disabled, preserve_source, strain_name, strain_code, formula, source_material_time_batch_number, separate_colony_number, culture_medium, temperature, aerobic_type, is_draft
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TBreedingAndPreservationVO">
         select
diff --git a/ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml
index 0285917..f56c9ae 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TPedigreeChartMapper.xml
@@ -42,7 +42,7 @@
                 and status = 2
             </if>
             <if test="query.roleType == 3">
-                and status = 2 or status = 1
+                and (status = 2 or status = 1)
             </if>
         <if test="query.projectIds != null and query.projectIds.size() > 0">
             and project_id in
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
index b4cce6c..ad33128 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTrainLibraryMapper.xml
@@ -23,11 +23,12 @@
         <result column="status" property="status" />
         <result column="type" property="type" />
         <result column="signature" property="signature" />
+        <result column="project_id" property="projectId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, strain_code, strain_name, create_time, update_time, create_by, update_by, disabled, strain_source, appraisal_method, features, save_method, save_location, stock, remark, status, `type`, signature,is_draft
+        id, strain_code, strain_name, project_id, create_time, update_time, create_by, update_by, disabled, strain_source, appraisal_method, features, save_method, save_location, stock, remark, status, `type`, signature,is_draft
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TTrainLibraryVO">
         select
diff --git a/ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml b/ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml
index 62d7e22..46f9728 100644
--- a/ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/TBreedingAndPreservationMapper.xml
@@ -20,11 +20,12 @@
         <result column="temperature" property="temperature" />
         <result column="aerobic_type" property="aerobicType" />
         <result column="is_draft" property="isDraft" />
+        <result column="project_id" property="projectId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, create_time, update_time, create_by, update_by, disabled, preserve_source, strain_name, strain_code, formula, source_material_time_batch_number, separate_colony_number, culture_medium, temperature, aerobic_type, is_draft
+        id, create_time, update_time, create_by, project_id, update_by, disabled, preserve_source, strain_name, strain_code, formula, source_material_time_batch_number, separate_colony_number, culture_medium, temperature, aerobic_type, is_draft
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TBreedingAndPreservationVO">
         select
diff --git a/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml b/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
index 0285917..f56c9ae 100644
--- a/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/TPedigreeChartMapper.xml
@@ -42,7 +42,7 @@
                 and status = 2
             </if>
             <if test="query.roleType == 3">
-                and status = 2 or status = 1
+                and (status = 2 or status = 1)
             </if>
         <if test="query.projectIds != null and query.projectIds.size() > 0">
             and project_id in
diff --git a/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml b/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
index b4cce6c..ad33128 100644
--- a/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
+++ b/ruoyi-system/target/classes/mapper/system/TTrainLibraryMapper.xml
@@ -23,11 +23,12 @@
         <result column="status" property="status" />
         <result column="type" property="type" />
         <result column="signature" property="signature" />
+        <result column="project_id" property="projectId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, strain_code, strain_name, create_time, update_time, create_by, update_by, disabled, strain_source, appraisal_method, features, save_method, save_location, stock, remark, status, `type`, signature,is_draft
+        id, strain_code, strain_name, project_id, create_time, update_time, create_by, update_by, disabled, strain_source, appraisal_method, features, save_method, save_location, stock, remark, status, `type`, signature,is_draft
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TTrainLibraryVO">
         select

--
Gitblit v1.7.1