无关风月
2 天以前 edddb1a2e87a8d5626ecb9fefc302d36cf3baadc
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
@@ -3,12 +3,15 @@
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.model.*;
import com.ruoyi.system.query.TQaTestItemReportQuery;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
@@ -30,12 +33,13 @@
/**
 * <p>
 * 实验员工作评定 前端控制器
 * 实验结果工作评定 前端控制器
 * </p>
 *
 * @author xiaochen
 * @since 2025-04-08
 */
@Api(tags = "实验结果工作评定管理")
@RestController
@RequestMapping("/t-result-work-evaluate")
public class TResultWorkEvaluateController {
@@ -53,9 +57,13 @@
    private TExperimentDispatchService experimentDispatchService;
    @Resource
    private TClinicalTrialPointsService clinicalTrialPointsService;
    @Resource
    private TTesterOtherTaskService tTesterOtherTaskService;
    @Resource
    private TProjectProposalService projectProposalService;
    @Resource
    private TQaProduceReportService qaProduceReportService;
    private final TProjectTeamService projectTeamService;
    private final TProjectTeamStaffService projectTeamStaffService;
    private final ISysUserService sysUserService;
@@ -66,22 +74,38 @@
        this.projectTeamStaffService = projectTeamStaffService;
        this.sysUserService = sysUserService;
    }
    @ApiOperation(value = "项目组总积分分页列表",tags = "项目组总积分",response = TQaTestItemReportQuery.class)
    /**
     * 添加QA检测项管理管理
     */
    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
    @Log(title = "QA检测项管理信息-新增QA检测项管理", businessType = BusinessType.INSERT)
    @ApiOperation(value = "添加QA检测项管理", response = TQaTestItemDTO.class)
    @PostMapping(value = "/api/t-qa-test-item/add")
    public R<Boolean> add(@RequestBody String param) {
        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){
        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()){
            if (collect.isEmpty()) {
                return R.ok(new PageInfo<>());
            }
        }
        return R.ok(tResultWorkEvaluateService.pageList(query));
    }
    /**
     * 查看取样记录详情
     */
@@ -105,173 +129,173 @@
        List<SysUser> user5 = new ArrayList<>();
        for (Long l : role4) {
            SysUser sysUser = sysUserService.selectUserById(l);
            if (sysUser!=null){
            if (sysUser != null) {
                user4.add(sysUser);
            }
        }
        for (Long l : role5) {
            SysUser sysUser = sysUserService.selectUserById(l);
            if (sysUser!=null){
            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;
                .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){
            switch (evaluateOne) {
                case 1:
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 2;
                    }
                    temp1+=2;
                    temp1 += 2;
                    break;
                case 2:
                    temp1+=1;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=1;
                    temp1 += 1;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 1;
                    }
                    break;
            }
            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
            switch (evaluateTwo){
            switch (evaluateTwo) {
                case 1:
                    temp1+=2;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=2;
                    temp1 += 2;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 2;
                    }
                    break;
                case 2:
                    temp1+=1;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=1;
                    temp1 += 1;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 1;
                    }
                    break;
            }
            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
            switch (evaluateThree){
            switch (evaluateThree) {
                case 1:
                    temp1+=2;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=2;
                    temp1 += 2;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 2;
                    }
                    break;
                case 2:
                    temp1+=1;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=1;
                    temp1 += 1;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 1;
                    }
                    break;
            }
            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
            switch (evaluateFour){
            switch (evaluateFour) {
                case 1:
                    temp1+=2;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=2;
                    temp1 += 2;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 2;
                    }
                    break;
                case 2:
                    temp1+=1;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=1;
                    temp1 += 1;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 1;
                    }
                    break;
            }
            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
            switch (evaluateFive){
            switch (evaluateFive) {
                case 1:
                    temp1+=2;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=2;
                    temp1 += 2;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 2;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=2;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 2;
                    }
                    break;
                case 2:
                    temp1+=1;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2+=1;
                    temp1 += 1;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 += 1;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4+=1;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 += 1;
                    }
                    break;
            }
            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
            switch (evaluateSix){
            switch (evaluateSix) {
                case 1:
                    temp1-=3;
                    temp1 -= 3;
                    temp5++;
                    if (tResultWorkEvaluate.getEvaluateType()==1){
                        temp2-=3;
                    if (tResultWorkEvaluate.getEvaluateType() == 1) {
                        temp2 -= 3;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==2){
                        temp3-=3;
                    if (tResultWorkEvaluate.getEvaluateType() == 2) {
                        temp3 -= 3;
                    }
                    if (tResultWorkEvaluate.getEvaluateType()==3){
                        temp4-=3;
                    if (tResultWorkEvaluate.getEvaluateType() == 3) {
                        temp4 -= 3;
                    }
                    break;
            }
@@ -281,7 +305,7 @@
        tResultWorkEvaluateDetailVO.setChemistIntegral(temp3);
        tResultWorkEvaluateDetailVO.setTesterIntegral(temp4);
        tResultWorkEvaluateDetailVO.setTermination(temp5);
        if (!list.isEmpty()){
        if (!list.isEmpty()) {
            tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
        }
@@ -322,24 +346,24 @@
        Long userId = one.getUserId();
        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
                .eq(TFeasibilityStudyReport::getStatus,3)
                .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 ;
        int tempDetail = 0;
        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) {
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
                    tempDetail+=Integer.parseInt(s);
                    tempDetail += Integer.parseInt(s);
                }
            }
        }
        tResultWorkEvaluateDetailEngineerVO.setCount(collect.size());
        tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail);
        if (!collect.isEmpty()){
            tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size()-1).getEvaluateTime());
        if (!collect.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size() - 1).getEvaluateTime());
        }
        tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime());
