From 1a2e22a27627b40689257442cc5a46598c634f8e Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 23 五月 2025 14:16:28 +0800
Subject: [PATCH] 测评接口完成,添加数据权限

---
 ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetTermDataMapper.xml               |    3 
 ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml                           |   12 
 ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml                             |    2 
 ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml                               |   14 
 ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml               |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java             |  144 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java                               |   12 
 ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml                       |    2 
 ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml                             |   33 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java                   |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java         |   20 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java             |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java                   |   30 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java            |   23 +
 ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml                              |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java                 |   14 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                                 |    2 
 ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml                       |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java                     |   52 ++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java                       |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java                            |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheetOriginalData.java            |   12 
 ruoyi-system/src/main/resources/mapper/system/TQaProduceReportMapper.xml                              |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java               |   53 ++
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                       |   19 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/TResultWorkEvaluateDTO.java                           |   10 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java                     |    9 
 ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml                             |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java      |   84 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java                       |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java                         |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java         |  118 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java                           |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java               |   26 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java          |   17 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java                     |   35 +
 ruoyi-system/src/main/resources/mapper/system/TProjectApprovalReportMapper.xml                        |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java                       |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java                              |   10 
 ruoyi-system/src/main/resources/mapper/system/TQaTestItemMapper.xml                                   |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java                 |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java                         |   16 
 ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml                       |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java               |   27 +
 ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml                           |  140 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                      |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java                             |   13 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java          |   79 +++
 49 files changed, 1,056 insertions(+), 109 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
index 446ec6e..9d43ce7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
@@ -8,7 +8,6 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.ExperimentDispatchSignDTO;
 import com.ruoyi.system.dto.TExperimentDispatchDTO;
@@ -21,7 +20,6 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -75,6 +73,19 @@
     @PostMapping(value = "/api/t-experiment-dispatch/pageList")
     public R<PageInfo<TExperimentDispatchVO>> pageList(@RequestBody String param) {
         TExperimentDispatchQuery query = JSON.parseObject(param, TExperimentDispatchQuery.class);
+        // 获取当前用户
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if (roleType != 1){
+            query.setUserId(userId);
+            // 查询实验参与人员
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getUserId, userId));
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
+                query.setDispatchIds(dispatchIds);
+            }
+        }
         return R.ok(experimentDispatchService.pageList(query));
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java
index 6dcec42..fe7529b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java
@@ -6,20 +6,26 @@
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.TExperimentResultReportDTO;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.TExperimentResultReportQuery;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.TExperimentDispatchVO;
 import com.ruoyi.system.vo.TExperimentResultReportVO;
+import com.ruoyi.system.vo.TExperimentSchemeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -38,21 +44,29 @@
     private final TExperimentResultReportService experimentResultReportService;
     private final TokenService tokenService;
     private final ISysUserService sysUserService;
+    private final SysUserMapper sysUserMapper;
     private final TResultWorkEvaluateService resultWorkEvaluateService;
     private final TExperimentSchemeService experimentSchemeService;
     private final TInspectionReportService inspectionReportService;
     private final TProjectTeamStaffService projectTeamStaffService;
+    private final TProjectTeamService projectTeamService;
     private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
+    private final TExperimentDispatchService experimentDispatchService;
+    private final TProjectProposalService projectProposalService;
     @Autowired
-    public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService) {
+    public TExperimentResultReportController(TExperimentResultReportService experimentResultReportService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TResultWorkEvaluateService resultWorkEvaluateService, TExperimentSchemeService experimentSchemeService, TInspectionReportService inspectionReportService, TProjectTeamStaffService projectTeamStaffService, TProjectTeamService projectTeamService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService) {
         this.experimentResultReportService = experimentResultReportService;
         this.tokenService = tokenService;
         this.sysUserService = sysUserService;
+        this.sysUserMapper = sysUserMapper;
         this.resultWorkEvaluateService = resultWorkEvaluateService;
         this.experimentSchemeService = experimentSchemeService;
         this.inspectionReportService = inspectionReportService;
         this.projectTeamStaffService = projectTeamStaffService;
+        this.projectTeamService = projectTeamService;
         this.experimentDispatchParticipantsService = experimentDispatchParticipantsService;
+        this.experimentDispatchService = experimentDispatchService;
+        this.projectProposalService = projectProposalService;
     }
 
     /**
@@ -132,7 +146,7 @@
         experimentResultReportService.updateById(dto);
         // 修改实验结果工作评价
         List<TResultWorkEvaluate> resultWorkEvaluates = dto.getResultWorkEvaluates();
-        resultWorkEvaluateService.updateBatchById(resultWorkEvaluates);
+        resultWorkEvaluateService.saveOrUpdateBatch(resultWorkEvaluates);
         return R.ok();
     }
 
@@ -141,11 +155,36 @@
      */
     //@PreAuthorize("@ss.hasPermi('system:experimentResultReport:edit')")
     @Log(title = "实验结果汇报信息-评定工艺工程师实验", businessType = BusinessType.UPDATE)
-    @ApiOperation(value = "评定工艺工程师实验")
+    @ApiOperation(value = "评定工艺工程师实验",response = TResultWorkEvaluate.class)
     @PostMapping(value = "/api/t-experiment-result-report/evaluateProcess")
     public R<Boolean> evaluateProcess(@RequestBody String param) {
         TResultWorkEvaluate resultWorkEvaluate = JSON.parseObject(param,TResultWorkEvaluate.class);
+        Long userId = tokenService.getLoginUser().getUserId();
+        resultWorkEvaluate.setEvaluatePersonId(userId);
+        resultWorkEvaluate.setEvaluateTime(LocalDateTime.now());
+        resultWorkEvaluate.setStatus(1);
+        resultWorkEvaluate.setEvaluateType(1);
+        // 查询当前用户组
+        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                .eq(TProjectTeamStaff::getUserId, userId)
+                .last("LIMIT 1"));
+        if(Objects.isNull(projectTeamStaff)){
+            return R.fail("当前用户未分配项目组,无法进行评定");
+        }
+        TProjectTeamStaff projectTeamStaff1 = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                .eq(TProjectTeamStaff::getTeamId, projectTeamStaff.getTeamId())
+                .eq(TProjectTeamStaff::getRoleType, 3)
+                .last("LIMIT 1"));
+        if(Objects.isNull(projectTeamStaff1)){
+            return R.fail("当前项目组未分配工艺工程师,无法进行评定");
+        }
+        resultWorkEvaluate.setUserId(projectTeamStaff1.getUserId());
+        resultWorkEvaluate.setTeamId(projectTeamStaff.getTeamId());
         resultWorkEvaluateService.save(resultWorkEvaluate);
+        // 查询实验结果汇报
+        TExperimentResultReport experimentResultReport = experimentResultReportService.getById(resultWorkEvaluate.getResultReportId());
+        experimentResultReport.setStatus(3);
+        experimentResultReportService.updateById(experimentResultReport);
         return R.ok();
     }
 
@@ -164,13 +203,31 @@
                 .eq(TResultWorkEvaluate::getResultReportId, id));
         experimentResultReportVO.setResultWorkEvaluates(resultWorkEvaluates);
         // 查询实验结果列表
-        List<TExperimentScheme> experimentSchemes = experimentSchemeService.list(Wrappers.lambdaQuery(TExperimentScheme.class)
-                .eq(TExperimentScheme::getDispatchId, experimentResultReport.getDispatchId()));
-        experimentResultReportVO.setExperimentSchemes(experimentSchemes);
+        List<TExperimentSchemeVO> experimentSchemes = experimentSchemeService.getList(experimentResultReport.getDispatchId());
+        experimentResultReportVO.setExperimentSchemeVOS(experimentSchemes);
         // 查询检验报告列表
         List<TInspectionReport> inspectionReports = inspectionReportService.list(Wrappers.lambdaQuery(TInspectionReport.class)
                 .eq(TInspectionReport::getDispatchId, experimentResultReport.getDispatchId()));
         experimentResultReportVO.setInspectionReports(inspectionReports);
+        // 获取实验参与人员
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, experimentResultReport.getDispatchId()));
+        experimentResultReportVO.setExperimentDispatchParticipants(experimentDispatchParticipants);
+        // 查询实验调度
+        TExperimentDispatch experimentDispatch = experimentDispatchService.getById(experimentResultReport.getDispatchId());
+        TExperimentDispatchVO experimentDispatchVO = new TExperimentDispatchVO();
+        BeanUtils.copyProperties(experimentDispatch, experimentDispatchVO);
+        // 查询项目课题
+        TProjectProposal proposal = projectProposalService.getById(experimentDispatch.getProposalId());
+        experimentDispatchVO.setProjectName(proposal.getProjectName());
+        // 查询参与人员
+        List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, experimentResultReport.getDispatchId()));
+        List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        String participantsName = sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
+        experimentDispatchVO.setParticipantsName(participantsName);
+        experimentResultReportVO.setExperimentDispatchVO(experimentDispatchVO);
         return R.ok(experimentResultReportVO);
     }
 
@@ -196,5 +253,54 @@
         return R.ok(experimentResultReportService.removeByIds(ids));
     }
 
