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 |   50 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 30 insertions(+), 20 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 e75c5d4..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;
@@ -202,7 +196,8 @@
         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
@@ -258,12 +253,15 @@
         }
         tStrainReportDetailVO.setStartTime(project.getCreateTime());
         TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, project.getId())
-                .eq(TProjectTeamStaff::getRoleType, 2).one();
+                .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()!=null&&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()+"")
                             &&e.getReportType()==1)
@@ -272,9 +270,12 @@
                     .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.setHandleEndTime(strainReportDetails.get(strainReportDetails.size()-1).getCreateTime());
+                tStrainReportDetailExperimentVO.setHandleEndTime(strainReportDetails.get(0).getCreateTime());
             }
             tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
             tStrainReportDetailExperimentVOS.add(tStrainReportDetailExperimentVO);
@@ -305,14 +306,18 @@
                     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(tStrainReportDetail.getExperimentId())
+                                    && e.getReportType()==1)
                             .map(TStrainReportDetail::getEvaluateTotal)
                             .reduce(BigDecimal::add)
                             .orElse(BigDecimal.ZERO);
                     tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral);
-                    List<TStrainReportDetail> reportDetails = collect.stream().filter(e -> e.getExperimentId().equals(sysUser.getUserId()+"")).collect(Collectors.toList());
+                    List<TStrainReportDetail> reportDetails = collect.stream()
+                            .filter(e -> e.getExperimentId().equals(tStrainReportDetail.getExperimentId()))
+                            .collect(Collectors.toList());
                     if (!reportDetails.isEmpty()){
-                        tStrainReportDetailExperimentVO.setHandleEndTime(reportDetails.get(reportDetails.size()-1).getCreateTime());
+                        tStrainReportDetailExperimentVO.setHandleEndTime(reportDetails.get(0).getCreateTime());
                     }
                     tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
                     tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO);
@@ -327,7 +332,7 @@
                 tStrainReportDetailEngineerVO.setInnovateIntegral(reportDetails.stream().filter(e->e.getEvaluateType()!=null&&e.getEvaluateType().equals(1)).map(TStrainReportDetail::getEvaluateTotal).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
                 List<TStrainReportDetail> tStrainReportDetails1 = reportDetails.stream().filter(e ->e.getEvaluateType()!=null&& e.getEvaluateType().equals(1)).collect(Collectors.toList());
                 if (!tStrainReportDetails1.isEmpty()){
-                    tStrainReportDetailEngineerVO.setInnovateEndTime(tStrainReportDetails1.get(tStrainReportDetails1.size()-1).getCreateTime());
+                    tStrainReportDetailEngineerVO.setInnovateEndTime(tStrainReportDetails1.get(0).getCreateTime());
                 }
                 tStrainReportDetailEngineerVO.setInnovateStartTime(project.getCreateTime());
 
@@ -335,7 +340,7 @@
                 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.setRegulationEndTime(collect4.get(collect4.size()-1).getCreateTime());
+                    tStrainReportDetailEngineerVO.setRegulationEndTime(collect4.get(0).getCreateTime());
                 }
                 tStrainReportDetailEngineerVO.setRegulationStartTime(project.getCreateTime());
 
@@ -343,7 +348,7 @@
                 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.setHandleEndTime(reportDetailList.get(reportDetailList.size()-1).getCreateTime());
+                    tStrainReportDetailEngineerVO.setHandleEndTime(reportDetailList.get(0).getCreateTime());
                 }
                 tStrainReportDetailEngineerVO.setHandleStartTime(project.getCreateTime());
 
@@ -356,7 +361,9 @@
                         .map(TStrainReportDetail::getExperimentId)
                         .distinct()
                         .collect(Collectors.toList());
-                List<TStrainReportDetail> tStrainReportDetails2 = tStrainReportDetails.stream().filter(e -> e.getEvaluateHumanType().equals(1)).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());
 
@@ -371,8 +378,8 @@
                             .reduce(BigDecimal::add)
                             .orElse(BigDecimal.ZERO);
                     tStrainReportDetailExperimentVO.setHandleIntegral(handleIntegral);
-                    if (!tStrainReportDetails2.isEmpty()){
-                        tStrainReportDetailExperimentVO.setHandleEndTime(details.get(details.size()-1).getCreateTime());
+                    if (!details.isEmpty()){
+                        tStrainReportDetailExperimentVO.setHandleEndTime(details.get(0).getCreateTime());
                     }
                     tStrainReportDetailExperimentVO.setHandleStartTime(project.getCreateTime());
                     tStrainReportDetailExperimentVOS1.add(tStrainReportDetailExperimentVO);
@@ -590,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