|
@@ -181,19 +181,26 @@ public class PushProcess {
|
|
|
Map<Long, List<DiseaseItemDTO>> infos = klRelationFacade.getInfoByDiseaseMap(diseaseItemVO);
|
|
|
if (MapUtils.isNotEmpty(items)) {
|
|
|
if (ruleTypeList.contains("8") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.DRUG.getKey()))) {
|
|
|
- // 将infos中键值为506的数据取出,以drugC聚合,如果drugC为空,则给map中的key赋值为“其他”
|
|
|
+ // 将infos中键值为506的数据取出,以drugC聚合,如果drugC为空,则给map中的key赋值为“未分类药品”,“未分类药品”放在最后
|
|
|
+ Map<String, List<PushBaseDTO>> unclassifiedDrugs = new LinkedHashMap<>();
|
|
|
infos.get(PushRelationTypeEnum.DRUG.getKey()).forEach(x -> {
|
|
|
- String Classification = StringUtil.isNotBlank(x.getDrugC()) ? x.getDrugC() : "其他";
|
|
|
PushBaseDTO pushBaseDTO = new PushBaseDTO();
|
|
|
pushBaseDTO.setName(x.getItemName());
|
|
|
- if (pushDTO.getMedicine().containsKey(Classification)) {
|
|
|
- pushDTO.getMedicine().get(Classification).add(pushBaseDTO);
|
|
|
+ // 确定药品分类,如果药品分类不为空则使用药品分类,否则使用"未分类药品"
|
|
|
+ String Classification = StringUtil.isNotBlank(x.getDrugC()) ? x.getDrugC() : "未分类药品";
|
|
|
+ // 根据药品分类,选择对应的Map进行操作
|
|
|
+ Map<String, List<PushBaseDTO>> targetMap = Classification.equals("未分类药品") ? unclassifiedDrugs : pushDTO.getMedicine();
|
|
|
+ if (targetMap.containsKey(Classification)) {
|
|
|
+ targetMap.get(Classification).add(pushBaseDTO);
|
|
|
} else {
|
|
|
List<PushBaseDTO> pushBaseDTOS = new ArrayList<>();
|
|
|
pushBaseDTOS.add(pushBaseDTO);
|
|
|
- pushDTO.getMedicine().put(Classification, pushBaseDTOS);
|
|
|
+ targetMap.put(Classification, pushBaseDTOS);
|
|
|
}
|
|
|
});
|
|
|
+ if (MapUtils.isNotEmpty(unclassifiedDrugs)) {
|
|
|
+ pushDTO.getMedicine().putAll(unclassifiedDrugs);
|
|
|
+ }
|
|
|
pushDTO.setMedicines(items.get(PushRelationTypeEnum.DRUG.getKey()).stream().map(x -> {
|
|
|
PushBaseDTO pushBaseDTO = new PushBaseDTO();
|
|
|
pushBaseDTO.setName(x);
|