1. 禅道介绍
2. 安装禅道
- 2.1. 环境搭建
- 2.2. 安装禅道新版本
- 2.3. 安装12开源版
- 2.4. 安装12企业版
- 安装 PHP 的 LDAP 扩展
- 在线安装云禅道
- 安装 APCu 扩展
- 安装 DuckDB 引擎
3. 升级禅道
- 3.1. 升级12开源版
- 3.2. 升级12企业版
- 3.3. 升级禅道新版本
- 如何安装 ioncube 扩展
4. 维护配置
- 4.1. 维护禅道
- 4.2. 配置禅道
- 4.3. 性能优化
5. 快速入门
- 5.1. 12版本快速入门
- 5.2. 12版创建分组和用户
- 5.3. 12版本最简使用
- 5.4. 12版本基本使用
- 5.5. 12版本进阶使用
- 禅道使用流程图解
- 5.5.2. 个人管理
- 5.5.3. 产品经理篇
- 5.5.4. 项目经理篇
- 5.5.5. 开发团队篇
- 5.5.6. 测试团队篇
- 5.6. 12版本企业版使用
- 5.6.17. 办公管理
- 5.6.18. 工作流
- 视频及 PPT 资料
- 5.7. 新版本快速入门
6. 按照角色使用
7. 功能介绍
- 7.1. 新增概念
- 7.2. 地盘
- 7.3. 项目集
- 7.4. 产品
- 7.5. 项目
- 7.6. 执行
- 7.7. 测试
- 7.8. 自动化测试
- 7.9. DevOps(新平台版)
- 7.10. DevOps(旧版)
- 7.10.1. DevOps 功能
- 7.11. 看板
- 7.12. 资产库(旗舰版)
- 7.13. 文档
- 7.14. BI
- 7.15. AI
- 7.16. 组织
- 7.17. 办公(企业版)
- 7.18. 反馈(企业版)
- 7.19. 学堂(企业版)
- 7.20. 内置工作流(企业版)
- 7.21. 后台设置
- 7.22. 客户端增强版会议
- 7.22.1. 音视频会议配置
- 7.22.2. 发起会议
- 7.22.3. 加入会议
- 预约会议
- 音视频会议应用
8. 其他相关
其他内容
- 关于禅道 IPD 版
- 关于禅道 DevOps 平台版本
- SAFe 介绍
- 关于禅道企业创新能力解决方案
- 禅道企业决策分析解决方案介绍
- 配置使用与常见问题
- 关于 zentaoPHP 框架
- 禅道二次开发简介
- 关于禅道项目管理软件
- 关于禅道企业版
- 关于禅道旗舰版
- 选择适合您的安装方法
- 使用源码包安装(各系统通用)
- Windows 一键安装包(旧版)
- 安装 ioncube 扩展
- 一键安装包如何实现 mysql 异机连接
- 如何安装 ioncube 扩展
- 通过源代码方式升级(通用)
- windows 一键安装包的升级
- linux 一键安装包升级
- 通过源代码方式升级(通用)
- windows 一键安装包的升级
- linux 一键安装包升级
- 升级流程引导
- zentaoPHP 框架命令行机制
- 初始化管理脚本
- 集成版本库、集成 Jenkins,并进行构建
- 主持产品会议
- 禅道开源版使用帮助
- 维护权限
- ZAgent 的使用
- 分解任务
- Git/SVN 版本库管理和查看代码
- 管理应用
- 管理代码库
- 管理流水线
- 管理制品库
- 管理上线计划
- 禅道的目录结构
- 插件
- 在第三方应用中集成禅道
- 其他配置
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
度量项编码开发操作手册
模板定义
<?php /** * [度量项名称]。 * [度量项名称(英文)]. * * 范围:[范围] * 对象:[对象] * 目的:[目的] * 度量名称:[度量项名称] * 单位:[单位] * 描述:[描述度量项的含义] * 定义:[描述度量项如何定义,计算规则等] */ class xxx_of_xxx_in_xxx extends baseCalc { /** * 度量项计算临时结果。 */ public $result = array(); /** * 获取自定义数据源pdo句柄。 */ public function getStatement() { return $this->dao->XXX->query(); } /** * 计算度量项。 * * @param object $row 数据源的一行数据 */ public function calculate($row) { * $this->result += 1; } /** * 汇总并获取度量项计算结果。 * * @param array $options 筛选参数,如果不传参,则返回度量项所有数据 */ public function getResult($options = array()) { $records = $this->getRecords(array('value')); return $this->filterByOptions($records, $options); } }
示例
- 按全局统计的年度关闭项目的任务消耗工时数
<?php /** * 按全局统计的年度关闭项目的任务消耗工时数。 * Consume of annual closed project. * * 范围:global * 对象:project * 目的:hour * 度量名称:按全局统计的年度关闭项目的任务消耗工时数 * 单位:h * 描述:按全局统计的年度关闭项目的任务消耗工时数是指在某年度关闭的项目中团队或组织实际花费的总工时数,用于完成任务。该度量项可以用来评估团队或组织在任务执行过程中的工时投入情况和对资源的利用效率。较高的年度关闭项目的任务消耗工时数可能需要审查工作流程和资源分配,以提高工作效率和进度控制。 * 定义:所有项目任务的消耗工时数求和;项目状态为已关闭;关闭时间为某年;过滤已删除的项目; */ class consume_of_annual_closed_project extends baseCalc { public $dataset = null; public $fieldList = array(); public $result = array(); public function getStatement() { $task = $this->dao->select('SUM(consumed) as consumed, project') ->from(TABLE_TASK) ->where('deleted')->eq('0') ->andWhere('parent')->ne('-1') ->groupBy('project') ->get(); return $this->dao->select('t1.id as project, LEFT(t1.closedDate, 4) as year, t2.consumed') ->from(TABLE_PROJECT)->alias('t1') ->leftJoin("($task)")->alias('t2')->on('t1.id = t2.project') ->where('t1.type')->eq('project') ->andWhere('t1.status')->eq('closed') ->andWhere('t1.deleted')->eq('0') ->andWhere('t1.closedDate IS NOT NULL') ->andWhere('LEFT(t1.closedDate, 4)')->ne('0000') ->query(); } public function calculate($data) { $project = $data->project; $year = $data->year; $consumed = $data->consumed; if(!isset($this->result[$year])) $this->result[$year] = array(); $this->result[$year][$project] = round($consumed, 2); } public function getResult($options = array()) { $records = array(); foreach($this->result as $year => $projects) { foreach($projects as $project => $value) { $records[] = array('project' => $project, 'year' => $year, 'value' => $value); } } return $this->filterByOptions($records, $options); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论