From 0220811fbcffd4bd4df334502a2af272ae29f1e3 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期一, 13 七月 2026 10:14:30 +0800
Subject: [PATCH] 修复了已知BUG

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java | 1324 ++++++++++-----------------------------------------------
 1 files changed, 232 insertions(+), 1,092 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
index 4e23bda..dff9950 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
@@ -10,23 +10,27 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.TResultWorkEvaluateDTO;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
 import com.ruoyi.system.query.TProjectApprovalReportQuery;
 import com.ruoyi.system.query.TResultWorkEvaluateQuery;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.service.impl.WorkEvaluateService;
 import com.ruoyi.system.vo.*;
 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.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
+import java.time.LocalDateTime;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -50,6 +54,8 @@
     @Resource
     private TExperimentResultReportService experimentResultReportService;
     @Resource
+    private TExperimentSchemeService experimentSchemeService;
+    @Resource
     private TProjectApprovalReportService projectApprovalReportService;
     @Resource
     private TExperimentDispatchService experimentDispatchService;
@@ -71,7 +77,17 @@
     @Autowired
     private ISysUserService sysUserService;
     @Autowired
+    private SysUserMapper sysUserMapper;
+    @Autowired
     private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
+    @Autowired
+    private TExperimentResultReportService tExperimentResultReportService;
+    @Autowired
+    private TExperimentDispatchService tExperimentDispatchService;
+    @Autowired
+    private TProjectProposalService tProjectProposalService;
+    @Autowired
+    private WorkEvaluateService workEvaluateCalculateService;
 
     /**
      * 获取化验师工作评定分页列表
@@ -83,6 +99,7 @@
         TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
         Long userId = tokenService.getLoginUser().getUserId();
         Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        query.setRoleType(roleType);
         if(roleType != 1){
             // 查询用户所在项目组
             List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
@@ -91,6 +108,9 @@
                 // 查询项目组id
                 List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
                 query.setTeamIds(teamIds);
+            }
+            if(roleType == 4){
+                query.setUserId(userId);
             }
         }
         return R.ok(tResultWorkEvaluateService.chemistEvaluateList(query));
@@ -106,6 +126,7 @@
         TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
         Long userId = tokenService.getLoginUser().getUserId();
         Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        query.setRoleType(roleType);
         if(roleType != 1){
             // 查询用户所在项目组
             List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
@@ -114,6 +135,9 @@
                 // 查询项目组id
                 List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
                 query.setTeamIds(teamIds);
+            }
+            if(roleType == 5){
+                query.setUserId(userId);
             }
         }
         return R.ok(tResultWorkEvaluateService.testerEvaluateList(query));
@@ -129,7 +153,94 @@
     public R<Boolean> add(@RequestBody String param) {
         TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
         tResultWorkEvaluateService.save(dto);
+        // 查询实验调度
+        TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId());
+        if(Objects.nonNull(dispatch)){
+            // 修改结束时间
+            dispatch.setExperimentEndTime(LocalDateTime.now());
+            experimentDispatchService.updateById(dispatch);
+        }
         return R.ok();
+    }
+
+    /**
+     * 编辑化验师、实验员工作评定
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:edit')")
+    @Log(title = "实验结果工作评定管理-编辑化验师、实验员工作评定", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "编辑化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/edit")
+    public R<Boolean> edit(@RequestBody String param) {
+        TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
+        tResultWorkEvaluateService.updateById(dto);
+        // 查询实验调度
+        TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId());
+        if(Objects.nonNull(dispatch)){
+            // 修改结束时间
+            dispatch.setExperimentEndTime(LocalDateTime.now());
+            experimentDispatchService.updateById(dispatch);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 删除化验师、实验员工作评定
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:delete')")
+    @Log(title = "实验结果工作评定管理-删除化验师、实验员工作评定", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除化验师、实验员工作评定")
+    @DeleteMapping(value = "/open/t-result-work-evaluate/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        tResultWorkEvaluateService.removeById(id);
+        return R.ok();
+    }
+
+    /**
+     * 查看实验结果工作评定管理详情
+     */
+    //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:detail')")
+    @ApiOperation(value = "查看实验结果工作评定管理详情")
+    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateDetailById")
+    public R<TResultWorkEvaluateVO> getEvaluateDetailById(@RequestParam String id) {
+
+        // 查询实验结果工作评定
+        TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+
+        TResultWorkEvaluateVO tResultWorkEvaluateVO = new TResultWorkEvaluateVO();
+        BeanUtils.copyProperties(resultWorkEvaluate, tResultWorkEvaluateVO);
+
+        // 查询实验调度
+        TExperimentDispatch experimentDispatch = experimentDispatchService.getById(resultWorkEvaluate.getDispatchId());
+
+        // 查询实验调度信息
+        if(Objects.nonNull(experimentDispatch)){
+            // 查询课题方案名称
+            TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
+            if(Objects.nonNull(projectProposal)){
+                experimentDispatch.setProjectName(projectProposal.getProjectName());
+                experimentDispatch.setProjectCode(projectProposal.getProjectCode());
+            }
+            // 查询参与人员
+            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                    .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()));
+            List<Long> userIds1 = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+            List<SysUser> sysUsers1 = sysUserMapper.selectUserByIds(userIds1);
+            String participantsName = sysUsers1.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
+            experimentDispatch.setParticipantsName(participantsName);
+        }
+        tResultWorkEvaluateVO.setExperimentDispatch(experimentDispatch);
+
+        // 查询被评定人
+        SysUser sysUser = sysUserService.selectUserById(tResultWorkEvaluateVO.getUserId());
+        if(tResultWorkEvaluateVO.getEvaluateType() == 2){
+            // 化验师
+            tResultWorkEvaluateVO.setChemistName(sysUser.getNickName());
+        }else {
+            // 实验员
+            tResultWorkEvaluateVO.setTesterName(sysUser.getNickName());
+        }
+
+        return R.ok(tResultWorkEvaluateVO);
     }
 
     /**
@@ -205,16 +316,35 @@
         LoginUser loginUser = tokenService.getLoginUser();
 
         TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+
+        if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+            query.setUserId(null);
+        }
+
         SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
         if (sysUser.getRoleType() != 1) {
-            List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
+            List<String> teamIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
                     .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            if (collect.isEmpty()) {
+            if (teamIds.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
+            query.setTeamIds(teamIds);
+        }else {
+            List<String> teamIds = projectTeamStaffService.lambdaQuery()
+                    .list()
+                    .stream()
+                    .map(TProjectTeamStaff::getTeamId)
+                    .filter(Objects::nonNull)
+                    .distinct()
+                    .collect(Collectors.toList());
+            if (teamIds.isEmpty()) {
+                return R.ok(new PageInfo<>());
+            }
+            query.setTeamIds(teamIds);
         }
         return R.ok(tResultWorkEvaluateService.pageList(query));
     }
+
 
     /**
      * 查看取样记录详情
@@ -228,15 +358,16 @@
         TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
         TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
         tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
-        TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one();
         List<Long> role4 = projectTeamStaffService.lambdaQuery()
                 .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
                 .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
         List<Long> role5 = projectTeamStaffService.lambdaQuery()
                 .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
                 .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+
         List<SysUser> user4 = new ArrayList<>();
         List<SysUser> user5 = new ArrayList<>();
+
         for (Long l : role4) {
             SysUser sysUser = sysUserService.selectUserById(l);
             if (sysUser != null) {
@@ -249,174 +380,72 @@
                 user5.add(sysUser);
             }
         }
-        List<TResultWorkEvaluate> list = tResultWorkEvaluateService.lambdaQuery().eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId())
-                .eq(TResultWorkEvaluate::getStatus, 1).orderByDesc(TResultWorkEvaluate::getEvaluateTime).list();
-        int temp1 = 0;
-        int temp2 = 0;
-        int temp3 = 0;
-        int temp4 = 0;
-        int temp5 = 0;
-        for (TResultWorkEvaluate tResultWorkEvaluate : list) {
-            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-            switch (evaluateOne) {
-                case 1:
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 2;
-                    }
-                    temp1 += 2;
-                    break;
-                case 2:
-                    temp1 += 1;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 1;
-                    }
-                    break;
 
-            }
-            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-            switch (evaluateTwo) {
-                case 1:
-                    temp1 += 2;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 2;
-                    }
-                    break;
-                case 2:
-                    temp1 += 1;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 1;
-                    }
-                    break;
-            }
-            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-            switch (evaluateThree) {
-                case 1:
-                    temp1 += 2;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 2;
-                    }
-                    break;
-                case 2:
-                    temp1 += 1;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 1;
-                    }
-                    break;
-            }
-            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-            switch (evaluateFour) {
-                case 1:
-                    temp1 += 2;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 2;
-                    }
-                    break;
-                case 2:
-                    temp1 += 1;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 1;
-                    }
-                    break;
-            }
-            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-            switch (evaluateFive) {
-                case 1:
-                    temp1 += 2;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 2;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 2;
-                    }
-                    break;
-                case 2:
-                    temp1 += 1;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 += 1;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 += 1;
-                    }
-                    break;
-            }
-            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-            switch (evaluateSix) {
-                case 1:
-                    temp1 -= 3;
-                    temp5++;
-                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
-                        temp2 -= 3;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
-                        temp3 -= 3;
-                    }
-                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
-                        temp4 -= 3;
-                    }
-                    break;
-            }
+        int engineerIntegral = 0;  // 工艺工程师总积分
+        int chemistIntegral = 0;   // 化验师总积分
+        int testerIntegral = 0;    // 实验员总积分
+
+        // 单独获取各角色积分
+        TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);//工艺工程师
+        if (engineerEvaluateDetail != null && engineerEvaluateDetail.getEngineerList() != null) {
+            engineerIntegral = engineerEvaluateDetail.getEngineerList().stream()
+                    .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+                    .sum();
         }
-        tResultWorkEvaluateDetailVO.setTeamIntegral(temp1);
-        tResultWorkEvaluateDetailVO.setEngineerIntegral(temp2);
-        tResultWorkEvaluateDetailVO.setChemistIntegral(temp3);
-        tResultWorkEvaluateDetailVO.setTesterIntegral(temp4);
-        tResultWorkEvaluateDetailVO.setTermination(temp5);
-        if (!list.isEmpty()) {
-            tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
+
+        TResultWorkEvaluateDetailVO chemistEvaluateDetail = workEvaluateCalculateService.getChemistEvaluateDetail(id);//4 化验师
+        if (chemistEvaluateDetail != null && chemistEvaluateDetail.getChemistList() != null) {
+            chemistIntegral = chemistEvaluateDetail.getChemistList().stream()
+                    .filter(user -> user.getList() != null)
+                    .flatMap(user -> user.getList().stream())
+                    .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+                    .sum();
+        }
+
+        TResultWorkEvaluateDetailVO testerEvaluateDetail = workEvaluateCalculateService.getTesterEvaluateDetail(id);// 5 实验员
+        if (testerEvaluateDetail != null && testerEvaluateDetail.getTesterList() != null) {
+            testerIntegral = testerEvaluateDetail.getTesterList().stream()
+                    .filter(user -> user.getList() != null)
+                    .flatMap(user -> user.getList().stream())
+                    .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+                    .sum();
+        }
+
+        // 计算项目组总积分
+        int teamIntegral = engineerIntegral + chemistIntegral + testerIntegral;
+
+        tResultWorkEvaluateDetailVO.setTeamIntegral(teamIntegral);
+        tResultWorkEvaluateDetailVO.setEngineerIntegral(engineerIntegral);
+        tResultWorkEvaluateDetailVO.setChemistIntegral(chemistIntegral);
+        tResultWorkEvaluateDetailVO.setTesterIntegral(testerIntegral);
+
+        //查询最后一条数据的时间
+        TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery()
+                .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+                .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+                .orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序
+                .last("limit 1")// 取第一条
+                .one();
+        if (tResultWorkEvaluate != null) {
+            tResultWorkEvaluateDetailVO.setEndTime(tResultWorkEvaluate.getEvaluateTime());
+        }
+
+        // 查询项目组总的失败次数
+        String teamId = resultWorkEvaluate.getTeamId();
+        List<String> projectProposalIds = projectProposalService.lambdaQuery().eq(TProjectProposal::getTeamId, teamId).list()
+                .stream().map(TProjectProposal::getId).collect(Collectors.toList());
+        if (projectProposalIds.isEmpty()){
+            tResultWorkEvaluateDetailVO.setTermination(0);
+        }else{
+            List<String> experimentDispatchIds = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, projectProposalIds).list()
+                    .stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+            if (experimentDispatchIds.isEmpty()){
+                tResultWorkEvaluateDetailVO.setTermination(0);
+            }else{
+                Long count = experimentSchemeService.lambdaQuery().in(TExperimentScheme::getDispatchId, experimentDispatchIds)
+                        .eq(TExperimentScheme::getStatus, 3).count();
+                tResultWorkEvaluateDetailVO.setTermination(count.intValue());
+            }
         }
 
         return R.ok(tResultWorkEvaluateDetailVO);
@@ -426,374 +455,9 @@
     @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
     @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
     public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) {
-        TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+        TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);
 
-        TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
-        TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
-        TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1")
-                .one();
-        tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
-        Long userId = one.getUserId();
-
-        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
-                .eq(TFeasibilityStudyReport::getStatus, 3)
-                .eq(TFeasibilityStudyReport::getEvaluatePersonId, userId).list();
-        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
-        // 工艺可研
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO = new TResultWorkEvaluateDetailEngineerVO();
-        List<TFeasibilityStudyReport> collect = total.stream().filter(e -> e.getReportType().equals(1)).collect(Collectors.toList());
-        int tempDetail = 0;
-        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) {
-            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
-                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
-                    tempDetail += Integer.parseInt(s);
-                }
-            }
-        }
-        tResultWorkEvaluateDetailEngineerVO.setCount(collect.size());
-        tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail);
-        if (!collect.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size() - 1).getEvaluateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime());
-
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO);
-        // 工艺可行
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO();
-        List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList());
-        int tempDetail1 = 0;
-        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) {
-            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
-                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
-                    tempDetail1 += Integer.parseInt(s);
-                }
-            }
-        }
-        tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size());
-        tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1);
-        if (!collect1.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO1.setStartTime(collect1.get(0).getEvaluateTime());
-
-            tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime());
-        }
-
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO1);
-
-        // 开发阶段
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
-        List<Integer> status = new ArrayList<>();
-        status.add(-1);
-        status.add(1);
-        status.add(3);
-        status.add(4);
-        status.add(5);
-        List<TProjectProposal> list2 = projectProposalService.lambdaQuery().eq(TProjectProposal::getCommitUserId, userId)
-                .notIn(TProjectProposal::getAuditStatus, status).list();
-        List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
-        if (collect5.isEmpty()) {
-            collect5.add("0");
-        }
-        List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5)
-                .ne(TExperimentDispatch::getStatus, -1)
-                .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-        if (collect6.isEmpty()) {
-            collect6.add("0");
-        }
-        List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect6).list();
-        int tempDetail2 = 0;
-        for (TResultWorkEvaluate tResultWorkEvaluate : list1) {
-            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-            switch (evaluateOne) {
-                case 1:
-
-                    tempDetail2 += 2;
-                    break;
-                case 2:
-                    tempDetail2 += 1;
-
-                    break;
-
-            }
-            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-            switch (evaluateTwo) {
-                case 1:
-                    tempDetail2 += 2;
-                    break;
-                case 2:
-                    tempDetail2 += 1;
-
-                    break;
-            }
-            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-            switch (evaluateThree) {
-                case 1:
-                    tempDetail2 += 2;
-
-                    break;
-                case 2:
-                    tempDetail2 += 1;
-                    break;
-            }
-            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-            switch (evaluateFour) {
-                case 1:
-                    tempDetail2 += 2;
-
-                    break;
-                case 2:
-                    tempDetail2 += 1;
-                    break;
-            }
-            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-            switch (evaluateFive) {
-                case 1:
-                    tempDetail2 += 2;
-
-                    break;
-                case 2:
-                    tempDetail2 += 1;
-                    break;
-            }
-            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-            switch (evaluateSix) {
-                case 1:
-                    tempDetail2 -= 3;
-                    break;
-            }
-        }
-        if (!list1.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO2.setStartTime(list1.get(0).getEvaluateTime());
-
-            tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
-        }
-
-        tResultWorkEvaluateDetailEngineerVO2.setCount(list1.size());
-        tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
-        // 中试试验阶段
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
-
-        List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
-        if (collect7.isEmpty()) {
-            collect7.add("0");
-        }
-        List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
-                .ne(TExperimentDispatch::getStatus, -1)
-                .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-        if (collect8.isEmpty()) {
-            collect8.add("0");
-        }
-
-        List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect8).list();
-        int tempDetail3 = 0;
-        for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
-            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-            switch (evaluateOne) {
-                case 1:
-
-                    tempDetail3 += 2;
-                    break;
-                case 2:
-                    tempDetail3 += 1;
-
-                    break;
-
-            }
-            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-            switch (evaluateTwo) {
-                case 1:
-                    tempDetail3 += 2;
-                    break;
-                case 2:
-                    tempDetail3 += 1;
-
-                    break;
-            }
-            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-            switch (evaluateThree) {
-                case 1:
-                    tempDetail3 += 2;
-
-                    break;
-                case 2:
-                    tempDetail3 += 1;
-                    break;
-            }
-            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-            switch (evaluateFour) {
-                case 1:
-                    tempDetail3 += 2;
-
-                    break;
-                case 2:
-                    tempDetail3 += 1;
-                    break;
-            }
-            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-            switch (evaluateFive) {
-                case 1:
-                    tempDetail3 += 2;
-
-                    break;
-                case 2:
-                    tempDetail3 += 1;
-                    break;
-            }
-            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-            switch (evaluateSix) {
-                case 1:
-                    tempDetail3 -= 3;
-                    break;
-            }
-        }
-        if (!list3.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
-            tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
-        tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
-        // 验证试验阶段
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
-        List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
-        if (collect10.isEmpty()) {
-            collect10.add("0");
-        }
-        List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
-                .ne(TExperimentDispatch::getStatus, -1)
-                .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-        if (collect11.isEmpty()) {
-            collect11.add("0");
-        }
-        List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list();
-        int tempDetail4 = 0;
-        for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
-            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-            switch (evaluateOne) {
-                case 1:
-
-                    tempDetail4 += 2;
-                    break;
-                case 2:
-                    tempDetail4 += 1;
-
-                    break;
-
-            }
-            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-            switch (evaluateTwo) {
-                case 1:
-                    tempDetail4 += 2;
-                    break;
-                case 2:
-                    tempDetail4 += 1;
-
-                    break;
-            }
-            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-            switch (evaluateThree) {
-                case 1:
-                    tempDetail4 += 2;
-
-                    break;
-                case 2:
-                    tempDetail4 += 1;
-                    break;
-            }
-            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-            switch (evaluateFour) {
-                case 1:
-                    tempDetail4 += 2;
-
-                    break;
-                case 2:
-                    tempDetail4 += 1;
-                    break;
-            }
-            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-            switch (evaluateFive) {
-                case 1:
-                    tempDetail4 += 2;
-
-                    break;
-                case 2:
-                    tempDetail4 += 1;
-                    break;
-            }
-            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-            switch (evaluateSix) {
-                case 1:
-                    tempDetail4 -= 3;
-                    break;
-            }
-        }
-        if (!list4.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
-            tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
-        tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
-        // 工艺开发工具
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
-        List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
-        int tempDetail15 = 0;
-        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
-            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
-                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
-                    tempDetail15 += Integer.parseInt(s);
-                }
-            }
-        }
-        tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
-        tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
-        if (!collect12.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
-            tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size() - 1).getEvaluateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
-        // 验证与发布
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
-        List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
-        int tempDetail16 = 0;
-        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
-            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
-                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
-                    tempDetail16 += Integer.parseInt(s);
-                }
-            }
-        }
-        tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
-        tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
-        if (!collect13.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
-            tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size() - 1).getEvaluateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
-        // 立项报告
-        List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list();
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
-        tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size());
-        if (!list5.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO7.setStartTime(list5.get(0).getAuditTime());
-            tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size() - 1).getAuditTime());
-        }
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
-        // 临床试验积分
-        List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery()
-                .eq(TClinicalTrialPoints::getProcessEngineerId, userId)
-                .eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
-        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
-        tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
-        if (!list6.isEmpty()) {
-            tResultWorkEvaluateDetailEngineerVO8.setStartTime(list6.get(0).getCreateTime());
-            tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size() - 1).getCreateTime());
-        }
-        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
-        tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS);
-        return R.ok(tResultWorkEvaluateDetailVO);
+        return R.ok(engineerEvaluateDetail);
     }
 
     @ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定")
@@ -805,7 +469,7 @@
         TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
         tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
         List<Long> role5 = projectTeamStaffService.lambdaQuery()
-                .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+                .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
                 .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
         List<SysUser> user5 = new ArrayList<>();
         SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
@@ -821,289 +485,26 @@
             }
         }
 
-
-        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
-                .eq(TFeasibilityStudyReport::getStatus, 3)
-                .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
-        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+//        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+//                .eq(TFeasibilityStudyReport::getStatus, 3)
+//                .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
         for (SysUser sysUser : user5) {
+            List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
             TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
             tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+
             // 开发阶段
-            List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
-                    .eq(TResultWorkEvaluate::getEvaluateType, 2)
-                    .eq(TResultWorkEvaluate::getStatus, 1)
+            //查询当前team的实验结果评定 集合
+            List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
                     .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
-                    .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list();
-            // 调度ids
-            List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList());
-            if (collect.isEmpty()) {
-                collect.add("0");
-            }
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
-            List<Integer> status = new ArrayList<>();
-            status.add(-1);
-            status.add(1);
-            status.add(3);
-            status.add(4);
-            status.add(5);
-            // 课题方案ids
-            List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
-            if (collect6.isEmpty()) {
-                collect6.add("0");
-            }
-            List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .notIn(TProjectProposal::getAuditStatus, status).list();
-            List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect5.isEmpty()) {
-                collect5.add("0");
-            }
-            // 开发阶段调度ids
-            List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect1.isEmpty()) {
-                collect1.add("0");
-            }
-            List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList());
-            int tempDetail2 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : collect2) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
+                    .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+                    .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+                    .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+                    .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+                    .list();
 
-                        tempDetail2 += 2;
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
+            workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
 
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail2 += 2;
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-                        tempDetail2 -= 3;
-                        break;
-                }
-            }
-            if (!list1.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO2.setStartTime(list1.get(0).getEvaluateTime());
-
-            }
-            tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size());
-            tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
-            // 中试试验阶段
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
-            List<String> collect7 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .eq(TProjectProposal::getProjectStage, 2)
-                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect7.isEmpty()) {
-                collect7.add("0");
-            }
-            List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect8.isEmpty()) {
-                collect8.add("0");
-            }
-            List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
-                    .eq(TResultWorkEvaluate::getStatus, 1).in(TResultWorkEvaluate::getDispatchId, collect8).list();
-            int tempDetail3 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
-
-                        tempDetail3 += 2;
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail3 += 2;
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-                        tempDetail3 -= 3;
-                        break;
-                }
-            }
-            if (!list3.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
-            }
-            tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
-            tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
-            // 验证试验阶段
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
-            List<String> collect10 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .eq(TProjectProposal::getProjectStage, 2)
-                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect10.isEmpty()) {
-                collect10.add("0");
-            }
-            List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect11.isEmpty()) {
-                collect11.add("0");
-            }
-            List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list();
-            int tempDetail4 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
-
-                        tempDetail4 += 2;
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail4 += 2;
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-                        tempDetail4 -= 3;
-                        break;
-                }
-            }
-            if (!list4.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
-            }
-            tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
-            tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
             // 项目检测项评定
             TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO();
             List<TQaTestItem> list5 = qaTestItemService.lambdaQuery()
@@ -1163,7 +564,7 @@
             tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
             // 产品
             TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
-            List<TQaProduceReport> collect9 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
+            List<TQaProduceReport> collect9 = list.stream().filter(e -> e.getReportType() == 3).collect(Collectors.toList());
             if (!collect9.isEmpty()) {
                 tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getEvaluateTime());
                 tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getEvaluateTime());
@@ -1196,7 +597,7 @@
         TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
         tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
         List<Long> role5 = projectTeamStaffService.lambdaQuery()
-                .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+                .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
                 .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
         List<SysUser> user5 = new ArrayList<>();
         SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
@@ -1212,292 +613,30 @@
             }
         }
 
-        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
         for (SysUser sysUser : user5) {
+            List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
             TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
             tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
             // 开发阶段
-            List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
-                    .eq(TResultWorkEvaluate::getEvaluateType, 3)
-                    .eq(TResultWorkEvaluate::getStatus, 1)
+
+            //查询当前team的实验结果评定 集合
+            List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
                     .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
-                    .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list();
-            // 调度ids
-            List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList());
-            if (collect.isEmpty()) {
-                collect.add("0");
-            }
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
-            List<Integer> status = new ArrayList<>();
-            status.add(-1);
-            status.add(1);
-            status.add(3);
-            status.add(4);
-            status.add(5);
-            // 课题方案ids
-            List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
-            if (collect6.isEmpty()) {
-                collect6.add("0");
-            }
-            List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .notIn(TProjectProposal::getAuditStatus, status).list();
-            List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect5.isEmpty()) {
-                collect5.add("0");
-            }
-            // 开发阶段调度ids
-            List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect1.isEmpty()) {
-                collect1.add("0");
-            }
-            List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList());
-            int tempDetail2 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : collect2) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
+                    .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+                    .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+                    .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+                    .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+                    .list();
 
-                        tempDetail2 += 2;
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
+            workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
 
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail2 += 2;
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail2 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail2 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-
-                        tempDetail2 -= 3;
-                        break;
-                }
-            }
-            if (!list1.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
-            }
-            tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
-            tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size());
-            tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
-
-            // 中试试验阶段
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
-            List<String> collect7 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .eq(TProjectProposal::getProjectStage, 2)
-                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect7.isEmpty()) {
-                collect7.add("0");
-            }
-            List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect8.isEmpty()) {
-                collect8.add("0");
-            }
-            List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
-                    .eq(TResultWorkEvaluate::getStatus, 1).in(TResultWorkEvaluate::getDispatchId, collect8).list();
-            int tempDetail3 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
-
-                        tempDetail3 += 2;
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail3 += 2;
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail3 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail3 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-                        tempDetail3 -= 3;
-                        break;
-                }
-            }
-            if (!list3.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
-            }
-            tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
-            tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
-            // 验证试验阶段
-            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
-
-            List<String> collect10 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
-                    .eq(TProjectProposal::getProjectStage, 2)
-                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
-            if (collect10.isEmpty()) {
-                collect10.add("0");
-            }
-            List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
-                    .ne(TExperimentDispatch::getStatus, -1)
-                    .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
-            if (collect11.isEmpty()) {
-                collect11.add("0");
-            }
-            List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list();
-            int tempDetail4 = 0;
-            for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
-                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
-                switch (evaluateOne) {
-                    case 1:
-
-                        tempDetail4 += 2;
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-
-                        break;
-
-                }
-                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
-                switch (evaluateTwo) {
-                    case 1:
-                        tempDetail4 += 2;
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-
-                        break;
-                }
-                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
-                switch (evaluateThree) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
-                switch (evaluateFour) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
-                switch (evaluateFive) {
-                    case 1:
-                        tempDetail4 += 2;
-
-                        break;
-                    case 2:
-                        tempDetail4 += 1;
-                        break;
-                }
-                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
-                switch (evaluateSix) {
-                    case 1:
-                        tempDetail4 -= 3;
-                        break;
-                }
-            }
-            if (!list4.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
-            }
-            tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
-            tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
             // 其他任务
             List<TTesterOtherTask> list = tTesterOtherTaskService.lambdaQuery().eq(TTesterOtherTask::getTesterId, sysUser.getUserId()).list();
             TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
             tResultWorkEvaluateDetailEngineerVO5.setCount(list.size());
             if (!list.isEmpty()) {
-                tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getEvaluateTime());
-                tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getEvaluateTime());
+                tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getCreateTime());
+                tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getCreateTime());
 
             }
             int temp = 0;
@@ -1505,12 +644,13 @@
                 temp += tTesterOtherTask.getEvaluateScore();
             }
             tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp);
-            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
             tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
             tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
         }
         tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS);
         return R.ok(tResultWorkEvaluateDetailVO);
     }
+
 }
 

--
Gitblit v1.7.1