Merge branch release/21.7.5 of zentao/zentaopms (#11186)

This commit is contained in:
刘刚
2025-08-29 16:00:48 +08:00
committed by Gitfox
6 changed files with 21 additions and 13 deletions
+1
View File
@@ -235,6 +235,7 @@ class programplanModel extends model
$workingDays = $this->loadModel('holiday')->getActualWorkingDays($begin, $end);
foreach($tasksGroup as $group => $tasks)
{
if(!$group) $group = '/'; // 未指派
$groupID ++;
$groupKey = $groupID . $group;
$datas['data'][$groupKey] = $this->programplanTao->buildGroupDataForGantt($groupID, $group, $users);
+1 -1
View File
@@ -741,7 +741,7 @@ class programplanTao extends programplanModel
{
$this->app->loadLang('task');
$groupName = $group;
$groupName = $group ? zget($users, $group) : $this->lang->task->noAssigned;
$groupName = $group != '/' ? zget($users, $group) : $this->lang->task->noAssigned;
$dataGroup = new stdclass();
$dataGroup->id = $groupID;
@@ -7,13 +7,13 @@ title=测试 programplanModel->getDataForGanttGroupByAssignedTo();
timeout=0
cid=0
- 测试获取阶段数据第0条的type属性 @task
- 测试获取阶段数据第0条的type属性 @group
- 测试获取任务数据
- 第1条的id属性 @1-4
- 第1条的id属性 @1-1
- 第1条的type属性 @task
- 测试获取阶段数据(JSON类型返回值)第2条的type属性 @task
- 测试获取任务数据(JSON类型返回值)
- 第3条的id属性 @1-8
- 第3条的id属性 @1-5
- 第3条的type属性 @task
- 测试自定义参数为空的情况获取任务数据 @1
@@ -30,8 +30,8 @@ $programplan = new programplanTest();
$selectCustom = 'date,task';
$selectNoneCustom = '';
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, false)) && p('0:type') && e('task'); // 测试获取阶段数据
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, false)) && p('1:id,type') && e('1-4,task'); // 测试获取任务数据
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, false)) && p('0:type') && e('group'); // 测试获取阶段数据
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, false)) && p('1:id,type') && e('1-1,task'); // 测试获取任务数据
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, true)) && p('2:type') && e('task'); // 测试获取阶段数据(JSON类型返回值)
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, true)) && p('3:id,type') && e('1-8,task'); // 测试获取任务数据(JSON类型返回值)
r(count($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectNoneCustom, false))) && p() && e('1'); // 测试自定义参数为空的情况获取任务数据
r($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectCustom, true)) && p('3:id,type') && e('1-5,task'); // 测试获取任务数据(JSON类型返回值)
r(count($programplan->getDataForGanttGroupByAssignedToTest(1, 1, 0, $selectNoneCustom, false))) && p() && e('1'); // 测试自定义参数为空的情况获取任务数据
+5 -4
View File
@@ -4,6 +4,7 @@
/**
title=测试 loadModel->buildGroupDataForGantt()
timeout=0
cid=0
- 检查构建分组Gantt数据。
@@ -17,12 +18,12 @@ cid=0
- 检查空组构建情况。
- 属性id @3
- 属性type @group
- 属性text @''
- 属性text @未指派
- 检查自定义组ID。
- 属性id @99
- 属性type @group
- 属性text @产品
- 检查无用户列表时。
- 检查无用户列表。
- 属性id @5
- 属性type @group
- 属性text @设计
@@ -50,7 +51,7 @@ $group = '测试';
r((array)$tester->programplan->buildGroupDataForGantt($groupID, $group, $users)) && p('id,type,text') && e("2,group,测试"); //检查另一个分组。
$groupID = 3;
$group = '';
$group = '/';
r((array)$tester->programplan->buildGroupDataForGantt($groupID, $group, $users)) && p('id,type,text') && e("3,group,未指派"); //检查空组构建情况。
$groupID = 99;
@@ -59,4 +60,4 @@ r((array)$tester->programplan->buildGroupDataForGantt($groupID, $group, $users))
$groupID = 5;
$group = '设计';
r((array)$tester->programplan->buildGroupDataForGantt($groupID, $group, $emptyUsers)) && p('id,type,text') && e("5,group,设计"); //检查无用户列表。
r((array)$tester->programplan->buildGroupDataForGantt($groupID, $group, $emptyUsers)) && p('id,type,text') && e("5,group,设计"); //检查无用户列表。
+1
View File
@@ -28,6 +28,7 @@ class testtaskTao extends testtaskModel
->leftJoin(TABLE_BUILD)->alias('t4')->on('t1.build = t4.id')
->leftJoin(TABLE_PROJECT)->alias('t5')->on('t1.project = t5.id')
->where('t1.deleted')->eq(0)
->andWhere('t2.deleted')->eq(0)
->beginIF($unit == 'unit')->andWhere('t1.auto')->eq('unit')->fi()
->beginIF($unit != 'unit')->andWhere('t1.auto')->ne('unit')->fi()
->beginIF(!$this->app->user->admin)->andWhere('t1.execution')->in("0,{$this->app->user->view->sprints}")->fi()
+6 -1
View File
@@ -10934,7 +10934,12 @@ class upgradeModel extends model
while($action = $stmt->fetch())
{
$productIdList = array_unique(array_filter(explode(',', $action->product)));
foreach($productIdList as $productID) $values[] = "({$action->id}, {$productID})";
foreach($productIdList as $productID)
{
if(!is_numeric($productID)) continue;
$values[] = "({$action->id}, {$productID})";
}
if(count($values) >= 5000)
{
$this->dao->exec($sql . implode(',', $values));