puzhibing
6 天以前 082bddee7df8a05ca95f473ec2643701d41a5213
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
@@ -26,7 +26,10 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -74,7 +77,7 @@
    @Override
    public PageInfo<TPedigreeChartDetailVO> pageListDetail(TPedigreeChartDetailQuery query) {
        PageInfo<TPedigreeChartDetailVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TPedigreeChartDetailVO> list = this.baseMapper.pageListDetail(query,pageInfo);
        List<TPedigreeChartDetailVO> list = distinctById(this.baseMapper.pageListDetail(query,pageInfo));
        List<SysUser> sysUsers = sysUserMapper.selectAllList();
        for (TPedigreeChartDetailVO tPedigreeChartDetailVO : list) {
            SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
@@ -96,24 +99,50 @@
    public PageInfo<TPedigreeChartDetailVO> pageListCountDetail(TPedigreeChartDetailQuery query) {
        TPedigreeChart tPedigreeChart = this.baseMapper.selectById(query.getId());
        PageInfo<TPedigreeChartDetailVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TPedigreeChartDetailVO> list = this.baseMapper.pageListCountDetail(query,pageInfo);
        List<TPedigreeChartDetailVO> list = distinctById(this.baseMapper.pageListCountDetail(query,pageInfo));
        List<SysUser> sysUsers = sysUserMapper.selectAllList();
        for (TPedigreeChartDetailVO tPedigreeChartDetailVO : list) {
            SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(tPedigreeChartDetailVO.getVaccinateId())))
            SysUser sysUser = StringUtils.isEmpty(tPedigreeChartDetailVO.getVaccinateId()) ? null : 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());
            TPedigreeChartDetail parent = pedigreeChartDetailMapper.selectList(
                    Wrappers.<TPedigreeChartDetail>lambdaQuery()
                            .eq(TPedigreeChartDetail::getId, tPedigreeChartDetailVO.getParentId())
                            .eq(TPedigreeChartDetail::getPedigreeChartId, query.getId())
                            .eq(TPedigreeChartDetail::getType, 1)
                            .orderByDesc(TPedigreeChartDetail::getUpdateTime)
                            .orderByDesc(TPedigreeChartDetail::getCreateTime)
                            .last("limit 1")
            ).stream().findFirst().orElse(null);
            if (parent != null) {
                tPedigreeChartDetailVO.setStrainType(parent.getStrainType());
                tPedigreeChartDetailVO.setSource(parent.getSource());
                tPedigreeChartDetailVO.setColonyNumber(parent.getColonyNumber());
                tPedigreeChartDetailVO.setStrainCode(StringUtils.isNotEmpty(parent.getStrainCode())
                        ? parent.getStrainCode() : tPedigreeChart.getStrainCode());
                tPedigreeChartDetailVO.setStrainName(StringUtils.isNotEmpty(parent.getStrainName())
                        ? parent.getStrainName() : tPedigreeChart.getStrainName());
                tPedigreeChartDetailVO.setConfirmTime(parent.getConfirmTime() != null
                        ? parent.getConfirmTime() : parent.getStorageTime());
            } else {
                tPedigreeChartDetailVO.setStrainCode(tPedigreeChart.getStrainCode());
                tPedigreeChartDetailVO.setStrainName(tPedigreeChart.getStrainName());
                tPedigreeChartDetailVO.setConfirmTime(tPedigreeChart.getCreateTime());
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
    private List<TPedigreeChartDetailVO> distinctById(List<TPedigreeChartDetailVO> list) {
        Map<String, TPedigreeChartDetailVO> uniqueRecords = new LinkedHashMap<>();
        for (TPedigreeChartDetailVO detail : list) {
            uniqueRecords.putIfAbsent(detail.getId(), detail);
        }
        return new ArrayList<>(uniqueRecords.values());
    }
}