From 082bddee7df8a05ca95f473ec2643701d41a5213 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:09:01 +0800
Subject: [PATCH] 更新代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainReportController.java |  215 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 129 insertions(+), 86 deletions(-)

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 0042752..d7ff148 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
@@ -16,20 +16,14 @@
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TStrainReportProjectQuery;
 import com.ruoyi.system.query.TStrainReportQuery;
-import com.ruoyi.system.query.TTrainLibraryDetailQuery;
-import com.ruoyi.system.query.TTrainLibraryQuery;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.*;
-import com.tencentcloudapi.tcaplusdb.v20190823.models.IdlFileInfo;
 import io.swagger.annotations.ApiOperation;
-import jdk.nashorn.internal.parser.Token;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.sql.Array;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -61,24 +55,43 @@
     @ApiOperation(value = "菌种报告库分页列表查询",tags = "菌种报告库",response = TStrainReportQuery.class)
     @PostMapping(value = "/api/t-strain-report/pageListAll")
     public R<PageInfo<TStrainReportVO>> pageListAll(@RequestBody String param) {
+        TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class);
+
         LoginUser loginUser = tokenService.getLoginUser();
         SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId());
-        List<String> projectIds = new ArrayList<>();
-        if (!sysUser.getRoleType().equals("1")){
-            // 查询和自己相关的项目组id
-            List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, sysUser.getUserId()).list()
-                    .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (collect.isEmpty()){
-                collect.add("0");
+        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<>());
             }
-            projectIds = collect;
+        }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 (projectIds.isEmpty()){
+                    return R.ok(new PageInfo<>());
+                }
+                query.setProjectIds(projectIds);
+            }else{
+                return R.ok(new PageInfo<>());
+            }
         }
-        TStrainReportQuery query = JSON.parseObject(param, TStrainReportQuery.class);
         if (StringUtils.hasLength(query.getTime())){
             query.setStartTime(query.getTime().split(" - ")[0]);
             query.setEndTime(query.getTime().split(" - ")[1]);
         }
-        query.setProjectIds(projectIds);
         return R.ok(strainReportService.pageListAll(query));
     }
     @ApiOperation(value = "获取菌种报告库操作评定分页列表",tags = "菌种报告库操作评定-菌种实验员",response = TStrainReportQuery.class)
@@ -152,17 +165,22 @@
                     return R.ok(new PageInfo<>());
                 }
                 query.setProjectIds(projectIds);
+            }else {
+                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)
+            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<>());
             }
         }
         return R.ok(strainReportService.pageListProject(query));
@@ -172,17 +190,19 @@
     @ApiOperation(value = "菌种项目组评定详情",tags = "菌种项目组评定表")
     @GetMapping(value = "/open/t-strain-report/getDetailByIdProject")
     public R<TStrainReportDetailProjectVO> getDetailByIdProject(@RequestParam String id) {
-        TProjectTeam byId = projectTeamService.getById(id);
+        TProjectTeam project = projectTeamService.getById(id);
 
         TStrainReportDetailProjectVO tStrainReportDetailVO = new TStrainReportDetailProjectVO();
         LoginUser loginUser = tokenService.getLoginUser();
         SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId());
         List<TStrainReport> tStrainReports = strainReportService.list(new LambdaQueryWrapper<TStrainReport>()
-                .eq(TStrainReport::getStatus,3).eq(TStrainReport::getProjectId,id));
+                .eq(TStrainReport::getStatus,3).eq(TStrainReport::getProjectId,id)
+                .orderByDesc(TStrainReport::getEvaluateTime));
         List<String> strainReportIds = tStrainReports.stream().map(TStrainReport::getId).collect(Collectors.toList());
         if (strainReportIds.isEmpty())strainReportIds.add("0");
         List<TStrainReportDetail> tStrainReportDetails = strainReportDetailService
                 .list(new LambdaQueryWrapper<TStrainReportDetail>().in(TStrainReportDetail::getReportId,strainReportIds)
+                        .isNotNull(TStrainReportDetail::getExperimentId)
                         .orderByDesc(TStrainReportDetail::getCreateTime));
         BigDecimal sum = new BigDecimal("0");
         BigDecimal sum1 = new BigDecimal("0");