+    /**
+     * 通过实验调度id获取实验结果、检验结果、评价信息、参与人员信息
+     */
+    //@PreAuthorize("@ss.hasPermi('system:experimentResultReport:detail')")
+    @ApiOperation(value = "通过实验调度id获取实验结果、检验结果、评价信息、参与人员信息")
+    @GetMapping(value = "/open/t-experiment-result-report/getOtherInfoByDispatchId")
+    public R<TExperimentResultReportVO> getOtherInfoByDispatchId(@RequestParam String dispatchId) {
+        TExperimentResultReportVO experimentResultReportVO = new TExperimentResultReportVO();
+        // 获取评分列表
+        List<TResultWorkEvaluate> resultWorkEvaluates = resultWorkEvaluateService.list(Wrappers.lambdaQuery(TResultWorkEvaluate.class)
+                .eq(TResultWorkEvaluate::getDispatchId, dispatchId));
+        experimentResultReportVO.setResultWorkEvaluates(resultWorkEvaluates);
+        // 查询实验结果列表
+        List<TExperimentSchemeVO> experimentSchemeVOS = experimentSchemeService.getList(dispatchId);
+        experimentResultReportVO.setExperimentSchemeVOS(experimentSchemeVOS);
+        // 查询检验报告列表
+        List<TInspectionReport> inspectionReports = inspectionReportService.list(Wrappers.lambdaQuery(TInspectionReport.class)
+                .eq(TInspectionReport::getDispatchId, dispatchId));
+        experimentResultReportVO.setInspectionReports(inspectionReports);
+        // 获取实验参与人员
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId));
+        // 设置nickName
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        experimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> {
+            SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null);
+            if(sysUser != null){
+                tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
+                tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar());
+            }
+        });
+        experimentResultReportVO.setExperimentDispatchParticipants(experimentDispatchParticipants);
+        return R.ok(experimentResultReportVO);
+    }
+
+    /**
+     * 提交接口
+     */
+    //@PreAuthorize("@ss.hasPermi('system:experimentResultReport:detail')")
+    @ApiOperation(value = "提交接口")
+    @GetMapping(value = "/open/t-experiment-result-report/commit")
+    public R<TExperimentResultReportVO> commit(@RequestParam String id) {
+        TExperimentResultReport experimentResultReport = experimentResultReportService.getById(id);
+        experimentResultReport.setStatus(2);
+        experimentResultReportService.updateById(experimentResultReport);
+        return R.ok();
+    }
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
index 9073e78..9a46fdc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
@@ -72,6 +72,19 @@
     @PostMapping(value = "/api/t-experiment-scheme/pageList")
     public R<PageInfo<TExperimentSchemeVO>> pageList(@RequestBody String param) {
         TExperimentSchemeQuery query = JSON.parseObject(param, TExperimentSchemeQuery.class);
+        // 获取当前用户
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if (roleType != 1){
+            query.setUserId(userId);
+            // 查询实验参与人员
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getUserId, userId));
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
+                query.setDispatchIds(dispatchIds);
+            }
+        }
         return R.ok(experimentSchemeService.pageList(query));
     }
     /**
@@ -82,6 +95,19 @@
     @PostMapping(value = "/api/t-experiment-scheme/auditPageList")
     public R<PageInfo<TExperimentSchemeVO>> auditPageList(@RequestBody String param) {
         TExperimentSchemeQuery query = JSON.parseObject(param, TExperimentSchemeQuery.class);
+        // 获取当前用户
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if (roleType != 1){
+            query.setUserId(userId);
+            // 查询实验参与人员
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getUserId, userId));
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
+                query.setDispatchIds(dispatchIds);
+            }
+        }
         return R.ok(experimentSchemeService.auditPageList(query));
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
index 48647b2..eaecd3c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
@@ -2,25 +2,31 @@
 
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.TInspectionReportDTO;
+import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.system.model.TExperimentDispatch;
+import com.ruoyi.system.model.TExperimentDispatchParticipants;
 import com.ruoyi.system.model.TInspectionReport;
+import com.ruoyi.system.model.TProjectProposal;
 import com.ruoyi.system.query.TInspectionReportQuery;
-import com.ruoyi.system.service.ISysUserService;
-import com.ruoyi.system.service.TInspectionReportService;
+import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.TInspectionReportVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,13 +42,21 @@
 public class TInspectionReportController {
 
     private final TInspectionReportService inspectionReportService;
+    private final TExperimentDispatchService experimentDispatchService;
+    private final TProjectProposalService projectProposalService;
+    private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
     private final TokenService tokenService;
     private final ISysUserService sysUserService;
+    private final SysUserMapper sysUserMapper;
     @Autowired
-    public TInspectionReportController(TInspectionReportService inspectionReportService, TokenService tokenService, ISysUserService sysUserService) {
+    public TInspectionReportController(TInspectionReportService inspectionReportService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper) {
         this.inspectionReportService = inspectionReportService;
+        this.experimentDispatchService = experimentDispatchService;
+        this.projectProposalService = projectProposalService;
+        this.experimentDispatchParticipantsService = experimentDispatchParticipantsService;
         this.tokenService = tokenService;
         this.sysUserService = sysUserService;
+        this.sysUserMapper = sysUserMapper;
     }
 
     /**
@@ -92,6 +106,22 @@
         TInspectionReport inspectionReport = inspectionReportService.getById(id);
         TInspectionReportVO inspectionReportVO = new TInspectionReportVO();
         BeanUtils.copyProperties(inspectionReport, inspectionReportVO);
+        // 查询实验调度
+        TExperimentDispatch experimentDispatch = experimentDispatchService.getById(inspectionReportVO.getDispatchId());
+        // 查询项目课题
+        TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
+        experimentDispatch.setProjectName(projectProposal.getProjectName());
+        // 查询实验调度人员
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, inspectionReportVO.getDispatchId()));
+        // 将参与人员名字拼接
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        if(!CollectionUtils.isEmpty(sysUsers)){
+            String nickNames = sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(","));
+            experimentDispatch.setParticipantsName(nickNames);
+        }
+        inspectionReportVO.setExperimentDispatch(experimentDispatch);
         return R.ok(inspectionReportVO);
     }
 
@@ -117,5 +147,20 @@
         return R.ok(inspectionReportService.removeByIds(ids));
     }
 
+    /**
+     * 提交检验报告
+     */
+    //@PreAuthorize("@ss.hasPermi('system:inspectionReport:commit')")
+    @Log(title = "检验报告信息-提交检验报告", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "提交检验报告")
+    @PutMapping(value = "/open/t-inspection-report/commit")
+    public R<Boolean> commit(@RequestParam(value = "id") String id) {
+        // 修改状态为已提交
+        TInspectionReport inspectionReport = inspectionReportService.getById(id);
+        inspectionReport.setStatus(2);
+        inspectionReportService.updateById(inspectionReport);
+        return R.ok();
+    }
+
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
index abfce32..c506e97 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectApprovalReportController.java
@@ -10,7 +10,6 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.FeasibilityReportFileEnum;
 import com.ruoyi.common.enums.ProjectApprovalReportStatusEnum;
-import com.ruoyi.common.enums.StudyReportTypeEnum;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.AuditStatusDTO;
 import com.ruoyi.system.dto.TProjectApprovalReportDTO;
@@ -115,12 +114,12 @@
             return R.fail("项目组已封存,无法创建项目课题方案");
         }
         // 生成可研、可行、工艺开发工具、验证发布报告编号
-        String reportCode = projectTeam.getTeamName() + "-" + StudyReportTypeEnum.VERIFICATION_RELEASE.getCode();
-        // 查询上个项目课题方案的序号
-        long count = projectApprovalReportService.count(Wrappers.lambdaQuery(TProjectApprovalReport.class)
-                .like(TProjectApprovalReport::getReportCode, reportCode));
-        reportCode = reportCode + "-" + String.format("%03d", count+1);
-        dto.setReportCode(reportCode);
+//        String reportCode = projectTeam.getTeamName() + "-" + StudyReportTypeEnum.VERIFICATION_RELEASE.getCode();
+//        // 查询上个项目课题方案的序号
+//        long count = projectApprovalReportService.count(Wrappers.lambdaQuery(TProjectApprovalReport.class)
+//                .like(TProjectApprovalReport::getReportCode, reportCode));
+//        reportCode = reportCode + "-" + String.format("%03d", count+1);
+//        dto.setReportCode(reportCode);
 
         projectApprovalReportService.save(dto);
         // 添加检测报告文件
@@ -130,8 +129,8 @@
                 feasibilityReportFile.setReportId(dto.getId());
                 feasibilityReportFile.setReportType(FeasibilityReportFileEnum.PROJECT_PROPOSAL.getCode());
             }
+            feasibilityReportFileService.saveBatch(feasibilityReportFiles);
         }
-        feasibilityReportFileService.saveBatch(feasibilityReportFiles);
         return R.ok();
     }
 
