概述
通过AI,自动化生成Jira报告,根据用户输入的起止日期,从Jira平台抓取工单数据,经数据清洗、聚合计算,最终生成 每周人力成本.Excel
以及 研发中心周报.Word
,并提供文档下载链接,实现整个统计报告流程的AI自动化。
项目部分截图
工作流
网页入口
文档示例
项目细节
技术方案概述
(一)数据获取
利用Jira提供的API接口,通过身份验证后,根据用户指定的开始和结束日期构建查询请求,获取相关工单数据,如提出部门,开发部门,工时等关键字段。
(二)数据清洗
对抓取到的工单数据进行清洗,识别缺失值字段。根据业务规则和数据特性,采用填充默认值、过滤异常记录等方式处理数据,保证数据的完整性。
(三)数据聚合计算
利用ai大模型动态生成聚合计算的java代码,执行生成的java代码完成数据的聚合计算
(四)文档生成
将聚合计算后的数据填入 “每周人力成本” 及 “研发中心” 模板,最后生成Excel及Word文档。
挑战及应对策略
挑战:
原计划直接采用AI大模型对Jira工单数据进行聚合计算,但在实际测试中发现,当输入数据量超过一定阈值后,AI大模型的计算结果会出现显著偏差。
应对策略:
优化实现路径:
转为利用AI大模型生成聚合计算代码,通过执行生成代码完成数据处理。该方案具备双重优势:
1、确保计算准确性:
通过代码执行规避大模型直接计算的误差风险
2、保持规则灵活性:
基于提示词动态调整计算逻辑,满足持续演变的业务需求
代码生成提示词:
[角色]
资深的java程序员
[任务]
编写一个处理json数据的java方法
[需求]
待处理json数据格式示例如下:
[
{
"reportDepartment": "产品",
"department": "应用研发",
"manDay": 100
},{
"reportDepartment": "产品",
"department": "应用研发",
"manDay": 60
},{
"reportDepartment": "产品",
"department": "应用研发",
"manDay": 200
},{
"reportDepartment": "技术",
"department": "未知",
"manDay": 60,
"key": "RCVF-12",
"assignee": "开发者"
}
]
参考"待处理json数据格式示例"
1、将所有json对象reportDepartment与department拼接得到allDepartment
2、将所有allDepartment相同且department不是"未知"的json对象聚合,再将聚合后所有的manDay相加得到totalManDay,最后成新的json数据,并赋值给新json的"workload"字段
3、将所有department是"未知"的json对象的reportDepartment, manDay, assignee, key字段汇总生成新的json数据,并赋值给新json的"unknowWorkload"字段
4、将新生成数据的totalManDay及manDay除以100,且不进行四舍五入,小数点后保留两位
汇总后生成新的json数据格式示例如下:
{
"unknowWorkload": [{
"reportDepartment": "产品",
"manDay": 0.6,
"key": "RCVF-12",
"assignee": "开发者"
}],
"workload": [{
"reportDepartment": "产品",
"department": "应用研发",
"totalManDay": 3.6
}]
}
[代码模板]
import com.fasterxml.jackson.*
public class WorkloadHandler {
public String gatherWorkload(Map<String, String> jsonData) {
try {
ObjectMapper objectMapper = new ObjectMapper();
String result = jsonData.get("result");
if (result == null || result.isEmpty()) {
return "[]";
}
JsonNode resultNode = objectMapper.readTree(result);
JsonNode workloadJsonNode = resultNode.get("workloadList");
// 待填充部分
} catch (Exception e) {
e.printStackTrace();
return "[]";
}
}
}
[要求]
1、参考[代码模板],在[代码模板]的基础上填充代码,workloadJsonNode为"待处理json数据"
2、使用jackson处理json数据
3、禁止在代码中使用需要转义的字符比如|
[输出]
填充代码后的[代码模板]
作者:admin 创建时间:2025-07-01 17:59
最后编辑:admin 更新时间:2025-07-11 10:07
最后编辑:admin 更新时间:2025-07-11 10:07