指令矩阵查询接口调整返回的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.start_time,
CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),
SEC_TO_TIME(directive.service_duration * 60)), '%H:%i')
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),
SEC_TO_TIME(package.total_duration * 60)), '%H:%i')
ELSE '23:59'
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN '23:59'
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
THEN '23:59'
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'),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
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,
plan.create_by,
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">
<mapper namespace="com.nu.modules.biz.plan.invoicing.mapper.InvoicingDirectivePlanMapper">
<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>
<select id="queryTotal" resultType="java.lang.Integer">
SELECT
COUNT(*) 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}
SELECT COUNT(*) 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}
AND (
-- 条件1: 包数据 (cycle_type_id为空或空字符串)
(
@ -20,16 +19,16 @@
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 = (
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' -- 星期六
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
)
)
@ -49,16 +48,16 @@
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 = (
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' -- 星期六
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
)
)
@ -107,13 +106,15 @@
plan.tag_name,
plan.start_time,
CASE
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),
SEC_TO_TIME(directive.service_duration * 60)), '%H:%i')
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL
THEN DATE_FORMAT(ADDTIME(STR_TO_DATE(plan.start_time, '%H:%i'),
SEC_TO_TIME(package.total_duration * 60)), '%H:%i')
ELSE '23:59'
WHEN plan.iz_package = 'N' AND directive.service_duration IS NOT NULL AND directive.service_duration = 0
THEN '23:59'
WHEN plan.iz_package = 'Y' AND package.total_duration IS NOT NULL AND package.total_duration = 0
THEN '23:59'
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'),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
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,
plan.create_by,
plan.create_time,

View File

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