@@ -197,56 +217,67 @@
                     .filter(e -> e.getReportId().equals(tStrainReport.getId())&&
                             e.getEvaluateHumanType()==2).collect(Collectors.toList());
             // 菌种工程积分
-            sum1 = tStrainReportDetails2.stream()
-                    .filter(e -> e.getEvaluateHumanType().equals(1))
-                    .map(TStrainReportDetail::getEvaluateTotal)
-                    .reduce(BigDecimal::add)
-                    .orElse(BigDecimal.ZERO);
-            // 菌种实验员积分
-            sum2 = tStrainReportDetails1.stream()
+            sum1 = sum1.add(tStrainReportDetails2.stream()
                     .filter(e -> e.getEvaluateHumanType().equals(2))
                     .map(TStrainReportDetail::getEvaluateTotal)
                     .reduce(BigDecimal::add)
-                    .orElse(BigDecimal.ZERO);
-            List<TStrainReportDetail> tStrainReportDetails3 = tStrainReportDetails.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
+                    .orElse(BigDecimal.ZERO));
+            // 菌种实验员积分
+            sum2 = sum2.add(tStrainReportDetails1.stream()
+                    .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getReportType()==1)
+                    .map(TStrainReportDetail::getEvaluateTotal)
+                    .reduce(BigDecimal::add)
+                    .orElse(BigDecimal.ZERO));
+            List<TStrainReportDetail> tStrainReportDetails3 = tStrainReportDetails.stream().filter(e -> e.getReportId().equals(tStrainReport.getId())
+                    &&
+                    e.getReportType() == 1).collect(Collectors.toList());
             for (TStrainReportDetail tStrainReportDetail : tStrainReportDetails3) {
                 // 根据评定等级统计失败次数
                 if (StringUtils.hasLength(tStrainReportDetail.getEvaluate())&&  tStrainReportDetail.getEvaluate().split(",").length>=5){
-                    if (tStrainReportDetail.getEvaluate().split(",")[4].equals("2")){
+                    if (tStrainReportDetail.getEvaluate().split(",")[4].equals("-3")){
                         temp++;
+                        break;
                     }
                 }
             }
         }
-        tStrainReportDetailVO.setTeamIntegral(sum);
+        tStrainReportDetailVO.setTeamIntegral(sum1.add(sum2));
         tStrainReportDetailVO.setEngineerIntegral(sum1);
         tStrainReportDetailVO.setExperimenterIntegral(sum2);
 
 
         tStrainReportDetailVO.setFailCount(temp);
-        List<TStrainReport> strainReportIdsByProjectId = tStrainReports.stream().filter(e -> e.getProjectId().equals(byId.getId())).collect(Collectors.toList());
+        List<TStrainReport> strainReportIdsByProjectId = tStrainReports.stream().filter(e -> e.getProjectId().equals(project.getId())).collect(Collectors.toList());
         if (!strainReportIdsByProjectId.isEmpty()){
             tStrainReportDetailVO.setEndTime(strainReportIdsByProjectId.get(0).getEvaluateTime());
         }
-        tStrainReportDetailVO.setStartTime(byId.getCreateTime());
-        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, byId.getId())
-                .eq(TProjectTeamStaff::getRoleType, 2).one();
+        tStrainReportDetailVO.setStartTime(project.getCreateTime());
+        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, project.getId())
+                .eq(TProjectTeamStaff::getRoleType, 2).last("limit 1").one();
         List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS = new ArrayList<>();
         if (sysUser.getRoleType().equals("4")){
             TStrainReportDetailExperimentVO tStrainReportDetailExperimentVO = new TStrainReportDetailExperimentVO();
             tStrainReportDetailExperimentVO.setUserName(sysUser.getNickName());
-            tStrainReportDetailExperimentVO.setHandleCount((int) tStrainReportDetails.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId() + "")).count());
+            tStrainReportDetailExperimentVO.setHandleCount((int) tStrainReportDetails.stream()
+                    .filter(e -> e.getEvaluateHumanType().equals(1) && e.getReportType() == 1
+                            && e.getExperimentId()!=null && e.getExperimentId().equals(sysUser.getUserId() + ""))
+                    .count());
             BigDecimal handleIntegral = tStrainReportDetails.stream()
