Plandora

 
 

开源 Java 项目管理系统

使用甘特图、敏捷看板、工作流和基于开源 Java 平台的集成来计划、跟踪和管理项目。

什么是 Plandora?

Plandora 是一个成熟的开源项目管理系统,使用 Java 构建,旨在满足企业级项目规划、跟踪和协作需求。它提供包括甘特图、敏捷看板、工作流自动化、资源容量规划以及通过 JasperReports 的自定义报表在内的全面工具。内置对 JIRA、SVN 和 RT4 等集成的支持,Plandora 使团队能够在保持跨部门可追溯性和透明度的同时管理复杂项目。其灵活的元字段系统和可定制表单让组织能够在无需代码更改的情况下适配独特的工作流程。

系统强调可用性和可扩展性,拥有类似 Google 搜索的知识库、多层项目调查、风险管理和基于任务的待办列表。Plandora 通过平衡计分卡、迭代燃尽图小部件和宏任务层级,支持传统瀑布式和敏捷方法论。自 2023 年重新启动以来,项目已修复超过 30 个关键错误,提升性能,新增 CSV 导入/导出,并增强报告功能——包括计划报告生成和 JPG 输出。开发者可通过 [Plandora GitHub](https://github.com/Cynjut/Plandora) 仓库贡献代码,并使用其模块化架构和 JDBC/DAO 模式扩展功能。

Previous Next

Plandora 入门指南

Plandora 是一个基于 Java 的 Web 应用程序,通常部署在 Tomcat 或其他 JEE 服务器上。要开始使用,请从 [Plandora GitHub 仓库](https://github.com/Cynjut/Plandora) 克隆源码,确保已安装 Java 8+ 和 Maven,并使用 `mvn clean package` 构建 WAR 文件。将生成的 WAR 部署到您的 servlet 容器。系统同时支持 Tomcat 连接池和直接的 JDBC 连接(在 `web.xml` 中配置)。完成初始设置后,配置数据库凭证、SMTP 设置,并与 JIRA 或 SVN 等外部系统集成。Plandora 包含内置的设置向导,用于工作流、元字段和用户角色等核心组件,以加速部署。

通过 Maven 构建与部署 Plandora

# Clone the repository
git clone https://github.com/Cynjut/Plandora.git
cd Plandora

# Build the WAR file
mvn clean package

# Deploy to Tomcat
cp target/plandora.war $TOMCAT_HOME/webapps/

带有日历事件和里程碑的甘特图

Plandora的甘特图可视化项目时间线,支持宏任务、里程碑和日历事件。它动态过滤资源和任务,即使在分配或移除资源时也能确保准确的进度跟踪。图表现在包括里程碑标记,并与项目日历集成,以反映工作日和假期。用户可以将甘特视图导出为CSV、XLS或JPG格式,以用于报告和共享。性能改进确保在大型数据集上平稳渲染,系统在MSProject导入期间正确处理任务截断。自定义字段和元字段可以直接显示在甘特网格上,使在时间线视图中无需离开即可获得更丰富的上下文。这使Plandora既适合传统项目经理,也适合使用敏捷-瀑布混合的混合团队。

通过计划报告将甘特图导出为 JPG

// Use Report2File agent to schedule Gantt export
Report2File report = new Report2File();
report.setReportName("ProjectGantt");
report.setOutputFormat("jpg");
report.setSchedule("0 0 2 * * ?"); // Daily at 2 AM
report.setFilePath("/reports/gantt/");
report.execute();

JIRA 集成用于问题导入

Plandora 包含一个专用代理,用于将 JIRA 问题导入为 Plandora 请求,包括附件和元数据。此集成桥接了工单系统和项目规划,使非技术利益相关者能够使用 RT4 或 JIRA,而开发人员在 Plandora 中管理工作。导入过程保留问题关系、优先级、受让人和时间戳。它支持按项目、状态或日期范围过滤,并高效处理大批量。导入后,问题成为具有可编辑字段、工作流转换和任务层级的完整 Plandora 请求。此功能对从 JIRA 迁移或维护双系统的组织尤为有价值。开发人员可以通过配置或自定义插件扩展该代理,以支持额外的 JIRA 字段或自定义字段。

通过命令行代理导入 JIRA 问题

// Example agent invocation (simplified)
JiraImporter importer = new JiraImporter();
importer.setJiraUrl("https://jira.example.com");
importer.setUsername("api_user");
importer.setPassword("token");
importer.setProjectKey("PROJ");
importer.setIssueFilter("status = 'Done'");
importer.setImportAttachments(true);
importer.execute();

资源容量管理与比较

Plandora 的资源容量表单实现了对团队可用性与实际使用情况的详细规划和跟踪。它根据分配的任务、迭代和工时表计算已使用的容量,并提供零/空值和日期范围的过滤器。用户可以并排比较估计容量与已使用容量,以识别资源的过度或不足分配。系统能够优雅地支持已取消分配的资源,修复成员从所有项目中移除时的数据库查询错误。容量数据与甘特图和燃尽图小工具集成,实现真实的冲刺和里程碑规划。管理者可以动态调整估算,且更改会传播到下游报告和仪表板。此功能对于多项目环境下的组合级资源治理和预测至关重要。

按零值筛选资源容量

// Pseudo-code for capacity filtering logic
ResourceCapacityFilter filter = new ResourceCapacityFilter();
filter.setProjectId(projectId);
filter.setShowZeroValues(true);
filter.setCompareEstimates(true);

List entries = capacityService.getFilteredCapacities(filter);
for (CapacityEntry entry : entries) {
    if (entry.getUsed() == 0) {
        System.out.println("Unused capacity: " + entry.getResourceName());
    }
}

工作流自动化与元字段自定义

Plandora 的工作流引擎支持可自定义的审批链、状态转换以及与请求、任务和事件关联的后续评论。弹出式工作流界面现在显示相关请求描述和完整的评论历史,提升可追溯性。元字段允许管理员为任务、请求和项目定义自定义属性(例如合规标签、客户 ID),包括通过 UI 验证强制的必填字段。这些字段会出现在网格、报告和导出中,实现无需代码更改的灵活数据建模。系统还支持在主表单网格和 CSV 导入中显示元字段,确保数据录入点的一致性。这种可扩展性使 Plandora 适用于受监管行业和需要审计追踪及标准化流程的复杂组织结构。

通过 API 定义必填元字段

// Example: Mark meta-field as mandatory
MetaField field = metaFieldService.findById("client_id");
field.setIsMandatory(true);
field.setValidationRegex("^[A-Z]{3}[0-9]{4}$");
metaFieldService.update(field);

// Validation enforced in forms and imports
if (request.getClientId() == null || request.getClientId().isEmpty()) {
    throw new ValidationException("Client ID is required");
}
 中国人