From 1e1103404967763002031d7abd84a5684497b284 Mon Sep 17 00:00:00 2001 From: insist777 <84278047+insist777@users.noreply.github.com> Date: Wed, 19 Oct 2022 10:47:08 +0800 Subject: [PATCH] [Fix][Task] Fix dependent task can not predicate the status of the corresponding task correctly (#12253) * [Fix][Task] dependent task can not predicate the status of the corresponding task correctly --- .../plugin/task/api/utils/DependentDateUtils.java | 9 +++++---- .../plugin/task/api/utils/DependentUtils.java | 10 ++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentDateUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentDateUtils.java index a1ca404161..abecf94a34 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentDateUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentDateUtils.java @@ -128,16 +128,17 @@ public class DependentDateUtils { } /** - * get interval on first/last day of the last month + * get interval on first/last day of the needed month * @param businessDate businessDate * @param isBeginDay isBeginDay * @return DateInterval list */ - public static List getLastMonthBeginInterval(Date businessDate, - boolean isBeginDay) { + public static List getNeededMonthBeginInterval(Date businessDate, + boolean isBeginDay, + int neededMonth) { Date firstDayThisMonth = DateUtils.getFirstDayOfMonth(businessDate); - Date lastDay = DateUtils.getSomeDay(firstDayThisMonth, -1); + Date lastDay = DateUtils.getSomeDay(firstDayThisMonth, neededMonth); Date firstDay = DateUtils.getFirstDayOfMonth(lastDay); if (isBeginDay) { return getDateIntervalListBetweenTwoDates(firstDay, firstDay); diff --git a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentUtils.java b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentUtils.java index b79e8b4830..3a34634752 100644 --- a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentUtils.java +++ b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentUtils.java @@ -130,14 +130,20 @@ public class DependentUtils { case "thisMonth": result = DependentDateUtils.getThisMonthInterval(businessDate); break; + case "thisMonthBegin": + result = DependentDateUtils.getNeededMonthBeginInterval(businessDate, true, 0); + break; + case "thisMonthEnd": + result = DependentDateUtils.getNeededMonthBeginInterval(businessDate, false, 0); + break; case "lastMonth": result = DependentDateUtils.getLastMonthInterval(businessDate); break; case "lastMonthBegin": - result = DependentDateUtils.getLastMonthBeginInterval(businessDate, true); + result = DependentDateUtils.getNeededMonthBeginInterval(businessDate, true, -1); break; case "lastMonthEnd": - result = DependentDateUtils.getLastMonthBeginInterval(businessDate, false); + result = DependentDateUtils.getNeededMonthBeginInterval(businessDate, false, -1); break; default: break;