-                    .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+""))
+                    .filter(e -> e.getEvaluateHumanType().equals(1)&&e.getExperimentId().equals(sysUser.getUserId()+"")
+                            &&e.getReportType()==1)
                     .map(TStrainReportDetail::getEvaluateTotal)
                     .reduce(BigDecimal::add)
                     .orElse(BigDecimal.ZERO);
             tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral);
 
-            List<TStrainReportDetail> strainReportDetails = tStrainReportDetails.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId() + "")).collect(Collectors.toList());
+            List<TStrainReportDetail> strainReportDetails = tStrainReportDetails.stream()
+                    .filter(e -> e.getEvaluateHumanType().equals(1) && e.getReportType() == 1
+                            && e.getExperimentId().equals(sysUser.getUserId() + ""))
+                    .collect(Collectors.toList());
             if (!strainReportDetails.isEmpty()){
-                tStrainReportDetailExperimentVO.setHandleStartTime(strainReportDetails.get(0).getCreateTime());
+                tStrainReportDetailExperimentVO.setHandleEndTime(strainReportDetails.get(0).getCreateTime());
             }
+            tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
             tStrainReportDetailExperimentVOS.add(tStrainReportDetailExperimentVO);
             tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS);
         }else{
@@ -264,7 +295,8 @@
                 tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO);
                 List<String> userIds = new ArrayList<>();
                 List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS1 = new ArrayList<>();
-                List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).collect(Collectors.toList());
+                List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)
+                        &&e.getReportType()==1).collect(Collectors.toList());
                 for (TStrainReportDetail tStrainReportDetail : collect) {
                     if (userIds.contains(tStrainReportDetail.getExperimentId())){
                         continue;
@@ -274,20 +306,23 @@
                     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()+""))
+                            .filter(e -> e.getEvaluateHumanType().equals(1)
+                                    && e.getExperimentId().equals(tStrainReportDetail.getExperimentId())
+                                    && e.getReportType()==1)
                             .map(TStrainReportDetail::getEvaluateTotal)
                             .reduce(BigDecimal::add)
                             .orElse(BigDecimal.ZERO);
                     tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral);
-                    List<TStrainReportDetail> collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList());
-                    if (!collect9.isEmpty()){
-                        tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime());
+                    List<TStrainReportDetail> reportDetails = collect.stream()
+                            .filter(e -> e.getExperimentId().equals(tStrainReportDetail.getExperimentId()))
+                            .collect(Collectors.toList());
+                    if (!reportDetails.isEmpty()){
+                        tStrainReportDetailExperimentVO.setHandleEndTime(reportDetails.get(0).getCreateTime());
                     }
-                    tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime());
+                    tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
                     tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO);
                 }
                 tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1);
