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 |  644 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 639 insertions(+), 5 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 ee66470..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
@@ -1,22 +1,656 @@
 package com.ruoyi.web.controller.api;
 
 
+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.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 org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+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.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
- * 实验员工作评定 前端控制器
+ * 实验结果工作评定 前端控制器
  * </p>
  *
  * @author xiaochen
  * @since 2025-04-08
  */
-@Api(tags = "实验员工作评定管理")
+@Api(tags = "实验结果工作评定管理")
 @RestController
-@RequestMapping("/t-result-work-evaluate")
+@RequestMapping("")
 public class TResultWorkEvaluateController {
+    @Resource
+    private TResultWorkEvaluateService tResultWorkEvaluateService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private TFeasibilityStudyReportService feasibilityStudyReportService;
+    @Resource
+    private TExperimentResultReportService experimentResultReportService;
+    @Resource
+    private TExperimentSchemeService experimentSchemeService;
+    @Resource
+    private TProjectApprovalReportService projectApprovalReportService;
+    @Resource
+    private TExperimentDispatchService experimentDispatchService;
+    @Resource
+    private TClinicalTrialPointsService clinicalTrialPointsService;
+    @Resource
+    private TTesterOtherTaskService tTesterOtherTaskService;
+
+    @Resource
+    private TProjectProposalService projectProposalService;
+    @Resource
+    private TQaProduceReportService qaProduceReportService;
+    @Resource
+    private TQaTestItemService qaTestItemService;
+    @Autowired
+    private TProjectTeamService projectTeamService;
+    @Autowired
+    private TProjectTeamStaffService projectTeamStaffService;
+    @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;
+
+    /**
+     * 获取化验师工作评定分页列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
+    @ApiOperation(value = "获取化验师工作评定分页列表",response = TResultWorkEvaluateQuery.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/chemistEvaluateList")
+    public R<PageInfo<TResultWorkEvaluateVO>> chemistEvaluateList(@RequestBody String param) {
+        TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        query.setRoleType(roleType);
+        if(roleType != 1){
+            // 查询用户所在项目组
+            List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                    .eq(TProjectTeamStaff::getUserId, userId));
+            if(projectTeamStaffs.size() > 0){
+                // 查询项目组id
+                List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
+                query.setTeamIds(teamIds);
+            }
+            if(roleType == 4){
+                query.setUserId(userId);
+            }
+        }
+        return R.ok(tResultWorkEvaluateService.chemistEvaluateList(query));
+    }
+
+    /**
+     * 获取实验员工作评定分页列表
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
+    @ApiOperation(value = "获取实验员工作评定分页列表",response = TProjectApprovalReportQuery.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/testerEvaluateList")
+    public R<PageInfo<TResultWorkEvaluateVO>> testerEvaluateList(@RequestBody String param) {
+        TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+        Long userId = tokenService.getLoginUser().getUserId();
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        query.setRoleType(roleType);
+        if(roleType != 1){
+            // 查询用户所在项目组
+            List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
+                    .eq(TProjectTeamStaff::getUserId, userId));
+            if(projectTeamStaffs.size() > 0){
+                // 查询项目组id
+                List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
+                query.setTeamIds(teamIds);
+            }
+            if(roleType == 5){
+                query.setUserId(userId);
+            }
+        }
+        return R.ok(tResultWorkEvaluateService.testerEvaluateList(query));
+    }
+
+    /**
+     * 新增化验师、实验员工作评定
+     */
+    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
+    @Log(title = "实验结果工作评定管理-新增化验师、实验员工作评定", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
+    @PostMapping(value = "/api/t-result-work-evaluate/add")
+    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);
+    }
+
+    /**
+     * 查询可评定的化验师
+     */
+    @ApiOperation(value = "查询可评定的化验师")
+    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateChemist")
+    public R<List<SysUser>> getEvaluateChemist(@RequestParam(value = "nickName",required = false) String nickName,
+                                         @RequestParam(value = "dispatchId") String dispatchId) {
+        // 查询参与的化验师
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
+                .eq(TExperimentDispatchParticipants::getRoleType, 4));
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        if(StringUtils.hasLength(nickName)){
+            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
+            return R.ok(sysUsers);
+        }
+        List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
+        return R.ok(sysUsers);
+    }
+    /**
+     * 查询可评定的实验员
+     */
+    @ApiOperation(value = "查询可评定的实验员")
+    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateTester")
+    public R<List<SysUser>> getEvaluateTester(@RequestParam(value = "nickName",required = false) String nickName,
+                                               @RequestParam(value = "dispatchId") String dispatchId) {
+        // 查询参与的化验师
+        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
+                .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
+                .eq(TExperimentDispatchParticipants::getRoleType, 5));
+        List<Long> userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
+        if(StringUtils.hasLength(nickName)){
+            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
+            return R.ok(sysUsers);
+        }
+        List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
+        return R.ok(sysUsers);
+    }
+
+    /**
+     * 查询化验师评定列表
+     */
+    @ApiOperation(value = "查询化验师评定列表-化验师使用")
+    @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateChemistPageList")
+    public R<PageInfo<ResultEvaluateChemistTesterVO>> getEvaluateChemistPageList(@RequestBody String param) {
+        ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
+        // 获取当前用户id
+        Long userId = tokenService.getLoginUser().getUserId();
+        query.setUserId(userId);
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = tResultWorkEvaluateService.getEvaluateChemistPageList(query);
+        return R.ok(pageInfo);
+    }
+    /**
+     * 查询实验员评定列表
+     */
+    @ApiOperation(value = "查询实验员评定列表-实验员使用")
+    @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateTesterPageList")
+    public R<PageInfo<ResultEvaluateChemistTesterVO>> getEvaluateTesterPageList(@RequestBody String param) {
+        ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
+        // 获取当前用户id
+        Long userId = tokenService.getLoginUser().getUserId();
+        query.setUserId(userId);
+        PageInfo<ResultEvaluateChemistTesterVO> pageInfo = tResultWorkEvaluateService.getEvaluateTesterPageList(query);
+        return R.ok(pageInfo);
+    }
+
+
+    @ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TResultWorkEvaluateQuery.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);
+
+        if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+            query.setUserId(null);
+        }
+
+        SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
+        if (sysUser.getRoleType() != 1) {
+            List<String> teamIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
+                    .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+            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));
+    }
+
+
+    /**
+     * 查看取样记录详情
+     */
+    //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')")
+    @ApiOperation(value = "查看详情-顶部数据",response = TResultWorkEvaluateVO.class)
+    @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());
+        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);
+            }
+        }
+
+        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 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);
+    }
+
+
+    @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
+    @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
+    public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) {
+        TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);
+
+        return R.ok(engineerEvaluateDetail);
+    }
+
+    @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, 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<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());
+
+            // 开发阶段
+            //查询当前team的实验结果评定 集合
+            List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
+                    .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
+                    .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+                    .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+                    .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+                    .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+                    .list();
+
+            workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
+
+            // 项目检测项评定
+            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO();
+            List<TQaTestItem> list5 = qaTestItemService.lambdaQuery()
+                    .eq(TQaTestItem::getStatus,3).eq(TQaTestItem::getCommitPersonId, sysUser.getUserId()).list();
+            if (!list5.isEmpty()){
+                tResultWorkEvaluateDetailEngineerVO9.setStartTime(list5.get(0).getEvaluateTime());
+                tResultWorkEvaluateDetailEngineerVO9.setEndTime(list5.get(list5.size() - 1).getCreateTime());
+            }
+            int tempDetail9 = 0;
+            for (TQaTestItem tQaTestItem : list5) {
+                if (StringUtils.hasLength(tQaTestItem.getEvaluateScore())){
+                    for (String s : tQaTestItem.getEvaluateScore().split(",")){
+                        tempDetail9 += Integer.parseInt(s);
+                    }
+                }
+            }
+            tResultWorkEvaluateDetailEngineerVO9.setCount(list5.size());
+            tResultWorkEvaluateDetailEngineerVO9.setIntegral(tempDetail9);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO9);
+            // 中试、生产验证试验检验分析报告评定
+            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).getEvaluateTime());
+                tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getEvaluateTime());
+            }
+            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).getEvaluateTime());
+                tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getEvaluateTime());
+            }
+            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() == 3).collect(Collectors.toList());
+            if (!collect9.isEmpty()) {
+                tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getEvaluateTime());
+                tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getEvaluateTime());
+            }
+            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, 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);
+                }
+            }
+        }
+
+        for (SysUser sysUser : user5) {
+            List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+            TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+            tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+            // 开发阶段
+
+            //查询当前team的实验结果评定 集合
+            List<TResultWorkEvaluate> tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
+                    .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
+                    .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+                    .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师
+                    .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+                    .orderByAsc(TResultWorkEvaluate::getEvaluateTime)
+                    .list();
+
+            workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
+
+            // 其他任务
+            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).getCreateTime());
+                tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getCreateTime());
+
+            }
+            int temp = 0;
+            for (TTesterOtherTask tTesterOtherTask : list) {
+                temp += tTesterOtherTask.getEvaluateScore();
+            }
+            tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp);
+            tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+            tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+            tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+        }
+        tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS);
+        return R.ok(tResultWorkEvaluateDetailVO);
+    }
 
 }
 

--
Gitblit v1.7.1