From bb5c5ee430e40f4a74593b303acf3d494fb92fd8 Mon Sep 17 00:00:00 2001 From: abeizn Date: Mon, 27 May 2024 16:43:20 +0800 Subject: [PATCH] fix: execution id not exist --- .../zentao/tasks/execution_collector.go | 5 +++-- .../tasks/execution_summary_dev_collector.go | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/backend/plugins/zentao/tasks/execution_collector.go b/backend/plugins/zentao/tasks/execution_collector.go index c46fb1bebe1..0aa20a9242b 100644 --- a/backend/plugins/zentao/tasks/execution_collector.go +++ b/backend/plugins/zentao/tasks/execution_collector.go @@ -20,11 +20,12 @@ package tasks import ( "encoding/json" "fmt" + "net/http" + "net/url" + "github.com/apache/incubator-devlake/core/errors" "github.com/apache/incubator-devlake/core/plugin" "github.com/apache/incubator-devlake/helpers/pluginhelper/api" - "net/http" - "net/url" ) const RAW_EXECUTION_TABLE = "zentao_api_executions" diff --git a/backend/plugins/zentao/tasks/execution_summary_dev_collector.go b/backend/plugins/zentao/tasks/execution_summary_dev_collector.go index 257f14eadb9..a520d2712f6 100644 --- a/backend/plugins/zentao/tasks/execution_summary_dev_collector.go +++ b/backend/plugins/zentao/tasks/execution_summary_dev_collector.go @@ -22,9 +22,11 @@ import ( "fmt" "net/http" + "github.com/apache/incubator-devlake/core/dal" "github.com/apache/incubator-devlake/core/errors" "github.com/apache/incubator-devlake/core/plugin" "github.com/apache/incubator-devlake/helpers/pluginhelper/api" + "github.com/apache/incubator-devlake/plugins/zentao/models" ) const RAW_EXECUTION_SUMMARY_DEV_TABLE = "zentao_api_execution_summary_dev" @@ -33,6 +35,25 @@ var _ plugin.SubTaskEntryPoint = CollectExecutionSummaryDev func CollectExecutionSummaryDev(taskCtx plugin.SubTaskContext) errors.Error { data := taskCtx.GetData().(*ZentaoTaskData) + db := taskCtx.GetDal() + + // load stories id from db + clauses := []dal.Clause{ + dal.From(&models.ZentaoExecutionSummary{}), + dal.Where( + "project = ? AND connection_id = ?", + data.Options.ProjectId, data.Options.ConnectionId, + ), + } + count, err := db.Count(clauses...) + if err != nil { + return err + } + // if there are already data in db, skip this task + if count > 0 { + return nil + } + collector, err := api.NewApiCollector(api.ApiCollectorArgs{ RawDataSubTaskArgs: api.RawDataSubTaskArgs{ Ctx: taskCtx,