Browse Source

“未分类药品”放在最后

SGTY 10 months ago
parent
commit
3e4d51d306
1 changed files with 12 additions and 5 deletions
  1. 12 5
      src/main/java/com/diagbot/process/PushProcess.java

+ 12 - 5
src/main/java/com/diagbot/process/PushProcess.java

@@ -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);