This is an automated email from the ASF dual-hosted git repository.

chufenggao pushed a commit to branch 3.0.2-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/3.0.2-prepare by this push:
     new d034f3c869 [Fix][Task] Fix dependent task can not predicate the status 
of the corresponding task correctly (#12253) (#12792)
d034f3c869 is described below

commit d034f3c869c682e44266d07c6792c43c93fb3637
Author: Eric Gao <[email protected]>
AuthorDate: Mon Nov 7 19:26:54 2022 +0800

    [Fix][Task] Fix dependent task can not predicate the status of the 
corresponding task correctly (#12253) (#12792)
    
    * [Fix][Task] dependent task can not predicate the status of the 
corresponding task correctly
    
    Co-authored-by: insist777 <[email protected]>
---
 .../plugin/task/api/utils/DependentDateUtils.java              |  9 +++++----
 .../dolphinscheduler/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<DateInterval> getLastMonthBeginInterval(Date 
businessDate,
-                                                               boolean 
isBeginDay) {
+    public static List<DateInterval> 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;

Reply via email to