* Finish task #43909.

This commit is contained in:
liumengyi
2021-11-10 11:30:04 +08:00
parent 6bdf3553d1
commit a76e32591e
2 changed files with 45 additions and 50 deletions
+19 -18
View File
@@ -296,25 +296,25 @@ class reportModel extends model
->andWhere("t1.account NOT IN(SELECT `assignedTo` FROM " . TABLE_TASK . " WHERE `execution` = t1.`root` AND `status` NOT IN('cancel, closed, done, pause') AND assignedTo != '' GROUP BY assignedTo)")
->fetchGroup('account', 'name');
$workload = array();
$workload = array();
if(!empty($members))
{
foreach($members as $member => $executions)
{
$project = array();
if(!empty($executions))
{
foreach($executions as $name => $execution)
{
$workload[$member]['task']['project'][$execution->projectname]['project'] = $execution->projectname;
$workload[$member]['task']['project'][$execution->projectname]['projectID'] = $execution->project;
$workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['name'] = $name;
$workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['executionID'] = $execution->root;
$workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['count'] = 0;
$workload[$member]['task']['project'][$execution->projectname]['execution'][$name]['manhour'] = 0;
$workload[$member]['total']['count'] = 0;
$workload[$member]['total']['manhour'] = 0;
$project[$execution->projectname]['projectID'] = $execution->project;
$project[$execution->projectname]['execution'][$name]['executionID'] = $execution->root;
$project[$execution->projectname]['execution'][$name]['count'] = 0;
$project[$execution->projectname]['execution'][$name]['manhour'] = 0;
$workload[$member]['total']['count'] = 0;
$workload[$member]['total']['manhour'] = 0;
}
}
$workload[$member]['task']['project'] = $project;
}
}
return $workload;
@@ -376,20 +376,21 @@ class reportModel extends model
{
if($user)
{
$project = array();
foreach($userTasks as $task)
{
if(isset($parents[$task->id])) continue;
$workload[$user]['task']['project'][$task->projectname]['projectID'] = isset($workload[$user]['task']['project'][$task->projectname]['projectID']) ? $workload[$user]['task']['project'][$task->projectname]['projectID'] : $task->project;
$workload[$user]['task']['project'][$task->projectname]['project'] = isset($workload[$user]['task']['project'][$task->projectname]['project']) ? $workload[$user]['task']['project'][$task->projectname]['project'] : $task->projectname;
$workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count'] = isset($workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count']) ? $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['count'] + 1 : 1;
$workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour'] = isset($workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour']) ? $workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['manhour'] + $task->left : $task->left;
$workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['executionID'] = $task->execution;
$workload[$user]['task']['project'][$task->projectname]['execution'][$task->executionName]['name'] = $task->executionName;
$workload[$user]['total']['count'] = isset($workload[$user]['total']['count']) ? $workload[$user]['total']['count'] + 1 : 1;
$workload[$user]['total']['manhour'] = isset($workload[$user]['total']['manhour']) ? $workload[$user]['total']['manhour'] + $task->left : $task->left;
$project[$task->projectname]['projectID'] = isset($project[$task->projectname]['projectID']) ? $project[$task->projectname]['projectID'] : $task->project;
$project[$task->projectname]['execution'][$task->executionName]['executionID'] = isset($project[$task->projectname]['execution'][$task->executionName]['executionID']) ? $project[$task->projectname]['execution'][$task->executionName]['executionID'] : $task->execution;
$project[$task->projectname]['execution'][$task->executionName]['count'] = isset($project[$task->projectname]['execution'][$task->executionName]['count']) ? $project[$task->projectname]['execution'][$task->executionName]['count'] + 1 : 1;
$project[$task->projectname]['execution'][$task->executionName]['manhour'] = isset($project[$task->projectname]['execution'][$task->executionName]['manhour']) ? $project[$task->projectname]['execution'][$task->executionName]['manhour'] + $task->left : $task->left;
$workload[$user]['total']['count'] = isset($workload[$user]['total']['count']) ? $workload[$user]['total']['count'] + 1 : 1;
$workload[$user]['total']['manhour'] = isset($workload[$user]['total']['manhour']) ? $workload[$user]['total']['manhour'] + $task->left : $task->left;
}
$workload[$user]['task']['project'] = $project;
}
}
}
unset($workload['closed']);
return $workload;
}
+26 -32
View File
@@ -82,38 +82,32 @@
<tbody>
<?php $color = false;?>
<?php foreach($workload as $account => $load):?>
<?php if(!isset($users[$account])) continue;?>
<tr class="text-center">
<?php $idusername = 1; $countusername = 0;?>
<?php foreach($load['task']['project'] as $project => $info):?>
<?php foreach($info['execution'] as $exec => $execinfo):?>
<?php $countusername ++ ;?>
<?php endforeach;?>
<?php endforeach;?>
<td class="<?php echo $class;?>" rowspan="<?php echo $countusername;?>"><?php echo $users[$account];?></td>
<?php foreach($load['task']['project'] as $project => $info):?>
<?php $idprojectname = 1; $countprojectname = 0;?>
<?php foreach($info['execution'] as $exec):?>
<?php $countprojectname ++ ;?>
<?php endforeach;?>
<?php foreach($info['execution'] as $exec => $execinfo):?>
<?php if($idprojectname != 1 || $idusername != 1) echo "<tr>";?>
<?php if($idprojectname == 1):?>
<td class="text-center" rowspan="<?php echo $countprojectname;?>"><?php echo html::a($this->createLink('project', 'view', "projectID={$info['projectID']}"), $info['project']);?></td>
<?php endif;?>
<td class="text-center"><?php echo html::a($this->createLink('execution', 'view', "executionID={$execinfo['executionID']}"), $execinfo['name']);?></td>
<td class="text-center"><?php echo $execinfo['count'];?></td>
<td class="text-center"><?php echo $execinfo['manhour'];?></td>
<?php if($idusername == 1):?>
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['count'];?></td>
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['manhour'];?></td>
<td rowspan="<?php echo $countusername;?>"><?php echo round($load['total']['manhour'] / $allHour * 100, 2) . '%';?></td>
<?php endif;?>
<?php if($idprojectname != 1 || $idusername != 1) echo "</tr>"; $idprojectname ++; $idusername ++;?>
<?php $color = !$color;?>
<?php endforeach;?>
<?php endforeach;?>
</tr>
<?php if(!isset($users[$account])) continue;?>
<tr class="text-center">
<?php $idusername = 1; $countusername = 0;?>
<?php foreach($load['task']['project'] as $project => $info) foreach($info['execution'] as $exec => $execinfo) $countusername ++;?>
<td class="<?php echo $class;?>" rowspan="<?php echo $countusername;?>"><?php echo $users[$account];?></td>
<?php foreach($load['task']['project'] as $project => $info):?>
<?php $idprojectname = 1; $countprojectname = 0;?>
<?php foreach($info['execution'] as $exec) $countprojectname ++ ;?>
<?php foreach($info['execution'] as $exec => $execinfo):?>
<?php if($idprojectname != 1 || $idusername != 1) echo "<tr>";?>
<?php if($idprojectname == 1):?>
<td class="text-center" rowspan="<?php echo $countprojectname;?>"><?php echo html::a($this->createLink('project', 'view', "projectID={$info['projectID']}"), $project);?></td>
<?php endif;?>
<td class="text-center"><?php echo html::a($this->createLink('execution', 'view', "executionID={$execinfo['executionID']}"), $exec);?></td>
<td class="text-center"><?php echo $execinfo['count'];?></td>
<td class="text-center"><?php echo $execinfo['manhour'];?></td>
<?php if($idusername == 1):?>
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['count'];?></td>
<td rowspan="<?php echo $countusername;?>"><?php echo $load['total']['manhour'];?></td>
<td rowspan="<?php echo $countusername;?>"><?php echo round($load['total']['manhour'] / $allHour * 100, 2) . '%';?></td>
<?php endif;?>
<?php if($idprojectname != 1 || $idusername != 1) echo "</tr>"; $idprojectname ++; $idusername ++;?>
<?php $color = !$color;?>
<?php endforeach;?>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</tbody>
</table>