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.system.mapper.TClinicalTrialPointsMapper;
|
import com.ruoyi.system.model.TClinicalTrialPoints;
|
import com.ruoyi.system.query.TClinicalTrialPointsQuery;
|
import com.ruoyi.system.service.TClinicalTrialPointsService;
|
import com.ruoyi.system.vo.TClinicalTrialPointsVO;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 临床试验积分 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-04-08
|
*/
|
@Service
|
public class TClinicalTrialPointsServiceImpl extends ServiceImpl<TClinicalTrialPointsMapper, TClinicalTrialPoints> implements TClinicalTrialPointsService {
|
|
@Override
|
public PageInfo<TClinicalTrialPointsVO> pageList(TClinicalTrialPointsQuery query) {
|
PageInfo<TClinicalTrialPointsVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TClinicalTrialPointsVO> list = this.baseMapper.pageList(query,pageInfo);
|
// 统计当前项目组累计分数
|
List<String> teamIds = list.stream().map(TClinicalTrialPointsVO::getTeamId).distinct().collect(Collectors.toList());
|
List<TClinicalTrialPoints> teamList = this.list(Wrappers.lambdaQuery(TClinicalTrialPoints.class)
|
.in(TClinicalTrialPoints::getTeamId,teamIds));
|
for (TClinicalTrialPointsVO clinicalTrialPointsVO : list) {
|
List<TClinicalTrialPoints> clinicalTrialPoints = teamList.stream().filter(item -> item.getTeamId().equals(clinicalTrialPointsVO.getTeamId())).collect(Collectors.toList());
|
if(CollectionUtils.isEmpty(clinicalTrialPoints)){
|
clinicalTrialPointsVO.setTotalScore(0.0);
|
}else {
|
clinicalTrialPointsVO.setTotalScore(clinicalTrialPoints.stream().mapToDouble(TClinicalTrialPoints::getEvaluateScore).sum());
|
}
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
}
|