Browse Source

[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
3.1.1-release
insist777 2 years ago committed by zhuangchong
parent
commit
3a14fd07b3
  1. 9
      dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentDateUtils.java
  2. 10
      dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/utils/DependentUtils.java

9
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);

10
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;

Loading…
Cancel
Save