指令矩阵查询接口调整返回的endTime逻辑 如果服务时长是0 就返回23:59

This commit is contained in:
1378012178@qq.com 2026-01-20 16:42:14 +08:00
parent f1cff264cd
commit 39f0c4f07b
3 changed files with 51 additions and 46 deletions

View File

@ -239,13 +239,15 @@
plan.tag_name, plan.tag_name,
plan.start_time, plan.start_time,
CASE CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), THEN '23:59'
SEC_TO_TIME(directive.service_duration * 60)), '%H:%i') WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL THEN '23:59'
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration > 0
SEC_TO_TIME(package.total_duration * 60)), '%H:%i') THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(directive.service_duration * 60)), '%H:%i')
ELSE '23:59' WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration > 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(package.total_duration * 60)), '%H:%i')
ELSE NULL
END as end_time, END as end_time,
plan.create_by, plan.create_by,
plan.create_time, plan.create_time,

View File

@ -2,17 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.biz.plan.invoicing.mapper.InvoicingDirectivePlanMapper"> <mapper namespace="com.nu.modules.biz.plan.invoicing.mapper.InvoicingDirectivePlanMapper">
<delete id="deleteByIdPhysic"> <delete id="deleteByIdPhysic">
delete from nu_biz_nu_invoicing_directive_plan where id = #{id} delete
from nu_biz_nu_invoicing_directive_plan
where id = #{id}
</delete> </delete>
<select id="queryTotal" resultType="java.lang.Integer"> <select id="queryTotal" resultType="java.lang.Integer">
SELECT SELECT COUNT(*) as total_count
COUNT(*) as total_count FROM nu_biz_nu_invoicing_directive_plan p
FROM LEFT JOIN
nu_biz_nu_invoicing_directive_plan p nu_config_package_directive pd ON p.directive_id = pd.package_id
LEFT JOIN WHERE p.nu_id = #{nuId}
nu_config_package_directive pd ON p.directive_id = pd.package_id
WHERE
p.nu_id = #{nuId}
AND ( AND (
-- 条件1: 包数据 (cycle_type_id为空或空字符串) -- 条件1: 包数据 (cycle_type_id为空或空字符串)
( (
@ -20,16 +19,16 @@
AND ( AND (
-- 包数据按星期执行 -- 包数据按星期执行
( (
pd.cycle_value IN ('0','1','2','3','4','5','6') pd.cycle_value IN ('0', '1', '2', '3', '4', '5', '6')
AND pd.cycle_value = ( AND pd.cycle_value = (
CASE DAYOFWEEK(CURDATE()) CASE DAYOFWEEK(CURDATE())
WHEN 1 THEN '6' -- 星期天 WHEN 1 THEN '6' -- 星期天
WHEN 2 THEN '0' -- 星期一 WHEN 2 THEN '0' -- 星期一
WHEN 3 THEN '1' -- 星期二 WHEN 3 THEN '1' -- 星期二
WHEN 4 THEN '2' -- 星期三 WHEN 4 THEN '2' -- 星期三
WHEN 5 THEN '3' -- 星期四 WHEN 5 THEN '3' -- 星期四
WHEN 6 THEN '4' -- 星期五 WHEN 6 THEN '4' -- 星期五
WHEN 7 THEN '5' -- 星期六 WHEN 7 THEN '5' -- 星期六
END END
) )
) )
@ -49,16 +48,16 @@
AND ( AND (
-- 周期指令按星期执行 -- 周期指令按星期执行
( (
p.cycle_value IN ('0','1','2','3','4','5','6') p.cycle_value IN ('0', '1', '2', '3', '4', '5', '6')
AND p.cycle_value = ( AND p.cycle_value = (
CASE DAYOFWEEK(CURDATE()) CASE DAYOFWEEK(CURDATE())
WHEN 1 THEN '6' -- 星期天 WHEN 1 THEN '6' -- 星期天
WHEN 2 THEN '0' -- 星期一 WHEN 2 THEN '0' -- 星期一
WHEN 3 THEN '1' -- 星期二 WHEN 3 THEN '1' -- 星期二
WHEN 4 THEN '2' -- 星期三 WHEN 4 THEN '2' -- 星期三
WHEN 5 THEN '3' -- 星期四 WHEN 5 THEN '3' -- 星期四
WHEN 6 THEN '4' -- 星期五 WHEN 6 THEN '4' -- 星期五
WHEN 7 THEN '5' -- 星期六 WHEN 7 THEN '5' -- 星期六
END END
) )
) )
@ -107,13 +106,15 @@
plan.tag_name, plan.tag_name,
plan.start_time, plan.start_time,
CASE CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), THEN '23:59'
SEC_TO_TIME(directive.service_duration * 60)), '%H:%i') WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL THEN '23:59'
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration > 0
SEC_TO_TIME(package.total_duration * 60)), '%H:%i') THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(directive.service_duration * 60)), '%H:%i')
ELSE '23:59' WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration > 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(package.total_duration * 60)), '%H:%i')
ELSE NULL
END as end_time, END as end_time,
plan.create_by, plan.create_by,
plan.create_time, plan.create_time,

View File

@ -109,13 +109,15 @@
plan.tag_name, plan.tag_name,
plan.start_time, plan.start_time,
CASE CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), THEN '23:59'
SEC_TO_TIME(directive.service_duration * 60)), '%H:%i') WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL THEN '23:59'
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'), WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration > 0
SEC_TO_TIME(package.total_duration * 60)), '%H:%i') THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(directive.service_duration * 60)), '%H:%i')
ELSE '23:59' WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration > 0
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),SEC_TO_TIME(package.total_duration * 60)), '%H:%i')
ELSE NULL
END as end_time, END as end_time,
plan.create_by, plan.create_by,
plan.create_time, plan.create_time,