# 项目复盘数据分析与设计文档 > **目标**:梳理项目复盘能采集的数据、计算的指标,以及从项目和个人两个维度进行深度分析 --- ## 📋 目录 1. [数据采集层](#1-数据采集层) 2. [数据计算层](#2-数据计算层) 3. [项目维度复盘](#3-项目维度复盘) 4. [个人维度复盘](#4-个人维度复盘) 5. [数据流转与架构](#5-数据流转与架构) 6. [实现优先级](#6-实现优先级) --- ## 1. 数据采集层 ### 1.1 项目基础数据(来源:Project 表) #### 1.1.1 时间数据 | 字段 | 说明 | 数据来源 | 用途 | |------|------|----------|------| | `createdAt` | 项目创建时间 | Parse 自动生成 | 计算项目总周期 | | `deadline` | 项目截止时间 | 订单分配阶段设定 | 计算延期情况 | | `updatedAt` | 项目最后更新时间 | Parse 自动生成 | 追踪项目活跃度 | | `currentStage` | 当前所处阶段 | 项目流转自动更新 | 统计阶段耗时 | #### 1.1.2 人员数据 | 字段 | 说明 | 数据来源 | 用途 | |------|------|----------|------| | `creator` | 项目创建人 | 客服创建项目时设定 | 统计客服工作量 | | `assignee` | 项目负责人 | 订单分配阶段指定 | 主设计师绩效 | | `assigneeRole` | 负责人角色 | ProjectTeam 表 | 区分组长/组员 | | `teams` (ProjectTeam) | 项目团队成员 | 订单分配阶段指定 | 团队协作分析 | #### 1.1.3 财务数据 | 字段 | 说明 | 数据来源 | 用途 | |------|------|----------|------| | `data.quotation.total` | 项目报价总额 | 订单分配阶段设定 | 项目规模、利润率 | | `data.quotation.products` | 产品明细报价 | 订单分配阶段设定 | 产品级财务分析 | | `data.aftercare.finalPayment.paidAmount` | 已支付金额 | 售后归档阶段统计 | 回款分析 | | `data.aftercare.finalPayment.paymentVouchers` | 支付凭证列表 | 客户上传 | 回款明细 | #### 1.1.4 客户信息 | 字段 | 说明 | 数据来源 | 用途 | |------|------|----------|------| | `contact.name` | 客户姓名 | 项目创建时填写 | 客户画像 | | `contact.phone` | 客户电话 | 项目创建时填写 | 客户联系 | | `contact.company` | 客户公司 | 项目创建时填写 | 企业客户分析 | | `title` | 项目名称 | 项目创建时填写 | 项目标识 | --- ### 1.2 阶段详细数据(来源:Project.data) #### 1.2.1 订单分配阶段 (`data.order`) | 字段 | 说明 | 计算价值 | |------|------|----------| | `startTime` | 阶段开始时间 | 阶段耗时 | | `endTime` | 阶段结束时间 | 阶段耗时 | | `quotation.products[].name` | 产品名称 | 产品复杂度分析 | | `quotation.products[].quantity` | 产品数量 | 工作量估算 | | `quotation.products[].unitPrice` | 单价 | 定价策略分析 | | `quotation.discountRate` | 折扣率 | 商务策略分析 | #### 1.2.2 需求确认阶段 (`data.requirements`) | 字段 | 说明 | 计算价值 | |------|------|----------| | `startTime` | 阶段开始时间 | 阶段耗时 | | `endTime` | 阶段结束时间 | 阶段耗时 | | `filesCount` | 需求文件数量 | 需求复杂度 | | `communicationRounds` | 沟通轮次 | 沟通效率 | #### 1.2.3 交付执行阶段 (`data.delivery`) | 字段 | 说明 | 计算价值 | |------|------|----------| | `startTime` | 阶段开始时间 | 阶段耗时 | | `endTime` | 阶段结束时间 | 阶段耗时 | | `submittedFiles[]` | 提交的文件列表 | 交付物数量 | | `deliveryApprovalStatus` | 审批状态 | 质量控制 | | `approvalTime` | 审批通过时间 | 审批效率 | | `revisionCount` | 修改次数 | 质量指标 | #### 1.2.4 售后归档阶段 (`data.aftercare`) | 字段 | 说明 | 计算价值 | |------|------|----------| | `startTime` | 阶段开始时间 | 阶段耗时 | | `endTime` | 阶段结束时间 | 阶段耗时 | | `finalPayment.totalAmount` | 尾款总额 | 财务分析 | | `finalPayment.paidAmount` | 已支付金额 | 回款率 | | `finalPayment.paymentVouchers[]` | 支付凭证 | 回款明细 | | `customerFeedback.overallRating` | 总体评分 | 客户满意度 | | `customerFeedback.dimensionRatings` | 维度评分 | 多维度满意度 | | `customerFeedback.wouldRecommend` | 是否推荐 | NPS 计算 | --- ### 1.3 团队协作数据(来源:ProjectTeam 表) | 字段 | 说明 | 计算价值 | |------|------|----------| | `profile` (Pointer) | 团队成员 | 成员列表 | | `role` | 成员角色 | 角色分布 | | `joinedAt` | 加入时间 | 成员参与时长 | | `contribution` | 贡献度 | 成员绩效 | | `status` | 成员状态 | 成员活跃度 | --- ### 1.4 问题与沟通数据(来源:ProjectIssue 表) | 字段 | 说明 | 计算价值 | |------|------|----------| | `title` | 问题标题 | 问题分类 | | `type` | 问题类型 (`bug`, `task`, `feedback`, `risk`, `feature`) | 问题统计 | | `priority` | 优先级 (`critical`, `urgent`, `high`, `medium`, `low`) | 问题严重度 | | `status` | 状态 (`待处理`, `处理中`, `已解决`, `已关闭`) | 问题解决率 | | `assignee` | 责任人 | 成员响应能力 | | `creator` | 创建人 | 问题提出者 | | `createdAt` | 创建时间 | 问题发现时间 | | `updatedAt` | 更新时间 | 问题处理时长 | | `resolvedAt` | 解决时间 | 问题解决效率 | | `description` | 问题描述 | 问题详情 | | `relatedStage` | 相关阶段 | 阶段质量 | --- ### 1.5 文件交付数据(来源:ProjectFile 表) | 字段 | 说明 | 计算价值 | |------|------|----------| | `name` | 文件名称 | 文件类型统计 | | `size` | 文件大小 | 工作量估算 | | `type` | 文件类型 | 交付物分析 | | `uploadedBy` | 上传者 | 成员贡献 | | `uploadedAt` | 上传时间 | 交付时效 | | `stage` | 所属阶段 | 阶段产出 | | `version` | 版本号 | 迭代次数 | | `status` | 状态 (`草稿`, `待审`, `已审`, `已驳回`) | 质量控制 | --- ### 1.6 时间轴数据(来源:ActivityLog 表) | 字段 | 说明 | 计算价值 | |------|------|----------| | `project` (Pointer) | 关联项目 | 项目活动 | | `action` | 动作类型 (`created`, `updated`, `stage-changed`, `assigned`, `approved`, `rejected`, `archived`) | 关键节点 | | `actor` | 操作人 | 成员活跃度 | | `createdAt` | 操作时间 | 时间线 | | `metadata` | 详细信息 | 变更历史 | | `description` | 描述 | 活动记录 | --- ### 1.7 客户反馈数据(来源:ProjectFeedback 表) | 字段 | 说明 | 计算价值 | |------|------|----------| | `project` (Pointer) | 关联项目 | 反馈关联 | | `type` | 反馈类型 (`satisfaction`, `complaint`, `suggestion`, `praise`) | 反馈分类 | | `rating` | 评分 | 满意度 | | `content` | 反馈内容 | 文本分析 | | `submittedBy` | 提交人 | 反馈来源 | | `submittedAt` | 提交时间 | 反馈时效 | | `handled` | 是否处理 | 响应率 | | `handledAt` | 处理时间 | 处理时效 | --- ## 2. 数据计算层 ### 2.1 时间效率指标 #### 2.1.1 项目总周期 ```typescript 计算公式: 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% (严重延期) ``` #### 2.1.2 阶段耗时分析 ```typescript 每个阶段的实际耗时 vs 计划耗时 订单分配阶段: 标准 1-2 天 需求确认阶段: 标准 3-5 天 交付执行阶段: 标准 7-15 天(根据项目规模) 售后归档阶段: 标准 1-3 天 效率得分 = (计划天数 / 实际天数) * 100 ``` #### 2.1.3 响应时效 ```typescript 问题响应时长 = Issue.updatedAt - Issue.createdAt(首次响应) 问题解决时长 = Issue.resolvedAt - Issue.createdAt 平均响应时长 = sum(响应时长) / 问题总数 平均解决时长 = sum(解决时长) / 问题总数 ``` --- ### 2.2 质量指标 #### 2.2.1 首次通过率(First Pass Yield) ```typescript firstPassYield = (未修改直接通过的交付物数量 / 总交付物数量) * 100 判断标准: - 未修改: revisionCount = 0 - 通过: deliveryApprovalStatus = 'approved' ``` #### 2.2.2 修改率 ```typescript revisionRate = (需要修改的交付物数量 / 总交付物数量) * 100 修改次数分布: - 0次修改: 优秀 - 1-2次修改: 良好 - 3-4次修改: 一般 - 5+次修改: 需改进 ``` #### 2.2.3 问题数量与严重度 ```typescript issueCount = ProjectIssue 表中该项目的问题总数 严重问题数 = priority = 'critical' or 'urgent' 高优先级问题数 = priority = 'high' 中低优先级问题数 = priority = 'medium' or 'low' 质量得分 = 100 - (严重问题数 * 10 + 高优先级问题数 * 5 + 中低优先级问题数 * 2) ``` --- ### 2.3 财务指标 #### 2.3.1 回款率 ```typescript collectionRate = (paidAmount / totalAmount) * 100 分级: - 100%: 已全额回款 - 80-99%: 部分回款 - < 80%: 回款不足 ``` #### 2.3.2 利润率(如果有成本数据) ```typescript profitMargin = ((revenue - cost) / revenue) * 100 成本构成: - 人力成本: 团队人数 * 人均日薪 * 实际天数 - 修改成本: 修改次数 * 单次修改成本 - 管理成本: 沟通轮次 * 单次沟通成本 ``` #### 2.3.3 产品级财务分析 ```typescript 每个 Product 的: - 报价金额 - 实际回款金额 - 回款进度 = (实际回款 / 报价金额) * 100 ``` --- ### 2.4 客户满意度指标 #### 2.4.1 总体满意度 ```typescript overallSatisfaction = customerFeedback.overallRating (1-5分) 转换为百分制: score = (overallRating / 5) * 100 ``` #### 2.4.2 NPS(Net Promoter Score) ```typescript NPS = (推荐者比例 - 批评者比例) * 100 分类: - 推荐者: overallRating >= 4 - 中立者: overallRating = 3 - 批评者: overallRating <= 2 NPS = ((推荐者数 - 批评者数) / 总反馈数) * 100 ``` #### 2.4.3 维度满意度 ```typescript 维度评分(1-5分): - designQuality: 设计质量 - serviceAttitude: 服务态度 - deliveryTimeliness: 交付及时性 - valueForMoney: 性价比 - communication: 沟通效率 每个维度转换为百分制,与行业基准对比 ``` --- ### 2.5 团队协作指标 #### 2.5.1 成员工作量 ```typescript // 通过 ProjectTeam 和项目时长计算 memberWorkload = 项目实际天数 * 成员参与比例 参与比例 = (成员参与天数 / 项目总天数) * 100 ``` #### 2.5.2 成员贡献度 ```typescript // 基于多维度计算 contribution = { fileUploads: 文件上传数量, issuesResolved: 解决的问题数量, communicationActivity: 沟通活跃度, qualityScore: 质量得分 } 总贡献度 = weighted_sum(contribution) ``` #### 2.5.3 协作效率 ```typescript // 基于团队规模和沟通成本 teamSize = ProjectTeam 成员数量 communicationOverhead = (沟通轮次 / 团队规模) * 项目天数 协作效率 = 100 - min(communicationOverhead * 10, 50) ``` --- ### 2.6 个人绩效指标 #### 2.6.1 及时性得分 ```typescript timelinessScore = { // 基于问题响应时长 avgResponseTime: 平均响应时长, // 基于交付时效 deliveryOnTime: (按时交付次数 / 总交付次数) * 100, // 基于阶段完成时效 stageCompletion: (按时完成阶段数 / 总阶段数) * 100 } 总及时性 = weighted_average(timelinessScore) ``` #### 2.6.2 质量得分 ```typescript qualityScore = { // 首次通过率 firstPassYield: (无修改通过 / 总交付物) * 100, // 问题率 issueRate: 100 - (引起的问题数 * 5), // 客户评价 customerRating: (相关客户评分 / 5) * 100 } 总质量 = weighted_average(qualityScore) ``` #### 2.6.3 创新能力 ```typescript innovationScore = { // 提出的改进建议数量 suggestions: count(type = 'feature' or 'suggestion'), // 客户表扬次数 praises: count(feedback.type = 'praise'), // 创新解决方案数量 innovations: manual_input } 创新得分 = min(sum(innovationScore) * 10, 100) ``` #### 2.6.4 协作能力 ```typescript collaborationScore = { // 协助其他成员的次数 helpOthers: count(assigned_to_others_issues), // 沟通响应速度 communicationSpeed: 100 - (avgResponseTime / 60) * 10, // 团队评价 teamFeedback: manual_input } 协作得分 = weighted_average(collaborationScore) ``` --- ## 3. 项目维度复盘 ### 3.1 效率分析(Efficiency Analysis) ```typescript 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` 表 → 团队规模、资源利用 **计算逻辑**: 1. **时间效率**: `(计划工期 / 实际工期) * 100` 2. **质量效率**: `100 - (修改率 * 0.5 + 问题数量 * 2)` 3. **资源利用**: `(实际工作量 / 计划工作量) * 100` 4. **总体效率**: `weighted_average(时间效率, 质量效率, 资源利用)` --- ### 3.2 团队绩效(Team Performance) ```typescript 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` → 客户对成员的评价(如果有) **计算逻辑**: 1. **工作量得分**: 基于文件上传数、问题处理数、活动记录数 2. **质量得分**: 基于首次通过率、问题数量、客户评价 3. **效率得分**: 基于响应时长、解决时长、交付时效 4. **协作得分**: 基于协助他人次数、沟通响应速度 5. **创新得分**: 基于改进建议数、客户表扬、创新方案 --- ### 3.3 财务分析(Financial Analysis) ```typescript 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` → 修改成本 **计算逻辑**: 1. **人力成本**: `团队人数 * 人均日薪 * 实际天数` 2. **修改成本**: `修改次数 * 单次修改成本系数` 3. **利润率**: `((收入 - 成本) / 收入) * 100` 4. **回款率**: `(已收 / 合同) * 100` --- ### 3.4 客户满意度分析(Satisfaction Analysis) ```typescript interface 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` → 改进建议 **计算逻辑**: 1. **总体满意度**: `(overallRating / 5) * 100` 2. **NPS**: `((推荐者数 - 批评者数) / 总数) * 100` 3. **维度得分**: `(dimensionRating / 5) * 100` 4. **与基准比较**: `((当前得分 - 基准) / 基准) * 100` --- ### 3.5 风险与机会(Risks and Opportunities) ```typescript interface 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` → 改进机会 **计算逻辑**: 1. **风险严重度**: `likelihood * impact` 2. **机会优先级**: `potential / effort` --- ### 3.6 产品级复盘(Product Retrospectives) ```typescript interface 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` 表(按产品分类) → 产品问题 **计算逻辑**: 1. **产品性能**: 基于客户评分、问题数量、交付时效 2. **产品复杂度**: 基于文件数量、修改次数、耗时 --- ### 3.7 基准对比(Benchmarking) ```typescript interface Benchmarking { comparisonToHistory: { averageEfficiency: number; // 历史平均效率 currentEfficiency: number; // 当前效率 ranking: number; // 排名 percentile: number; // 百分位 }; industryBenchmark: { timelineVariance: number; // 行业平均延期率 satisfactionScore: number; // 行业平均满意度 profitMargin: number; // 行业平均利润率 }; } ``` **数据来源**: - 历史项目数据(所有已归档项目) - 行业基准数据(配置或外部数据) **计算逻辑**: 1. **历史对比**: 当前项目与过去项目的平均值对比 2. **排名**: 在所有历史项目中的排名 3. **百分位**: `(排名 / 总项目数) * 100` --- ## 4. 个人维度复盘 ### 4.1 个人绩效总览 ```typescript interface 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[]; }; } ``` --- ### 4.2 及时性分析(Timeliness Analysis) ```typescript 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) - createdAt` - 问题解决时间: `resolvedAt - createdAt` - `ProjectFile` 表(uploadedBy = 该成员) → 文件交付时效 - 对比计划交付时间与实际上传时间 - `ActivityLog` 表(actor = 该成员) → 活动时间线 - `Project.data.delivery.endTime` vs `Project.deadline` → 阶段完成时效 **计算逻辑**: ```typescript // 响应时长得分 responseScore = 100 - (avgResponseTime / 60) * 10 // 每小时扣10分 // 按时交付得分 deliveryScore = onTimeDeliveryRate // 及时性总分 timelinessScore = responseScore * 0.4 + deliveryScore * 0.6 ``` --- ### 4.3 质量分析(Quality Analysis) ```typescript 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` → 客户评分 **计算逻辑**: ```typescript // 首次通过率得分 firstPassScore = firstPassYield // 问题率得分 issueScore = 100 - (issueRate * 100) // 问题率越低越好 // 客户评分得分 customerScore = (avgRating / 5) * 100 // 质量总分 qualityScore = firstPassScore * 0.4 + issueScore * 0.3 + customerScore * 0.3 ``` --- ### 4.4 生产力分析(Productivity Analysis) ```typescript 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 = 该成员) → 活动记录 - 按日期统计活动频率 → 工作日分布 **计算逻辑**: ```typescript // 产出效率 outputEfficiency = (实际产出文件数 / 预期产出文件数) * 100 // 时间效率 timeEfficiency = (标准项目周期 / 实际项目周期) * 100 // 利用率 utilizationRate = (activeProjectDays / totalDays) * 100 // 生产力总分 productivityScore = (outputEfficiency + timeEfficiency + utilizationRate) / 3 ``` --- ### 4.5 协作分析(Collaboration Analysis) ```typescript 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` 表 → 团队协作信息 - 成员所在团队数量 - 团队规模 - 担任的角色(组长 vs 组员) - `ProjectIssue` 表 → 协助他人 - `assignee = 该成员` and `creator ≠ 该成员` → 协助解决的问题 - `creator = 该成员` and `type = 'task'` → 主动创建的协作任务 - `ActivityLog` 表 → 沟通记录 - `action = 'commented'` → 沟通次数 - `action = 'shared'` → 知识分享 - `CustomerFeedback.dimensionRatings.communication` → 沟通质量 **计算逻辑**: ```typescript // 团队协作得分 teamworkScore = (projectsWithTeam / totalProjects) * 100 // 沟通得分 communicationScore = (communicationRating / 5) * 100 - (avgResponseTime / 60) * 5 // 支持得分 supportScore = min((helpedColleagues + sharedKnowledge) * 10, 100) // 协作总分 collaborationScore = (teamworkScore + communicationScore + supportScore) / 3 ``` --- ### 4.6 成长分析(Growth Analysis) ```typescript 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 = 该成员` → 提出的创新建议 **计算逻辑**: ```typescript // 技能发展得分 skillScore = average(skillProficiency) // 绩效改进得分 improvementScore = (当期得分 - 上期得分) / 上期得分 * 100 // 创新得分 innovationScore = min((experimentsAttempted + innovationsImplemented) * 10, 100) // 成长总分 growthScore = (skillScore + improvementScore + innovationScore) / 3 ``` --- ## 5. 数据流转与架构 ### 5.1 数据采集流程 ``` 项目创建 ↓ 订单分配阶段(记录时间、人员、报价) ↓ 需求确认阶段(记录沟通、文件) ↓ 交付执行阶段(记录交付物、修改、问题) ↓ 售后归档阶段(记录回款、评价、复盘) ↓ 数据汇总 → 生成复盘报告 ``` ### 5.2 数据表关系图 ``` Project (主表) ├── ProjectTeam (团队成员) │ └── Profile (人员信息) ├── ProjectFile (文件记录) │ └── Profile (上传者) ├── ProjectIssue (问题记录) │ ├── Profile (创建者) │ └── Profile (责任人) ├── ProjectFeedback (客户反馈) ├── ProjectPayment (支付记录) └── ActivityLog (活动日志) └── Profile (操作人) ``` ### 5.3 数据计算架构 ```typescript // 数据采集层 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[]; } ``` --- ## 6. 实现优先级 ### 阶段一:基础数据采集(1-2周) - [ ] 确保所有关键数据点被正确记录 - [ ] 完善 Project.data 结构(订单、需求、交付、售后) - [ ] 添加必要的时间戳字段 - [ ] 确保 ProjectTeam、ProjectFile、ProjectIssue 表数据完整 ### 阶段二:核心指标计算(2-3周) - [ ] 实现时间效率计算 - [ ] 实现质量指标计算 - [ ] 实现财务指标计算 - [ ] 实现客户满意度计算 - [ ] 实现团队绩效计算 ### 阶段三:项目维度复盘(2周) - [ ] 效率分析报告 - [ ] 团队绩效报告 - [ ] 财务分析报告 - [ ] 客户满意度报告 - [ ] 风险与机会识别 ### 阶段四:个人维度复盘(2周) - [ ] 及时性分析 - [ ] 质量分析 - [ ] 生产力分析 - [ ] 协作分析 - [ ] 成长分析 ### 阶段五:可视化与报告(1-2周) - [ ] 复盘报告 UI 设计 - [ ] 图表可视化(ECharts) - [ ] PDF 导出功能 - [ ] 数据对比功能 - [ ] 历史趋势分析 ### 阶段六:AI 增强(2-3周) - [ ] 集成豆包1.6 API - [ ] AI 洞察生成 - [ ] 智能建议 - [ ] 预测分析 - [ ] 模式识别 --- ## 7. 总结 ### 7.1 我们能采集到什么数据? #### 项目数据 ✅ 项目基本信息(名称、客户、时间、金额) ✅ 阶段详细数据(每个阶段的开始/结束时间、产出) ✅ 团队成员及其角色 ✅ 文件交付记录(数量、版本、修改) ✅ 问题与风险记录 ✅ 客户反馈与评价 ✅ 支付与回款记录 ✅ 活动时间线 #### 人员数据 ✅ 个人参与的项目列表 ✅ 文件产出记录 ✅ 问题处理记录 ✅ 沟通活动记录 ✅ 客户评价 ✅ 工作时长与分布 ### 7.2 根据这些数据我们能算出什么? #### 项目维度 ✅ 时间效率(延期率、阶段耗时) ✅ 质量效率(首次通过率、修改率、问题数) ✅ 资源利用率(团队规模、工作量) ✅ 财务表现(利润率、回款率) ✅ 客户满意度(总分、NPS、维度评分) ✅ 团队协作效率 ✅ 风险识别与机会发现 ✅ 与历史项目的对比排名 #### 个人维度 ✅ 及时性(响应时长、按时交付率) ✅ 质量(首次通过率、问题率、客户评分) ✅ 生产力(项目完成数、文件产出、工作效率) ✅ 协作能力(沟通质量、协助他人、团队贡献) ✅ 创新能力(新方法尝试、改进建议) ✅ 成长轨迹(绩效变化趋势、技能发展) ✅ 排名与对比(团队内、公司内、历史对比) ### 7.3 这些数据能表现出什么? #### 项目层面 📊 项目执行的效率和质量水平 📊 团队配置的合理性 📊 客户满意度和口碑 📊 财务健康度和盈利能力 📊 风险点和改进机会 📊 与行业标准的差距 #### 个人层面 👤 员工的综合能力(质量、效率、协作) 👤 员工的工作风格(响应速度、沟通方式) 👤 员工的成长潜力(学习能力、创新意识) 👤 员工的优势与短板 👤 员工的适合岗位和发展方向 👤 员工的绩效排名和激励方向 --- **文档版本**: v1.0 **创建日期**: 2025-11-10 **作者**: AI Assistant **状态**: 待评审