目标:梳理项目复盘能采集的数据、计算的指标,以及从项目和个人两个维度进行深度分析
| 字段 | 说明 | 数据来源 | 用途 |
|---|---|---|---|
createdAt |
项目创建时间 | Parse 自动生成 | 计算项目总周期 |
deadline |
项目截止时间 | 订单分配阶段设定 | 计算延期情况 |
updatedAt |
项目最后更新时间 | Parse 自动生成 | 追踪项目活跃度 |
currentStage |
当前所处阶段 | 项目流转自动更新 | 统计阶段耗时 |
| 字段 | 说明 | 数据来源 | 用途 |
|---|---|---|---|
creator |
项目创建人 | 客服创建项目时设定 | 统计客服工作量 |
assignee |
项目负责人 | 订单分配阶段指定 | 主设计师绩效 |
assigneeRole |
负责人角色 | ProjectTeam 表 | 区分组长/组员 |
teams (ProjectTeam) |
项目团队成员 | 订单分配阶段指定 | 团队协作分析 |
| 字段 | 说明 | 数据来源 | 用途 |
|---|---|---|---|
data.quotation.total |
项目报价总额 | 订单分配阶段设定 | 项目规模、利润率 |
data.quotation.products |
产品明细报价 | 订单分配阶段设定 | 产品级财务分析 |
data.aftercare.finalPayment.paidAmount |
已支付金额 | 售后归档阶段统计 | 回款分析 |
data.aftercare.finalPayment.paymentVouchers |
支付凭证列表 | 客户上传 | 回款明细 |
| 字段 | 说明 | 数据来源 | 用途 |
|---|---|---|---|
contact.name |
客户姓名 | 项目创建时填写 | 客户画像 |
contact.phone |
客户电话 | 项目创建时填写 | 客户联系 |
contact.company |
客户公司 | 项目创建时填写 | 企业客户分析 |
title |
项目名称 | 项目创建时填写 | 项目标识 |
data.order)| 字段 | 说明 | 计算价值 |
|---|---|---|
startTime |
阶段开始时间 | 阶段耗时 |
endTime |
阶段结束时间 | 阶段耗时 |
quotation.products[].name |
产品名称 | 产品复杂度分析 |
quotation.products[].quantity |
产品数量 | 工作量估算 |
quotation.products[].unitPrice |
单价 | 定价策略分析 |
quotation.discountRate |
折扣率 | 商务策略分析 |
data.requirements)| 字段 | 说明 | 计算价值 |
|---|---|---|
startTime |
阶段开始时间 | 阶段耗时 |
endTime |
阶段结束时间 | 阶段耗时 |
filesCount |
需求文件数量 | 需求复杂度 |
communicationRounds |
沟通轮次 | 沟通效率 |
data.delivery)| 字段 | 说明 | 计算价值 |
|---|---|---|
startTime |
阶段开始时间 | 阶段耗时 |
endTime |
阶段结束时间 | 阶段耗时 |
submittedFiles[] |
提交的文件列表 | 交付物数量 |
deliveryApprovalStatus |
审批状态 | 质量控制 |
approvalTime |
审批通过时间 | 审批效率 |
revisionCount |
修改次数 | 质量指标 |
data.aftercare)| 字段 | 说明 | 计算价值 |
|---|---|---|
startTime |
阶段开始时间 | 阶段耗时 |
endTime |
阶段结束时间 | 阶段耗时 |
finalPayment.totalAmount |
尾款总额 | 财务分析 |
finalPayment.paidAmount |
已支付金额 | 回款率 |
finalPayment.paymentVouchers[] |
支付凭证 | 回款明细 |
customerFeedback.overallRating |
总体评分 | 客户满意度 |
customerFeedback.dimensionRatings |
维度评分 | 多维度满意度 |
customerFeedback.wouldRecommend |
是否推荐 | NPS 计算 |
| 字段 | 说明 | 计算价值 |
|---|---|---|
profile (Pointer) |
团队成员 | 成员列表 |
role |
成员角色 | 角色分布 |
joinedAt |
加入时间 | 成员参与时长 |
contribution |
贡献度 | 成员绩效 |
status |
成员状态 | 成员活跃度 |
| 字段 | 说明 | 计算价值 |
|---|---|---|
title |
问题标题 | 问题分类 |
type |
问题类型 (bug, task, feedback, risk, feature) |
问题统计 |
priority |
优先级 (critical, urgent, high, medium, low) |
问题严重度 |
status |
状态 (待处理, 处理中, 已解决, 已关闭) |
问题解决率 |
assignee |
责任人 | 成员响应能力 |
creator |
创建人 | 问题提出者 |
createdAt |
创建时间 | 问题发现时间 |
updatedAt |
更新时间 | 问题处理时长 |
resolvedAt |
解决时间 | 问题解决效率 |
description |
问题描述 | 问题详情 |
relatedStage |
相关阶段 | 阶段质量 |
| 字段 | 说明 | 计算价值 |
|---|---|---|
name |
文件名称 | 文件类型统计 |
size |
文件大小 | 工作量估算 |
type |
文件类型 | 交付物分析 |
uploadedBy |
上传者 | 成员贡献 |
uploadedAt |
上传时间 | 交付时效 |
stage |
所属阶段 | 阶段产出 |
version |
版本号 | 迭代次数 |
status |
状态 (草稿, 待审, 已审, 已驳回) |
质量控制 |
| 字段 | 说明 | 计算价值 |
|---|---|---|
project (Pointer) |
关联项目 | 项目活动 |
action |
动作类型 (created, updated, stage-changed, assigned, approved, rejected, archived) |
关键节点 |
actor |
操作人 | 成员活跃度 |
createdAt |
操作时间 | 时间线 |
metadata |
详细信息 | 变更历史 |
description |
描述 | 活动记录 |
| 字段 | 说明 | 计算价值 |
|---|---|---|
project (Pointer) |
关联项目 | 反馈关联 |
type |
反馈类型 (satisfaction, complaint, suggestion, praise) |
反馈分类 |
rating |
评分 | 满意度 |
content |
反馈内容 | 文本分析 |
submittedBy |
提交人 | 反馈来源 |
submittedAt |
提交时间 | 反馈时效 |
handled |
是否处理 | 响应率 |
handledAt |
处理时间 | 处理时效 |
计算公式:
projectDuration = 归档时间 - 创建时间
plannedDuration = deadline - createdAt
timeVariance = (projectDuration - plannedDuration) / plannedDuration * 100
分级:
- A级 (90-100分): timeVariance <= 0% (提前完成)
- B级 (80-89分): 0% < timeVariance <= 10% (略微延期)
- C级 (70-79分): 10% < timeVariance <= 20% (轻度延期)
- D级 (60-69分): 20% < timeVariance <= 30% (中度延期)
- F级 (<60分): timeVariance > 30% (严重延期)
每个阶段的实际耗时 vs 计划耗时
订单分配阶段: 标准 1-2 天
需求确认阶段: 标准 3-5 天
交付执行阶段: 标准 7-15 天(根据项目规模)
售后归档阶段: 标准 1-3 天
效率得分 = (计划天数 / 实际天数) * 100
问题响应时长 = Issue.updatedAt - Issue.createdAt(首次响应)
问题解决时长 = Issue.resolvedAt - Issue.createdAt
平均响应时长 = sum(响应时长) / 问题总数
平均解决时长 = sum(解决时长) / 问题总数
firstPassYield = (未修改直接通过的交付物数量 / 总交付物数量) * 100
判断标准:
- 未修改: revisionCount = 0
- 通过: deliveryApprovalStatus = 'approved'
revisionRate = (需要修改的交付物数量 / 总交付物数量) * 100
修改次数分布:
- 0次修改: 优秀
- 1-2次修改: 良好
- 3-4次修改: 一般
- 5+次修改: 需改进
issueCount = ProjectIssue 表中该项目的问题总数
严重问题数 = priority = 'critical' or 'urgent'
高优先级问题数 = priority = 'high'
中低优先级问题数 = priority = 'medium' or 'low'
质量得分 = 100 - (严重问题数 * 10 + 高优先级问题数 * 5 + 中低优先级问题数 * 2)
collectionRate = (paidAmount / totalAmount) * 100
分级:
- 100%: 已全额回款
- 80-99%: 部分回款
- < 80%: 回款不足
profitMargin = ((revenue - cost) / revenue) * 100
成本构成:
- 人力成本: 团队人数 * 人均日薪 * 实际天数
- 修改成本: 修改次数 * 单次修改成本
- 管理成本: 沟通轮次 * 单次沟通成本
每个 Product 的:
- 报价金额
- 实际回款金额
- 回款进度 = (实际回款 / 报价金额) * 100
overallSatisfaction = customerFeedback.overallRating (1-5分)
转换为百分制:
score = (overallRating / 5) * 100
NPS = (推荐者比例 - 批评者比例) * 100
分类:
- 推荐者: overallRating >= 4
- 中立者: overallRating = 3
- 批评者: overallRating <= 2
NPS = ((推荐者数 - 批评者数) / 总反馈数) * 100
维度评分(1-5分):
- designQuality: 设计质量
- serviceAttitude: 服务态度
- deliveryTimeliness: 交付及时性
- valueForMoney: 性价比
- communication: 沟通效率
每个维度转换为百分制,与行业基准对比
// 通过 ProjectTeam 和项目时长计算
memberWorkload = 项目实际天数 * 成员参与比例
参与比例 = (成员参与天数 / 项目总天数) * 100
// 基于多维度计算
contribution = {
fileUploads: 文件上传数量,
issuesResolved: 解决的问题数量,
communicationActivity: 沟通活跃度,
qualityScore: 质量得分
}
总贡献度 = weighted_sum(contribution)
// 基于团队规模和沟通成本
teamSize = ProjectTeam 成员数量
communicationOverhead = (沟通轮次 / 团队规模) * 项目天数
协作效率 = 100 - min(communicationOverhead * 10, 50)
timelinessScore = {
// 基于问题响应时长
avgResponseTime: 平均响应时长,
// 基于交付时效
deliveryOnTime: (按时交付次数 / 总交付次数) * 100,
// 基于阶段完成时效
stageCompletion: (按时完成阶段数 / 总阶段数) * 100
}
总及时性 = weighted_average(timelinessScore)
qualityScore = {
// 首次通过率
firstPassYield: (无修改通过 / 总交付物) * 100,
// 问题率
issueRate: 100 - (引起的问题数 * 5),
// 客户评价
customerRating: (相关客户评分 / 5) * 100
}
总质量 = weighted_average(qualityScore)
innovationScore = {
// 提出的改进建议数量
suggestions: count(type = 'feature' or 'suggestion'),
// 客户表扬次数
praises: count(feedback.type = 'praise'),
// 创新解决方案数量
innovations: manual_input
}
创新得分 = min(sum(innovationScore) * 10, 100)
collaborationScore = {
// 协助其他成员的次数
helpOthers: count(assigned_to_others_issues),
// 沟通响应速度
communicationSpeed: 100 - (avgResponseTime / 60) * 10,
// 团队评价
teamFeedback: manual_input
}
协作得分 = weighted_average(collaborationScore)
interface EfficiencyAnalysis {
overallScore: number; // 总体效率得分 (0-100)
grade: 'A' | 'B' | 'C' | 'D' | 'F'; // 效率等级
timeEfficiency: {
score: number; // 时间效率得分
plannedDuration: number; // 计划工期(天)
actualDuration: number; // 实际工期(天)
variance: number; // 偏差率(%)
};
qualityEfficiency: {
score: number; // 质量效率得分
firstPassYield: number; // 首次通过率(%)
revisionRate: number; // 修改率(%)
issueCount: number; // 问题数量
};
resourceUtilization: {
score: number; // 资源利用率得分
teamSize: number; // 团队规模
workload: number; // 工作量(人天)
idleRate: number; // 闲置率(%)
};
stageMetrics: Array<{
stage: string; // 阶段名称
plannedDays: number; // 计划天数
actualDays: number; // 实际天数
efficiency: number; // 阶段效率(%)
status: 'on-time' | 'delayed' | 'ahead'; // 状态
delayReason?: string; // 延期原因
}>;
bottlenecks: Array<{
stage: string; // 瓶颈阶段
issue: string; // 具体问题
severity: 'high' | 'medium' | 'low'; // 严重程度
suggestion: string; // 改进建议
}>;
}
数据来源:
Project.createdAt, Project.deadline → 计划工期Project.data.order.startTime, data.order.endTime → 订单分配耗时Project.data.requirements.startTime, data.requirements.endTime → 需求确认耗时Project.data.delivery.startTime, data.delivery.endTime → 交付执行耗时Project.data.aftercare.startTime, data.aftercare.endTime → 售后归档耗时ProjectFile 表 → 修改率、首次通过率ProjectIssue 表 → 问题数量、严重程度ProjectTeam 表 → 团队规模、资源利用计算逻辑:
(计划工期 / 实际工期) * 100100 - (修改率 * 0.5 + 问题数量 * 2)(实际工作量 / 计划工作量) * 100weighted_average(时间效率, 质量效率, 资源利用)interface TeamPerformance {
overallScore: number; // 团队总体得分
members: Array<{
memberId: string;
memberName: string;
role: string; // 角色(组长/组员)
scores: {
workload: number; // 工作量得分 (0-100)
quality: number; // 质量得分 (0-100)
efficiency: number; // 效率得分 (0-100)
collaboration: number; // 协作得分 (0-100)
innovation: number; // 创新得分 (0-100)
overall: number; // 总体得分
};
timeDistribution: {
design: number; // 设计时间占比(%)
communication: number; // 沟通时间占比(%)
revision: number; // 修改时间占比(%)
admin: number; // 管理时间占比(%)
};
contributions: string[]; // 主要贡献
strengths: string[]; // 优势
improvements: string[]; // 改进建议
ranking: number; // 团队排名
}>;
}
数据来源:
ProjectTeam 表 → 成员列表、角色、参与时长ProjectFile.uploadedBy → 成员贡献(文件上传)ProjectIssue.assignee → 成员负责的问题ProjectIssue.resolvedAt → 问题解决效率ActivityLog.actor → 成员活跃度CustomerFeedback → 客户对成员的评价(如果有)计算逻辑:
interface FinancialAnalysis {
budgetVariance: number; // 预算偏差(%)
profitMargin: number; // 利润率(%)
costBreakdown: {
labor: number; // 人力成本
materials: number; // 材料成本
overhead: number; // 管理成本
revisions: number; // 修改成本
};
revenueAnalysis: {
contracted: number; // 合同金额
received: number; // 已收金额
pending: number; // 待收金额
};
}
数据来源:
Project.data.quotation.total → 合同金额Project.data.aftercare.finalPayment.paidAmount → 已收金额Project.data.aftercare.finalPayment.paymentVouchers → 回款明细ProjectTeam + 项目天数 → 人力成本Project.data.delivery.revisionCount → 修改成本计算逻辑:
团队人数 * 人均日薪 * 实际天数修改次数 * 单次修改成本系数((收入 - 成本) / 收入) * 100(已收 / 合同) * 100interface SatisfactionAnalysis {
overallScore: number; // 总体满意度得分 (0-100)
nps: number; // 净推荐值 (-100 to 100)
dimensions: Array<{
name: string; // 维度名称
label: string; // 维度标签
score: number; // 得分 (0-100)
benchmark: number; // 行业基准
variance: number; // 与基准的差异(%)
}>;
improvementAreas: Array<{
area: string; // 改进领域
currentScore: number; // 当前得分
targetScore: number; // 目标得分
priority: 'high' | 'medium' | 'low'; // 优先级
actionPlan: string; // 行动计划
}>;
}
数据来源:
Project.data.aftercare.customerFeedback.overallRating → 总体评分Project.data.aftercare.customerFeedback.dimensionRatings → 维度评分Project.data.aftercare.customerFeedback.wouldRecommend → NPS 计算Project.data.aftercare.customerFeedback.comments → 文本分析Project.data.aftercare.customerFeedback.improvements → 改进建议计算逻辑:
(overallRating / 5) * 100((推荐者数 - 批评者数) / 总数) * 100(dimensionRating / 5) * 100((当前得分 - 基准) / 基准) * 100interface RisksAndOpportunities {
risks: Array<{
type: 'timeline' | 'budget' | 'quality' | 'resource' | 'scope';
description: string;
likelihood: number; // 可能性 (1-5)
impact: number; // 影响 (1-5)
severity: 'high' | 'medium' | 'low';
mitigation: string; // 缓解措施
}>;
opportunities: Array<{
area: string;
description: string;
potential: number; // 潜力 (1-5)
effort: number; // 所需努力 (1-5)
priority: 'high' | 'medium' | 'low';
actionPlan: string;
}>;
}
数据来源:
ProjectIssue 表(type = 'risk') → 风险识别Project.data.delivery.revisionCount → 质量风险Project 延期情况 → 时间风险Project.data.aftercare.finalPayment 回款情况 → 财务风险CustomerFeedback.improvements → 改进机会计算逻辑:
likelihood * impactpotential / effortinterface ProductRetrospective {
productId: string;
productName: string;
performance: number; // 性能得分 (0-100)
plannedDays: number; // 计划天数
actualDays: number; // 实际天数
issues: string[]; // 遇到的问题
recommendations: string[]; // 改进建议
}
数据来源:
Project.data.quotation.products → 产品列表Project.data.aftercare.customerFeedback.productFeedbacks → 产品评价ProjectFile 表(按产品分类) → 产品交付物ProjectIssue 表(按产品分类) → 产品问题计算逻辑:
interface Benchmarking {
comparisonToHistory: {
averageEfficiency: number; // 历史平均效率
currentEfficiency: number; // 当前效率
ranking: number; // 排名
percentile: number; // 百分位
};
industryBenchmark: {
timelineVariance: number; // 行业平均延期率
satisfactionScore: number; // 行业平均满意度
profitMargin: number; // 行业平均利润率
};
}
数据来源:
计算逻辑:
(排名 / 总项目数) * 100interface IndividualPerformance {
employeeId: string;
employeeName: string;
role: string;
period: {
startDate: Date;
endDate: Date;
projectsCompleted: number;
};
// 核心指标
coreMetrics: {
workloadScore: number; // 工作量得分 (0-100)
qualityScore: number; // 质量得分 (0-100)
efficiencyScore: number; // 效率得分 (0-100)
collaborationScore: number; // 协作得分 (0-100)
innovationScore: number; // 创新得分 (0-100)
overallScore: number; // 综合得分
};
// 详细分析
detailedAnalysis: {
timeliness: TimelinessAnalysis;
quality: QualityAnalysis;
productivity: ProductivityAnalysis;
collaboration: CollaborationAnalysis;
growth: GrowthAnalysis;
};
// 排名与对比
ranking: {
teamRanking: number; // 团队内排名
companyRanking: number; // 公司内排名
percentile: number; // 百分位
comparison: {
vsTeamAverage: number; // vs 团队平均(%)
vsCompanyAverage: number; // vs 公司平均(%)
vsLastPeriod: number; // vs 上期(%)
};
};
// 成长轨迹
growthTrack: Array<{
period: string;
score: number;
projects: number;
highlights: string[];
}>;
// 优势与改进
strengthsAndWeaknesses: {
topStrengths: string[];
improvementAreas: string[];
actionPlans: string[];
};
}
interface TimelinessAnalysis {
score: number; // 及时性总分 (0-100)
responseMetrics: {
avgResponseTime: number; // 平均响应时长(分钟)
responseTimeDistribution: {
within30min: number; // 30分钟内响应率(%)
within1hour: number; // 1小时内响应率(%)
within4hours: number; // 4小时内响应率(%)
over4hours: number; // 超过4小时响应率(%)
};
urgentIssueResponseTime: number; // 紧急问题响应时长
};
deliveryMetrics: {
onTimeDeliveryRate: number; // 按时交付率(%)
avgDelayDays: number; // 平均延期天数
earlyDeliveryCount: number; // 提前交付次数
lateDeliveryCount: number; // 延期交付次数
};
stageCompletion: {
onTimeCompletionRate: number; // 按时完成阶段比例(%)
avgStageOverrun: number; // 平均阶段超期(%)
};
}
数据来源:
ProjectIssue 表(assignee = 该成员) → 问题响应时长
min(updatedAt) - createdAtresolvedAt - createdAtProjectFile 表(uploadedBy = 该成员) → 文件交付时效
ActivityLog 表(actor = 该成员) → 活动时间线Project.data.delivery.endTime vs Project.deadline → 阶段完成时效计算逻辑:
// 响应时长得分
responseScore = 100 - (avgResponseTime / 60) * 10 // 每小时扣10分
// 按时交付得分
deliveryScore = onTimeDeliveryRate
// 及时性总分
timelinessScore = responseScore * 0.4 + deliveryScore * 0.6
interface QualityAnalysis {
score: number; // 质量总分 (0-100)
outputQuality: {
firstPassYield: number; // 首次通过率(%)
revisionRate: number; // 修改率(%)
avgRevisionsPerDeliverable: number; // 平均修改次数
qualityTrend: 'improving' | 'stable' | 'declining'; // 质量趋势
};
issueMetrics: {
issuesCreated: number; // 引起的问题数量
criticalIssues: number; // 严重问题数量
issueRate: number; // 问题率(问题数/交付物数)
issueResolutionRate: number; // 问题解决率(%)
};
customerRating: {
avgRating: number; // 平均客户评分 (1-5)
ratingDistribution: {
excellent: number; // 5分比例(%)
good: number; // 4分比例(%)
average: number; // 3分比例(%)
poor: number; // 2分及以下比例(%)
};
praiseCount: number; // 客户表扬次数
complaintCount: number; // 客户投诉次数
};
dimensionalQuality: {
designQuality: number; // 设计质量得分
technicalQuality: number; // 技术质量得分
communicationQuality: number; // 沟通质量得分
serviceQuality: number; // 服务质量得分
};
}
数据来源:
ProjectFile 表(uploadedBy = 该成员) → 交付物质量
version 字段 → 修改次数status = '已审' and version = 1 → 首次通过ProjectIssue 表(creator = 该成员或 assignee = 该成员) → 问题统计
type = 'bug' and creator = 该成员 → 质量问题status = '已解决' and assignee = 该成员 → 解决的问题ProjectFeedback 表 → 客户反馈
type = 'praise' and 相关成员 → 表扬type = 'complaint' and 相关成员 → 投诉Project.data.aftercare.customerFeedback → 客户评分计算逻辑:
// 首次通过率得分
firstPassScore = firstPassYield
// 问题率得分
issueScore = 100 - (issueRate * 100) // 问题率越低越好
// 客户评分得分
customerScore = (avgRating / 5) * 100
// 质量总分
qualityScore = firstPassScore * 0.4 + issueScore * 0.3 + customerScore * 0.3
interface ProductivityAnalysis {
score: number; // 生产力总分 (0-100)
outputMetrics: {
totalProjects: number; // 总项目数
completedProjects: number; // 完成项目数
avgProjectDuration: number; // 平均项目周期(天)
filesProduced: number; // 产出文件数
avgFilesPerProject: number; // 平均每项目文件数
};
efficiencyMetrics: {
avgCompletionTime: number; // 平均完成时长(vs 标准)
efficiencyRatio: number; // 效率比(实际产出/预期产出)
peakPerformanceDays: number; // 高效工作日数
lowPerformanceDays: number; // 低效工作日数
};
workloadDistribution: {
avgDailyWorkload: number; // 平均每日工作量
peakWorkload: number; // 峰值工作量
workloadBalance: number; // 工作量平衡度(0-100)
overtimeRate: number; // 加班率(%)
};
utilizationRate: {
activeProjectDays: number; // 活跃项目天数
idleDays: number; // 闲置天数
utilizationPercentage: number; // 利用率(%)
};
}
数据来源:
Project 表(assignee = 该成员或在 ProjectTeam 中) → 项目列表
status = 'completed' → 完成的项目createdAt to data.aftercare.archiveTime → 项目周期ProjectFile 表(uploadedBy = 该成员) → 产出文件数
uploadedAt 日期分组 → 每日产出ProjectTeam 表(profile = 该成员) → 参与的项目
joinedAt to 项目结束 → 参与时长ActivityLog 表(actor = 该成员) → 活动记录
计算逻辑:
// 产出效率
outputEfficiency = (实际产出文件数 / 预期产出文件数) * 100
// 时间效率
timeEfficiency = (标准项目周期 / 实际项目周期) * 100
// 利用率
utilizationRate = (activeProjectDays / totalDays) * 100
// 生产力总分
productivityScore = (outputEfficiency + timeEfficiency + utilizationRate) / 3
interface CollaborationAnalysis {
score: number; // 协作总分 (0-100)
teamworkMetrics: {
projectsWithTeam: number; // 团队项目数
avgTeamSize: number; // 平均团队规模
crossTeamCollaborations: number; // 跨团队协作次数
leadershipRole: number; // 担任领导角色的项目数
};
communicationMetrics: {
communicationFrequency: number; // 沟通频率(次/天)
avgResponseTime: number; // 平均响应时长(分钟)
proactiveReach: number; // 主动沟通次数
communicationRating: number; // 沟通质量评分 (1-5)
};
supportMetrics: {
helpedColleagues: number; // 协助同事次数
sharedKnowledge: number; // 知识分享次数
mentorshipActivities: number; // 指导活动次数
issuesResolvedForOthers: number; // 为他人解决的问题数
};
conflictResolution: {
conflictsInvolved: number; // 涉及的冲突数
conflictsResolved: number; // 解决的冲突数
resolutionRate: number; // 解决率(%)
};
}
数据来源:
ProjectTeam 表 → 团队协作信息
ProjectIssue 表 → 协助他人
assignee = 该成员 and creator ≠ 该成员 → 协助解决的问题creator = 该成员 and type = 'task' → 主动创建的协作任务ActivityLog 表 → 沟通记录
action = 'commented' → 沟通次数action = 'shared' → 知识分享CustomerFeedback.dimensionRatings.communication → 沟通质量计算逻辑:
// 团队协作得分
teamworkScore = (projectsWithTeam / totalProjects) * 100
// 沟通得分
communicationScore = (communicationRating / 5) * 100 - (avgResponseTime / 60) * 5
// 支持得分
supportScore = min((helpedColleagues + sharedKnowledge) * 10, 100)
// 协作总分
collaborationScore = (teamworkScore + communicationScore + supportScore) / 3
interface GrowthAnalysis {
score: number; // 成长总分 (0-100)
skillDevelopment: {
newSkillsAcquired: string[]; // 新技能
skillProficiency: {
technical: number; // 技术能力 (0-100)
design: number; // 设计能力 (0-100)
communication: number; // 沟通能力 (0-100)
management: number; // 管理能力 (0-100)
};
certifications: string[]; // 获得的认证
};
performanceTrend: {
period: string;
overallScore: number;
improvement: number; // vs 上期(%)
trend: 'improving' | 'stable' | 'declining';
}[];
learningAndInnovation: {
trainingsCompleted: number; // 完成的培训
experimentsAttempted: number; // 尝试的新方法
innovationsImplemented: number; // 实施的创新
knowledgeContributions: number; // 知识贡献
};
responsibilityGrowth: {
projectComplexityTrend: 'increasing' | 'stable' | 'decreasing';
leadershipOpportunities: number;
mentoringExperience: boolean;
strategicInvolvement: number; // 战略项目参与度
};
}
数据来源:
Profile 表(如果有)→ 技能、认证
skills → 技能列表certifications → 认证列表Project 复杂度 → 责任成长
assigneeRole = '组长' → 领导机会ProjectIssue 表(type = 'feature') → 创新尝试
creator = 该成员 → 提出的创新建议计算逻辑:
// 技能发展得分
skillScore = average(skillProficiency)
// 绩效改进得分
improvementScore = (当期得分 - 上期得分) / 上期得分 * 100
// 创新得分
innovationScore = min((experimentsAttempted + innovationsImplemented) * 10, 100)
// 成长总分
growthScore = (skillScore + improvementScore + innovationScore) / 3
项目创建
↓
订单分配阶段(记录时间、人员、报价)
↓
需求确认阶段(记录沟通、文件)
↓
交付执行阶段(记录交付物、修改、问题)
↓
售后归档阶段(记录回款、评价、复盘)
↓
数据汇总 → 生成复盘报告
Project (主表)
├── ProjectTeam (团队成员)
│ └── Profile (人员信息)
├── ProjectFile (文件记录)
│ └── Profile (上传者)
├── ProjectIssue (问题记录)
│ ├── Profile (创建者)
│ └── Profile (责任人)
├── ProjectFeedback (客户反馈)
├── ProjectPayment (支付记录)
└── ActivityLog (活动日志)
└── Profile (操作人)
// 数据采集层
class DataCollector {
collectProjectData(projectId: string): ProjectRawData;
collectTeamData(projectId: string): TeamRawData;
collectIssueData(projectId: string): IssueRawData;
collectFileData(projectId: string): FileRawData;
collectFeedbackData(projectId: string): FeedbackRawData;
collectActivityData(projectId: string): ActivityRawData;
}
// 数据计算层
class MetricsCalculator {
calculateTimeEfficiency(data: ProjectRawData): TimeEfficiency;
calculateQualityMetrics(data: FileRawData, issueData: IssueRawData): QualityMetrics;
calculateFinancialMetrics(data: ProjectRawData): FinancialMetrics;
calculateSatisfactionMetrics(data: FeedbackRawData): SatisfactionMetrics;
calculateTeamPerformance(data: TeamRawData): TeamPerformance;
calculateIndividualPerformance(employeeId: string, data: AllData): IndividualPerformance;
}
// 分析生成层
class RetrospectiveGenerator {
generateProjectRetrospective(projectId: string): ProjectRetrospective;
generateIndividualRetrospective(employeeId: string, period: DateRange): IndividualPerformance;
generateTeamRetrospective(teamId: string, period: DateRange): TeamRetrospective;
generateCompanyRetrospective(period: DateRange): CompanyRetrospective;
}
// AI 增强层(豆包1.6 API)
class AIEnhancedAnalyzer {
generateInsights(retrospective: ProjectRetrospective): AIInsights;
generateRecommendations(performance: IndividualPerformance): AIRecommendations;
predictFuturePerformance(historicalData: PerformanceData[]): Prediction;
identifyPatterns(data: AllData): Pattern[];
}
✅ 项目基本信息(名称、客户、时间、金额) ✅ 阶段详细数据(每个阶段的开始/结束时间、产出) ✅ 团队成员及其角色 ✅ 文件交付记录(数量、版本、修改) ✅ 问题与风险记录 ✅ 客户反馈与评价 ✅ 支付与回款记录 ✅ 活动时间线
✅ 个人参与的项目列表 ✅ 文件产出记录 ✅ 问题处理记录 ✅ 沟通活动记录 ✅ 客户评价 ✅ 工作时长与分布
✅ 时间效率(延期率、阶段耗时) ✅ 质量效率(首次通过率、修改率、问题数) ✅ 资源利用率(团队规模、工作量) ✅ 财务表现(利润率、回款率) ✅ 客户满意度(总分、NPS、维度评分) ✅ 团队协作效率 ✅ 风险识别与机会发现 ✅ 与历史项目的对比排名
✅ 及时性(响应时长、按时交付率) ✅ 质量(首次通过率、问题率、客户评分) ✅ 生产力(项目完成数、文件产出、工作效率) ✅ 协作能力(沟通质量、协助他人、团队贡献) ✅ 创新能力(新方法尝试、改进建议) ✅ 成长轨迹(绩效变化趋势、技能发展) ✅ 排名与对比(团队内、公司内、历史对比)
📊 项目执行的效率和质量水平 📊 团队配置的合理性 📊 客户满意度和口碑 📊 财务健康度和盈利能力 📊 风险点和改进机会 📊 与行业标准的差距
👤 员工的综合能力(质量、效率、协作) 👤 员工的工作风格(响应速度、沟通方式) 👤 员工的成长潜力(学习能力、创新意识) 👤 员工的优势与短板 👤 员工的适合岗位和发展方向 👤 员工的绩效排名和激励方向
文档版本: v1.0 创建日期: 2025-11-10 作者: AI Assistant 状态: 待评审