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