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 |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

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 d36b721..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
@@ -3,8 +3,12 @@
 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.core.domain.entity.SysUser;
+import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper;
 import com.ruoyi.system.mapper.TSamplingRecordMapper;
 import com.ruoyi.system.mapper.TSamplingRecordOperationMapper;
+import com.ruoyi.system.model.TExperimentDispatchParticipants;
 import com.ruoyi.system.model.TSamplingRecord;
 import com.ruoyi.system.model.TSamplingRecordOperation;
 import com.ruoyi.system.query.TSamplingRecordQuery;
@@ -14,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;
 
@@ -30,15 +35,36 @@
 
     @Autowired
     private TSamplingRecordOperationMapper samplingRecordOperationMapper;
+    @Autowired
+    private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
+    @Autowired
+    private SysUserMapper sysUserMapper;
 
     @Override
     public PageInfo<TSamplingRecordVO> pageList(TSamplingRecordQuery query) {
+        List<TSamplingRecordVO> res = new ArrayList<>();
         PageInfo<TSamplingRecordVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
-        List<TSamplingRecordVO> list = this.baseMapper.pageList(query,pageInfo);
+        if(CollectionUtils.isEmpty(query.getDispatchIds())){
+            return 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));
@@ -49,7 +75,29 @@
             item.setReceivedCount(recordOperationList.stream().filter(recordOperation -> recordOperation.getSamplingId().equals(item.getId()) && recordOperation.getStatus() == 3).count());
         });
 
-        pageInfo.setRecords(list);
+        // 查询实验调度参与实验员
+        List<String> dispatchIds = list.stream().map(TSamplingRecordVO::getDispatchId).collect(Collectors.toList());
+        List<TExperimentDispatchParticipants> teamStaffs = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds)
+                .eq(TExperimentDispatchParticipants::getRoleType, 5));
+        List<Long> userIds = teamStaffs.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        teamStaffs.stream().forEach(teamStaff -> {
+            sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(teamStaff.getUserId())).findFirst().ifPresent(sysUser -> {
+                teamStaff.setNickName(sysUser.getNickName());
+            });
+        });
+
+        for (TSamplingRecordVO tSamplingRecordVO : list) {
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = teamStaffs.stream().filter(teamStaff -> teamStaff.getDispatchId().equals(tSamplingRecordVO.getDispatchId())).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                tSamplingRecordVO.setTesterNames(experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(",")));
+            }
+        }
+        // 手动对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;
     }
 }

--
Gitblit v1.7.1