manage: 修复疾病查询重复idbug

dev_2.1.0
xueqingkun 2 years ago
parent a479d771e0
commit 466b16c4f1

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.exception.BusinessException; import com.supervision.exception.BusinessException;
import com.supervision.manage.service.*; import com.supervision.manage.service.*;
import com.supervision.model.Disease; import com.supervision.model.Disease;
@ -97,21 +98,23 @@ public class DiseaseManageServiceImpl implements DiseaseManageService {
@Override @Override
public IPage<? extends Disease> queryPageList(Integer pageNum, Integer pageSize, DiseaseReqVo diseaseReqVo) { public IPage<? extends Disease> queryPageList(Integer pageNum, Integer pageSize, DiseaseReqVo diseaseReqVo) {
if (null == diseaseReqVo.getDiseaseType()){ Page<Disease> page = diseaseService.lambdaQuery()
diseaseReqVo.setDiseaseType(0); .eq(Objects.nonNull(diseaseReqVo.getDiseaseType()), Disease::getDiseaseType, diseaseReqVo.getDiseaseType())
} .like(StrUtil.isNotEmpty(diseaseReqVo.getDiseaseName()), Disease::getDiseaseName, diseaseReqVo.getDiseaseName())
.orderByDesc(Disease::getCreateTime).page(new Page<>(pageNum, pageSize));
IPage<? extends Disease> page = diseaseService.queryPageList(pageNum, pageSize, diseaseReqVo);
if (page.getSize() == 0) { if (page.getSize() == 0) {
return page; return page;
} }
// 查询已配置病例信息的疾病id
List<String> medicalDiseaseIds = medicalRecService.lambdaQuery()
.in(MedicalRec::getDiseaseId, page.getRecords().stream().map(Disease::getId).collect(Collectors.toList()))
.list().stream().map(MedicalRec::getDiseaseId).distinct().collect(Collectors.toList());
// 根据diseaseIds查询疾病信息 // 根据diseaseIds查询疾病信息
List<String> containDiseaseIds = page.getRecords().stream() List<String> containDiseaseIds = page.getRecords().stream()
.filter(disease -> CollUtil.isNotEmpty(disease.getContainDiseaseIds())) .filter(disease -> CollUtil.isNotEmpty(disease.getContainDiseaseIds()))
.flatMap(disease -> disease.getContainDiseaseIds().stream()).distinct().collect(Collectors.toList()); .flatMap(disease -> disease.getContainDiseaseIds().stream()).distinct().collect(Collectors.toList());
if (CollUtil.isEmpty(containDiseaseIds)) {
return page;
}
Map<String, Disease> diseaseMap = diseaseService.listByIds(containDiseaseIds) Map<String, Disease> diseaseMap = diseaseService.listByIds(containDiseaseIds)
.stream().collect(Collectors.toMap(Disease::getId, disease -> disease, (v1, v2) -> v1)); .stream().collect(Collectors.toMap(Disease::getId, disease -> disease, (v1, v2) -> v1));
@ -122,6 +125,7 @@ public class DiseaseManageServiceImpl implements DiseaseManageService {
bean.setContainDiseaseNames(bean.getContainDiseaseIds().stream() bean.setContainDiseaseNames(bean.getContainDiseaseIds().stream()
.map(diseaseMap::get).filter(Objects::nonNull).map(Disease::getDiseaseName).collect(Collectors.toList())); .map(diseaseMap::get).filter(Objects::nonNull).map(Disease::getDiseaseName).collect(Collectors.toList()));
} }
bean.setUsedMedicalRec(medicalDiseaseIds.contains(bean.getId()));
return bean; return bean;
}); });
} }

Loading…
Cancel
Save