From 1a2e22a27627b40689257442cc5a46598c634f8e Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 23 五月 2025 14:16:28 +0800 Subject: [PATCH] 测评接口完成,添加数据权限 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java | 84 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 1 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java index 50d303f..1cb7ac3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java @@ -1,15 +1,25 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper; import com.ruoyi.system.mapper.TExperimentResultReportMapper; +import com.ruoyi.system.mapper.TResultWorkEvaluateMapper; +import com.ruoyi.system.model.TExperimentDispatchParticipants; import com.ruoyi.system.model.TExperimentResultReport; +import com.ruoyi.system.model.TResultWorkEvaluate; import com.ruoyi.system.query.TExperimentResultReportQuery; import com.ruoyi.system.service.TExperimentResultReportService; import com.ruoyi.system.vo.TExperimentResultReportVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -22,11 +32,83 @@ @Service public class TExperimentResultReportServiceImpl extends ServiceImpl<TExperimentResultReportMapper, TExperimentResultReport> implements TExperimentResultReportService { + @Autowired + private TExperimentResultReportMapper tExperimentResultReportMapper; + @Autowired + private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper; + @Autowired + private TResultWorkEvaluateMapper resultWorkEvaluateMapper; + @Autowired + private SysUserMapper sysUserMapper; + @Override public PageInfo<TExperimentResultReportVO> pageList(TExperimentResultReportQuery query) { PageInfo<TExperimentResultReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<TExperimentResultReportVO> list = this.baseMapper.pageList(query,pageInfo); - // TODO 处理实验人员信息及是否评定 + if(CollectionUtils.isEmpty(list)){ + return pageInfo; + } + List<String> dispatchIds = list.stream().map(TExperimentResultReportVO::getDispatchId).distinct().collect(Collectors.toList()); + // 查询参与人员 + List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class) + .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds)); + + // 设置参与人员名称 + List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList()); + List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds); + tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> { + SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null); + if(sysUser != null){ + tExperimentDispatchParticipant.setNickName(sysUser.getNickName()); + tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar()); + } + }); + + List<String> ids = list.stream().map(TExperimentResultReportVO::getId).distinct().collect(Collectors.toList()); + // 查询结果汇报评价 + List<TResultWorkEvaluate> resultWorkEvaluates = resultWorkEvaluateMapper.selectList(Wrappers.lambdaQuery(TResultWorkEvaluate.class) + .in(TResultWorkEvaluate::getResultReportId, ids)); + + for (TExperimentResultReportVO experimentResultReportVO : list) { + experimentResultReportVO.setExperimentDispatchParticipants(tExperimentDispatchParticipants.stream().filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())).collect(Collectors.toList())); + experimentResultReportVO.setResultWorkEvaluates(resultWorkEvaluates.stream().filter(evaluate -> evaluate.getResultReportId().equals(experimentResultReportVO.getId())).collect(Collectors.toList())); + // 设置工艺工程师名称 + TExperimentDispatchParticipants dispatchParticipants = tExperimentDispatchParticipants.stream() + .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId()) + && participants.getRoleType().equals(3)).findFirst().orElse(null); + if(dispatchParticipants != null){ + experimentResultReportVO.setProcessEngineerName(dispatchParticipants.getNickName()); + } + // 设置化验师名称 + List<TExperimentDispatchParticipants> laboratoryChemist = tExperimentDispatchParticipants.stream() + .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId()) + && participants.getRoleType().equals(4)).collect(Collectors.toList()); + List<TResultWorkEvaluate> chemistEvaluates = resultWorkEvaluates.stream() + .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId()) + && workEvaluate.getEvaluateType().equals(2)).collect(Collectors.toList()); + if(laboratoryChemist.size() == chemistEvaluates.size()){ + experimentResultReportVO.setLaboratoryChemistEvaluate(1); + } + if(!CollectionUtils.isEmpty(laboratoryChemist)){ + String laboratoryChemistName = laboratoryChemist.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(",")); + experimentResultReportVO.setLaboratoryChemistName(laboratoryChemistName); + } + // 设置实验员名称 + List<TExperimentDispatchParticipants> experimenter = tExperimentDispatchParticipants.stream() + .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId()) + && participants.getRoleType().equals(5)).collect(Collectors.toList()); + List<TResultWorkEvaluate> experimenterEvaluates = resultWorkEvaluates.stream() + .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId()) + && workEvaluate.getEvaluateType().equals(3)).collect(Collectors.toList()); + if(experimenter.size() == experimenterEvaluates.size()){ + experimentResultReportVO.setExperimenterEvaluate(1); + } + if(!CollectionUtils.isEmpty(experimenter)){ + String experimenterName = experimenter.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(",")); + experimentResultReportVO.setExperimenterName(experimenterName); + } + } + pageInfo.setRecords(list); return pageInfo; } -- Gitblit v1.7.1