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/LimsHaocaiAlertMapper.java |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsHaocaiAlertMapper.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsHaocaiAlertMapper.java
new file mode 100644
index 0000000..a241b66
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsMapper/LimsHaocaiAlertMapper.java
@@ -0,0 +1,67 @@
+package jnpf.limsMapper;
+
+import jnpf.base.mapper.SuperMapper;
+import jnpf.limsEntity.LimsHaocaiAlertRow;
+import jnpf.limsEntity.LimsHaocaiRukuEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * 鑰楁潗缂鸿揣棰勮 daily 鎵弿涓撶敤 mapper銆�
+ *
+ * <p>鐢� @Select 鑷畾涔� SQL锛氳法 lims 涓氬姟琛ㄤ笌 base 骞冲彴琛ㄨ仛鍚堟煡璇紝
+ * 鍒楀悕鎸� L007 鐢� AS 鍒悕鏄犲皠鍒� Java 瀛楁鍚嶃��
+ */
+@Mapper
+public interface LimsHaocaiAlertMapper extends SuperMapper<LimsHaocaiRukuEntity> {
+
+    /**
+     * 鏌ユ墍鏈�"缁撲綑鎬婚噺 < 缂鸿揣棰勮鍊�"鐨勮�楁潗妗f銆�
+     *
+     * <p>鎸� haocai_id = 妗f f_id 鍏宠仈鍏ュ簱琛紝鍓旈櫎宸插垹闄や笌 jieyu_shuliang='0' 鍚庢眰鍜岋紱
+     * LEFT JOIN 淇濊瘉瀹屽叏鏃犲簱瀛橈紙sum=0锛夌殑鑰楁潗涔熻兘鍛戒腑銆�
+     * quehuo_yujing / jieyu_shuliang 鏄� varchar锛歅G 涓� CAST 閬囬潪鏁板�肩洿鎺ユ姏閿欙紙MySQL 瀹芥澗杩� 0锛夛紝
+     * 涓�寰嬪厛鐢ㄦ鍒欏畧鎶わ紝闈炴暟鍊兼寜 NULL 澶勭悊锛堣琛屼笉鍙備笌姹傚拰/涓嶈Е鍙戦璀︼紝涓嶇偢鏁翠釜璺戞壒锛夈��
+     */
+    @Select("SELECT d.f_id AS id," +
+            "       d.f_tenant_id AS tenantId," +
+            "       d.mingcheng AS mingcheng," +
+            "       d.quehuo_yujing AS quehuoYujing," +
+            "       COALESCE(SUM(CASE WHEN r.jieyu_shuliang ~ '^-?[0-9]+(\\.[0-9]+)?$'" +
+            "                         THEN CAST(r.jieyu_shuliang AS NUMERIC(20,4)) END), 0) AS jieyuSum" +
+            "  FROM lims_haocai_dangan d" +
+            "  LEFT JOIN lims_haocai_ruku r" +
+            "    ON r.haocai_id = d.f_id" +
+            "   AND (r.f_delete_mark IS NULL OR r.f_delete_mark <> 1)" +
+            "   AND r.jieyu_shuliang IS NOT NULL AND r.jieyu_shuliang <> '' AND r.jieyu_shuliang <> '0'" +
+            " WHERE (d.f_delete_mark IS NULL OR d.f_delete_mark <> 1)" +
+            "   AND d.quehuo_yujing ~ '^-?[0-9]+(\\.[0-9]+)?$'" +
+            "   AND NOT EXISTS (SELECT 1 FROM lims_message_event e" +
+            "       WHERE e.tenant_id = COALESCE(d.f_tenant_id, '0')" +
+            "         AND e.occurrence_key = CONCAT('LIMS.CONSUMABLE.STOCK.LOW:', d.f_id, ':'," +
+            "             TO_CHAR(CURRENT_DATE, 'YYYYMMDD')))" +
+            " GROUP BY d.f_id, d.f_tenant_id, d.mingcheng, d.quehuo_yujing" +
+            " HAVING COALESCE(SUM(CASE WHEN r.jieyu_shuliang ~ '^-?[0-9]+(\\.[0-9]+)?$'" +
+            "                          THEN CAST(r.jieyu_shuliang AS NUMERIC(20,4)) END), 0)" +
+            "        < CAST(d.quehuo_yujing AS NUMERIC(20,4))")
+    List<LimsHaocaiAlertRow> selectBelowThreshold();
+
+    /**
+     * 鎸夎鑹茬紪鐮佹煡璇ヨ鑹蹭笅鍦ㄨ亴锛堝惎鐢ㄣ�佹湭鍒狅級鐢ㄦ埛 id 鍒楄〃銆�
+     * 鐢� enCode 鑰岄潪瑙掕壊 f_id锛岄伩鍏嶇‖缂栫爜鐜鐩稿叧涓婚敭銆�
+     * 瑙掕壊鎴愬憳瀛� base_role_relation锛坒_object_type='user' 灏忓啓锛夈��
+     */
+    @Select("SELECT r.f_object_id" +
+            "  FROM base_role_relation r" +
+            "  JOIN base_role b ON r.f_role_id = b.f_id" +
+            "  JOIN base_user u ON u.f_id = r.f_object_id" +
+            " WHERE b.f_en_code = #{enCode}" +
+            "   AND r.f_object_type = 'user'" +
+            "   AND (b.f_delete_mark IS NULL OR b.f_delete_mark <> 1)" +
+            "   AND (u.f_delete_mark IS NULL OR u.f_delete_mark <> 1)" +
+            "   AND u.f_enabled_mark = 1")
+    List<String> selectUserIdsByRoleEnCode(@Param("enCode") String enCode);
+}

--
Gitblit v1.8.0