package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.TResultWorkEvaluateDTO; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.model.*; import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery; import com.ruoyi.system.query.TProjectApprovalReportQuery; import com.ruoyi.system.query.TResultWorkEvaluateQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.service.impl.WorkEvaluateService; import com.ruoyi.system.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; /** *

* 实验结果工作评定 前端控制器 *

* * @author xiaochen * @since 2025-04-08 */ @Api(tags = "实验结果工作评定管理") @RestController @RequestMapping("") public class TResultWorkEvaluateController { @Resource private TResultWorkEvaluateService tResultWorkEvaluateService; @Resource private TokenService tokenService; @Resource private TFeasibilityStudyReportService feasibilityStudyReportService; @Resource private TExperimentResultReportService experimentResultReportService; @Resource private TExperimentSchemeService experimentSchemeService; @Resource private TProjectApprovalReportService projectApprovalReportService; @Resource private TExperimentDispatchService experimentDispatchService; @Resource private TClinicalTrialPointsService clinicalTrialPointsService; @Resource private TTesterOtherTaskService tTesterOtherTaskService; @Resource private TProjectProposalService projectProposalService; @Resource private TQaProduceReportService qaProduceReportService; @Resource private TQaTestItemService qaTestItemService; @Autowired private TProjectTeamService projectTeamService; @Autowired private TProjectTeamStaffService projectTeamStaffService; @Autowired private ISysUserService sysUserService; @Autowired private SysUserMapper sysUserMapper; @Autowired private TExperimentDispatchParticipantsService experimentDispatchParticipantsService; @Autowired private TExperimentResultReportService tExperimentResultReportService; @Autowired private TExperimentDispatchService tExperimentDispatchService; @Autowired private TProjectProposalService tProjectProposalService; @Autowired private WorkEvaluateService workEvaluateCalculateService; /** * 获取化验师工作评定分页列表 */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')") @ApiOperation(value = "获取化验师工作评定分页列表",response = TResultWorkEvaluateQuery.class) @PostMapping(value = "/api/t-result-work-evaluate/chemistEvaluateList") public R> chemistEvaluateList(@RequestBody String param) { TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class); Long userId = tokenService.getLoginUser().getUserId(); Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); query.setRoleType(roleType); if(roleType != 1){ // 查询用户所在项目组 List projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) .eq(TProjectTeamStaff::getUserId, userId)); if(projectTeamStaffs.size() > 0){ // 查询项目组id List teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList()); query.setTeamIds(teamIds); } if(roleType == 4){ query.setUserId(userId); } } return R.ok(tResultWorkEvaluateService.chemistEvaluateList(query)); } /** * 获取实验员工作评定分页列表 */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')") @ApiOperation(value = "获取实验员工作评定分页列表",response = TProjectApprovalReportQuery.class) @PostMapping(value = "/api/t-result-work-evaluate/testerEvaluateList") public R> testerEvaluateList(@RequestBody String param) { TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class); Long userId = tokenService.getLoginUser().getUserId(); Integer roleType = tokenService.getLoginUser().getUser().getRoleType(); query.setRoleType(roleType); if(roleType != 1){ // 查询用户所在项目组 List projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class) .eq(TProjectTeamStaff::getUserId, userId)); if(projectTeamStaffs.size() > 0){ // 查询项目组id List teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList()); query.setTeamIds(teamIds); } if(roleType == 5){ query.setUserId(userId); } } return R.ok(tResultWorkEvaluateService.testerEvaluateList(query)); } /** * 新增化验师、实验员工作评定 */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')") @Log(title = "实验结果工作评定管理-新增化验师、实验员工作评定", businessType = BusinessType.INSERT) @ApiOperation(value = "新增化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class) @PostMapping(value = "/api/t-result-work-evaluate/add") public R add(@RequestBody String param) { TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class); tResultWorkEvaluateService.save(dto); // 查询实验调度 TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId()); if(Objects.nonNull(dispatch)){ // 修改结束时间 dispatch.setExperimentEndTime(LocalDateTime.now()); experimentDispatchService.updateById(dispatch); } return R.ok(); } /** * 编辑化验师、实验员工作评定 */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:edit')") @Log(title = "实验结果工作评定管理-编辑化验师、实验员工作评定", businessType = BusinessType.UPDATE) @ApiOperation(value = "编辑化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class) @PostMapping(value = "/api/t-result-work-evaluate/edit") public R edit(@RequestBody String param) { TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class); tResultWorkEvaluateService.updateById(dto); // 查询实验调度 TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId()); if(Objects.nonNull(dispatch)){ // 修改结束时间 dispatch.setExperimentEndTime(LocalDateTime.now()); experimentDispatchService.updateById(dispatch); } return R.ok(); } /** * 删除化验师、实验员工作评定 */ //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:delete')") @Log(title = "实验结果工作评定管理-删除化验师、实验员工作评定", businessType = BusinessType.DELETE) @ApiOperation(value = "删除化验师、实验员工作评定") @DeleteMapping(value = "/open/t-result-work-evaluate/deleteById") public R deleteById(@RequestParam String id) { tResultWorkEvaluateService.removeById(id); return R.ok(); } /** * 查看实验结果工作评定管理详情 */ //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:detail')") @ApiOperation(value = "查看实验结果工作评定管理详情") @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateDetailById") public R getEvaluateDetailById(@RequestParam String id) { // 查询实验结果工作评定 TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); TResultWorkEvaluateVO tResultWorkEvaluateVO = new TResultWorkEvaluateVO(); BeanUtils.copyProperties(resultWorkEvaluate, tResultWorkEvaluateVO); // 查询实验调度 TExperimentDispatch experimentDispatch = experimentDispatchService.getById(resultWorkEvaluate.getDispatchId()); // 查询实验调度信息 if(Objects.nonNull(experimentDispatch)){ // 查询课题方案名称 TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId()); if(Objects.nonNull(projectProposal)){ experimentDispatch.setProjectName(projectProposal.getProjectName()); experimentDispatch.setProjectCode(projectProposal.getProjectCode()); } // 查询参与人员 List tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId())); List userIds1 = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList()); List sysUsers1 = sysUserMapper.selectUserByIds(userIds1); String participantsName = sysUsers1.stream().map(SysUser::getNickName).collect(Collectors.joining(";")); experimentDispatch.setParticipantsName(participantsName); } tResultWorkEvaluateVO.setExperimentDispatch(experimentDispatch); // 查询被评定人 SysUser sysUser = sysUserService.selectUserById(tResultWorkEvaluateVO.getUserId()); if(tResultWorkEvaluateVO.getEvaluateType() == 2){ // 化验师 tResultWorkEvaluateVO.setChemistName(sysUser.getNickName()); }else { // 实验员 tResultWorkEvaluateVO.setTesterName(sysUser.getNickName()); } return R.ok(tResultWorkEvaluateVO); } /** * 查询可评定的化验师 */ @ApiOperation(value = "查询可评定的化验师") @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateChemist") public R> getEvaluateChemist(@RequestParam(value = "nickName",required = false) String nickName, @RequestParam(value = "dispatchId") String dispatchId) { // 查询参与的化验师 List experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId) .eq(TExperimentDispatchParticipants::getRoleType, 4)); List userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList()); if(StringUtils.hasLength(nickName)){ List sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds); return R.ok(sysUsers); } List sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds); return R.ok(sysUsers); } /** * 查询可评定的实验员 */ @ApiOperation(value = "查询可评定的实验员") @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateTester") public R> getEvaluateTester(@RequestParam(value = "nickName",required = false) String nickName, @RequestParam(value = "dispatchId") String dispatchId) { // 查询参与的化验师 List experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) .eq(TExperimentDispatchParticipants::getDispatchId, dispatchId) .eq(TExperimentDispatchParticipants::getRoleType, 5)); List userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList()); if(StringUtils.hasLength(nickName)){ List sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds); return R.ok(sysUsers); } List sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds); return R.ok(sysUsers); } /** * 查询化验师评定列表 */ @ApiOperation(value = "查询化验师评定列表-化验师使用") @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateChemistPageList") public R> getEvaluateChemistPageList(@RequestBody String param) { ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class); // 获取当前用户id Long userId = tokenService.getLoginUser().getUserId(); query.setUserId(userId); PageInfo pageInfo = tResultWorkEvaluateService.getEvaluateChemistPageList(query); return R.ok(pageInfo); } /** * 查询实验员评定列表 */ @ApiOperation(value = "查询实验员评定列表-实验员使用") @PostMapping(value = "/api/t-result-work-evaluate/getEvaluateTesterPageList") public R> getEvaluateTesterPageList(@RequestBody String param) { ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class); // 获取当前用户id Long userId = tokenService.getLoginUser().getUserId(); query.setUserId(userId); PageInfo pageInfo = tResultWorkEvaluateService.getEvaluateTesterPageList(query); return R.ok(pageInfo); } @ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TResultWorkEvaluateQuery.class) @PostMapping(value = "/api/t-result-work-evaluate/pageList") public R> pageList(@RequestBody String param) { LoginUser loginUser = tokenService.getLoginUser(); TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class); if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){ query.setUserId(null); } SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId()); if (sysUser.getRoleType() != 1) { List teamIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list() .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); if (teamIds.isEmpty()) { return R.ok(new PageInfo<>()); } query.setTeamIds(teamIds); }else { List teamIds = projectTeamStaffService.lambdaQuery() .list() .stream() .map(TProjectTeamStaff::getTeamId) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); if (teamIds.isEmpty()) { return R.ok(new PageInfo<>()); } query.setTeamIds(teamIds); } return R.ok(tResultWorkEvaluateService.pageList(query)); } /** * 查看取样记录详情 */ //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')") @ApiOperation(value = "查看详情-顶部数据",response = TResultWorkEvaluateVO.class) @GetMapping(value = "/open/t-result-work-evaluate/getDetailById") public R getDetailById(@RequestParam String id) { TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); List role4 = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List role5 = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List user4 = new ArrayList<>(); List user5 = new ArrayList<>(); for (Long l : role4) { SysUser sysUser = sysUserService.selectUserById(l); if (sysUser != null) { user4.add(sysUser); } } for (Long l : role5) { SysUser sysUser = sysUserService.selectUserById(l); if (sysUser != null) { user5.add(sysUser); } } int engineerIntegral = 0; // 工艺工程师总积分 int chemistIntegral = 0; // 化验师总积分 int testerIntegral = 0; // 实验员总积分 // 单独获取各角色积分 TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);//工艺工程师 if (engineerEvaluateDetail != null && engineerEvaluateDetail.getEngineerList() != null) { engineerIntegral = engineerEvaluateDetail.getEngineerList().stream() .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0)) .sum(); } TResultWorkEvaluateDetailVO chemistEvaluateDetail = workEvaluateCalculateService.getChemistEvaluateDetail(id);//4 化验师 if (chemistEvaluateDetail != null && chemistEvaluateDetail.getChemistList() != null) { chemistIntegral = chemistEvaluateDetail.getChemistList().stream() .filter(user -> user.getList() != null) .flatMap(user -> user.getList().stream()) .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0)) .sum(); } TResultWorkEvaluateDetailVO testerEvaluateDetail = workEvaluateCalculateService.getTesterEvaluateDetail(id);// 5 实验员 if (testerEvaluateDetail != null && testerEvaluateDetail.getTesterList() != null) { testerIntegral = testerEvaluateDetail.getTesterList().stream() .filter(user -> user.getList() != null) .flatMap(user -> user.getList().stream()) .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0)) .sum(); } // 计算项目组总积分 int teamIntegral = engineerIntegral + chemistIntegral + testerIntegral; tResultWorkEvaluateDetailVO.setTeamIntegral(teamIntegral); tResultWorkEvaluateDetailVO.setEngineerIntegral(engineerIntegral); tResultWorkEvaluateDetailVO.setChemistIntegral(chemistIntegral); tResultWorkEvaluateDetailVO.setTesterIntegral(testerIntegral); //查询最后一条数据的时间 TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery() .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId()) .eq(TResultWorkEvaluate::getDisabled, 0)//未删除 .orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序 .last("limit 1")// 取第一条 .one(); if (tResultWorkEvaluate != null) { tResultWorkEvaluateDetailVO.setEndTime(tResultWorkEvaluate.getEvaluateTime()); } // 查询项目组总的失败次数 String teamId = resultWorkEvaluate.getTeamId(); List projectProposalIds = projectProposalService.lambdaQuery().eq(TProjectProposal::getTeamId, teamId).list() .stream().map(TProjectProposal::getId).collect(Collectors.toList()); if (projectProposalIds.isEmpty()){ tResultWorkEvaluateDetailVO.setTermination(0); }else{ List experimentDispatchIds = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, projectProposalIds).list() .stream().map(TExperimentDispatch::getId).collect(Collectors.toList()); if (experimentDispatchIds.isEmpty()){ tResultWorkEvaluateDetailVO.setTermination(0); }else{ Long count = experimentSchemeService.lambdaQuery().in(TExperimentScheme::getDispatchId, experimentDispatchIds) .eq(TExperimentScheme::getStatus, 3).count(); tResultWorkEvaluateDetailVO.setTermination(count.intValue()); } } return R.ok(tResultWorkEvaluateDetailVO); } @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定") @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne") public R getDetailByIdLeftOne(@RequestParam String id) { TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id); return R.ok(engineerEvaluateDetail); } @ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定") @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftTwo") public R getDetailByIdLeftTwo(@RequestParam String id) { TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); List tResultWorkEvaluateDetailUserVOS = new ArrayList<>(); TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); List role5 = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List 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 total = feasibilityStudyReportService.lambdaQuery() // .eq(TFeasibilityStudyReport::getStatus, 3) // .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list(); for (SysUser sysUser : user5) { List tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>(); TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO(); tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName()); // 开发阶段 //查询当前team的实验结果评定 集合 List tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery() .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId()) .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId()) .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师 .eq(TResultWorkEvaluate::getDisabled, 0)//未删除 .orderByAsc(TResultWorkEvaluate::getEvaluateTime) .list(); workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS); // 项目检测项评定 TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO(); List list5 = qaTestItemService.lambdaQuery() .eq(TQaTestItem::getStatus,3).eq(TQaTestItem::getCommitPersonId, sysUser.getUserId()).list(); if (!list5.isEmpty()){ tResultWorkEvaluateDetailEngineerVO9.setStartTime(list5.get(0).getEvaluateTime()); tResultWorkEvaluateDetailEngineerVO9.setEndTime(list5.get(list5.size() - 1).getCreateTime()); } int tempDetail9 = 0; for (TQaTestItem tQaTestItem : list5) { if (StringUtils.hasLength(tQaTestItem.getEvaluateScore())){ for (String s : tQaTestItem.getEvaluateScore().split(",")){ tempDetail9 += Integer.parseInt(s); } } } tResultWorkEvaluateDetailEngineerVO9.setCount(list5.size()); tResultWorkEvaluateDetailEngineerVO9.setIntegral(tempDetail9); tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO9); // 中试、生产验证试验检验分析报告评定 List list = qaProduceReportService.lambdaQuery() .eq(TQaProduceReport::getStatus,3).eq(TQaProduceReport::getCommitPersonId, sysUser.getUserId()).list(); TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO(); List collect3 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList()); if (!collect3.isEmpty()) { tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect3.get(0).getEvaluateTime()); tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getEvaluateTime()); } int tempDetail5 = 0; for (TQaProduceReport tQaProduceReport : collect3) { if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ for (String s : tQaProduceReport.getEvaluateScore().split(",")) { tempDetail5+=Integer.parseInt(s); } } } tResultWorkEvaluateDetailEngineerVO5.setCount(collect3.size()); tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail5); tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5); // 辅料 TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO(); List collect4 = list.stream().filter(e -> e.getReportType() == 2).collect(Collectors.toList()); if (!collect4.isEmpty()) { tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect4.get(0).getEvaluateTime()); tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getEvaluateTime()); } int tempDetail6 = 0; for (TQaProduceReport tQaProduceReport : collect4) { if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ for (String s : tQaProduceReport.getEvaluateScore().split(",")) { tempDetail6+=Integer.parseInt(s); } } } tResultWorkEvaluateDetailEngineerVO6.setCount(collect4.size()); tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail6); tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6); // 产品 TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO(); List collect9 = list.stream().filter(e -> e.getReportType() == 3).collect(Collectors.toList()); if (!collect9.isEmpty()) { tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getEvaluateTime()); tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getEvaluateTime()); } int tempDetail7 = 0; for (TQaProduceReport tQaProduceReport : collect9) { if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){ for (String s : tQaProduceReport.getEvaluateScore().split(",")) { tempDetail7+=Integer.parseInt(s); } } } tResultWorkEvaluateDetailEngineerVO7.setCount(collect9.size()); tResultWorkEvaluateDetailEngineerVO7.setIntegral(tempDetail7); tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7); tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS); tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO); } tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS); return R.ok(tResultWorkEvaluateDetailVO); } @ApiOperation(value = "查看详情-左侧数据-实验员工作内容评定") @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftThree") public R getDetailByIdLeftThree(@RequestParam String id) { TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO(); List tResultWorkEvaluateDetailUserVOS = new ArrayList<>(); TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id); TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId()); tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime()); List role5 = projectTeamStaffService.lambdaQuery() .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list() .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList()); List user5 = new ArrayList<>(); SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId()); if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) { //只能查看自己的 user5.add(sysUser1); } else { for (Long l : role5) { SysUser sysUser = sysUserService.selectUserById(l); if (sysUser != null) { user5.add(sysUser); } } } for (SysUser sysUser : user5) { List tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>(); TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO(); tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName()); // 开发阶段 //查询当前team的实验结果评定 集合 List tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery() .eq(TResultWorkEvaluate::getUserId, sysUser.getUserId()) .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId()) .eq(TResultWorkEvaluate::getEvaluateType, 1)//工艺工程师 .eq(TResultWorkEvaluate::getDisabled, 0)//未删除 .orderByAsc(TResultWorkEvaluate::getEvaluateTime) .list(); workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS); // 其他任务 List list = tTesterOtherTaskService.lambdaQuery().eq(TTesterOtherTask::getTesterId, sysUser.getUserId()).list(); TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO(); tResultWorkEvaluateDetailEngineerVO5.setCount(list.size()); if (!list.isEmpty()) { tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getCreateTime()); tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getCreateTime()); } int temp = 0; for (TTesterOtherTask tTesterOtherTask : list) { temp += tTesterOtherTask.getEvaluateScore(); } tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp); tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5); tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS); tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO); } tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS); return R.ok(tResultWorkEvaluateDetailVO); } }