From edddb1a2e87a8d5626ecb9fefc302d36cf3baadc Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 20 五月 2025 09:46:12 +0800 Subject: [PATCH] 项目总积分 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java | 1380 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 1,370 insertions(+), 10 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java index 65e5600..a9abf81 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java @@ -2,18 +2,34 @@ import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TQaTestItemDTO; -import com.ruoyi.system.service.TResultWorkEvaluateService; +import com.ruoyi.system.model.*; +import com.ruoyi.system.query.TQaTestItemReportQuery; +import com.ruoyi.system.query.TResultWorkEvaluateQuery; +import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -27,12 +43,36 @@ @RestController @RequestMapping("/t-result-work-evaluate") public class TResultWorkEvaluateController { + @Resource + private TResultWorkEvaluateService tResultWorkEvaluateService; + @Resource + private TokenService tokenService; + @Resource + private TFeasibilityStudyReportService feasibilityStudyReportService; + @Resource + private TExperimentResultReportService experimentResultReportService; + @Resource + private TProjectApprovalReportService projectApprovalReportService; + @Resource + private TExperimentDispatchService experimentDispatchService; + @Resource + private TClinicalTrialPointsService clinicalTrialPointsService; + @Resource + private TTesterOtherTaskService tTesterOtherTaskService; - private final TResultWorkEvaluateService resultWorkEvaluateService; + @Resource + private TProjectProposalService projectProposalService; + @Resource + private TQaProduceReportService qaProduceReportService; + private final TProjectTeamService projectTeamService; + private final TProjectTeamStaffService projectTeamStaffService; + private final ISysUserService sysUserService; @Autowired - public TResultWorkEvaluateController(TResultWorkEvaluateService resultWorkEvaluateService) { - this.resultWorkEvaluateService = resultWorkEvaluateService; + public TResultWorkEvaluateController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) { + this.projectTeamService = projectTeamService; + this.projectTeamStaffService = projectTeamStaffService; + this.sysUserService = sysUserService; } /** @@ -40,13 +80,1333 @@ */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')") @Log(title = "QA检测项管理信息-新增QA检测项管理", businessType = BusinessType.INSERT) - @ApiOperation(value = "添加QA检测项管理",response = TQaTestItemDTO.class) + @ApiOperation(value = "添加QA检测项管理", response = TQaTestItemDTO.class) @PostMapping(value = "/api/t-qa-test-item/add") public R<Boolean> add(@RequestBody String param) { - TQaTestItemDTO dto = JSON.parseObject(param,TQaTestItemDTO.class); + TQaTestItemDTO dto = JSON.parseObject(param, TQaTestItemDTO.class); // resultWorkEvaluateService.save(dto); return R.ok(); } + + @ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TQaTestItemReportQuery.class) + @PostMapping(value = "/api/t-result-work-evaluate/pageList") + public R<PageInfo<TResultWorkEvaluateVO>> pageList(@RequestBody String param) { + LoginUser loginUser = tokenService.getLoginUser(); + + TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class); + SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId()); + if (sysUser.getRoleType() != 1) { + List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list() + .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); + if (collect.isEmpty()) { + return R.ok(new PageInfo<>()); + } + } + return R.ok(tResultWorkEvaluateService.pageList(query)); + } + + /** + * 查看取样记录详情 + */ + //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')") + @ApiOperation(value = "查看详情-顶部数据") + @GetMapping(value = "/open/t-result-work-evaluate/getDetailById") + public R<TResultWorkEvaluateDetailVO> getDetailById(@RequestParam String id) { + TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); + + TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); + TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); + tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); + TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one(); + List<Long> role4 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<Long> role5 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<SysUser> user4 = new ArrayList<>(); + List<SysUser> user5 = new ArrayList<>(); + for (Long l : role4) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user4.add(sysUser); + } + } + for (Long l : role5) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user5.add(sysUser); + } + } + List<TResultWorkEvaluate> list = tResultWorkEvaluateService.lambdaQuery().eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()) + .eq(TResultWorkEvaluate::getStatus, 1).orderByDesc(TResultWorkEvaluate::getEvaluateTime).list(); + int temp1 = 0; + int temp2 = 0; + int temp3 = 0; + int temp4 = 0; + int temp5 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 2; + } + temp1 += 2; + break; + case 2: + temp1 += 1; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 1; + } + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + temp1 += 2; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 2; + } + break; + case 2: + temp1 += 1; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 1; + } + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + temp1 += 2; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 2; + } + break; + case 2: + temp1 += 1; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 1; + } + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + temp1 += 2; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 2; + } + break; + case 2: + temp1 += 1; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 1; + } + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + temp1 += 2; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 2; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 2; + } + break; + case 2: + temp1 += 1; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 += 1; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 += 1; + } + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + temp1 -= 3; + temp5++; + if (tResultWorkEvaluate.getEvaluateType() == 1) { + temp2 -= 3; + } + if (tResultWorkEvaluate.getEvaluateType() == 2) { + temp3 -= 3; + } + if (tResultWorkEvaluate.getEvaluateType() == 3) { + temp4 -= 3; + } + break; + } + } + tResultWorkEvaluateDetailVO.setTeamIntegral(temp1); + tResultWorkEvaluateDetailVO.setEngineerIntegral(temp2); + tResultWorkEvaluateDetailVO.setChemistIntegral(temp3); + tResultWorkEvaluateDetailVO.setTesterIntegral(temp4); + tResultWorkEvaluateDetailVO.setTermination(temp5); + if (!list.isEmpty()) { + tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime()); + } + + return R.ok(tResultWorkEvaluateDetailVO); + } + + + @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定") + @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne") + public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) { + TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); + + TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); + TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); + TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1") + .one(); + tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); + List<Long> role4 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<Long> role5 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<SysUser> user4 = new ArrayList<>(); + List<SysUser> user5 = new ArrayList<>(); + for (Long l : role4) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user4.add(sysUser); + } + } + for (Long l : role5) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user5.add(sysUser); + } + } + Long userId = one.getUserId(); + + List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery() + .eq(TFeasibilityStudyReport::getStatus, 3) + .eq(TFeasibilityStudyReport::getEvaluatePersonId, userId).list(); + List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>(); + // 工艺可研 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO = new TResultWorkEvaluateDetailEngineerVO(); + List<TFeasibilityStudyReport> collect = total.stream().filter(e -> e.getReportType().equals(1)).collect(Collectors.toList()); + int tempDetail = 0; + for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) { + if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) { + for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) { + tempDetail += Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO.setCount(collect.size()); + tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail); + if (!collect.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime()); + + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO); + // 工艺可行 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO(); + List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList()); + int tempDetail1 = 0; + for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) { + if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) { + for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) { + tempDetail1 += Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size()); + tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1); + if (!collect1.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO1.setStartTime(projectTeam.getCreateTime()); + + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO1); + + // 开发阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO(); + List<Integer> status = new ArrayList<>(); + status.add(-1); + status.add(1); + status.add(3); + status.add(4); + status.add(5); + List<TProjectProposal> list2 = projectProposalService.lambdaQuery().eq(TProjectProposal::getCommitUserId, userId) + .notIn(TProjectProposal::getAuditStatus, status).list(); + List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect5.isEmpty()) { + collect5.add("0"); + } + List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect6.isEmpty()) { + collect6.add("0"); + } + List<Integer> status1 = new ArrayList<>(); + status1.add(-1); + status1.add(1); + status1.add(2); + status1.add(4); + List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect6).list(); + int tempDetail2 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list1) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail2 -= 3; + break; + } + } + if (!list1.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime()); + + tResultWorkEvaluateDetailEngineerVO2.setCount(list1.size()); + tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2); + + // 中试试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO(); + + List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect7.isEmpty()) { + collect7.add("0"); + } + List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect8.isEmpty()) { + collect8.add("0"); + } + List<Integer> status2 = new ArrayList<>(); + status2.add(-1); + status2.add(1); + status2.add(2); + status2.add(4); + List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect8).list(); + int tempDetail3 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list3) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail3 -= 3; + break; + } + } + if (!list3.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size()); + tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3); + // 验证试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO(); + + List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect10.isEmpty()) { + collect10.add("0"); + } + List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect11.isEmpty()) { + collect11.add("0"); + } + List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list(); + int tempDetail4 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list4) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail4 -= 3; + break; + } + } + if (!list4.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size()); + tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4); + // 工艺开发工具 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO(); + List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList()); + int tempDetail15 = 0; + for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) { + if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) { + for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) { + tempDetail15 += Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size()); + tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15); + if (!collect12.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5); + // 验证与发布 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO(); + List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList()); + int tempDetail16 = 0; + for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) { + if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())) { + for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) { + tempDetail16 += Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size()); + tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16); + if (!collect13.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6); + // 立项报告 + List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list(); + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO(); + tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size()); + if (!list5.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size() - 1).getAuditTime()); + } + tResultWorkEvaluateDetailEngineerVO7.setStartTime(projectTeam.getCreateTime()); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7); + // todo 临床试验积分 + List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery().eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list(); + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO(); + tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size()); + if (!list6.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size() - 1).getCreateTime()); + } + tResultWorkEvaluateDetailEngineerVO8.setStartTime(projectTeam.getCreateTime()); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8); + tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS); + return R.ok(tResultWorkEvaluateDetailVO); + } + + @ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定") + @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftTwo") + public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftTwo(@RequestParam String id) { + TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); + List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>(); + TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); + TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); + tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); + List<Long> role5 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<SysUser> user5 = new ArrayList<>(); + SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); + if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) { + //只能查看自己的 + user5.add(sysUser1); + } else { + for (Long l : role5) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user5.add(sysUser); + } + } + } + + + List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery() + .eq(TFeasibilityStudyReport::getStatus, 3) + .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list(); + List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>(); + for (SysUser sysUser : user5) { + TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO(); + tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName()); + // 开发阶段 + List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery() + .eq(TResultWorkEvaluate::getEvaluateType, 2) + .eq(TResultWorkEvaluate::getStatus, 1) + .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId()) + .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list(); + // 调度ids + List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList()); + if (collect.isEmpty()) { + collect.add("0"); + } + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO(); + List<Integer> status = new ArrayList<>(); + status.add(-1); + status.add(1); + status.add(3); + status.add(4); + status.add(5); + // 课题方案ids + List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList()); + if (collect6.isEmpty()) { + collect6.add("0"); + } + List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .notIn(TProjectProposal::getAuditStatus, status).list(); + List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect5.isEmpty()) { + collect5.add("0"); + } + // 开发阶段调度ids + List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect1.isEmpty()) { + collect1.add("0"); + } + List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList()); + int tempDetail2 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : collect2) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail2 -= 3; + break; + } + } + if (!list1.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime()); + tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size()); + tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2); + + // 中试试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO(); + List<String> collect7 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .eq(TProjectProposal::getProjectStage, 2) + .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect7.isEmpty()) { + collect7.add("0"); + } + List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect8.isEmpty()) { + collect8.add("0"); + } + List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery() + .eq(TResultWorkEvaluate::getStatus, 1).in(TResultWorkEvaluate::getDispatchId, collect8).list(); + int tempDetail3 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list3) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail3 -= 3; + break; + } + } + if (!list3.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size()); + tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3); + // 验证试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO(); + + List<String> collect10 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .eq(TProjectProposal::getProjectStage, 2) + .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect10.isEmpty()) { + collect10.add("0"); + } + List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect11.isEmpty()) { + collect11.add("0"); + } + List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list(); + int tempDetail4 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list4) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail4 -= 3; + break; + } + } + if (!list4.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size()); + tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4); + // todo 项目检测项评定 + + + // 中试、生产验证试验检验分析报告评定 + List<TQaProduceReport> list = qaProduceReportService.lambdaQuery() + .eq(TQaProduceReport::getStatus,3).eq(TQaProduceReport::getCommitPersonId, sysUser.getUserId()).list(); + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO(); + List<TQaProduceReport> collect3 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); + if (!collect3.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect3.get(0).getCreateTime()); + tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getCreateTime()); + } + int tempDetail5 = 0; + for (TQaProduceReport tQaProduceReport : collect3) { + if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ + for (String s : tQaProduceReport.getEvaluateScore().split(",")) { + tempDetail5+=Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO5.setCount(collect3.size()); + tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail5); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5); + // 辅料 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO(); + List<TQaProduceReport> collect4 = list.stream().filter(e -> e.getReportType() == 2).collect(Collectors.toList()); + if (!collect4.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect4.get(0).getCreateTime()); + tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getCreateTime()); + } + int tempDetail6 = 0; + for (TQaProduceReport tQaProduceReport : collect4) { + if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ + for (String s : tQaProduceReport.getEvaluateScore().split(",")) { + tempDetail6+=Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO6.setCount(collect4.size()); + tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail6); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6); + // 产品 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO(); + List<TQaProduceReport> collect9 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); + if (!collect9.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getCreateTime()); + tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getCreateTime()); + } + int tempDetail7 = 0; + for (TQaProduceReport tQaProduceReport : collect9) { + if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ + for (String s : tQaProduceReport.getEvaluateScore().split(",")) { + tempDetail7+=Integer.parseInt(s); + } + } + } + tResultWorkEvaluateDetailEngineerVO7.setCount(collect9.size()); + tResultWorkEvaluateDetailEngineerVO7.setIntegral(tempDetail7); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7); + + tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS); + tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO); + } + tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS); + return R.ok(tResultWorkEvaluateDetailVO); + } + + @ApiOperation(value = "查看详情-左侧数据-实验员工作内容评定") + @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftThree") + public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftThree(@RequestParam String id) { + TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); + List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>(); + TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); + TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); + tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); + List<Long> role5 = projectTeamStaffService.lambdaQuery() + .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() + .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); + List<SysUser> user5 = new ArrayList<>(); + SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); + if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) { + //只能查看自己的 + user5.add(sysUser1); + } else { + for (Long l : role5) { + SysUser sysUser = sysUserService.selectUserById(l); + if (sysUser != null) { + user5.add(sysUser); + } + } + } + + List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>(); + for (SysUser sysUser : user5) { + TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO(); + tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName()); + // 开发阶段 + List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery() + .eq(TResultWorkEvaluate::getEvaluateType, 3) + .eq(TResultWorkEvaluate::getStatus, 1) + .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId()) + .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list(); + // 调度ids + List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList()); + if (collect.isEmpty()) { + collect.add("0"); + } + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO(); + List<Integer> status = new ArrayList<>(); + status.add(-1); + status.add(1); + status.add(3); + status.add(4); + status.add(5); + // 课题方案ids + List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList()); + if (collect6.isEmpty()) { + collect6.add("0"); + } + List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .notIn(TProjectProposal::getAuditStatus, status).list(); + List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect5.isEmpty()) { + collect5.add("0"); + } + // 开发阶段调度ids + List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect1.isEmpty()) { + collect1.add("0"); + } + List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList()); + int tempDetail2 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : collect2) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail2 += 2; + break; + case 2: + tempDetail2 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail2 += 2; + + break; + case 2: + tempDetail2 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail2 -= 3; + break; + } + } + if (!list1.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime()); + tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size()); + tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2); + + // 中试试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO(); + List<String> collect7 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .eq(TProjectProposal::getProjectStage, 2) + .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect7.isEmpty()) { + collect7.add("0"); + } + List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect8.isEmpty()) { + collect8.add("0"); + } + List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery() + .eq(TResultWorkEvaluate::getStatus, 1).in(TResultWorkEvaluate::getDispatchId, collect8).list(); + int tempDetail3 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list3) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail3 += 2; + break; + case 2: + tempDetail3 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail3 += 2; + + break; + case 2: + tempDetail3 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail3 -= 3; + break; + } + } + if (!list3.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size()); + tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3); + // 验证试验阶段 + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO(); + + List<String> collect10 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6) + .eq(TProjectProposal::getProjectStage, 2) + .notIn(TProjectProposal::getAuditStatus, status).list().stream().map(TProjectProposal::getId).collect(Collectors.toList()); + if (collect10.isEmpty()) { + collect10.add("0"); + } + List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10) + .ne(TExperimentDispatch::getStatus, -1) + .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); + if (collect11.isEmpty()) { + collect11.add("0"); + } + List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list(); + int tempDetail4 = 0; + for (TResultWorkEvaluate tResultWorkEvaluate : list4) { + Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne(); + switch (evaluateOne) { + case 1: + + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + + } + Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo(); + switch (evaluateTwo) { + case 1: + tempDetail4 += 2; + break; + case 2: + tempDetail4 += 1; + + break; + } + Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree(); + switch (evaluateThree) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour(); + switch (evaluateFour) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive(); + switch (evaluateFive) { + case 1: + tempDetail4 += 2; + + break; + case 2: + tempDetail4 += 1; + break; + } + Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix(); + switch (evaluateSix) { + case 1: + tempDetail4 -= 3; + break; + } + } + if (!list4.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size() - 1).getEvaluateTime()); + } + tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size()); + tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4); + // 其他任务 + List<TTesterOtherTask> list = tTesterOtherTaskService.lambdaQuery().eq(TTesterOtherTask::getTesterId, sysUser.getUserId()).list(); + TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO(); + tResultWorkEvaluateDetailEngineerVO5.setCount(list.size()); + if (!list.isEmpty()) { + tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getEvaluateTime()); + tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getEvaluateTime()); + + } + int temp = 0; + for (TTesterOtherTask tTesterOtherTask : list) { + temp += tTesterOtherTask.getEvaluateScore(); + } + tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp); + tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4); + tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS); + tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO); + } + return R.ok(tResultWorkEvaluateDetailVO); + } } -- Gitblit v1.7.1