@@ -154,8 +153,8 @@
                 feasibilityReportFile.setReportId(dto.getId());
                 feasibilityReportFile.setReportType(FeasibilityReportFileEnum.PROJECT_PROPOSAL.getCode());
             }
+            feasibilityReportFileService.saveBatch(feasibilityReportFiles);
         }
-        feasibilityReportFileService.saveBatch(feasibilityReportFiles);
         return R.ok();
     }
 
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 5b6ada6..038ecc9 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
@@ -12,15 +12,16 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.TQaTestItemDTO;
+import com.ruoyi.system.dto.TResultWorkEvaluateDTO;
 import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
+import com.ruoyi.system.query.TProjectApprovalReportQuery;
 import com.ruoyi.system.query.TQaTestItemReportQuery;
 import com.ruoyi.system.query.TResultWorkEvaluateQuery;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.models.auth.In;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -28,7 +29,6 @@
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -41,7 +41,7 @@
  */
 @Api(tags = "实验结果工作评定管理")
 @RestController
-@RequestMapping("/t-result-work-evaluate")
+@RequestMapping("")
 public class TResultWorkEvaluateController {
     @Resource
     private TResultWorkEvaluateService tResultWorkEvaluateService;
@@ -66,30 +66,138 @@
     private TQaProduceReportService qaProduceReportService;
     @Resource
     private TQaTestItemService qaTestItemService;
-    private final TProjectTeamService projectTeamService;
-    private final TProjectTeamStaffService projectTeamStaffService;
-    private final ISysUserService sysUserService;
-
     @Autowired
-    public TResultWorkEvaluateController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) {
-        this.projectTeamService = projectTeamService;
-        this.projectTeamStaffService = projectTeamStaffService;
-        this.sysUserService = sysUserService;
+    private TProjectTeamService projectTeamService;
+    @Autowired
+    private TProjectTeamStaffService projectTeamStaffService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
+
+    /**
+     * 获取化验师工作评定分页列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
+    @ApiOperation(value = "获取化验师工作评定分页列表",response = TResultWorkEvaluateQuery.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/chemistEvaluateList")
+    public R<PageInfo<TResultWorkEvaluateVO>> chemistEvaluateList(@RequestBody String param) {
+        TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if(roleType != 1){
+            // 查询用户所在项目组
+            List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                    .eq(TProjectTeamStaff::getUserId, userId));
+            if(projectTeamStaffs.size() > 0){
+                // 查询项目组id
+                List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
+                query.setTeamIds(teamIds);
+            }
+        }
+        return R.ok(tResultWorkEvaluateService.chemistEvaluateList(query));
     }
 
     /**
-     * 添加QA检测项管理管理
+     * 获取实验员工作评定分页列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
+    @ApiOperation(value = "获取实验员工作评定分页列表",response = TProjectApprovalReportQuery.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/testerEvaluateList")
+    public R<PageInfo<TResultWorkEvaluateVO>> testerEvaluateList(@RequestBody String param) {
+        TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if(roleType != 1){
+            // 查询用户所在项目组
+            List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                    .eq(TProjectTeamStaff::getUserId, userId));
+            if(projectTeamStaffs.size() > 0){
+                // 查询项目组id
+                List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
+                query.setTeamIds(teamIds);
+            }
+        }
+        return R.ok(tResultWorkEvaluateService.testerEvaluateList(query));
+    }
+
+    /**
+     * 新增化验师、实验员工作评定
      */
     //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
-    @Log(title = "QA检测项管理信息-新增QA检测项管理", businessType = BusinessType.INSERT)
-    @ApiOperation(value = "添加QA检测项管理", response = TQaTestItemDTO.class)
-    @PostMapping(value = "/api/t-qa-test-item/add")
+    @Log(title = "实验结果工作评定管理-新增化验师、实验员工作评定", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增化验师、实验员工作评定", response = TQaTestItemDTO.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/add")
     public R<Boolean> add(@RequestBody String param) {
-        TQaTestItemDTO dto = JSON.parseObject(param, TQaTestItemDTO.class);
-//        resultWorkEvaluateService.save(dto);
+        TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
+        tResultWorkEvaluateService.save(dto);
         return R.ok();
     }
 
+    /**
+     * 查询可评定的化验师
+     */
+    @ApiOperation(value = "查询可评定的化验师")
+    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateChemist")
+    public R<List<SysUser>> getEvaluateChemist(@RequestParam(value = "nickName",required = false) String nickName,
+                                         @RequestParam(value = "dispatchId") String dispatchId) {
+        // 查询参与的化验师
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
+                .eq(TExperimentDispatchParticipants::getRoleType, 4));
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        if(StringUtils.hasLength(nickName)){
+            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
+            return R.ok(sysUsers);
+        }
+        return R.ok();
+    }
+    /**
+     * 查询可评定的实验员
+     */
+    @ApiOperation(value = "查询可评定的实验员")
+    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateTester")
+    public R<List<SysUser>> getEvaluateTester(@RequestParam(value = "nickName",required = false) String nickName,
+                                               @RequestParam(value = "dispatchId") String dispatchId) {
+        // 查询参与的化验师
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
+                .eq(TExperimentDispatchParticipants::getRoleType, 5));
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        if(StringUtils.hasLength(nickName)){
+            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
+            return R.ok(sysUsers);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 查询化验师评定列表
+     */
+    @ApiOperation(value = "查询化验师评定列表-化验师使用")
+    @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateChemistPageList")
+    public R<PageInfo<ResultEvaluateChemistTesterVO>> getEvaluateChemistPageList(@RequestBody String param) {
+        ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
+        // 获取当前用户id
+        Long userId = tokenService.getLoginUser().getUserId();
+        query.setUserId(userId);
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = tResultWorkEvaluateService.getEvaluateChemistPageList(query);
+        return R.ok(pageInfo);
+    }
+    /**
+     * 查询实验员评定列表
+     */
+    @ApiOperation(value = "查询实验员评定列表-实验员使用")
+    @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateTesterPageList")
+    public R<PageInfo<ResultEvaluateChemistTesterVO>> getEvaluateTesterPageList(@RequestBody String param) {
+        ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
+        // 获取当前用户id
+        Long userId = tokenService.getLoginUser().getUserId();
+        query.setUserId(userId);
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = tResultWorkEvaluateService.getEvaluateTesterPageList(query);
+        return R.ok(pageInfo);
+    }
+
 
     @ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TQaTestItemReportQuery.class)
     @PostMapping(value = "/api/t-result-work-evaluate/pageList")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
index 26e8cca..75fdb63 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
@@ -22,6 +22,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.SimpleDateFormat;
@@ -76,6 +77,19 @@
     @PostMapping(value = "/api/t-sampling-record/pageList")
     public R<PageInfo<TSamplingRecordVO>> pageList(@RequestBody String param) {
         TSamplingRecordQuery query = JSON.parseObject(param, TSamplingRecordQuery.class);
+        // 获取当前用户
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if (roleType != 1){
+            query.setUserId(userId);
+            // 查询实验参与人员
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getUserId, userId));
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
+                query.setDispatchIds(dispatchIds);
+            }
+        }
         return R.ok(samplingRecordService.pageList(query));
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
index 526e9e1..912a3e3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
@@ -19,16 +19,13 @@
 import com.ruoyi.system.vo.TTestMethodConfirmSheetVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -56,8 +53,9 @@
     private final TProjectTeamStaffService projectTeamStaffService;
     private final TExperimentDispatchService experimentDispatchService;
     private final TProjectProposalService projectProposalService;
+    private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
     @Autowired