-
             }else{
                 List<TStrainReportDetail> reportDetails = strainReportDetails.stream()
                         .filter(e -> e.getEvaluateHumanType().equals(2) && e.getExperimentId().equals(projectTeamStaff.getUserId())).collect(Collectors.toList());
@@ -295,51 +330,58 @@
                 TStrainReportDetailEngineerVO tStrainReportDetailEngineerVO = new TStrainReportDetailEngineerVO();
                 tStrainReportDetailEngineerVO.setInnovateCount((int)reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(1)).count());
                 tStrainReportDetailEngineerVO.setInnovateIntegral(reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
-                List<TStrainReportDetail> collect3 = reportDetails.stream().filter(e ->e.getEvaluateType()!=null&& e.getEvaluateType().equals(1)).collect(Collectors.toList());
-                if (!collect3.isEmpty()){
-                    tStrainReportDetailEngineerVO.setInnovateStartTime(collect3.get(collect3.size()-1).getCreateTime());
+                List<TStrainReportDetail> tStrainReportDetails1 = reportDetails.stream().filter(e ->e.getEvaluateType()!=null&& e.getEvaluateType().equals(1)).collect(Collectors.toList());
+                if (!tStrainReportDetails1.isEmpty()){
+                    tStrainReportDetailEngineerVO.setInnovateEndTime(tStrainReportDetails1.get(0).getCreateTime());
                 }
-                tStrainReportDetailEngineerVO.setInnovateEndTime(byId.getCreateTime());
+                tStrainReportDetailEngineerVO.setInnovateStartTime(project.getCreateTime());
 
                 tStrainReportDetailEngineerVO.setRegulationCount((int)reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).count());
                 tStrainReportDetailEngineerVO.setRegulationIntegral(reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
                 List<TStrainReportDetail> collect4 = reportDetails.stream().filter(e -> e.getEvaluateType()!=null&&e.getEvaluateType().equals(2)).collect(Collectors.toList());
                 if (!collect4.isEmpty()){
-                    tStrainReportDetailEngineerVO.setRegulationStartTime(collect4.get(collect4.size()-1).getCreateTime());
+                    tStrainReportDetailEngineerVO.setRegulationEndTime(collect4.get(0).getCreateTime());
                 }
-                tStrainReportDetailEngineerVO.setRegulationEndTime(byId.getCreateTime());
+                tStrainReportDetailEngineerVO.setRegulationStartTime(project.getCreateTime());
 
                 tStrainReportDetailEngineerVO.setHandleCount((int)reportDetails.stream().filter(e->e.getReportType().equals(1)).count());
                 tStrainReportDetailEngineerVO.setHandleIntegral(reportDetails.stream().filter(e->e.getReportType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
                 List<TStrainReportDetail> reportDetailList = reportDetails.stream().filter(e->e.getReportType().equals(1)).collect(Collectors.toList());
                 if (!reportDetailList.isEmpty()){
-                    tStrainReportDetailEngineerVO.setHandleStartTime(reportDetailList.get(reportDetailList.size()-1).getCreateTime());
+                    tStrainReportDetailEngineerVO.setHandleEndTime(reportDetailList.get(0).getCreateTime());
                 }
-                tStrainReportDetailEngineerVO.setHandleEndTime(byId.getCreateTime());
+                tStrainReportDetailEngineerVO.setHandleStartTime(project.getCreateTime());
 
                 tStrainReportDetailVO.setDetailEngineerVO(tStrainReportDetailEngineerVO);
                 List<String> userIds = new ArrayList<>();
                 List<TStrainReportDetailExperimentVO> tStrainReportDetailExperimentVOS1 = new ArrayList<>();
-                List<TStrainReportDetail> collect = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).collect(Collectors.toList());
-                for (TStrainReportDetail tStrainReportDetail : collect) {
-                    if (userIds.contains(tStrainReportDetail.getExperimentId())){
-                        continue;
-                    }
-                    userIds.add(tStrainReportDetail.getExperimentId());
+                List<String> experimentIds = tStrainReportDetails.stream().filter(e ->
+                                e.getEvaluateHumanType().equals(1)
+                                        &&e.getReportType()==1)
+                        .map(TStrainReportDetail::getExperimentId)
+                        .distinct()
+                        .collect(Collectors.toList());
+                List<TStrainReportDetail> tStrainReportDetails2 = tStrainReportDetails.stream()
+                        .filter(e -> e.getEvaluateHumanType().equals(1) && e.getReportType() == 1)
+                        .collect(Collectors.toList());
+                for (String experimentId : experimentIds) {
+                    List<TStrainReportDetail> details = tStrainReportDetails2.stream().filter(e -> e.getExperimentId().equals(experimentId)).collect(Collectors.toList());
+
                     TStrainReportDetailExperimentVO tStrainReportDetailExperimentVO = new TStrainReportDetailExperimentVO();
-                    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()+""))
+                    SysUser sysUser1 = sysUserService.selectUserById(Long.valueOf(experimentId));
+                    tStrainReportDetailExperimentVO.setUserName(sysUser1.getNickName());
+                    tStrainReportDetailExperimentVO.setHandleCount(details.size());
+                    BigDecimal handleIntegral = details.stream()
+                            .filter(e -> e.getEvaluateHumanType().equals(1)
+                                    &&e.getReportType()==1)
                             .map(TStrainReportDetail::getEvaluateTotal)
                             .reduce(BigDecimal::add)
                             .orElse(BigDecimal.ZERO);
                     tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral);
-                    List<TStrainReportDetail> collect9 = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList());
-                    if (!collect9.isEmpty()){
-                        tStrainReportDetailExperimentVO.setHandleEndTime(collect9.get(collect9.size()-1).getCreateTime());
+                    if (!details.isEmpty()){
+                        tStrainReportDetailExperimentVO.setHandleEndTime(details.get(0).getCreateTime());
                     }
-                    tStrainReportDetailExperimentVO.setHandleStartTime(byId.getCreateTime());
+                    tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
                     tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO);
                 }
                 tStrainReportDetailVO.setDetailExperimentVOS(tStrainReportDetailExperimentVOS1);
