From c1d816fc3485d5d6d2d3b96cc4182158002ce30f Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Wed, 21 Jan 2026 10:47:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8A=A4=E7=90=86=E5=8C=BB?= =?UTF-8?q?=E7=96=97=E4=BB=93=E5=BA=93=E8=A1=8C=E6=94=BF=E7=B1=BB=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E6=8C=87=E4=BB=A4=E6=95=B0=E9=87=8F=EF=BC=9A=E8=B0=83?= =?UTF-8?q?=E6=95=B4sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/xml/CareDirectivePlanMapper.xml | 103 ++++++---------- .../xml/InvoicingDirectivePlanMapper.xml | 96 ++++++--------- .../xml/LogisticsDirectivePlanMapper.xml | 112 +++++++----------- 3 files changed, 117 insertions(+), 194 deletions(-) diff --git a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/plan/care/mapper/xml/CareDirectivePlanMapper.xml b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/plan/care/mapper/xml/CareDirectivePlanMapper.xml index 0b0d8bc4..788595ca 100644 --- a/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/plan/care/mapper/xml/CareDirectivePlanMapper.xml +++ b/nursing-unit-services/nu-services-biz/src/main/java/com/nu/modules/biz/plan/care/mapper/xml/CareDirectivePlanMapper.xml @@ -138,70 +138,43 @@ - SELECT COUNT(*) as total_count + SELECT COUNT(p.id) as total_count FROM nu_biz_nu_invoicing_directive_plan p - LEFT JOIN - nu_config_package_directive pd ON p.directive_id = pd.package_id - WHERE p.nu_id = #{nuId} + WHERE p.nu_id = #{dto.nuId} AND ( - -- 条件1: 包数据 (cycle_type_id为空或空字符串) - ( - (p.cycle_type_id IS NULL OR p.cycle_type_id = '') - AND ( - -- 包数据按星期执行 - ( - pd.cycle_value IN ('0', '1', '2', '3', '4', '5', '6') - AND pd.cycle_value = ( - CASE DAYOFWEEK(CURDATE()) - WHEN 1 THEN '6' -- 星期天 - WHEN 2 THEN '0' -- 星期一 - WHEN 3 THEN '1' -- 星期二 - WHEN 4 THEN '2' -- 星期三 - WHEN 5 THEN '3' -- 星期四 - WHEN 6 THEN '4' -- 星期五 - WHEN 7 THEN '5' -- 星期六 - END - ) - ) - OR - -- 包数据按日期执行 - ( - LENGTH(pd.cycle_value) = 2 - AND pd.cycle_value = DATE_FORMAT(CURDATE(), '%d') - ) - ) - ) - -- 条件2: 日常类型指令 (cycle_type_id = '1') - OR p.cycle_type_id = '1' - -- 条件3: 指令类型指令 (cycle_type_id = '2') - OR ( - p.cycle_type_id = '2' - AND ( - -- 周期指令按星期执行 - ( - p.cycle_value IN ('0', '1', '2', '3', '4', '5', '6') - AND p.cycle_value = ( - CASE DAYOFWEEK(CURDATE()) - WHEN 1 THEN '6' -- 星期天 - WHEN 2 THEN '0' -- 星期一 - WHEN 3 THEN '1' -- 星期二 - WHEN 4 THEN '2' -- 星期三 - WHEN 5 THEN '3' -- 星期四 - WHEN 6 THEN '4' -- 星期五 - WHEN 7 THEN '5' -- 星期六 - END - ) - ) - OR - -- 周期指令按日期执行 - ( - LENGTH(p.cycle_value) = 2 - AND p.cycle_value = DATE_FORMAT(CURDATE(), '%d') - ) - ) - ) - ); + -- 1: 每天执行 + p.cycle_type_id = '1' + + -- 3: 按星期执行 + OR (p.cycle_type_id = '3' AND p.cycle_value = ( + CASE DAYOFWEEK(now()) + WHEN 1 THEN '6' + WHEN 2 THEN '0' + WHEN 3 THEN '1' + WHEN 4 THEN '2' + WHEN 5 THEN '3' + WHEN 6 THEN '4' + WHEN 7 THEN '5' + END + )) + + -- 4: 按日期执行 + OR (p.cycle_type_id = '4' AND p.cycle_value = DATE_FORMAT(now(), '%d')) + + -- 5: 频次执行 + OR (p.cycle_type_id = '5' AND ( + -- 不限次数 + (p.opt_count = 0 + AND DATEDIFF(now(), DATE(p.opt_time)) >= 0 + AND MOD(DATEDIFF(now(), DATE(p.opt_time)), (CAST(p.cycle_value AS UNSIGNED) + 1)) = 0) + + -- 有限次数 + OR (p.opt_count > 0 + AND DATEDIFF(now(), DATE(p.opt_time)) >= 0 + AND MOD(DATEDIFF(now(), DATE(p.opt_time)), (CAST(p.cycle_value AS UNSIGNED) + 1)) = 0 + AND (DATEDIFF(now(), DATE(p.opt_time)) / (CAST(p.cycle_value AS UNSIGNED) + 1)) < p.opt_count) + )) + ) - SELECT - COUNT(*) as total_count - FROM - nu_biz_nu_logistics_directive_plan p - LEFT JOIN - nu_config_package_directive pd ON p.directive_id = pd.package_id - WHERE - p.nu_id = #{nuId} - AND p.elder_id = #{elderId} + SELECT COUNT(p.id) as total_count + FROM nu_biz_nu_logistics_directive_plan p + WHERE p.nu_id = #{dto.nuId} AND ( - -- 条件1: 包数据 (cycle_type_id为空或空字符串) - ( - (p.cycle_type_id IS NULL OR p.cycle_type_id = '') - AND ( - -- 包数据按星期执行 - ( - pd.cycle_value IN ('0','1','2','3','4','5','6') - AND pd.cycle_value = ( - CASE DAYOFWEEK(CURDATE()) - WHEN 1 THEN '6' -- 星期天 - WHEN 2 THEN '0' -- 星期一 - WHEN 3 THEN '1' -- 星期二 - WHEN 4 THEN '2' -- 星期三 - WHEN 5 THEN '3' -- 星期四 - WHEN 6 THEN '4' -- 星期五 - WHEN 7 THEN '5' -- 星期六 - END - ) - ) - OR - -- 包数据按日期执行 - ( - LENGTH(pd.cycle_value) = 2 - AND pd.cycle_value = DATE_FORMAT(CURDATE(), '%d') - ) - ) - ) - -- 条件2: 日常类型指令 (cycle_type_id = '1') - OR p.cycle_type_id = '1' - -- 条件3: 指令类型指令 (cycle_type_id = '2') - OR ( - p.cycle_type_id = '2' - AND ( - -- 周期指令按星期执行 - ( - p.cycle_value IN ('0','1','2','3','4','5','6') - AND p.cycle_value = ( - CASE DAYOFWEEK(CURDATE()) - WHEN 1 THEN '6' -- 星期天 - WHEN 2 THEN '0' -- 星期一 - WHEN 3 THEN '1' -- 星期二 - WHEN 4 THEN '2' -- 星期三 - WHEN 5 THEN '3' -- 星期四 - WHEN 6 THEN '4' -- 星期五 - WHEN 7 THEN '5' -- 星期六 - END - ) - ) - OR - -- 周期指令按日期执行 - ( - LENGTH(p.cycle_value) = 2 - AND p.cycle_value = DATE_FORMAT(CURDATE(), '%d') - ) - ) - ) - ); + -- 1: 每天执行 + p.cycle_type_id = '1' + + -- 3: 按星期执行 + OR (p.cycle_type_id = '3' AND p.cycle_value = ( + CASE DAYOFWEEK(now()) + WHEN 1 THEN '6' + WHEN 2 THEN '0' + WHEN 3 THEN '1' + WHEN 4 THEN '2' + WHEN 5 THEN '3' + WHEN 6 THEN '4' + WHEN 7 THEN '5' + END + )) + + -- 4: 按日期执行 + OR (p.cycle_type_id = '4' AND p.cycle_value = DATE_FORMAT(now(), '%d')) + + -- 5: 频次执行 + OR (p.cycle_type_id = '5' AND ( + -- 不限次数 + (p.opt_count = 0 + AND DATEDIFF(now(), DATE(p.opt_time)) >= 0 + AND MOD(DATEDIFF(now(), DATE(p.opt_time)), (CAST(p.cycle_value AS UNSIGNED) + 1)) = 0) + + -- 有限次数 + OR (p.opt_count > 0 + AND DATEDIFF(now(), DATE(p.opt_time)) >= 0 + AND MOD(DATEDIFF(now(), DATE(p.opt_time)), (CAST(p.cycle_value AS UNSIGNED) + 1)) = 0 + AND (DATEDIFF(now(), DATE(p.opt_time)) / (CAST(p.cycle_value AS UNSIGNED) + 1)) < p.opt_count) + )) + )