From bd4830badb61f6a888218a663f3d1bc36b8056c8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 23 七月 2025 15:57:06 +0800
Subject: [PATCH] bug修改

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java  |   25 +++++++++++++++++++++----
 ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml                   |    4 +---
 ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml   |    1 -
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java |   21 ++++++++++++++++++---
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSamplingRecordMapper.java             |    2 +-
 ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java               |    3 +++
 6 files changed, 44 insertions(+), 12 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
index 56cea19..367cefc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
@@ -496,9 +496,24 @@
         if (!list.isEmpty()) {
             tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
         }
-        Long count = experimentSchemeService.lambdaQuery().eq(TExperimentScheme::getDispatchId, resultWorkEvaluate.getDispatchId())
-                .eq(TExperimentScheme::getStatus, 3).count();
-        tResultWorkEvaluateDetailVO.setTermination(count.intValue());
+        // 查询项目组总的失败次数
+        String teamId = resultWorkEvaluate.getTeamId();
+        List<String> projectProposalIds = projectProposalService.lambdaQuery().eq(TProjectProposal::getTeamId, teamId).list()
+                .stream().map(TProjectProposal::getId).collect(Collectors.toList());
+        if (projectProposalIds.isEmpty()){
+            tResultWorkEvaluateDetailVO.setTermination(0);
+        }else{
+            List<String> experimentDispatchIds = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, projectProposalIds).list()
+                    .stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+            if (experimentDispatchIds.isEmpty()){
+                tResultWorkEvaluateDetailVO.setTermination(0);
+            }else{
+                Long count = experimentSchemeService.lambdaQuery().in(TExperimentScheme::getDispatchId, experimentDispatchIds)
+                        .eq(TExperimentScheme::getStatus, 3).count();
+                tResultWorkEvaluateDetailVO.setTermination(count.intValue());
+            }
+        }
+
         return R.ok(tResultWorkEvaluateDetailVO);
     }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSamplingRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSamplingRecordMapper.java
index 0fc9160..d3395ca 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSamplingRecordMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSamplingRecordMapper.java
@@ -25,6 +25,6 @@
      * @param pageInfo
      * @return
      */
-    List<TSamplingRecordVO> pageList(@Param("query") TSamplingRecordQuery query, @Param("pageInfo")PageInfo<TSamplingRecordVO> pageInfo);
+    List<TSamplingRecordVO> pageList(@Param("query") TSamplingRecordQuery query);
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
index 3f8bf6d..eb6947f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
@@ -36,4 +36,7 @@
 
     private Integer roleType;
 
+    @ApiModelProperty(value = "取样记录ids 前端忽略")
+    private List<String> ids;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java
index 15ca251..71f3107 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java
@@ -18,6 +18,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -41,15 +42,29 @@
 
     @Override
     public PageInfo<TSamplingRecordVO> pageList(TSamplingRecordQuery query) {
+        List<TSamplingRecordVO> res = new ArrayList<>();
         PageInfo<TSamplingRecordVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         if(CollectionUtils.isEmpty(query.getDispatchIds())){
             return pageInfo;
         }
-        List<TSamplingRecordVO> list = this.baseMapper.pageList(query,pageInfo);
+        List<TSamplingRecordOperation> samplingRecordOperations = samplingRecordOperationMapper.selectList(null);
+        List<TSamplingRecordVO> list = this.baseMapper.pageList(query);
         if(CollectionUtils.isEmpty(list)){
             return pageInfo;
         }
-
+        for (TSamplingRecordVO tSamplingRecordVO : list) {
+            if (query.getRoleType()==5){
+                if (tSamplingRecordVO.getStatus()==2){
+                    List<TSamplingRecordOperation> samplingRecordOperationsIds = samplingRecordOperations.stream().filter(e -> e.getSamplingId().equals(tSamplingRecordVO.getId())).collect(Collectors.toList());
+                    // 如果samplingRecordOperationsIds的状态全部都为3
+                    if(!samplingRecordOperationsIds.stream().allMatch(e -> e.getStatus() == 3)){
+                        res.add(tSamplingRecordVO);
+                    }
+                }
+            }else{
+                res.add(tSamplingRecordVO);
+            }
+        }
         List<String> recordIds = list.stream().map(TSamplingRecordVO::getId).collect(Collectors.toList());
         List<TSamplingRecordOperation> recordOperationList = samplingRecordOperationMapper.selectList(Wrappers.lambdaQuery(TSamplingRecordOperation.class)
                 .in(TSamplingRecordOperation::getSamplingId, recordIds));
@@ -79,8 +94,10 @@
                 tSamplingRecordVO.setTesterNames(experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(",")));
             }
         }
-
-        pageInfo.setRecords(list);
+        // 手动对res进行分页
+        res = res.stream().skip((long) (query.getPageNum() - 1) * query.getPageSize()).limit(query.getPageSize()).collect(Collectors.toList());
+        pageInfo.setTotal(res.size());
+        pageInfo.setRecords(res);
         return pageInfo;
     }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
index 0c9a0dd..d3b84ff 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
@@ -56,9 +56,7 @@
             <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                 AND tsr.status != 3
             </if>
-            <if test="query.roleType != null and query.roleType == 5">
-                AND tsr.status != 2
-            </if>
+
             <if test="query.status == null">
                 and tsr.status != -1
             </if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
index a574ae6..5712da7 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
@@ -59,7 +59,6 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND ttmcso.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
-            AND ttmcso.status != -1
             AND ttmcso.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
         ORDER BY ttmcso.create_time DESC

--
Gitblit v1.7.1