@@ -376,7 +418,7 @@
         tStrainReportDetail.setEvaluateType(dto.getEvaluateType());
         strainReportDetailService.save(tStrainReportDetail);
         if (dto.getIsDraft()==0){
-            // 新增消息
+            // 新增审批消息
             TNotice tNotice = new TNotice();
             TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId())
                     .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one();
@@ -389,11 +431,8 @@
             noticeService.save(tNotice);
             // 新增消息
             TNotice tNotice1 = new TNotice();
-            TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, dto.getProjectId())
-                    .eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one();
-
             tNotice1.setCommitId(tokenService.getLoginUser().getUserId()+"");
-            tNotice1.setUserId(tProjectTeamStaff.getUserId());
+            tNotice1.setUserId(dto.getExperimentId());
             tNotice1.setStatus(1);
             tNotice1.setNoticeContent("您有【1】条菌种库操作菌种工程师已评定;");
             tNotice1.setDataId(dto.getId());
@@ -481,19 +520,19 @@
         tNotice.setNoticeType(2);
         noticeService.save(tNotice);
 
-            // 新增消息
-            TNotice notice = new TNotice();
-            TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId())
-                    .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one();
+         // 新增消息
+        TNotice notice = new TNotice();
+        TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId())
+                .eq(TProjectTeamStaff::getRoleType, 2).last("limit 1").one();
 
-            notice.setCommitId(tokenService.getLoginUser().getUserId()+"");
-            notice.setUserId(tProjectTeamStaff.getUserId());
-            notice.setStatus(1);
-            String temp=dto.getStatus()==2?"通过":"驳回";
-            notice.setNoticeContent("您有【1】条【菌种报告】【报告库"+strainReport.getReportType()+"】菌种审批人已操作【" +temp+"】");
-            notice.setDataId(dto.getId());
-            notice.setNoticeType(7);
-            noticeService.save(notice);
+        notice.setCommitId(tokenService.getLoginUser().getUserId()+"");
+        notice.setUserId(tProjectTeamStaff.getUserId());
+        notice.setStatus(1);
+        String temp=dto.getStatus()==2?"通过":"驳回";
+        notice.setNoticeContent("您有【1】条【菌种报告】【报告库"+strainReport.getReportType()+"】菌种审批人已操作【" +temp+"】");
+        notice.setDataId(dto.getId());
+        notice.setNoticeType(7);
+        noticeService.save(notice);
         return R.ok();
     }
     /**
@@ -527,8 +566,9 @@
         strainReportDetailService.save(tStrainReportDetail);
         // 新增消息
         TNotice notice = new TNotice();
-        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId())
-                .eq(TProjectTeamStaff::getRoleType, 1).last("limit 1").one();
+        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
+                .eq(TProjectTeamStaff::getTeamId, strainReport.getProjectId())
+                .eq(TProjectTeamStaff::getRoleType, 2).last("limit 1").one();
         notice.setCommitId(tokenService.getLoginUser().getUserId()+"");
         notice.setUserId(projectTeamStaff.getUserId());
         notice.setStatus(1);
@@ -557,6 +597,9 @@
     public R<TStrainReportDetailVO> detail(@RequestParam String id) {
         TStrainReportDetailVO tStrainReportDetailVO = new TStrainReportDetailVO();
         TStrainReport strainReport = strainReportService.getById(id);
+        if (strainReport == null) {
+            return R.fail("报告不存在或已删除");
+        }
         if (strainReport.getAuditId()!=null){
             SysUser sysUser = sysUserService.selectUserById(Long.valueOf(strainReport.getAuditId()));
             if (sysUser!=null){

--
Gitblit v1.7.1