From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsJianceTaskRemindMapper.java | 95 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsJianceTaskRemindMapper.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsJianceTaskRemindMapper.java
new file mode 100644
index 0000000..c8020c0
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsJianceTaskRemindMapper.java
@@ -0,0 +1,95 @@
+package jnpf.limsMapper;
+
+import jnpf.base.mapper.SuperMapper;
+import jnpf.limsEntity.LimsJianyanXiangEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 妫�楠屼换鍔�"瑕佹眰瀹屾垚鏃ユ湡"鎻愰啋 daily 鎵弿涓撶敤 mapper銆�
+ *
+ * <p>4 涓� @Select 鍚勮嚜璐熻矗涓�涓垎鏀紙D7/D3/D1/EXPIRED锛夛紝鍛戒腑鏉′欢鐩镐簰浜掓枼锛�
+ * 涓嶅湪鍚屼竴娆¤窇鎵归噷閲嶅鍛戒腑銆傚悇鍒嗘敮鍏卞悓鍓嶇疆杩囨护锛�
+ * <ul>
+ * <li>鏈蒋鍒狅紱wancheng_riqi 闈炵┖锛沯iancha_ren 闈炵┖</li>
+ * <li>jianyan_zhuangtai 鈭� {pending_test, audit_rejected} 鈥斺�� 杩樻湭瀹屾垚缁撴灉褰曞叆</li>
+ * <li>瀵瑰簲鏍囪灏氭湭杩藉姞鍒� remind_flags</li>
+ * </ul>
+ *
+ * <p>鏈粦 mybatis-plus 鐨� SuperMapper 閫氱敤澧炲垹鏀� 鈥斺�� 鐢� @Select 鑷畾涔� SQL
+ * 缁曞紑澶氱鎴锋嫤鎴櫒瀵瑰垪瑁佸壀鐨勫壇浣滅敤锛堣 LimsQingyandanReportServiceImpl 娉ㄩ噴锛夈��
+ */
+@Mapper
+public interface LimsJianceTaskRemindMapper extends SuperMapper<LimsJianyanXiangEntity> {
+
+ /**
+ * D-N锛歸ancheng_riqi 璺濅粖澶╄繕鏈� N 澶╋紙date 宸�硷級涓� remind_flags 涓嶅惈瀵瑰簲鏍囪銆�
+ *
+ * <p>鍒楀埆鍚嶏細鑷畾涔� @Select 涓嶈蛋 MyBatis-Plus 鐨� @TableField 鏄犲皠锛�
+ * 蹇呴』鐢� AS 鎶� db 鍒楀悕鏀规垚 Java 瀛楁鍚嶏紙鐗瑰埆鏄� f_id 鈫� id锛夈��
+ * 涓嶅彂鎻愰啋鐨勫垪锛坆iz_type銆佽鏍笺�佹壒閲忕瓑锛夌渷鐣ヤ笉鏌ャ��
+ */
+ @Select("SELECT f_id AS id," +
+ " f_tenant_id AS tenantId," +
+ " jiancha_ren AS jianchaRen," +
+ " renwu_fenpeiren AS renwuFenpeiren," +
+ " chanpin_mingcheng AS chanpinMingcheng," +
+ " pihao AS pihao," +
+ " jianyan_xiangmu_mingcheng AS jianyanXiangmuMingcheng," +
+ " wancheng_riqi AS wanchengRiqi," +
+ " remind_flags AS remindFlags" +
+ " FROM lims_jianyan_xiang " +
+ " WHERE (f_delete_mark IS NULL OR f_delete_mark <> 1) " +
+ " AND wancheng_riqi IS NOT NULL " +
+ " AND jiancha_ren IS NOT NULL AND jiancha_ren <> '' " +
+ " AND jianyan_zhuangtai IN ('pending_test', 'audit_rejected') " +
+ " AND wancheng_riqi::date - CURRENT_DATE = #{days} " +
+ " AND (remind_flags IS NULL OR NOT (#{flag} = ANY(string_to_array(remind_flags, ',')))) " +
+ " AND NOT EXISTS (SELECT 1 FROM lims_message_event e " +
+ " WHERE e.tenant_id = COALESCE(lims_jianyan_xiang.f_tenant_id, '0') " +
+ " AND e.occurrence_key = CONCAT('LIMS.INSPECTION.TASK.DUE:', lims_jianyan_xiang.f_id, ':', " +
+ " TO_CHAR(lims_jianyan_xiang.wancheng_riqi, 'YYYYMMDD'), ':', #{flag}))")
+ List<LimsJianyanXiangEntity> selectDueIn(@Param("days") int days,
+ @Param("flag") String flag);
+
+ /** EXPIRED锛歸ancheng_riqi < today 涓斿皻鏈彂杩囪繃鏈熷憡璀︺�� */
+ @Select("SELECT f_id AS id," +
+ " f_tenant_id AS tenantId," +
+ " jiancha_ren AS jianchaRen," +
+ " renwu_fenpeiren AS renwuFenpeiren," +
+ " chanpin_mingcheng AS chanpinMingcheng," +
+ " pihao AS pihao," +
+ " jianyan_xiangmu_mingcheng AS jianyanXiangmuMingcheng," +
+ " wancheng_riqi AS wanchengRiqi," +
+ " remind_flags AS remindFlags" +
+ " FROM lims_jianyan_xiang " +
+ " WHERE (f_delete_mark IS NULL OR f_delete_mark <> 1) " +
+ " AND wancheng_riqi IS NOT NULL " +
+ " AND jiancha_ren IS NOT NULL AND jiancha_ren <> '' " +
+ " AND jianyan_zhuangtai IN ('pending_test', 'audit_rejected') " +
+ " AND wancheng_riqi < CURRENT_DATE " +
+ " AND (remind_flags IS NULL OR NOT ('EXPIRED' = ANY(string_to_array(remind_flags, ',')))) " +
+ " AND NOT EXISTS (SELECT 1 FROM lims_message_event e " +
+ " WHERE e.tenant_id = COALESCE(lims_jianyan_xiang.f_tenant_id, '0') " +
+ " AND e.occurrence_key = CONCAT('LIMS.INSPECTION.TASK.OVERDUE:', lims_jianyan_xiang.f_id, ':', " +
+ " TO_CHAR(lims_jianyan_xiang.wancheng_riqi, 'YYYYMMDD'), ':OVERDUE'))")
+ List<LimsJianyanXiangEntity> selectExpired();
+
+ /**
+ * 杩藉姞鏍囪鍒� remind_flags锛圕SV 鎷兼帴锛孋ONCAT_WS 鑷姩澶勭悊 null锛夈��
+ * 浠呭浠嶅浜�"杩樻湭瀹屾垚"鐘舵�佺殑琛岃拷鍔狅紝閬垮厤鏍囪宸插畬鎴愰」銆�
+ */
+ @Update("UPDATE lims_jianyan_xiang " +
+ " SET remind_flags = CASE " +
+ " WHEN remind_flags IS NULL OR remind_flags = '' THEN #{flag} " +
+ " WHEN #{flag} = ANY(string_to_array(remind_flags, ',')) THEN remind_flags " +
+ " ELSE CONCAT(remind_flags, ',', #{flag}) " +
+ " END " +
+ " WHERE f_id = #{id} " +
+ " AND (f_delete_mark IS NULL OR f_delete_mark <> 1)")
+ int appendFlag(@Param("id") String id, @Param("flag") String flag);
+}
--
Gitblit v1.8.0