From 6dafd1ce73759ab4d23a2cc0a4ea11e770dee845 Mon Sep 17 00:00:00 2001 From: wangzemei Date: Mon, 17 Nov 2025 17:07:03 +0800 Subject: [PATCH] * [task#152532] add logic regarding associated story for zentao agent. --- module/ai/lang/de.php | 1 + module/ai/lang/en.php | 1 + module/ai/lang/fr.php | 1 + module/ai/lang/zh-cn.php | 1 + module/ai/model.php | 27 +++++++++++++++++++++++---- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/module/ai/lang/de.php b/module/ai/lang/de.php index de90b4fee5..df5797f1a3 100644 --- a/module/ai/lang/de.php +++ b/module/ai/lang/de.php @@ -515,6 +515,7 @@ $lang->ai->dataSource['task']['task']['left'] = 'Left'; $lang->ai->dataSource['task']['task']['progress'] = 'Progress'; $lang->ai->dataSource['task']['task']['estStarted'] = 'Start Date'; $lang->ai->dataSource['task']['task']['realStarted'] = 'Actual Start'; +$lang->ai->dataSource['task']['task']['story'] = 'Related story'; $lang->ai->dataSource['case']['case']['common'] = 'Test Case'; $lang->ai->dataSource['case']['case']['title'] = 'Title'; diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php index de90b4fee5..df5797f1a3 100644 --- a/module/ai/lang/en.php +++ b/module/ai/lang/en.php @@ -515,6 +515,7 @@ $lang->ai->dataSource['task']['task']['left'] = 'Left'; $lang->ai->dataSource['task']['task']['progress'] = 'Progress'; $lang->ai->dataSource['task']['task']['estStarted'] = 'Start Date'; $lang->ai->dataSource['task']['task']['realStarted'] = 'Actual Start'; +$lang->ai->dataSource['task']['task']['story'] = 'Related story'; $lang->ai->dataSource['case']['case']['common'] = 'Test Case'; $lang->ai->dataSource['case']['case']['title'] = 'Title'; diff --git a/module/ai/lang/fr.php b/module/ai/lang/fr.php index de90b4fee5..df5797f1a3 100644 --- a/module/ai/lang/fr.php +++ b/module/ai/lang/fr.php @@ -515,6 +515,7 @@ $lang->ai->dataSource['task']['task']['left'] = 'Left'; $lang->ai->dataSource['task']['task']['progress'] = 'Progress'; $lang->ai->dataSource['task']['task']['estStarted'] = 'Start Date'; $lang->ai->dataSource['task']['task']['realStarted'] = 'Actual Start'; +$lang->ai->dataSource['task']['task']['story'] = 'Related story'; $lang->ai->dataSource['case']['case']['common'] = 'Test Case'; $lang->ai->dataSource['case']['case']['title'] = 'Title'; diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php index 66de044699..6385238f21 100644 --- a/module/ai/lang/zh-cn.php +++ b/module/ai/lang/zh-cn.php @@ -515,6 +515,7 @@ $lang->ai->dataSource['task']['task']['left'] = '剩余'; $lang->ai->dataSource['task']['task']['progress'] = '进度'; $lang->ai->dataSource['task']['task']['estStarted'] = '预计开始'; $lang->ai->dataSource['task']['task']['realStarted'] = '实际开始'; +$lang->ai->dataSource['task']['task']['story'] = '相关需求'; $lang->ai->dataSource['case']['case']['common'] = '用例'; $lang->ai->dataSource['case']['case']['title'] = '标题'; diff --git a/module/ai/model.php b/module/ai/model.php index 9796662e1f..b245a4b6a3 100644 --- a/module/ai/model.php +++ b/module/ai/model.php @@ -1756,6 +1756,24 @@ class aiModel extends model /* Handle empty sources array. */ if(empty($sources)) return ''; + $storyData = []; + if(in_array(['task', 'story'], $sources, true)) + { + $story = $this->loadModel('story')->getById($data['task']['story']); + $fields = ['title', 'spec', 'verify', 'product', 'module', 'pri', 'type', 'estimate']; + $storyData = []; + foreach($fields as $field) + { + $langLabel = $this->lang->story->$field; + $value = $story->$field; + if($field == 'title') $langLabel = $this->lang->story->name; + if($field == 'type') $value = zget($this->lang->story->typeList, $story->type); + if($field == 'spec' || $field == 'verify') $value = strip_tags($value); + + $storyData[$langLabel] = $value; + } + } + $dataObject = array(); $supplement = ''; @@ -1787,7 +1805,7 @@ class aiModel extends model $dataObject[$semanticName][$idx][$semanticKey] = $data[$objectName][$idx][$objectKey]; } } - + if(!empty($storyData)) $dataObject[$semanticName] = array_merge($dataObject[$semanticName], $storyData); if(in_array($objectKey, $supplementTypes) || !isset($this->lang->ai->dataType->$objectKey)) continue; $supplementTypes[] = $objectKey; @@ -2658,9 +2676,10 @@ class aiModel extends model */ public function getTestPromptData(object $prompt): array { - $module = $prompt->module; - $source = explode(',', $prompt->source); - $source = array_filter($source, function($value) {return !empty($value);}); + $module = $prompt->module; + $promptSource = str_replace('task.story,', '', $prompt->source); + $source = explode(',', $promptSource); + $source = array_filter($source, function($value) {return !empty($value);}); $titleData = $this->lang->ai->dataSource[$module]; $testData = $this->lang->ai->prompts->testData[$module];