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.TPedigreeChartDetailMapper;
import com.ruoyi.system.mapper.TPedigreeChartMapper;
import com.ruoyi.system.model.TPedigreeChart;
import com.ruoyi.system.model.TPedigreeChartDetail;
import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.query.TPedigreeChartConfirmQuery;
import com.ruoyi.system.query.TPedigreeChartDetailQuery;
import com.ruoyi.system.query.TPedigreeChartQuery;
import com.ruoyi.system.service.TPedigreeChartService;
import com.ruoyi.system.vo.TPedigreeChartConfirmVO;
import com.ruoyi.system.vo.TPedigreeChartDetailVO;
import com.ruoyi.system.vo.TPedigreeChartVO;
import com.ruoyi.system.vo.TProjectTeamVO;
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;
/**
*
* 谱系图 服务实现类
*
*
* @author 无关风月
* @since 2025-04-12
*/
@Service
public class TPedigreeChartServiceImpl extends ServiceImpl implements TPedigreeChartService {
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private TPedigreeChartDetailMapper pedigreeChartDetailMapper;
@Override
public PageInfo pageList(TPedigreeChartQuery query) {
PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List list = this.baseMapper.pageList(query,pageInfo);
pageInfo.setRecords(list);
return pageInfo;
}
@Override
public PageInfo listConfirm(TPedigreeChartConfirmQuery query) {
PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List list = this.baseMapper.listConfirm(query,pageInfo);
pageInfo.setRecords(list);
return pageInfo;
}
@Override
public PageInfo pageListDetail(TPedigreeChartDetailQuery query) {
PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List list = this.baseMapper.pageListDetail(query,pageInfo);
List sysUsers = sysUserMapper.selectAllList();
for (TPedigreeChartDetailVO tPedigreeChartDetailVO : list) {
SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
.findFirst().orElse(null);
if (sysUser!=null){
tPedigreeChartDetailVO.setExperimenter(sysUser.getNickName());
}
SysUser sysUser1 = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
.findFirst().orElse(null);
if (sysUser1!=null){
tPedigreeChartDetailVO.setVaccinateName(sysUser.getNickName());
}
}
pageInfo.setRecords(list);
return pageInfo;
}
@Override
public PageInfo pageListCountDetail(TPedigreeChartDetailQuery query) {
TPedigreeChart tPedigreeChart = this.baseMapper.selectById(query.getId());
PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List list = this.baseMapper.pageListCountDetail(query,pageInfo);
List sysUsers = sysUserMapper.selectAllList();
for (TPedigreeChartDetailVO tPedigreeChartDetailVO : list) {
SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
.findFirst().orElse(null);
if (sysUser!=null){
tPedigreeChartDetailVO.setExperimenter(sysUser.getNickName());
}
SysUser sysUser1 = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
.findFirst().orElse(null);
if (sysUser1!=null){
tPedigreeChartDetailVO.setVaccinateName(sysUser.getNickName());
}
tPedigreeChartDetailVO.setStrainCode(tPedigreeChart.getStrainCode());
tPedigreeChartDetailVO.setStrainName(tPedigreeChart.getStrainName());
tPedigreeChartDetailVO.setConfirmTime(tPedigreeChart.getCreateTime());
}
pageInfo.setRecords(list);
return pageInfo;
}
}