@@ -347,18 +371,18 @@
        // 工艺可行
        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO();
        List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList());
        int  tempDetail1= 0 ;
        int tempDetail1 = 0;
        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) {
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
                    tempDetail1+=Integer.parseInt(s);
                    tempDetail1 += Integer.parseInt(s);
                }
            }
        }
        tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size());
        tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1);
        if (!collect1.isEmpty()){
            tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size()-1).getEvaluateTime());
        if (!collect1.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime());
        }
        tResultWorkEvaluateDetailEngineerVO1.setStartTime(projectTeam.getCreateTime());
@@ -375,13 +399,13 @@
        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()){
        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()){
        if (collect6.isEmpty()) {
            collect6.add("0");
        }
        List<Integer> status1 = new ArrayList<>();
@@ -393,66 +417,66 @@
        int tempDetail2 = 0;
        for (TResultWorkEvaluate tResultWorkEvaluate : list1) {
            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
            switch (evaluateOne){
            switch (evaluateOne) {
                case 1:
                    tempDetail2+=2;
                    tempDetail2 += 2;
                    break;
                case 2:
                    tempDetail2+=1;
                    tempDetail2 += 1;
                    break;
            }
            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
            switch (evaluateTwo){
            switch (evaluateTwo) {
                case 1:
                    tempDetail2+=2;
                    tempDetail2 += 2;
                    break;
                case 2:
                    tempDetail2+=1;
                    tempDetail2 += 1;
                    break;
            }
            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
            switch (evaluateThree){
            switch (evaluateThree) {
                case 1:
                    tempDetail2+=2;
                    tempDetail2 += 2;
                    break;
                case 2:
                    tempDetail2+=1;
                    tempDetail2 += 1;
                    break;
            }
            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
            switch (evaluateFour){
            switch (evaluateFour) {
                case 1:
                    tempDetail2+=2;
                    tempDetail2 += 2;
                    break;
                case 2:
                    tempDetail2+=1;
                    tempDetail2 += 1;
                    break;
            }
            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
            switch (evaluateFive){
            switch (evaluateFive) {
                case 1:
                    tempDetail2+=2;
                    tempDetail2 += 2;
                    break;
                case 2:
                    tempDetail2+=1;
                    tempDetail2 += 1;
                    break;
            }
            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
            switch (evaluateSix){
            switch (evaluateSix) {
                case 1:
                    tempDetail2-=3;
                    tempDetail2 -= 3;
                    break;
            }
        }
        if (!list1.isEmpty()){
            tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size()-1).getEvaluateTime());
        if (!list1.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
        }
        tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
@@ -464,13 +488,13 @@
        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
        List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
        if (collect7.isEmpty()){
        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()){
        if (collect8.isEmpty()) {
            collect8.add("0");
        }
        List<Integer> status2 = new ArrayList<>();
@@ -482,67 +506,67 @@
        int tempDetail3 = 0;
        for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
            Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
            switch (evaluateOne){
            switch (evaluateOne) {
                case 1:
                    tempDetail3+=2;
                    tempDetail3 += 2;
                    break;
                case 2:
                    tempDetail3+=1;
                    tempDetail3 += 1;
                    break;
            }
            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
            switch (evaluateTwo){
            switch (evaluateTwo) {
                case 1:
                    tempDetail3+=2;
                    tempDetail3 += 2;
                    break;
                case 2:
                    tempDetail3+=1;
                    tempDetail3 += 1;
                    break;
            }
            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
            switch (evaluateThree){
            switch (evaluateThree) {
                case 1:
                    tempDetail3+=2;
                    tempDetail3 += 2;
                    break;
                case 2:
                    tempDetail3+=1;
                    tempDetail3 += 1;
                    break;
            }
            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
            switch (evaluateFour){
            switch (evaluateFour) {
                case 1:
                    tempDetail3+=2;
                    tempDetail3 += 2;
                    break;
                case 2:
                    tempDetail3+=1;
                    tempDetail3 += 1;
                    break;
            }
            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
            switch (evaluateFive){
            switch (evaluateFive) {
                case 1:
                    tempDetail3+=2;
                    tempDetail3 += 2;
                    break;
                case 2:
                    tempDetail3+=1;
                    tempDetail3 += 1;
                    break;
            }
            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
            switch (evaluateSix){
            switch (evaluateSix) {
                case 1:
                    tempDetail3-=3;
                    tempDetail3 -= 3;
                    break;
            }
        }
        if (!list3.isEmpty()){
        if (!list3.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size()-1).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
        }
        tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
        tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
@@ -551,80 +575,80 @@
        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
        List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
        if (collect10.isEmpty()){
        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()){
        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){
            switch (evaluateOne) {
                case 1:
                    tempDetail4+=2;
                    tempDetail4 += 2;
                    break;
                case 2:
                    tempDetail4+=1;
                    tempDetail4 += 1;
                    break;
            }
            Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
            switch (evaluateTwo){
            switch (evaluateTwo) {
                case 1:
                    tempDetail4+=2;
                    tempDetail4 += 2;
                    break;
                case 2:
                    tempDetail4+=1;
                    tempDetail4 += 1;
                    break;
            }
            Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
            switch (evaluateThree){
            switch (evaluateThree) {
                case 1:
                    tempDetail4+=2;
                    tempDetail4 += 2;
                    break;
                case 2:
                    tempDetail4+=1;
                    tempDetail4 += 1;
                    break;
            }
            Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
            switch (evaluateFour){
            switch (evaluateFour) {
                case 1:
                    tempDetail4+=2;
                    tempDetail4 += 2;
                    break;
                case 2:
                    tempDetail4+=1;
                    tempDetail4 += 1;
                    break;
            }
            Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
            switch (evaluateFive){
            switch (evaluateFive) {
                case 1:
                    tempDetail4+=2;
                    tempDetail4 += 2;
                    break;
                case 2:
                    tempDetail4+=1;
                    tempDetail4 += 1;
                    break;
            }
            Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
            switch (evaluateSix){
            switch (evaluateSix) {
                case 1:
                    tempDetail4-=3;
                    tempDetail4 -= 3;
                    break;
            }
        }
        if (!list4.isEmpty()){
        if (!list4.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size()-1).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime());
        }
        tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
        tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
@@ -632,45 +656,45 @@
        // 工艺开发工具
        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
        List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
        int  tempDetail15= 0 ;
        int tempDetail15 = 0;
        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
                    tempDetail15+=Integer.parseInt(s);
                    tempDetail15 += Integer.parseInt(s);
                }
            }
        }
        tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
        tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
        if (!collect12.isEmpty()){
        if (!collect12.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size()-1).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 ;
        int tempDetail16 = 0;
        for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
            if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) {
                for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
                    tempDetail16+=Integer.parseInt(s);
                    tempDetail16 += Integer.parseInt(s);
                }
            }
        }
        tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
        tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
        if (!collect13.isEmpty()){
        if (!collect13.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
            tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size()-1).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());
        if (!list5.isEmpty()) {
            tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size() - 1).getAuditTime());
        }
        tResultWorkEvaluateDetailEngineerVO7.setStartTime(projectTeam.getCreateTime());
        tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
@@ -678,14 +702,15 @@
        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());
        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) {
@@ -699,10 +724,10 @@
                .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){
        if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
            //只能查看自己的
            user5.add(sysUser1);
        }else{
        } else {
            for (Long l : role5) {
                SysUser sysUser = sysUserService.selectUserById(l);
                if (sysUser != null) {
@@ -713,7 +738,7 @@
        List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
                .eq(TFeasibilityStudyReport::getStatus,3)
                .eq(TFeasibilityStudyReport::getStatus, 3)
                .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
        List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
        for (SysUser sysUser : user5) {
@@ -721,13 +746,13 @@
            tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
            // 开发阶段
            List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
                    .eq(TResultWorkEvaluate::getEvaluateType,2)
                    .eq(TResultWorkEvaluate::getStatus,1)
                    .eq(TResultWorkEvaluate::getUserId,sysUser.getUserId())
                    .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()){
            if (collect.isEmpty()) {
                collect.add("0");
            }
            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
@@ -741,84 +766,84 @@
            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()){
            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()){
            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()){
            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){
                switch (evaluateOne) {
                    case 1:
                        tempDetail2+=2;
                        tempDetail2 += 2;
                        break;
                    case 2:
                        tempDetail2+=1;
                        tempDetail2 += 1;
                        break;
                }
                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
                switch (evaluateTwo){
                switch (evaluateTwo) {
                    case 1:
                        tempDetail2+=2;
                        tempDetail2 += 2;
                        break;
                    case 2:
                        tempDetail2+=1;
                        tempDetail2 += 1;
                        break;
                }
                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
                switch (evaluateThree){
                switch (evaluateThree) {
                    case 1:
                        tempDetail2+=2;
                        tempDetail2 += 2;
                        break;
                    case 2:
                        tempDetail2+=1;
                        tempDetail2 += 1;
                        break;
                }
                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
                switch (evaluateFour){
                switch (evaluateFour) {
                    case 1:
                        tempDetail2+=2;
                        tempDetail2 += 2;
                        break;
                    case 2:
                        tempDetail2+=1;
                        tempDetail2 += 1;
                        break;
                }
                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
                switch (evaluateFive){
                switch (evaluateFive) {
                    case 1:
                        tempDetail2+=2;
                        tempDetail2 += 2;
                        break;
                    case 2:
                        tempDetail2+=1;
                        tempDetail2 += 1;
                        break;
                }
                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
                switch (evaluateSix){
                switch (evaluateSix) {
                    case 1:
                        tempDetail2-=3;
                        tempDetail2 -= 3;
                        break;
                }
            }
            if (!list1.isEmpty()){
                tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size()-1).getEvaluateTime());
            if (!list1.isEmpty()) {
                tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime());
            }
            tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
            tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size());
@@ -828,83 +853,83 @@
            // 中试试验阶段
            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
            List<String> collect7 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
                    .eq(TProjectProposal::getProjectStage,2)
                    .eq(TProjectProposal::getProjectStage, 2)
                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
            if (collect7.isEmpty()){
            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()){
            if (collect8.isEmpty()) {
                collect8.add("0");
            }
            List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
                    .eq(TResultWorkEvaluate::getStatus,1).in(TResultWorkEvaluate::getDispatchId, collect8).list();
                    .eq(TResultWorkEvaluate::getStatus, 1).in(TResultWorkEvaluate::getDispatchId, collect8).list();
            int tempDetail3 = 0;
            for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
                Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
                switch (evaluateOne){
                switch (evaluateOne) {
                    case 1:
                        tempDetail3+=2;
                        tempDetail3 += 2;
                        break;
                    case 2:
                        tempDetail3+=1;
                        tempDetail3 += 1;
                        break;
                }
                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
                switch (evaluateTwo){
                switch (evaluateTwo) {
                    case 1:
                        tempDetail3+=2;
                        tempDetail3 += 2;
                        break;
                    case 2:
                        tempDetail3+=1;
                        tempDetail3 += 1;
                        break;
                }
                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
                switch (evaluateThree){
                switch (evaluateThree) {
                    case 1:
                        tempDetail3+=2;
                        tempDetail3 += 2;
                        break;
                    case 2:
                        tempDetail3+=1;
                        tempDetail3 += 1;
                        break;
                }
                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
                switch (evaluateFour){
                switch (evaluateFour) {
                    case 1:
                        tempDetail3+=2;
                        tempDetail3 += 2;
                        break;
                    case 2:
                        tempDetail3+=1;
                        tempDetail3 += 1;
                        break;
                }
                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
                switch (evaluateFive){
                switch (evaluateFive) {
                    case 1:
                        tempDetail3+=2;
                        tempDetail3 += 2;
                        break;
                    case 2:
                        tempDetail3+=1;
                        tempDetail3 += 1;
                        break;
                }
                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
                switch (evaluateSix){
                switch (evaluateSix) {
                    case 1:
                        tempDetail3-=3;
                        tempDetail3 -= 3;
                        break;
                }
            }
            if (!list3.isEmpty()){
            if (!list3.isEmpty()) {
                tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
                tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size()-1).getEvaluateTime());
                tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime());
            }
            tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
            tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
@@ -913,88 +938,145 @@
            TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
            List<String> collect10 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
                    .eq(TProjectProposal::getProjectStage,2)
                    .eq(TProjectProposal::getProjectStage, 2)
                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList());
            if (collect10.isEmpty()){
            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()){
            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){
                switch (evaluateOne) {
                    case 1:
                        tempDetail4+=2;
                        tempDetail4 += 2;
                        break;
                    case 2:
                        tempDetail4+=1;
                        tempDetail4 += 1;
                        break;
                }
                Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
                switch (evaluateTwo){
                switch (evaluateTwo) {
                    case 1:
                        tempDetail4+=2;
                        tempDetail4 += 2;
                        break;
                    case 2:
                        tempDetail4+=1;
                        tempDetail4 += 1;
                        break;
                }
                Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
                switch (evaluateThree){
                switch (evaluateThree) {
                    case 1:
                        tempDetail4+=2;
                        tempDetail4 += 2;
                        break;
                    case 2:
                        tempDetail4+=1;
                        tempDetail4 += 1;
                        break;
                }
                Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
                switch (evaluateFour){
                switch (evaluateFour) {
                    case 1:
                        tempDetail4+=2;
                        tempDetail4 += 2;
                        break;
                    case 2:
                        tempDetail4+=1;
                        tempDetail4 += 1;
                        break;
                }
                Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
                switch (evaluateFive){
                switch (evaluateFive) {
                    case 1:
                        tempDetail4+=2;
                        tempDetail4 += 2;
                        break;
                    case 2:
                        tempDetail4+=1;
                        tempDetail4 += 1;
                        break;
                }
                Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
                switch (evaluateSix){
                switch (evaluateSix) {
                    case 1:
                        tempDetail4-=3;
                        tempDetail4 -= 3;
                        break;
                }
            }
            if (!list4.isEmpty()){
            if (!list4.isEmpty()) {
                tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
                tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size()-1).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);
@@ -1002,5 +1084,329 @@
        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);
    }
}