From edddb1a2e87a8d5626ecb9fefc302d36cf3baadc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 20 五月 2025 09:46:12 +0800
Subject: [PATCH] 项目总积分

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java | 1380 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,370 insertions(+), 10 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 65e5600..a9abf81 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
@@ -2,18 +2,34 @@
 
 
 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.BaseModel;
 import com.ruoyi.common.core.domain.R;
+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.framework.web.service.TokenService;
 import com.ruoyi.system.dto.TQaTestItemDTO;
-import com.ruoyi.system.service.TResultWorkEvaluateService;
+import com.ruoyi.system.model.*;
+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.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+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.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -27,12 +43,36 @@
 @RestController
 @RequestMapping("/t-result-work-evaluate")
 public class TResultWorkEvaluateController {
+    @Resource
+    private TResultWorkEvaluateService tResultWorkEvaluateService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private TFeasibilityStudyReportService feasibilityStudyReportService;
+    @Resource
+    private TExperimentResultReportService experimentResultReportService;
+    @Resource
+    private TProjectApprovalReportService projectApprovalReportService;
+    @Resource
+    private TExperimentDispatchService experimentDispatchService;
+    @Resource
+    private TClinicalTrialPointsService clinicalTrialPointsService;
+    @Resource
+    private TTesterOtherTaskService tTesterOtherTaskService;
 
-    private final TResultWorkEvaluateService resultWorkEvaluateService;
+    @Resource
+    private TProjectProposalService projectProposalService;
+    @Resource
+    private TQaProduceReportService qaProduceReportService;
+    private final TProjectTeamService projectTeamService;
+    private final TProjectTeamStaffService projectTeamStaffService;
+    private final ISysUserService sysUserService;
 
     @Autowired
-    public TResultWorkEvaluateController(TResultWorkEvaluateService resultWorkEvaluateService) {
-        this.resultWorkEvaluateService = resultWorkEvaluateService;
+    public TResultWorkEvaluateController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) {
+        this.projectTeamService = projectTeamService;
+        this.projectTeamStaffService = projectTeamStaffService;
+        this.sysUserService = sysUserService;
     }
 
     /**
@@ -40,13 +80,1333 @@
      */
     //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
     @Log(title = "QA检测项管理信息-新增QA检测项管理", businessType = BusinessType.INSERT)
-    @ApiOperation(value = "添加QA检测项管理",response = TQaTestItemDTO.class)
+    @ApiOperation(value = "添加QA检测项管理", response = TQaTestItemDTO.class)
     @PostMapping(value = "/api/t-qa-test-item/add")
     public R<Boolean> add(@RequestBody String param) {
-        TQaTestItemDTO dto = JSON.parseObject(param,TQaTestItemDTO.class);
+        TQaTestItemDTO dto = JSON.parseObject(param, TQaTestItemDTO.class);
 //        resultWorkEvaluateService.save(dto);
         return R.ok();
     }
 
+
+    @ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TQaTestItemReportQuery.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/pageList")
+    public R<PageInfo<TResultWorkEvaluateVO>> pageList(@RequestBody String param) {
+        LoginUser loginUser = tokenService.getLoginUser();
+
+        TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+        SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
+        if (sysUser.getRoleType() != 1) {
+            List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
+                    .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+            if (collect.isEmpty()) {
+                return R.ok(new PageInfo<>());
+            }
+        }
+        return R.ok(tResultWorkEvaluateService.pageList(query));
+    }
+
+    /**
+     * 查看取样记录详情
+     */
+    //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')")
+    @ApiOperation(value = "查看详情-顶部数据")
+    @GetMapping(value = "/open/t-result-work-evaluate/getDetailById")
+    public R<TResultWorkEvaluateDetailVO> getDetailById(@RequestParam String id) {
+        TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+
+        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) {
+                user4.add(sysUser);
+            }
+        }
+        for (Long l : role5) {
+            SysUser sysUser = sysUserService.selectUserById(l);
+            if (sysUser != null) {
+                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;
+            }
+        }
+        tResultWorkEvaluateDetailVO.setTeamIntegral(temp1);
+        tResultWorkEvaluateDetailVO.setEngineerIntegral(temp2);
+        tResultWorkEvaluateDetailVO.setChemistIntegral(temp3);
+        tResultWorkEvaluateDetailVO.setTesterIntegral(temp4);
+        tResultWorkEvaluateDetailVO.setTermination(temp5);
+        if (!list.isEmpty()) {
+            tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
+        }
+
+        return R.ok(tResultWorkEvaluateDetailVO);
+    }
+
+
+    @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
+    @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
+    public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) {
+        TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+
+        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());
+        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) {
+                user4.add(sysUser);
+            }
+        }
+        for (Long l : role5) {
+            SysUser sysUser = sysUserService.selectUserById(l);
+            if (sysUser != null) {
+                user5.add(sysUser);
+            }
+        }
+        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.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime());
+        }
+        tResultWorkEvaluateDetailEngineerVO1.setStartTime(projectTeam.getCreateTime());
+
+        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<Integer> status1 = new ArrayList<>();
+        status1.add(-1);
+        status1.add(1);
+        status1.add(2);
+        status1.add(4);
+        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.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
+        }
+        tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
+
+        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<Integer> status2 = new ArrayList<>();
+        status2.add(-1);
+        status2.add(1);
+        status2.add(2);
+        status2.add(4);
+        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.setEndTime(list5.get(list5.size() - 1).getAuditTime());
+        }
+        tResultWorkEvaluateDetailEngineerVO7.setStartTime(projectTeam.getCreateTime());
+        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+        // todo 临床试验积分
+        List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery().eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
+        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
+        tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
+        if (!list6.isEmpty()) {
+            tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size() - 1).getCreateTime());
+        }
+        tResultWorkEvaluateDetailEngineerVO8.setStartTime(projectTeam.getCreateTime());
+        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
+        tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS);
+        return R.ok(tResultWorkEvaluateDetailVO);
+    }
+
+    @ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定")
+    @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftTwo")
+    public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftTwo(@RequestParam String id) {
+        TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+        List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
+        TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+        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()
+                .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+        List<SysUser> user5 = new ArrayList<>();
+        SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
+        if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
+            //只能查看自己的
+            user5.add(sysUser1);
+        } else {
+            for (Long l : role5) {
+                SysUser sysUser = sysUserService.selectUserById(l);
+                if (sysUser != null) {
+                    user5.add(sysUser);
+                }
+            }
+        }
+
+
+        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+                .eq(TFeasibilityStudyReport::getStatus, 3)
+                .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
+        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+        for (SysUser sysUser : user5) {
+            TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+            tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+            // 开发阶段
+            List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
+                    .eq(TResultWorkEvaluate::getEvaluateType, 2)
+                    .eq(TResultWorkEvaluate::getStatus, 1)
+                    .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:
+
+                        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.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);
+            // todo 项目检测项评定
+
+
+            // 中试、生产验证试验检验分析报告评定
+            List<TQaProduceReport> list = qaProduceReportService.lambdaQuery()
+                    .eq(TQaProduceReport::getStatus,3).eq(TQaProduceReport::getCommitPersonId, sysUser.getUserId()).list();
+            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+            List<TQaProduceReport> collect3 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
+            if (!collect3.isEmpty()) {
+                tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect3.get(0).getCreateTime());
+                tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getCreateTime());
+            }
+            int tempDetail5 = 0;
+            for (TQaProduceReport tQaProduceReport : collect3) {
+                if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+                    for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+                        tempDetail5+=Integer.parseInt(s);
+                    }
+                }
+            }
+            tResultWorkEvaluateDetailEngineerVO5.setCount(collect3.size());
+            tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail5);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+            // 辅料
+            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
+            List<TQaProduceReport> collect4 = list.stream().filter(e -> e.getReportType() == 2).collect(Collectors.toList());
+            if (!collect4.isEmpty()) {
+                tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect4.get(0).getCreateTime());
+                tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getCreateTime());
+            }
+            int tempDetail6 = 0;
+            for (TQaProduceReport tQaProduceReport : collect4) {
+                if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+                    for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+                        tempDetail6+=Integer.parseInt(s);
+                    }
+                }
+            }
+            tResultWorkEvaluateDetailEngineerVO6.setCount(collect4.size());
+            tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail6);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
+            // 产品
+            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
+            List<TQaProduceReport> collect9 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
+            if (!collect9.isEmpty()) {
+                tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getCreateTime());
+                tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getCreateTime());
+            }
+            int tempDetail7 = 0;
+            for (TQaProduceReport tQaProduceReport : collect9) {
+                if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
+                    for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
+                        tempDetail7+=Integer.parseInt(s);
+                    }
+                }
+            }
+            tResultWorkEvaluateDetailEngineerVO7.setCount(collect9.size());
+            tResultWorkEvaluateDetailEngineerVO7.setIntegral(tempDetail7);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+
+            tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+            tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+        }
+        tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS);
+        return R.ok(tResultWorkEvaluateDetailVO);
+    }
+
+    @ApiOperation(value = "查看详情-左侧数据-实验员工作内容评定")
+    @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftThree")
+    public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftThree(@RequestParam String id) {
+        TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+        List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
+        TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+        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()
+                .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+        List<SysUser> user5 = new ArrayList<>();
+        SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
+        if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
+            //只能查看自己的
+            user5.add(sysUser1);
+        } else {
+            for (Long l : role5) {
+                SysUser sysUser = sysUserService.selectUserById(l);
+                if (sysUser != null) {
+                    user5.add(sysUser);
+                }
+            }
+        }
+
+        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+        for (SysUser sysUser : user5) {
+            TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+            tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+            // 开发阶段
+            List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
+                    .eq(TResultWorkEvaluate::getEvaluateType, 3)
+                    .eq(TResultWorkEvaluate::getStatus, 1)
+                    .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:
+
+                        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.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());
+
+            }
+            int temp = 0;
+            for (TTesterOtherTask tTesterOtherTask : list) {
+                temp += tTesterOtherTask.getEvaluateScore();
+            }
+            tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
+            tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+            tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+        }
+        return R.ok(tResultWorkEvaluateDetailVO);
+    }
 }
 

--
Gitblit v1.7.1