-    public TTestMethodConfirmSheetController(TTestMethodConfirmSheetService testMethodConfirmSheetService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService) {
+    public TTestMethodConfirmSheetController(TTestMethodConfirmSheetService testMethodConfirmSheetService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService) {
         this.testMethodConfirmSheetService = testMethodConfirmSheetService;
         this.tokenService = tokenService;
         this.sysUserService = sysUserService;
@@ -68,6 +66,7 @@
         this.projectTeamStaffService = projectTeamStaffService;
         this.experimentDispatchService = experimentDispatchService;
         this.projectProposalService = projectProposalService;
+        this.experimentDispatchParticipantsService = experimentDispatchParticipantsService;
     }
 
     /**
@@ -78,6 +77,19 @@
     @PostMapping(value = "/api/t-test-method-confirm-sheet/pageList")
     public R<PageInfo<TTestMethodConfirmSheetVO>> pageList(@RequestBody String param) {
         TTestMethodConfirmSheetQuery query = JSON.parseObject(param, TTestMethodConfirmSheetQuery.class);
+        // 获取当前用户
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if (roleType != 1){
+            query.setUserId(userId);
+            // 查询实验参与人员
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getUserId, userId));
+            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
+                List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
+                query.setDispatchIds(dispatchIds);
+            }
+        }
         return R.ok(testMethodConfirmSheetService.pageList(query));
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
index b4f0732..9a119aa 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
@@ -17,12 +17,12 @@
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.TTestMethodConfirmSheetOriginalDataService;
 import com.ruoyi.system.service.TTestMethodConfirmSheetOriginalService;
+import com.ruoyi.system.service.TTestMethodConfirmSheetTermService;
 import com.ruoyi.system.vo.TTestMethodConfirmSheetOriginalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -45,13 +45,15 @@
     private final SysUserMapper sysUserMapper;
     private final TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService;
     private final TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService;
+    private final TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService;
     @Autowired
-    public TTestMethodConfirmSheetOriginalController(TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService) {
+    public TTestMethodConfirmSheetOriginalController(TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService) {
         this.tokenService = tokenService;
         this.sysUserService = sysUserService;
         this.sysUserMapper = sysUserMapper;
         this.testMethodConfirmSheetOriginalService = testMethodConfirmSheetOriginalService;
         this.testMethodConfirmSheetOriginalDataService = testMethodConfirmSheetOriginalDataService;
+        this.testMethodConfirmSheetTermService = testMethodConfirmSheetTermService;
     }
 
     /**
@@ -91,14 +93,18 @@
     @ApiOperation(value = "查看检验方法确认单详情")
     @GetMapping(value = "/open/t-test-method-confirm-sheet-original/getDetailById")
     public R<TTestMethodConfirmSheetOriginalVO> getDetailById(@RequestParam String id) {
-        TTestMethodConfirmSheetOriginal testMethodConfirmSheet = testMethodConfirmSheetOriginalService.getById(id);
-        TTestMethodConfirmSheetOriginalVO testMethodConfirmSheetVO = new TTestMethodConfirmSheetOriginalVO();
-        BeanUtils.copyProperties(testMethodConfirmSheet, testMethodConfirmSheetVO);
+        TTestMethodConfirmSheetOriginal testMethodConfirmSheetOriginal = testMethodConfirmSheetOriginalService.getById(id);
+        TTestMethodConfirmSheetOriginalVO testMethodConfirmSheetOriginalVO = new TTestMethodConfirmSheetOriginalVO();
+        BeanUtils.copyProperties(testMethodConfirmSheetOriginal, testMethodConfirmSheetOriginalVO);
+
+        // 查询检测项数据
+        TTestMethodConfirmSheetTerm testMethodConfirmSheetTerm = testMethodConfirmSheetTermService.getById(testMethodConfirmSheetOriginal.getTermId());
+        testMethodConfirmSheetOriginalVO.setTestMethodConfirmSheetTerm(testMethodConfirmSheetTerm);
 
         // 查询检测数据
         List<TTestMethodConfirmSheetOriginalData> testMethodConfirmSheetOriginalDataList = testMethodConfirmSheetOriginalDataService.list(Wrappers.lambdaQuery(TTestMethodConfirmSheetOriginalData.class).eq(TTestMethodConfirmSheetOriginalData::getOriginalId, id));
-        testMethodConfirmSheetVO.setTestMethodConfirmSheetOriginalDataList(testMethodConfirmSheetOriginalDataList);
-        return R.ok(testMethodConfirmSheetVO);
+        testMethodConfirmSheetOriginalVO.setTestMethodConfirmSheetOriginalDataList(testMethodConfirmSheetOriginalDataList);
+        return R.ok(testMethodConfirmSheetOriginalVO);
     }
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TResultWorkEvaluateDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TResultWorkEvaluateDTO.java
new file mode 100644
index 0000000..e201a38
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TResultWorkEvaluateDTO.java
@@ -0,0 +1,10 @@
+package com.ruoyi.system.dto;
+
+import com.ruoyi.system.model.TResultWorkEvaluate;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "新增实验结果评定DTO")
+public class TResultWorkEvaluateDTO extends TResultWorkEvaluate {
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index b3fc90b..9f93354 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -178,4 +178,6 @@
     long selectIdByPhone(@Param("phonenumber") String phonenumber);
 
     List<SysUser> listByRole(@Param("userIds")List<Long> userIds, @Param("nickName")String nickName);
+
+    List<SysUser> selectListByNameAndUserIds(@Param("nickName")String nickName, @Param("userIds")List<Long> userIds);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java
index de5151e..844bfd4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentSchemeMapper.java
@@ -34,4 +34,12 @@
      * @return
      */
     List<TExperimentSchemeVO> auditPageList(@Param("query")TExperimentSchemeQuery query, @Param("pageInfo")PageInfo<TExperimentSchemeVO> pageInfo);
+
+    /**
+     * 根据调度id获取实验方案
+     * @param dispatchId
+     * @return
+     */
+    List<TExperimentSchemeVO> getList(@Param("dispatchId")String dispatchId);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
index 1dbb3f7..f171d3e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
@@ -3,7 +3,9 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
 import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.vo.ResultEvaluateChemistTesterVO;
 import com.ruoyi.system.vo.TResultWorkEvaluateVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -20,4 +22,37 @@
 public interface TResultWorkEvaluateMapper extends BaseMapper<TResultWorkEvaluate> {
 
     List<TResultWorkEvaluateVO> pageList(@Param("query")TResultWorkEvaluateQuery query,@Param("pageInfo") PageInfo<TResultWorkEvaluateVO> pageInfo);
+
+    /**
+     * 查询化验师工作评定分页列表
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TResultWorkEvaluateVO> chemistEvaluateList(@Param("query")TResultWorkEvaluateQuery query, @Param("pageInfo")PageInfo<TResultWorkEvaluateVO> pageInfo);
+
+    /**
+     * 查询实验员工作评定分页列表
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TResultWorkEvaluateVO> testerEvaluateList(@Param("query")TResultWorkEvaluateQuery query, @Param("pageInfo")PageInfo<TResultWorkEvaluateVO> pageInfo);
+
+    /**
+     * 查询化验师工作评定分页列表
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<ResultEvaluateChemistTesterVO> getEvaluateChemistPageList(@Param("query")ResultEvaluateChemistTesterQuery query,  @Param("pageInfo")PageInfo<ResultEvaluateChemistTesterVO> pageInfo);
+
+    /**
+     * 查询实验员工作评定分页列表
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<ResultEvaluateChemistTesterVO> getEvaluateTesterPageList(@Param("query")ResultEvaluateChemistTesterQuery query, @Param("pageInfo")PageInfo<ResultEvaluateChemistTesterVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
index 00b6967..5bf0fc9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
@@ -1,6 +1,9 @@
 package com.ruoyi.system.model;
 
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
@@ -8,7 +11,6 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.io.Serializable;
 import java.time.LocalDateTime;
 
 /**
@@ -38,7 +40,7 @@
 
     @ApiModelProperty(value = "用户id")
     @TableField("user_id")
-    private Integer userId;
+    private Long userId;
 
     @ApiModelProperty(value = "实验结果id")
     @TableField("result_report_id")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheetOriginalData.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheetOriginalData.java
index edd8cbf..3fdd7ea 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheetOriginalData.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTestMethodConfirmSheetOriginalData.java
@@ -1,14 +1,14 @@
 package com.ruoyi.system.model;
 
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -53,4 +53,8 @@
     @TableField("data_files")
     private String dataFiles;
 
+    @ApiModelProperty(value = "检测结果数据")
+    @TableField("result_text")
+    private String resultText;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java
new file mode 100644
index 0000000..6eddedb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ResultEvaluateChemistTesterQuery.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.model.TimeRangeQueryBody;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "实验员和化验师评定结果查询参数query")
+public class ResultEvaluateChemistTesterQuery extends TimeRangeQueryBody {
+
+    @ApiModelProperty(value = "项目课题方案名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "实验编号")
+    private String experimentCode;
+
+    @ApiModelProperty(value = "实验名称")
+    private String experimentName;
+
+    @ApiModelProperty(value = "项目阶段 1=实验室开发阶段 2=中式试验阶段 3=生产验证试验阶段")
+    private Integer projectStage;
+
+    @ApiModelProperty(value = "用户id 前端忽略")
+    private Long userId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
index 3bd693f..b2297db 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
@@ -5,16 +5,25 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "实验调度query")
 public class TExperimentDispatchQuery extends TimeRangeQueryBody {
 
     @ApiModelProperty(value = "项目课题方案名称")
     private String projectName;
+
     @ApiModelProperty(value = "实验编号")
     private String experimentCode;
 
     @ApiModelProperty(value = "状态 -1=草稿箱 1=待确认 2=已确认 3=已封存")
     private Integer status;
 
+    @ApiModelProperty(value = "用户id 前端忽略")
+    private Long userId;
+
+    @ApiModelProperty(value = "实验id 前端忽略")
+    private List<String> dispatchIds;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
index be56c2c..5186214 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "实验方案管理query")
 public class TExperimentSchemeQuery extends TimeRangeQueryBody {
@@ -17,4 +19,10 @@
 
     @ApiModelProperty(value = "审批状态  -1=草稿箱 1=已发送 2=申请中止待审核 3=申请中止已通过 4=申请中止已驳回 5=已封存")
     private Integer status;
+
+    @ApiModelProperty(value = "用户id 前端忽略")
+    private Long userId;
+
+    @ApiModelProperty(value = "实验id 前端忽略")
+    private List<String> dispatchIds;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
index 8587bd5..e85674a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
@@ -1,6 +1,5 @@
 package com.ruoyi.system.query;
 
-import com.ruoyi.common.core.domain.BasePage;
 import com.ruoyi.common.core.domain.model.TimeRangeQueryBody;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -14,7 +13,11 @@
 
     @ApiModelProperty(value = "项目组名称")
     private String teamName;
+    @ApiModelProperty(value = "实验编号")
+    private String experimentCode;
 
+    @ApiModelProperty(value = "实验名称")
+    private String experimentName;
     @ApiModelProperty(value = "状态 -1=草稿箱 1=已提交")
     private Integer status;
     @ApiModelProperty(value = "当前登陆人所属项目组List 前端忽略")
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 f04eae9..7740a14 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
@@ -6,6 +6,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "取样记录查询query")
 public class TSamplingRecordQuery extends TimeRangeQueryBody {
@@ -26,4 +28,10 @@
     @TableField("status")
     private Integer status;
 
+    @ApiModelProperty(value = "用户id 前端忽略")
+    private Long userId;
+
+    @ApiModelProperty(value = "实验id 前端忽略")
+    private List<String> dispatchIds;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
index 1c48bf0..8305c7f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "检验方法确认单查询query")
 public class TTestMethodConfirmSheetQuery extends TimeRangeQueryBody {
@@ -20,4 +22,10 @@
 
     @ApiModelProperty(value = "审核状态 -1=草稿箱 1=待确认 2=通过 3=驳回 4=已撤回 5=已封存")
     private Integer auditStatus;
+
+    @ApiModelProperty(value = "用户id 前端忽略")
+    private Long userId;
+
+    @ApiModelProperty(value = "实验id 前端忽略")
+    private List<String> dispatchIds;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index a909c6d..80da1cf 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -1,11 +1,11 @@
 package com.ruoyi.system.service;
 
-import java.util.List;
-
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.query.SysUserQuery;
 import com.ruoyi.system.vo.SysUserVO;
+
+import java.util.List;
 
 /**
  * 用户 业务层
@@ -228,6 +228,12 @@
 
     List<SysUser> selectListByNamePhone(String name);
 
+    /**
+     * 通过用户id和nickName查询用户
+     * @return
+     */
+    List<SysUser> selectListByNameAndUserIds(String nickName,  List<Long> userIds);
+
 
 //    UserInfoVo userInfo(Long userId);
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java
index ce54e95..c30289b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentSchemeService.java
@@ -6,6 +6,8 @@
 import com.ruoyi.system.query.TExperimentSchemeQuery;
 import com.ruoyi.system.vo.TExperimentSchemeVO;
 
+import java.util.List;
+
 /**
  * <p>
  * 实验方案管理 服务类
@@ -29,4 +31,11 @@
      * @return
      */
     PageInfo<TExperimentSchemeVO> auditPageList(TExperimentSchemeQuery query);
+
+    /**
+     * 获取检验方法确认单列表
+     * @param dispatchId
+     * @return
+     */
+    List<TExperimentSchemeVO> getList(String dispatchId);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
index b484826..bd668c1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
@@ -3,7 +3,9 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
 import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.vo.ResultEvaluateChemistTesterVO;
 import com.ruoyi.system.vo.TResultWorkEvaluateVO;
 
 /**
@@ -18,4 +20,32 @@
 
     PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query);
 
+    /**
+     * 获取化验师工作评定分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TResultWorkEvaluateVO> chemistEvaluateList(TResultWorkEvaluateQuery query);
+
+    /**
+     * 获取实验员工作评定分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TResultWorkEvaluateVO> testerEvaluateList(TResultWorkEvaluateQuery query);
+
+    /**
+     * 获取化验师工作评定分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<ResultEvaluateChemistTesterVO> getEvaluateChemistPageList(ResultEvaluateChemistTesterQuery query);
+
+    /**
+     * 获取实验员工作评定分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<ResultEvaluateChemistTesterVO> getEvaluateTesterPageList(ResultEvaluateChemistTesterQuery query);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 0121468..a2b20e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,6 +1,5 @@
 package com.ruoyi.system.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.DataScope;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.constant.UserConstants;
@@ -626,6 +625,10 @@
     public List<SysUser> selectListByNamePhone(String name) {
         return userMapper.selectListByNamePhone(name);
     }
+    @Override
+    public List<SysUser> selectListByNameAndUserIds(String nickName, List<Long> userIds) {
+        return userMapper.selectListByNameAndUserIds(nickName,  userIds);
+    }
 
     @Override
     public List<SysUser> selectUserByUserNameList(List<String> names) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java
index 50d303f..1cb7ac3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java
@@ -1,15 +1,25 @@
 package com.ruoyi.system.service.impl;
 
+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.TExperimentResultReportMapper;
+import com.ruoyi.system.mapper.TResultWorkEvaluateMapper;
+import com.ruoyi.system.model.TExperimentDispatchParticipants;
 import com.ruoyi.system.model.TExperimentResultReport;
+import com.ruoyi.system.model.TResultWorkEvaluate;
 import com.ruoyi.system.query.TExperimentResultReportQuery;
 import com.ruoyi.system.service.TExperimentResultReportService;
 import com.ruoyi.system.vo.TExperimentResultReportVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -22,11 +32,83 @@
 @Service
 public class TExperimentResultReportServiceImpl extends ServiceImpl<TExperimentResultReportMapper, TExperimentResultReport> implements TExperimentResultReportService {
 
+    @Autowired
+    private TExperimentResultReportMapper tExperimentResultReportMapper;
+    @Autowired
+    private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
+    @Autowired
+    private TResultWorkEvaluateMapper resultWorkEvaluateMapper;
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
     @Override
     public PageInfo<TExperimentResultReportVO> pageList(TExperimentResultReportQuery query) {
         PageInfo<TExperimentResultReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
         List<TExperimentResultReportVO> list = this.baseMapper.pageList(query,pageInfo);
-        // TODO 处理实验人员信息及是否评定
+        if(CollectionUtils.isEmpty(list)){
+            return pageInfo;
+        }
+        List<String> dispatchIds = list.stream().map(TExperimentResultReportVO::getDispatchId).distinct().collect(Collectors.toList());
+        // 查询参与人员
+        List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds));
+
+        // 设置参与人员名称
+        List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> {
+            SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null);
+            if(sysUser != null){
+                tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
+                tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar());
+            }
+        });
+
+        List<String> ids = list.stream().map(TExperimentResultReportVO::getId).distinct().collect(Collectors.toList());
+        // 查询结果汇报评价
+        List<TResultWorkEvaluate> resultWorkEvaluates = resultWorkEvaluateMapper.selectList(Wrappers.lambdaQuery(TResultWorkEvaluate.class)
+                .in(TResultWorkEvaluate::getResultReportId, ids));
+
+        for (TExperimentResultReportVO experimentResultReportVO : list) {
+            experimentResultReportVO.setExperimentDispatchParticipants(tExperimentDispatchParticipants.stream().filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())).collect(Collectors.toList()));
+            experimentResultReportVO.setResultWorkEvaluates(resultWorkEvaluates.stream().filter(evaluate -> evaluate.getResultReportId().equals(experimentResultReportVO.getId())).collect(Collectors.toList()));
+            // 设置工艺工程师名称
+            TExperimentDispatchParticipants dispatchParticipants = tExperimentDispatchParticipants.stream()
+                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
+                            && participants.getRoleType().equals(3)).findFirst().orElse(null);
+            if(dispatchParticipants != null){
+                experimentResultReportVO.setProcessEngineerName(dispatchParticipants.getNickName());
+            }
+            // 设置化验师名称
+            List<TExperimentDispatchParticipants> laboratoryChemist = tExperimentDispatchParticipants.stream()
+                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
+                            && participants.getRoleType().equals(4)).collect(Collectors.toList());
+            List<TResultWorkEvaluate> chemistEvaluates = resultWorkEvaluates.stream()
+                    .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId())
+                            && workEvaluate.getEvaluateType().equals(2)).collect(Collectors.toList());
+            if(laboratoryChemist.size() == chemistEvaluates.size()){
+                experimentResultReportVO.setLaboratoryChemistEvaluate(1);
+            }
+            if(!CollectionUtils.isEmpty(laboratoryChemist)){
+                String laboratoryChemistName = laboratoryChemist.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(","));
+                experimentResultReportVO.setLaboratoryChemistName(laboratoryChemistName);
+            }
+            // 设置实验员名称
+            List<TExperimentDispatchParticipants> experimenter = tExperimentDispatchParticipants.stream()
+                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
+                            && participants.getRoleType().equals(5)).collect(Collectors.toList());
+            List<TResultWorkEvaluate> experimenterEvaluates = resultWorkEvaluates.stream()
+                    .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId())
+                            && workEvaluate.getEvaluateType().equals(3)).collect(Collectors.toList());
+            if(experimenter.size() == experimenterEvaluates.size()){
+                experimentResultReportVO.setExperimenterEvaluate(1);
+            }
+            if(!CollectionUtils.isEmpty(experimenter)){
+                String experimenterName = experimenter.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(","));
+                experimentResultReportVO.setExperimenterName(experimenterName);
+            }
+        }
+
         pageInfo.setRecords(list);
         return pageInfo;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java
index 5b3c6ae..9e6f50a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentSchemeServiceImpl.java
@@ -16,6 +16,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -82,4 +83,26 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public List<TExperimentSchemeVO> getList(String dispatchId) {
+        List<TExperimentSchemeVO> list = this.baseMapper.getList(dispatchId);
+        List<String> schemeIds = list.stream().map(TExperimentSchemeVO::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty(schemeIds)){
+            return new ArrayList<>();
+        }
+        List<TExperimentSchemePerson> experimentSchemePersonList = experimentSchemePersonMapper.selectList(Wrappers.lambdaQuery(TExperimentSchemePerson.class).in(TExperimentSchemePerson::getSchemeId, schemeIds));
+        List<Long> userIds = experimentSchemePersonList.stream().map(TExperimentSchemePerson::getUserId).collect(Collectors.toList());
+        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+        sysUsers.forEach(sysUser -> {
+            experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getUserId().equals(sysUser.getUserId())).forEach(experimentSchemePerson -> experimentSchemePerson.setNickName(sysUser.getNickName()));
+        });
+        for (TExperimentSchemeVO experimentSchemeVO : list) {
+            List<TExperimentSchemePerson> personList = experimentSchemePersonList.stream().filter(experimentSchemePerson -> experimentSchemePerson.getSchemeId().equals(experimentSchemeVO.getId())).collect(Collectors.toList());
+            experimentSchemeVO.setExperimentSchemePersons(personList);
+            // 写入名称
+            experimentSchemeVO.setSchemePersonName(personList.stream().map(TExperimentSchemePerson::getNickName).collect(Collectors.joining(",")));
+        }
+        return list;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
index 8c39ec8..a1865e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
@@ -1,19 +1,20 @@
 package com.ruoyi.system.service.impl;
-import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.documents4j.api.IFileConsumer;
 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.TResultWorkEvaluateMapper;
-import com.ruoyi.system.model.TProjectTeamStaff;
+import com.ruoyi.system.model.TExperimentDispatchParticipants;
 import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
 import com.ruoyi.system.query.TResultWorkEvaluateQuery;
 import com.ruoyi.system.service.TResultWorkEvaluateService;
-import com.ruoyi.system.vo.TProjectTeamVO;
+import com.ruoyi.system.vo.ResultEvaluateChemistTesterVO;
 import com.ruoyi.system.vo.TResultWorkEvaluateVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -30,6 +31,11 @@
  */
 @Service
 public class TTesterWorkEvaluateServiceImpl extends ServiceImpl<TResultWorkEvaluateMapper, TResultWorkEvaluate> implements TResultWorkEvaluateService {
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+    @Autowired
+    private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
 
     @Override
     public PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query) {
@@ -216,4 +222,67 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<TResultWorkEvaluateVO> chemistEvaluateList(TResultWorkEvaluateQuery query) {
+        PageInfo<TResultWorkEvaluateVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TResultWorkEvaluateVO> list = this.baseMapper.chemistEvaluateList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+    @Override
+    public PageInfo<TResultWorkEvaluateVO> testerEvaluateList(TResultWorkEvaluateQuery query) {
+        PageInfo<TResultWorkEvaluateVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TResultWorkEvaluateVO> list = this.baseMapper.testerEvaluateList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<ResultEvaluateChemistTesterVO> getEvaluateChemistPageList(ResultEvaluateChemistTesterQuery query) {
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ResultEvaluateChemistTesterVO> list = this.baseMapper.getEvaluateChemistPageList(query,pageInfo);
+        if(!CollectionUtils.isEmpty(list)){
+            // 查询工艺工程师的名称
+            List<String> dispatchIds = list.stream().map(ResultEvaluateChemistTesterVO::getDispatchId).collect(Collectors.toList());
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(new LambdaQueryWrapper<TExperimentDispatchParticipants>()
+                    .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds)
+                    .eq(TExperimentDispatchParticipants::getRoleType, 3));
+            List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(userIds)){
+                List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+                for (ResultEvaluateChemistTesterVO resultEvaluateChemistTesterVO : list) {
+                    sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(resultEvaluateChemistTesterVO.getParticipantsId())).findFirst().ifPresent(sysUser -> {
+                        resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
+                    });
+                }
+            }
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<ResultEvaluateChemistTesterVO> getEvaluateTesterPageList(ResultEvaluateChemistTesterQuery query) {
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<ResultEvaluateChemistTesterVO> list = this.baseMapper.getEvaluateTesterPageList(query,pageInfo);
+        if(!CollectionUtils.isEmpty(list)){
+            // 查询工艺工程师的名称
+            List<String> dispatchIds = list.stream().map(ResultEvaluateChemistTesterVO::getDispatchId).collect(Collectors.toList());
+            List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(new LambdaQueryWrapper<TExperimentDispatchParticipants>()
+                    .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds)
+                    .eq(TExperimentDispatchParticipants::getRoleType, 3));
+            List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(userIds)){
+                List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
+                for (ResultEvaluateChemistTesterVO resultEvaluateChemistTesterVO : list) {
+                    sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(resultEvaluateChemistTesterVO.getParticipantsId())).findFirst().ifPresent(sysUser -> {
+                        resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
+                    });
+                }
+            }
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
new file mode 100644
index 0000000..48818d2
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
@@ -0,0 +1,52 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "实验员和化验师评价结果VO")
+public class ResultEvaluateChemistTesterVO implements Serializable {
+
+    @ApiModelProperty(value = "评定id")
+    private String evaluateId;
+
+    @ApiModelProperty(value = "化验师id或实验员id")
+    private Long participantsId;
+
+    @ApiModelProperty(value = "实验id")
+    private String dispatchId;
+
+    @ApiModelProperty(value = "项目课题方案名称")
+    private String projectName;
+
+    @ApiModelProperty(value = "项目阶段 1=实验室开发阶段 2=中式试验阶段 3=生产验证试验阶段")
+    private Integer projectStage;
+
+    @ApiModelProperty(value = "实验编号")
+    private String experimentCode;
+
+    @ApiModelProperty(value = "实验名称")
+    private String experimentName;
+
+    @ApiModelProperty(value = "工艺工程师姓名")
+    private String processEngineerName;
+
+    @ApiModelProperty(value = "化验师名称")
+    private String laboratoryChemistName;
+
+    @ApiModelProperty(value = "实验员名称")
+    private String laboratoryTesterName;
+
+    @ApiModelProperty(value = "是否评定 1=是 0=否")
+    private Integer isEvaluate;
+
+    @ApiModelProperty(value = "评定时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime evaluateTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
index 8e342d8..237ec3f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentResultReportVO.java
@@ -1,9 +1,6 @@
 package com.ruoyi.system.vo;
 
-import com.ruoyi.system.model.TExperimentResultReport;
-import com.ruoyi.system.model.TExperimentScheme;
-import com.ruoyi.system.model.TInspectionReport;
-import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.model.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -17,10 +14,13 @@
     @ApiModelProperty(value = "评分列表")
     private List<TResultWorkEvaluate> resultWorkEvaluates;
     @ApiModelProperty(value = "实验结果")
-    private List<TExperimentScheme> experimentSchemes;
+    private List<TExperimentSchemeVO> experimentSchemeVOS;
     @ApiModelProperty(value = "检验结果报告")
     private List<TInspectionReport> InspectionReports;
-
+    @ApiModelProperty(value = "实验参与人员")
+    private List<TExperimentDispatchParticipants> experimentDispatchParticipants;
+    @ApiModelProperty(value = "实验调度")
+    private TExperimentDispatchVO experimentDispatchVO;
     @ApiModelProperty(value = "项目课题方案")
     private String projectName;
 
@@ -36,12 +36,12 @@
     @ApiModelProperty(value = "化验师名称")
     private String laboratoryChemistName;
 
-    @ApiModelProperty(value = "化验师是否评定")
+    @ApiModelProperty(value = "化验师是否评定 1=是 0=否")
     private Integer laboratoryChemistEvaluate;
 
     @ApiModelProperty(value = "实验员姓名")
     private String experimenterName;
 
-    @ApiModelProperty(value = "实验员是否评定")
+    @ApiModelProperty(value = "实验员是否评定 1=是 0=否")
     private Integer experimenterEvaluate;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
index 5aa02bd..ca24d33 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TInspectionReportVO.java
@@ -1,13 +1,21 @@
 package com.ruoyi.system.vo;
 
+import com.ruoyi.system.model.TExperimentDispatch;
 import com.ruoyi.system.model.TInspectionReport;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 @ApiModel(value = "检验报告VO")
 public class TInspectionReportVO extends TInspectionReport {
-
-
+    @ApiModelProperty(value = "项目课题方案")
+    private String projectName;
+    @ApiModelProperty(value = "实验编号")
+    private String experimentCode;
+    @ApiModelProperty(value = "实验名称")
+    private String experimentName;
+    @ApiModelProperty(value = "实验调度")
+    private TExperimentDispatch experimentDispatch;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
index c378fef..e55b27e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
@@ -1,16 +1,12 @@
 package com.ruoyi.system.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.system.model.TQaReportFile;
-import com.ruoyi.system.model.TQaTestItemReport;
 import com.ruoyi.system.model.TResultWorkEvaluate;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.List;
 
 @Data
 @ApiModel(value = "实验员工作评定管理分页列表VO")
@@ -18,6 +14,10 @@
 
     @ApiModelProperty(value = "项目组名称")
     private String teamName;
+    @ApiModelProperty(value = "实验编号")
+    private String experimentCode;
+    @ApiModelProperty(value = "实验名称")
+    private String experimentName;
     @ApiModelProperty(value = "项目组总积分")
     private Integer teamIntegral;
     @ApiModelProperty(value = "工艺工程师总积分")
@@ -33,4 +33,9 @@
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime endTime;
 
+    @ApiModelProperty(value = "化验师名称")
+    private String chemistName;
+    @ApiModelProperty(value = "实验员名称")
+    private String testerName;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
index 9d99041..9eb69f2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetOriginalVO.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.system.model.TTestMethodConfirmSheetOriginal;
 import com.ruoyi.system.model.TTestMethodConfirmSheetOriginalData;
+import com.ruoyi.system.model.TTestMethodConfirmSheetTerm;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -30,6 +31,9 @@
     @ApiModelProperty(value = "检测数据")
     private List<TTestMethodConfirmSheetOriginalData> testMethodConfirmSheetOriginalDataList;
 
+    @ApiModelProperty(value = "检测项数据")
+    private TTestMethodConfirmSheetTerm testMethodConfirmSheetTerm;
+
 
 
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 3a9612d..ea9006a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -259,6 +259,25 @@
 	<select id="listByRole" resultType="com.ruoyi.common.core.domain.entity.SysUser">
 		select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
 			   u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,
+			   u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack,
+			   u.districtId AS districtId, u.role_type AS roleType,r.role_id AS roleId
+		from sys_user u
+		left join sys_user_role ur on u.user_id = ur.user_id
+		left join sys_role r on r.role_id = ur.role_id
+		WHERE u.del_flag = 0
+		<if test="userIds != null and userIds.size()>0">
+			AND u.user_id IN
+			<foreach collection="userIds" close=")" open="(" item="userId" separator=",">
+				#{userId}
+			</foreach>
+		</if>
+		<if test="nickName != null and nickName != ''">
+			AND u.nick_name LIKE concat('%',#{nickName},'%')
+		</if>
+	</select>
+	<select id="selectListByNameAndUserIds" resultType="com.ruoyi.common.core.domain.entity.SysUser">
+		select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
+			   u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,
 			   u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack, u.districtId AS districtId
 		from sys_user u
 		WHERE u.del_flag = 0
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
index ae32314..771584f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
@@ -38,15 +38,21 @@
             <if test="query.experimentCode != null and query.experimentCode != ''">
                 and ted.experiment_code like concat('%',#{query.experimentCode},'%')
             </if>
-            <if test="query.status !=null and query.status != -1">
+            <if test="query.status !=null">
                 and ted.status = #{query.status}
             </if>
-            <if test="query.status == null">
-                and ted.status != -1
+            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
+                and ted.id in
+                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
+                    #{item}
+                </foreach>
             </if>
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND ted.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
+            <if test="query.status == null">
+                and ted.status != -1
+            </if>
             AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
         ORDER BY ted.create_time DESC
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
index de97ca8..0b20971 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
@@ -45,7 +45,7 @@
             <if test="query.experimentName != null and query.experimentName != ''">
                 and ted.experiment_name like concat('%', #{query.experimentName}, '%')
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and terr.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
index 42e1787..b0b5564 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
@@ -43,11 +43,8 @@
         left join t_experiment_dispatch ted on tes.dispatch_id = ted.id
         left join t_project_proposal tpp on ted.proposal_id = tpp.id
         <where>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tes.status = #{query.status}
-            </if>
-            <if test="query.status == null">
-                and tes.status != -1
             </if>
             <if test="query.projectName != null and query.projectName != ''">
                 and tpp.project_name like concat('%', #{query.projectName}, '%')
@@ -57,6 +54,15 @@
             </if>
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tes.create_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
+                and tes.dispatch_id in
+                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="query.status == null">
+                and tes.status != -1
             </if>
             AND tes.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -84,10 +90,29 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tes.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
+            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
+                and tes.dispatch_id in
+                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
+                    #{item}
+                </foreach>
+            </if>
             AND tes.status IN (2,3,4)
             AND tes.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
         ORDER BY tes.create_time DESC
     </select>
+    <select id="getList" resultType="com.ruoyi.system.vo.TExperimentSchemeVO">
+        select tes.id, tes.dispatch_id, tes.experiment_date, tes.experiment_objective, tes.experiment_param_route,
+               tes.experiment_material, tes.experiment_device, tes.experiment_step_record, tes.stop_reason, tes.stop_file,tes.stop_file_name,
+               tes.commit_sign, tes.status, tes.audit_person_id, tes.audit_time, tes.audit_remark, tes.create_time, tes.update_time,
+               tes.create_by, tes.update_by, tes.disabled, tpp.project_name as projectName,ted.experiment_code as experimentCode,
+               ted.experiment_name as experimentName
+        from t_experiment_scheme tes
+                 left join t_experiment_dispatch ted on tes.dispatch_id = ted.id
+                 left join t_project_proposal tpp on ted.proposal_id = tpp.id
+             WHERE tes.dispatch_id = #{dispatchId}
+                AND tes.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+                ORDER BY tes.create_time DESC
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml
index 9d1b2d5..1cf5f25 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TFeasibilityStudyReportMapper.xml
@@ -82,7 +82,7 @@
             <if test="query.teamName != null and query.teamName != ''">
                 and tpt.team_name like concat('%', #{query.teamName})
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tfsr.status = #{query.status}
             </if>
             <if test="query.status == null">
@@ -125,7 +125,7 @@
             <if test="query.teamName != null and query.teamName != ''">
                 and tpt.team_name like concat('%', #{query.teamName})
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tfsr.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
index 85821f1..b2a12d9 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
@@ -21,7 +21,9 @@
         id, dispatch_id, test_result, test_reason, status, create_time, update_time, create_by, update_by, disabled
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TInspectionReportVO">
-        select id, dispatch_id, test_result, test_reason, status, create_time, update_time, create_by, update_by, disabled
+        select tir.id, tir.dispatch_id, tir.test_result, tir.test_reason, tir.status, tir.create_time,
+        tir.update_time, tir.create_by, tir.update_by, tir.disabled,  ted.experiment_name, ted.experiment_code,
+        tpp.project_name
         from t_inspection_report tir
         left join t_experiment_dispatch ted on ted.id = tir.dispatch_id
         left join t_project_proposal tpp on ted.proposal_id = tpp.id
@@ -38,7 +40,7 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tir.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tir.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TProjectApprovalReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TProjectApprovalReportMapper.xml
index 4916193..124b004 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TProjectApprovalReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TProjectApprovalReportMapper.xml
@@ -25,7 +25,9 @@
         id, team_id, report_code, report_name, report_text, status, audit_person_id, audit_time, audit_remark, create_time, update_time, create_by, update_by, disabled
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TProjectApprovalReportVO">
-        select id, team_id, report_code, report_name, report_text, status, audit_person_id, audit_time, audit_remark, create_time, update_time, create_by, update_by, disabled
+        select tpar.id, tpar.team_id, tpar.report_code, tpar.report_name, tpar.report_text, tpar.status, tpar.audit_person_id,
+        tpar.audit_time, tpar.audit_remark, tpar.create_time, tpar.update_time, tpar.create_by, tpar.update_by, tpar.disabled,
+        tpt.team_name as teamName
         from t_project_approval_report tpar
         left join t_project_team tpt on tpt.id = tpar.team_id
         <where>
@@ -44,7 +46,7 @@
             <if test="query.reportName != null and query.reportName != ''">
                 and tpar.report_name like concat('%',#{query.reportName},'%')
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tpar.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml
index 7de2ad3..035afe0 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml
@@ -55,7 +55,7 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tpp.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
-            <if test="query.auditStatus != null and query.auditStatus != -1">
+            <if test="query.auditStatus != null">
                 AND tpp.audit_status = #{query.auditStatus}
             </if>
             <if test="query.auditStatus == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TQaProduceReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TQaProduceReportMapper.xml
index b1f29c8..2ab248c 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TQaProduceReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TQaProduceReportMapper.xml
@@ -47,7 +47,7 @@
             <if test="query.teamName != null and query.teamName != ''">
                 and tpt.team_name like concat('%', #{query.teamName}, '%')
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tqpr.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TQaTestItemMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TQaTestItemMapper.xml
index b074cb1..4dc6e85 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TQaTestItemMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TQaTestItemMapper.xml
@@ -41,7 +41,7 @@
             <if test="query.itemCode != null and query.itemCode != ''">
                and tqti.item_code like concat('%', #{query.itemCode})
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tqti.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml
index 9feedc0..9b92717 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml
@@ -54,7 +54,7 @@
             <if test="query.reportContent != null and query.reportContent != ''">
                 and tqtir.report_content = #{query.reportContent}
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tqtir.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
index a6ec0a5..6b12e4b 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
@@ -40,7 +40,7 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND t1.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 AND t1.status = #{query.status}
             </if>
             <if test="query.status == null">
@@ -56,5 +56,143 @@
         </where>
         group by t1.team_id
     </select>
+    <select id="chemistEvaluateList" resultType="com.ruoyi.system.vo.TResultWorkEvaluateVO">
+        select trwe.id, trwe.dispatch_id, trwe.user_id, trwe.result_report_id,trwe.evaluate_type, trwe.evaluate_one,
+               trwe.evaluate_two, trwe.evaluate_three, trwe.evaluate_four, trwe.evaluate_five, trwe.evaluate_six,
+               trwe.status, trwe.evaluate_person_id, trwe.evaluate_time,trwe.result_evaluate_json,trwe.team_id, trwe.create_time,
+               trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,
+               ted.experiment_code as experimentCode,ted.experiment_name as experimentName
+        from t_result_work_evaluate trwe
+        left join t_experiment_dispatch ted on trwe.dispatch_id = ted.id
+        left join t_project_proposal tpp on ted.proposal_id = tpp.id
+        <where>
+            <if test="query.teamName != null and query.teamName != ''">
+                and tpp.team_name like concat('%',#{query.teamName},'%')
+            </if>
+            <if test="query.experimentCode != null and query.experimentCode != ''">
+                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
+            </if>
+            <if test="query.experimentName != null and query.experimentName != ''">
+                and ted.experiment_name like concat('%',#{query.experimentName},'%')
+            </if>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND trwe.evaluate_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.status != null">
+                AND trwe.status = #{query.status}
+            </if>
+            <if test="query.teamIds != null and query.teamIds > 0">
+                AND trwe.team_id in
+                <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            AND trwe.evaluate_type = 2
+            AND trwe.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        ORDER BY trwe.evaluate_time DESC
+    </select>
+    <select id="testerEvaluateList" resultType="com.ruoyi.system.vo.TResultWorkEvaluateVO">
+        select trwe.id, trwe.dispatch_id, trwe.user_id, trwe.result_report_id,trwe.evaluate_type, trwe.evaluate_one,
+               trwe.evaluate_two, trwe.evaluate_three, trwe.evaluate_four, trwe.evaluate_five, trwe.evaluate_six,
+               trwe.status, trwe.evaluate_person_id, trwe.evaluate_time,trwe.result_evaluate_json,trwe.team_id, trwe.create_time,
+               trwe.update_time, trwe.create_by, trwe.update_by, trwe.disabled, tpp.project_name as projectName,
+               ted.experiment_code as experimentCode,ted.experiment_name as experimentName
+        from t_result_work_evaluate trwe
+        left join t_experiment_dispatch ted on trwe.dispatch_id = ted.id
+        left join t_project_proposal tpp on ted.proposal_id = tpp.id
+        <where>
+            <if test="query.teamName != null and query.teamName != ''">
+                and tpp.team_name like concat('%',#{query.teamName},'%')
+            </if>
+            <if test="query.experimentCode != null and query.experimentCode != ''">
+                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
+            </if>
+            <if test="query.experimentName != null and query.experimentName != ''">
+                and ted.experiment_name like concat('%',#{query.experimentName},'%')
+            </if>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND trwe.evaluate_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.status != null">
+                AND trwe.status = #{query.status}
+            </if>
+            <if test="query.teamIds != null and query.teamIds > 0">
+                AND trwe.team_id in
+                <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            AND trwe.evaluate_type = 3
+            AND trwe.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        ORDER BY trwe.evaluate_time DESC
+    </select>
+    <select id="getEvaluateChemistPageList" resultType="com.ruoyi.system.vo.ResultEvaluateChemistTesterVO">
+        select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
+        tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
+        ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryChemistName,
+        tedp.dispatch_id AS dispatchId
+        from t_experiment_dispatch_participants tedp
+        left join t_experiment_dispatch ted on ted.id = tedp.dispatch_id
+        left join t_result_work_evaluate trwe on tedp.id = trwe.dispatch_id and trwe.evaluate_type = 2
+        left join t_project_proposal tpp on ted.proposal_id = tpp.id
+        left join sys_user su on tedp.user_id = su.id
+        <where>
+            <if test="query.experimentCode != null and query.experimentCode != ''">
+                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
+            </if>
+            <if test="query.experimentName != null and query.experimentName != ''">
+                and ted.experiment_name like concat('%',#{query.experimentName},'%')
+            </if>
+            <if test="query.projectName != null and query.projectName != ''">
+                and tpp.project_name like concat('%',#{query.projectName},'%')
+            </if>
+            <if test="query.userId != null">
+                and tedp.user_id = #{query.userId}
+            </if>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND trwe.evaluate_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.projectStage != null">
+                AND tpp.project_stage = #{query.projectStage}
+            </if>
+            AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        ORDER BY trwe.evaluate_time DESC
+    </select>
+    <select id="getEvaluateTesterPageList" resultType="com.ruoyi.system.vo.ResultEvaluateChemistTesterVO">
+        select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
+        tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
+        ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryTesterName,
+        tedp.dispatch_id AS dispatchId
+        from t_experiment_dispatch_participants tedp
+        left join t_experiment_dispatch ted on ted.id = tedp.dispatch_id
+        left join t_result_work_evaluate trwe on tedp.id = trwe.dispatch_id and trwe.evaluate_type = 3
+        left join t_project_proposal tpp on ted.proposal_id = tpp.id
+        left join sys_user su on tedp.user_id = su.id
+        <where>
+            <if test="query.experimentCode != null and query.experimentCode != ''">
+                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
+            </if>
+            <if test="query.experimentName != null and query.experimentName != ''">
+                and ted.experiment_name like concat('%',#{query.experimentName},'%')
+            </if>
+            <if test="query.projectName != null and query.projectName != ''">
+                and tpp.project_name like concat('%',#{query.projectName},'%')
+            </if>
+            <if test="query.userId != null">
+                and tedp.user_id = #{query.userId}
+            </if>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND trwe.evaluate_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.projectStage != null">
+                AND tpp.project_stage = #{query.projectStage}
+            </if>
+            AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        ORDER BY trwe.evaluate_time DESC
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
index 1628470..b4fa15d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
@@ -41,15 +41,21 @@
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tsr.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and tsr.status = #{query.status}
-            </if>
-            <if test="query.status == null">
-                and tsr.status != -1
             </if>
             <if test="query.createBy != null and query.createBy !=''">
                 and tsr.create_by like concat('%', #{query.createBy}, '%')
             </if>
+            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
+                and tsr.dispatch_id in
+                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="query.status == null">
+                and tsr.status != -1
+            </if>
             AND tsr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
         ORDER BY tsr.create_time DESC
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
index e9ba188..735c3b0 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
@@ -40,15 +40,21 @@
             <if test="query.experimentCode != null and query.experimentCode !=''">
                 and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
             </if>
-            <if test="query.auditStatus != null and query.auditStatus != -1">
+            <if test="query.auditStatus != null">
                 and tmcs.audit_status = #{query.auditStatus}
             </if>
-            <if test="query.auditStatus == null">
-                and tmcs.audit_status != -1
+            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
+                and tmcs.dispatch_id in
+                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
+                    #{item}
+                </foreach>
             </if>
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                 AND tmcs.create_time BETWEEN #{query.startTime} AND #{query.endTime}
             </if>
+            <if test="query.auditStatus == null">
+                and tmcs.audit_status != -1
+            </if>
             AND tmcs.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
         ORDER BY tmcs.create_time DESC
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
index aa50039..745802d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
@@ -44,7 +44,7 @@
             <if test="query.createBy != null and query.createBy != ''">
                 and ttmcso.create_by like concat('%', #{query.createBy}, '%')
             </if>
-            <if test="query.status != null and query.status != -1">
+            <if test="query.status != null">
                 and ttmcso.status = #{query.status}
             </if>
             <if test="query.status == null">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetTermDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetTermDataMapper.xml
index 02a2a54..9c13bbc 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetTermDataMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetTermDataMapper.xml
@@ -11,6 +11,7 @@
         <result column="data_type" property="dataType" />
         <result column="data_pictures" property="dataPictures" />
         <result column="data_files" property="dataFiles" />
+        <result column="result_text" property="resultText" />
         <result column="create_time" property="createTime" />
         <result column="update_time" property="updateTime" />
         <result column="create_by" property="createBy" />
@@ -20,7 +21,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, original_id, data_code, data_title, data_type, data_pictures, data_files, create_time, update_time, create_by, update_by, disabled
+        id, original_id, data_code, data_title, data_type, data_pictures, data_files,result_text, create_time, update_time, create_by, update_by, disabled
     </sql>
 
 </mapper>

--
Gitblit v1.7.1