From 6ae35089a05b58dc31c243b9bb4f6a80b20c3a7b Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 23 五月 2025 17:44:42 +0800 Subject: [PATCH] 修改接口 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java | 88 +++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 86 insertions(+), 2 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 b3e6307..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 @@ -4,13 +4,17 @@ 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.TExperimentDispatchVO; import com.ruoyi.system.vo.TExperimentResultReportVO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -28,11 +32,91 @@ @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; + } + + @Override + public PageInfo<TExperimentResultReportVO> evaluatePageList(TExperimentResultReportQuery query) { + PageInfo<TExperimentResultReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TExperimentResultReportVO> list = this.baseMapper.evaluatePageList(query,pageInfo); pageInfo.setRecords(list); return pageInfo; } -- Gitblit v1.7.1