From 278a56025b6e64e49a3453f0b9be84832de96066 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 28 九月 2026 10:01:07 +0800
Subject: [PATCH] 1.代码提交
---
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 75 +++++++++++++++++++++++++++++++++++--
1 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index c4d03e0..0fa8172 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -99,6 +99,8 @@
*/
@Override
public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
+ //鍏ラ櫌搴婁綅鎺掑簭鍙湪銆屽湪闄€�嶆煡璇紙cry=0锛変笅鐢熸晥锛屽叾瀹冩煡璇竴寰嬪拷鐣ワ紝淇濊瘉鍘熸湁鎺掑簭涓嶅彉
+ patMedInhosp.setBedSort(normalizeBedSort(patMedInhosp.getCry(), patMedInhosp.getBedSort()));
if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 0) {
patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes());
patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes());
@@ -114,11 +116,75 @@
}
List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
- for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
- String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
- patMedInhosp1.setTagname(tagname);
- }
+ fillTagname(patMedInhospList);
return patMedInhospList;
+ }
+
+ /**
+ * 鎵归噺濉厖鎮h�呮爣绛�
+ * <p>
+ * 鍘熷疄鐜版槸姣忚璋冧竴娆� getTagnameBypatid锛孲QL 寰�杩旀鏁伴殢 pageSize 绾挎�у闀匡紱
+ * 杩欓噷鎸� patid 鍘婚噸鍚庡垎鎵逛竴娆℃煡鍥烇紝缁撴灉涓庨�愯鏌ヨ瀹屽叏涓�鑷达紙鎮h�呮棤鏍囩鏃朵粛涓� null锛夈��
+ *
+ * @param patMedInhospList 寰呭~鍏呯殑浣忛櫌璁板綍锛屽厑璁镐负绌�
+ */
+ private void fillTagname(List<PatMedInhosp> patMedInhospList) {
+ if (CollectionUtils.isEmpty(patMedInhospList)) {
+ return;
+ }
+ // LinkedHashSet 鍘婚噸鍚屾椂淇濇寔椤哄簭锛岄伩鍏� IN 鍒楄〃鍑虹幇閲嶅 patid
+ Set<Long> patids = new LinkedHashSet<>();
+ for (PatMedInhosp patMedInhosp : patMedInhospList) {
+ if (patMedInhosp.getPatid() != null) {
+ patids.add(patMedInhosp.getPatid());
+ }
+ }
+ if (patids.isEmpty()) {
+ return;
+ }
+
+ Map<Long, String> tagnameMap = new HashMap<>();
+ List<Long> patidList = new ArrayList<>(patids);
+ // 鍒嗙墖锛岄槻姝� IN 鍙傛暟杩囧
+ int batchSize = 1000;
+ for (int i = 0; i < patidList.size(); i += batchSize) {
+ List<Long> batch = patidList.subList(i, Math.min(i + batchSize, patidList.size()));
+ List<Map<String, Object>> rows = patMedInhospMapper.getTagnameByPatids(batch);
+ if (CollectionUtils.isEmpty(rows)) {
+ continue;
+ }
+ for (Map<String, Object> row : rows) {
+ Object patid = row.get("patid");
+ Object tagname = row.get("tagname");
+ if (patid != null) {
+ tagnameMap.put(((Number) patid).longValue(), tagname == null ? null : tagname.toString());
+ }
+ }
+ }
+
+ for (PatMedInhosp patMedInhosp : patMedInhospList) {
+ if (patMedInhosp.getPatid() != null) {
+ patMedInhosp.setTagname(tagnameMap.get(patMedInhosp.getPatid()));
+ }
+ }
+ }
+
+ /**
+ * 褰掍竴鍖栧叆闄㈠簥浣嶆帓搴忓弬鏁�
+ * <p>
+ * asc / 1 -> asc锛堝簥浣嶆搴忥級锛宒esc / 2 -> desc锛堝簥浣嶅�掑簭锛夛紝鍏朵綑锛堝惈涓嶄紶锛�-> null锛堜笉鎺掑簭锛夈��
+ * 鍙銆屽湪闄€�嶆偅鑰呮煡璇紙cry=0锛夌敓鏁堬紝鍑洪櫌/杞绛夋煡璇㈠拷鐣ヨ鍙傛暟銆�
+ *
+ * @param cry 鍑哄叆闄㈡爣璇嗭細0鍏ラ櫌 1鍑洪櫌 2杞 3棰勫叆闄�
+ * @param bedSort 鍓嶇浼犲叆鐨勫簥浣嶆帓搴忓��
+ * @return 褰掍竴鍖栧悗鐨勬帓搴忓�硷紙asc / desc / null锛�
+ */
+ private String normalizeBedSort(Integer cry, String bedSort) {
+ if (cry == null || cry != 0 || StringUtils.isEmpty(bedSort)) return null;
+ String value = bedSort.trim().toLowerCase();
+ if ("asc".equals(value) || "1".equals(value)) return "asc";
+ if ("desc".equals(value) || "2".equals(value)) return "desc";
+ return null;
}
@Override
@@ -260,7 +326,6 @@
pmks.setDeptcheckFlag("0");
pmks.setInhospstate("1");
pmks.setFuflag("1");
- pmks.setPatid(16685L);
List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
//1.鍏ラ櫌瀹f暀
--
Gitblit v1.9.3