From 68ff33beff11310e830b0615b5a81f83fad0f683 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期日, 08 十一月 2026 23:33:14 +0800
Subject: [PATCH] ai优化
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/jobrecord/JobRecordServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/jobrecord/JobRecordServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/jobrecord/JobRecordServiceImpl.java
index a5f0ae4..e14aa53 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/jobrecord/JobRecordServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/jobrecord/JobRecordServiceImpl.java
@@ -19,6 +19,9 @@
import cn.lihu.jh.framework.common.util.object.BeanUtils;
import cn.lihu.jh.module.ecg.dal.mysql.jobrecord.JobRecordMapper;
+import cn.lihu.jh.module.ecg.dal.mysql.queue.QueueMapper;
+import cn.lihu.jh.module.ecg.enums.QueueStatusEnum;
+import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
@@ -33,10 +36,15 @@
*/
@Service
@Validated
+@Slf4j
public class JobRecordServiceImpl implements JobRecordService {
@Resource
private JobRecordMapper jobRecordMapper;
+
+ /** 銆愭挙閿�鏍囪瘑銆戣褰撴棩闃熷垪鐘舵�侊紝鍒ゆ柇"瀹屾垚鏄惁琚挙閿�杩�" */
+ @Resource
+ private QueueMapper queueMapper;
@Resource
private DevRentMapper devRentMapper;
@@ -98,11 +106,56 @@
}
// 闇�姹�1锛氬洖濉偅鑰呬俊鎭紙鎵归噺锛岄伩鍏� N+1锛�
fillPatientInfo(jobRecordDOList);
+ // 銆愭挙閿�鏍囪瘑銆戞爣璁�"瀹屾垚琚挙閿�杩囥�佽繕娌¢噸鏂板畬鎴�"鐨勮褰�
+ fillUndoneFlag(jobRecordDOList);
}
return pageResult;
}
+ /**
+ * 銆愭挙閿�鏍囪瘑銆戠粰"宸插畬鎴愯褰�"琛ヤ笂 {@code undone}銆�
+ *
+ * <p>鎾ら攢銆屾鏌ュ畬鎴愩�嶅彧鏄妸闃熷垪琛� 40(宸插氨璇�) 鏀瑰洖 20(鍑嗗涓�)锛�**涓嶇 job_record**锛�
+ * 鍥犳鍒ゆ柇瑙勫垯鏄細璇ユ偅鑰�**浠婃棩**瀵瑰簲妫�鏌ラ」鐩殑闃熷垪琛屽瓨鍦ㄣ�佷笖鐘舵�� 鈮� 40 鈫� 宸茶鎾ら攢銆�
+ * 鎮h�呭啀娆″畬鎴愬悗闃熷垪琛屼細鍥炲埌 40 鈫� 鑷姩鎭㈠鎴�"宸插畬鎴�"锛屾棤闇�鍐欏簱銆佷篃涓嶄細婕忔竻鏍囪銆�
+ *
+ * <p>涓�娆℃壒閲忔煡璇㈣В鍐虫暣椤碉紙鎸� patId 鍙栧綋鏃ラ槦鍒楃姸鎬侊紝鍐嶅湪鍐呭瓨閲屾寜 patId+checkType 鍖归厤锛夈��
+ */
+ private void fillUndoneFlag(List<JobRecordDO> jobRecordDOList) {
+ List<String> patIdList = jobRecordDOList.stream()
+ .map(JobRecordDO::getPatId)
+ .filter(Objects::nonNull)
+ .distinct()
+ .toList();
+ if (patIdList.isEmpty()) {
+ return;
+ }
+ Map<String, Integer> statusMap = new HashMap<>();
+ try {
+ for (Map<String, Object> row : queueMapper.selectTodayStatusByPatIds(patIdList)) {
+ Object patId = row.get("patId");
+ Object checkType = row.get("checkType");
+ Object status = row.get("status");
+ if (null != patId && null != checkType && status instanceof Number) {
+ statusMap.put(patId + "#" + checkType, ((Number) status).intValue());
+ }
+ }
+ } catch (Exception e) {
+ log.warn("[fillUndoneFlag] 璇诲彇褰撴棩闃熷垪鐘舵�佸け璐ワ紝鎾ら攢鏍囪瘑鎸夈�愭湭鎾ら攢銆戝鐞�", e);
+ return;
+ }
+ for (JobRecordDO row : jobRecordDOList) {
+ if (null == row.getPatId() || null == row.getCheckType()) {
+ row.setUndone(false);
+ continue;
+ }
+ Integer status = statusMap.get(row.getPatId() + "#" + row.getCheckType());
+ // 闃熷垪琛屼笉瀛樺湪锛堝巻鍙茶褰�/宸叉竻鐞嗭級鈫� 瑙嗕负鏈挙閿�锛涘瓨鍦ㄤ笖涓嶆槸 40 鈫� 宸叉挙閿�
+ row.setUndone(null != status && QueueStatusEnum.FINISH.getStatus() != status);
+ }
+ }
+
// ==================== 闇�姹�1锛氬洖濉偅鑰呬俊鎭� 18 椤� ====================
// 鍥炲~閾捐矾锛堜笁绾э級锛�
// job_record.rentId 鈫� dev_rent.applyNo 鈫� appointment
--
Gitblit v1.9.3