From 082bddee7df8a05ca95f473ec2643701d41a5213 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:09:01 +0800
Subject: [PATCH] 更新代码
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
index be1c6f1..31878d0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TPedigreeChartServiceImpl.java
+++ b/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());
+ }
}
--
Gitblit v1.7.1