import { Injectable } from '@angular/core';
import { Observable, of, BehaviorSubject } from 'rxjs';
import { 
  WorkHourRecord, 
  MonthlyWorkHourStats, 
  WorkHourDashboardData, 
  DifficultyCoefficient,
  PerformanceCriteria,
  PricingRule,
  PricingScript,
  AutoQuotationResult,
  PriceAdjustment,
  PerformanceLevel,
  SpaceType,
  ProjectStyle,
  DEFAULT_DIFFICULTY_COEFFICIENTS,
  DEFAULT_PERFORMANCE_CRITERIA,
  DEFAULT_PRICING_RULES
} from '../models/work-hour.model';

@Injectable({
  providedIn: 'root'
})
export class WorkHourService {
  private workHourRecords: WorkHourRecord[] = [];
  private monthlyStats: MonthlyWorkHourStats[] = [];
  private difficultyCoefficients = DEFAULT_DIFFICULTY_COEFFICIENTS;
  private performanceCriteria = DEFAULT_PERFORMANCE_CRITERIA;
  private pricingRules = DEFAULT_PRICING_RULES;
  private pricingScripts: PricingScript[] = [];
  
  // 数据变更通知
  private workHourDataSubject = new BehaviorSubject<WorkHourRecord[]>([]);
  public workHourData$ = this.workHourDataSubject.asObservable();

  constructor() {
    this.initializeMockData();
  }

  // 初始化模拟数据
  private initializeMockData(): void {
    // 模拟工时记录数据
    const mockRecords: WorkHourRecord[] = [
      {
        id: 'wh001',
        projectId: 'p001',
        projectName: '现代简约客厅设计',
        designerId: 'd001',
        designerName: '张设计师',
        phase: '建模',
        startTime: new Date('2024-01-15T09:00:00'),
        endTime: new Date('2024-01-17T18:00:00'),
        actualHours: 16,
        status: '完成',
        spaceType: '客餐厅',
        projectStyle: '现代简约',
        difficultyCoefficient: 1.0,
        effectiveHours: 16,
        notes: '按时完成建模工作'
      },
      {
        id: 'wh002',
        projectId: 'p002',
        projectName: '新中式别墅设计',
        designerId: 'd002',
        designerName: '李设计师',
        phase: '建模',
        startTime: new Date('2024-01-10T09:00:00'),
        endTime: new Date('2024-01-13T18:00:00'),
        actualHours: 24,
        status: '完成',
        pauseReason: '客户2天未反馈',
        pauseHours: 16,
        spaceType: '别墅',
        projectStyle: '新中式',
        difficultyCoefficient: 1.8, // 1.5 * 1.2
        effectiveHours: 43.2, // 24 * 1.8
        notes: '复杂项目，需要多次沟通'
      },
      {
        id: 'wh003',
        projectId: 'p003',
        projectName: '轻奢卧室设计',
        designerId: 'd001',
        designerName: '张设计师',
        phase: '渲染',
        startTime: new Date('2024-01-18T09:00:00'),
        endTime: new Date('2024-01-19T15:00:00'),
        actualHours: 12,
        status: '完成',
        spaceType: '卧室',
        projectStyle: '轻奢',
        difficultyCoefficient: 1.04, // 0.8 * 1.3
        effectiveHours: 12.48,
        notes: '渲染效果优秀'
      }
    ];

    this.workHourRecords = mockRecords;
    this.workHourDataSubject.next(mockRecords);

    // 初始化报价话术库（按高、中、低优先级分类）
    this.pricingScripts = [
      // ========== 高优先级话术 ==========
      {
        id: 'ps_h001',
        category: '高优先级-价值塑造',
        title: '🌟 高端定制价值说明（核心话术）',
        content: '尊敬的客户，我们的高端定制方案不仅仅是简单的效果图制作。它包含：\n\n✨ 专属设计师1对1深度沟通，精准把握您的需求细节\n🎨 4K超高清渲染，每个细节都清晰可见，让您提前"住进"梦想空间\n💎 专业灯光师参与，真实还原不同时段的光影效果\n🔄 3次方案调整机会，确保完美呈现您的理想空间\n📱 VR全景漫游体验，身临其境感受空间布局\n\n这不仅是效果图，更是您未来家的精确预演。',
        applicableScenarios: ['客户询问高端方案价值', '解释价格差异', '提升成交意向'],
        tags: ['高优先级', '价值塑造', '高端方案', '核心话术']
      },
      {
        id: 'ps_h002',
        category: '高优先级-价格构成',
        title: '💰 透明报价构成说明（必备话术）',
        content: '我们的报价完全透明，让您清楚每一分钱的价值：\n\n📐 建模费用（40%）：\n   - 精确测量与建模，误差<1cm\n   - 复杂造型特殊处理\n   - 软装家具高精度还原\n\n🎬 渲染费用（35%）：\n   - 专业灯光布置\n   - 真实材质模拟\n   - 后期色彩校正\n\n👨‍💼 设计服务（25%）：\n   - 需求沟通与方案策划\n   - 3次免费修改机会\n   - 7x12h在线咨询支持\n\n完成后您将获得：高清JPG图10张 + 全景图3张 + 源文件（可选）',
        applicableScenarios: ['客户质疑价格', '要求价格拆分说明', '建立信任'],
        tags: ['高优先级', '价格透明', '构成说明', '必备话术']
      },
      {
        id: 'ps_h003',
        category: '高优先级-时效保证',
        title: '⏰ 交付时间与质量承诺（重要话术）',
        content: '我们深知您对时间的重视，因此郑重承诺：\n\n📅 标准周期：\n   • 建模阶段：3-5个工作日\n   • 渲染阶段：2-3个工作日\n   • 修改调整：1-2个工作日\n   总计约7-10个工作日完成\n\n🚀 加急服务（可选）：\n   • 紧急需求可3-5天交付\n   • 加急费用按项目20%计算\n   • 品质标准不打折\n\n✅ 质量保证：\n   • 交付前多重审核\n   • 不满意可免费返工1次\n   • 设计师终身技术支持\n\n每个阶段完成后会及时向您汇报进度，让您心里有数。',
        applicableScenarios: ['客户关心交付时间', '询问质量保证', '设定预期'],
        tags: ['高优先级', '时效承诺', '质量保证', '重要话术']
      },
      {
        id: 'ps_h004',
        category: '高优先级-案例展示',
        title: '🏆 成功案例与客户见证（信任话术）',
        content: '我们已成功服务500+家庭，客户满意度98.5%：\n\n🌟 典型案例：\n   • 120㎡现代简约三居 - 王女士："效果图和实际装修99%还原！"\n   • 180㎡新中式别墅 - 李先生："设计师太专业，每个细节都考虑到了"\n   • 90㎡北欧风小户型 - 张小姐："没想到小空间也能这么美"\n\n🎖️ 服务认证：\n   • 中国建筑装饰协会认证设计师\n   • Adobe官方认证3D设计师\n   • 5年以上项目经验\n\n💬 客户真实评价：\n   "选择你们是我装修过程中最正确的决定，效果图帮我避免了很多装修遗憾！"\n\n我们可以先为您展示相似风格的案例，给您更直观的参考。',
        applicableScenarios: ['建立信任', '客户犹豫不决', '展示实力'],
        tags: ['高优先级', '案例展示', '客户见证', '信任话术']
      },
      
      // ========== 中优先级话术 ==========
      {
        id: 'ps_m001',
        category: '中优先级-修改政策',
        title: '🔄 修改服务详细说明',
        content: '我们理解设计需要反复打磨，因此提供灵活的修改服务：\n\n📝 包含修改：\n   • 标准方案：3次免费修改机会\n   • 高端方案：5次免费修改机会\n   • 每次修改响应时间≤24小时\n\n✏️ 修改范围：\n   小幅修改（免费）：色彩调整、材质更换、软装微调、视角变化\n   大幅修改（协商）：整体风格更改、空间格局重做、硬装大改\n\n💡 省钱建议：\n   1. 建模阶段确认好方案（节省80%修改成本）\n   2. 提供参考图片，沟通更高效\n   3. 一次性提出所有修改意见\n\n我们的目标是用最少修改次数，达到您最满意的效果！',
        applicableScenarios: ['客户询问修改政策', '方案确认阶段', '设定修改预期'],
        tags: ['中优先级', '修改服务', '政策说明']
      },
      {
        id: 'ps_m002',
        category: '中优先级-风格选择',
        title: '🎨 设计风格推荐与搭配',
        content: '根据您的户型和预算，我为您推荐以下风格：\n\n🏠 现代简约（性价比之王）：\n   • 造型简洁，施工成本低\n   • 适合80-120㎡户型\n   • 预算友好，效果出众\n\n🌸 北欧风格（年轻人最爱）：\n   • 明亮通透，空间显大\n   • 适合小户型及采光一般的房子\n   • 温馨实用，永不过时\n\n🏛️ 新中式（品味之选）：\n   • 传统与现代结合\n   • 适合大户型及别墅\n   • 彰显文化底蕴\n\n💎 轻奢风格（精致生活）：\n   • 低调奢华有内涵\n   • 适合预算充足的客户\n   • 细节处处见品质\n\n我可以根据您的喜好和预算，为您定制专属风格方案。',
        applicableScenarios: ['客户不确定风格', '风格咨询', '方案推荐'],
        tags: ['中优先级', '风格推荐', '专业建议']
      },
      {
        id: 'ps_m003',
        category: '中优先级-优惠活动',
        title: '🎁 当前优惠活动与套餐',
        content: '恭喜您！正好赶上我们的优惠活动：\n\n🔥 限时活动（本月专享）：\n   ✨ 新客户首单立减500元\n   ✨ 推荐好友再享300元优惠\n   ✨ 套餐组合更优惠（详见下方）\n\n📦 超值套餐：\n   【经济套餐】单空间设计 ￥1999起\n      - 3张高清效果图\n      - 1张全景图\n      - 基础修改3次\n   \n   【舒适套餐】全屋设计 ￥5999起\n      - 10张高清效果图\n      - 3张全景图\n      - VR漫游体验\n      - 修改5次\n   \n   【豪华套餐】精装全案 ￥9999起\n      - 20张高清效果图\n      - 5张全景图\n      - VR+施工图\n      - 不限次数微调\n\n💰 支付优惠：\n   • 全款支付再减8%\n   • 分期付款0手续费\n\n优惠名额有限，建议尽早确定哦！',
        applicableScenarios: ['价格谈判', '促进成交', '套餐推荐'],
        tags: ['中优先级', '优惠活动', '促销话术']
      },
      {
        id: 'ps_m004',
        category: '中优先级-增值服务',
        title: '🎯 增值服务与附加价值',
        content: '选择我们，您不仅获得效果图，还有这些增值服务：\n\n🎁 免费赠送：\n   • 软装搭配建议清单\n   • 主材品牌推荐及购买渠道\n   • 施工要点提示文档\n   • 色彩搭配参考手册\n\n📞 长期支持：\n   • 1年内装修咨询免费\n   • 设计师微信直连，随时答疑\n   • 施工过程遇到问题，免费指导\n   • 软装采购陪同服务（可选）\n\n🔧 技术支持：\n   • 提供源文件（可选，+500元）\n   • 施工图深化（可选，按面积计费）\n   • 效果图转VR全景（可选，+800元）\n\n🏅 售后保障：\n   • 7天无理由退款（未开工前）\n   • 质量问题免费返工\n   • 设计师终身技术支持\n\n我们的服务，远超您的预期！',
        applicableScenarios: ['增加附加价值', '提升竞争力', '解决客户顾虑'],
        tags: ['中优先级', '增值服务', '附加价值']
      },
      {
        id: 'ps_m005',
        category: '中优先级-户型分析',
        title: '🏘️ 户型优化建议',
        content: '根据您的户型图，我为您做了专业分析：\n\n📐 户型优势：\n   ✓ 南北通透，采光充足\n   ✓ 动静分区合理\n   ✓ 储物空间充裕\n\n⚠️ 可优化点：\n   • 入户缺少玄关，建议增加隔断\n   • 餐厅位置略显局促，可考虑开放式设计\n   • 主卧卫生间可优化为衣帽间+主卫\n\n💡 设计建议：\n   1. 客餐厅一体化设计，视觉更开阔\n   2. 阳台改造成休闲区，增加使用面积\n   3. 儿童房预留成长空间，可灵活调整\n   4. 厨房采用U型布局，动线更合理\n\n🎨 效果图价值：\n   通过3D效果图，您可以提前看到这些优化后的效果，避免装修遗憾，这比省几千块效果图费更有价值！\n\n要不要我先出一版免费的户型优化方案给您看看？',
        applicableScenarios: ['户型咨询', '设计建议', '专业展示'],
        tags: ['中优先级', '户型分析', '专业建议']
      },
      
      // ========== 低优先级话术 ==========
      {
        id: 'ps_l001',
        category: '低优先级-技术解答',
        title: '💻 渲染技术说明',
        content: '我们使用业界顶级的渲染技术：\n\n🖥️ 软件平台：\n   • 3ds Max + VRay 高级渲染器\n   • Corona渲染器（部分高端项目）\n   • Enscape实时渲染（快速预览）\n\n📸 渲染参数：\n   • 标准版：2K分辨率，采样数1500\n   • 高端版：4K分辨率，采样数3000+\n   • 奢华版：8K分辨率，极致细节\n\n🎬 后期处理：\n   • Photoshop色彩校正\n   • 光影氛围优化\n   • 细节锐化处理\n\n这些技术确保了效果图的真实性和美观性，让您的设计方案完美呈现。',
        applicableScenarios: ['客户关心技术', '专业用户咨询', '技术展示'],
        tags: ['低优先级', '技术说明', '专业知识']
      },
      {
        id: 'ps_l002',
        category: '低优先级-文件格式',
        title: '📁 交付文件说明',
        content: '项目完成后，您将收到以下文件：\n\n📷 效果图文件：\n   • JPG格式（高清，便于查看分享）\n   • PNG格式（透明背景，可选）\n   • TIFF格式（无损压缩，可选）\n\n🌐 全景图文件：\n   • HTML网页版（手机电脑都能看）\n   • MP4视频版（便于分享）\n   • VR头显版（可选，沉浸体验）\n\n📦 源文件（可选）：\n   • 3ds Max场景文件\n   • 材质贴图资源\n   • 后期PSD文件\n\n所有文件都会通过网盘发送给您，永久保存，随时下载。',
        applicableScenarios: ['文件格式咨询', '交付细节说明'],
        tags: ['低优先级', '文件格式', '交付说明']
      },
      {
        id: 'ps_l003',
        category: '低优先级-沟通流程',
        title: '📝 服务流程说明',
        content: '我们的服务流程清晰透明：\n\n第一步：需求沟通（1天）\n   • 提供户型图、喜好风格、预算范围\n   • 设计师深度沟通，制定方案\n\n第二步：建模确认（3-5天）\n   • 建立3D模型\n   • 您确认空间布局、家具摆放\n\n第三步：渲染出图（2-3天）\n   • 灯光、材质渲染\n   • 输出高清效果图\n\n第四步：修改调整（1-2天）\n   • 根据您的意见调整\n   • 直到满意为止\n\n第五步：交付归档\n   • 打包所有文件交付\n   • 项目归档，售后支持\n\n每个阶段都会及时与您沟通，确保方向正确。',
        applicableScenarios: ['流程咨询', '新客户说明', '服务介绍'],
        tags: ['低优先级', '服务流程', '流程说明']
      },
      {
        id: 'ps_l004',
        category: '低优先级-付款方式',
        title: '💳 付款方式与发票',
        content: '我们支持多种付款方式，方便您选择：\n\n💰 付款方式：\n   • 微信支付/支付宝（推荐）\n   • 对公转账（企业客户）\n   • 分期付款（0手续费）\n\n📄 付款节点：\n   • 首付50%：签约后，开始建模\n   • 尾款50%：效果图确认后，交付前\n\n🧾 发票服务：\n   • 个人客户：电子发票（免费）\n   • 企业客户：增值税专用发票（税点协商）\n   • 开票信息请提前提供\n\n🔒 资金安全：\n   • 支持平台担保交易\n   • 不满意可退款（开工前）\n   • 正规公司，合同保障\n\n您更倾向哪种付款方式？',
        applicableScenarios: ['付款咨询', '发票需求', '合同细节'],
        tags: ['低优先级', '付款方式', '发票说明']
      },
      {
        id: 'ps_l005',
        category: '低优先级-合作客户',
        title: '🤝 合作伙伴与资质',
        content: '我们与多家知名品牌建立了合作关系：\n\n🏢 合作装饰公司：\n   • 东易日盛装饰 - 战略合作伙伴\n   • 业之峰装饰 - 指定效果图供应商\n   • 居然之家设计中心 - 长期合作\n\n🎨 材料品牌：\n   • 立邦涂料、多乐士涂料 - 色卡支持\n   • 诺贝尔瓷砖、马可波罗瓷砖 - 材质库授权\n   • 索菲亚衣柜、欧派橱柜 - 产品模型库\n\n🏅 公司资质：\n   • 营业执照：统一社会信用代码XXXXXX\n   • 中国建筑装饰协会会员单位\n   • 设计师均持证上岗（室内设计师证）\n\n💼 服务案例：\n   • 已服务500+家庭客户\n   • 100+商业空间设计\n   • 50+别墅大宅项目\n\n专业的团队，靠谱的服务，值得您信赖！',
        applicableScenarios: ['建立信任', '资质展示', '品牌背书'],
        tags: ['低优先级', '合作伙伴', '公司资质']
      }
    ];
  }

  // 获取工时记录
  getWorkHourRecords(designerId?: string, projectId?: string): Observable<WorkHourRecord[]> {
    let records = this.workHourRecords;
    
    if (designerId) {
      records = records.filter(r => r.designerId === designerId);
    }
    
    if (projectId) {
      records = records.filter(r => r.projectId === projectId);
    }
    
    return of(records);
  }

  // 添加工时记录
  addWorkHourRecord(record: Omit<WorkHourRecord, 'id' | 'effectiveHours'>): Observable<WorkHourRecord> {
    const newRecord: WorkHourRecord = {
      ...record,
      id: `wh${Date.now()}`,
      effectiveHours: this.calculateEffectiveHours(record.actualHours, record.spaceType, record.projectStyle)
    };
    
    this.workHourRecords.push(newRecord);
    this.workHourDataSubject.next(this.workHourRecords);
    
    return of(newRecord);
  }

  // 计算有效工时
  calculateEffectiveHours(actualHours: number, spaceType: SpaceType, projectStyle: ProjectStyle): number {
    const spaceCoeff = this.difficultyCoefficients.find(c => c.spaceType === spaceType)?.spaceCoefficient || 1.0;
    const styleCoeff = this.difficultyCoefficients.find(c => c.styleType === projectStyle)?.styleCoefficient || 1.0;
    const totalCoeff = spaceCoeff * styleCoeff;
    
    return actualHours * totalCoeff;
  }

  // 获取月度统计数据
  getMonthlyStats(designerId?: string, month?: string): Observable<MonthlyWorkHourStats[]> {
    // 基于工时记录计算月度统计
    const stats = this.calculateMonthlyStats(designerId, month);
    return of(stats);
  }

  // 计算月度统计
  private calculateMonthlyStats(designerId?: string, month?: string): MonthlyWorkHourStats[] {
    const records = this.workHourRecords.filter(r => {
      if (designerId && r.designerId !== designerId) return false;
      if (month && !r.startTime.toISOString().startsWith(month)) return false;
      return true;
    });

    const groupedByDesigner = records.reduce((acc, record) => {
      const key = record.designerId;
      if (!acc[key]) {
        acc[key] = [];
      }
      acc[key].push(record);
      return acc;
    }, {} as Record<string, WorkHourRecord[]>);

    return Object.entries(groupedByDesigner).map(([designerId, records]) => {
      const totalActualHours = records.reduce((sum, r) => sum + r.actualHours, 0);
      const totalEffectiveHours = records.reduce((sum, r) => sum + r.effectiveHours, 0);
      const totalPauseHours = records.reduce((sum, r) => sum + (r.pauseHours || 0), 0);
      const completedProjects = new Set(records.map(r => r.projectId)).size;
      const averageCustomerSatisfaction = 4.5; // 模拟数据
      
      const performanceLevel = this.calculatePerformanceLevel(
        totalEffectiveHours,
        completedProjects,
        averageCustomerSatisfaction
      );

      return {
        designerId,
        designerName: records[0].designerName,
        month: month || new Date().toISOString().substring(0, 7),
        totalActualHours,
        totalEffectiveHours,
        totalPauseHours,
        completedProjects,
        averageCustomerSatisfaction,
        performanceLevel,
        onTimeCompletionRate: 85, // 模拟数据
        excellentWorkRate: 78, // 模拟数据
        records
      };
    });
  }

  // 计算绩效等级
  private calculatePerformanceLevel(effectiveHours: number, completedProjects: number, satisfaction: number): PerformanceLevel {
    if (satisfaction >= 5.0 && effectiveHours > 100) return 'S';
    if (satisfaction >= 4.0 && effectiveHours > 80) return 'A';
    if (satisfaction >= 4.0) return 'B';
    return 'C';
  }

  // 获取仪表板数据
  getDashboardData(): Observable<WorkHourDashboardData> {
    const monthlyStats = this.calculateMonthlyStats();
    
    const dashboardData: WorkHourDashboardData = {
      totalDesigners: new Set(this.workHourRecords.map(r => r.designerId)).size,
      totalProjects: new Set(this.workHourRecords.map(r => r.projectId)).size,
      averageEffectiveHours: monthlyStats.reduce((sum, s) => sum + s.totalEffectiveHours, 0) / monthlyStats.length || 0,
      performanceDistribution: {
        S: monthlyStats.filter(s => s.performanceLevel === 'S').length,
        A: monthlyStats.filter(s => s.performanceLevel === 'A').length,
        B: monthlyStats.filter(s => s.performanceLevel === 'B').length,
        C: monthlyStats.filter(s => s.performanceLevel === 'C').length
      },
      monthlyTrends: [
        { month: '2024-01', totalHours: 320, effectiveHours: 384, efficiency: 120 },
        { month: '2024-02', totalHours: 280, effectiveHours: 336, efficiency: 120 },
        { month: '2024-03', totalHours: 360, effectiveHours: 432, efficiency: 120 }
      ],
      topPerformers: monthlyStats
        .sort((a, b) => b.totalEffectiveHours - a.totalEffectiveHours)
        .slice(0, 5)
        .map(s => ({
          designerId: s.designerId,
          designerName: s.designerName,
          effectiveHours: s.totalEffectiveHours,
          performanceLevel: s.performanceLevel,
          efficiency: Math.round((s.totalEffectiveHours / s.totalActualHours) * 100)
        }))
    };

    return of(dashboardData);
  }

  // 获取报价规则
  getPricingRules(): Observable<PricingRule[]> {
    return of(this.pricingRules);
  }

  // 自动生成报价
  generateAutoQuotation(spaceType: SpaceType, projectStyle: ProjectStyle, estimatedWorkDays: number = 3): Observable<AutoQuotationResult> {
    const rule = this.pricingRules.find(r => r.spaceType === spaceType && r.styleType === projectStyle);
    
    if (!rule) {
      throw new Error(`未找到匹配的报价规则: ${spaceType} - ${projectStyle}`);
    }

    const quotation: AutoQuotationResult = {
      id: `aq${Date.now()}`,
      spaceType,
      projectStyle,
      estimatedWorkDays,
      basePrice: rule.basePrice,
      styleMultiplier: rule.styleMultiplier,
      finalPrice: rule.finalPrice * estimatedWorkDays,
      serviceIncludes: [...rule.serviceIncludes],
      createdAt: new Date(),
      createdBy: 'current-user', // 应该从认证服务获取
      status: 'draft'
    };

    return of(quotation);
  }

  // 获取报价话术库
  getPricingScripts(category?: string): Observable<PricingScript[]> {
    let scripts = this.pricingScripts;
    
    if (category) {
      scripts = scripts.filter(s => s.category === category);
    }
    
    return of(scripts);
  }

  // 添加价格调整记录
  addPriceAdjustment(quotationId: string, adjustment: Omit<PriceAdjustment, 'id'>): Observable<PriceAdjustment> {
    const newAdjustment: PriceAdjustment = {
      ...adjustment,
      id: `pa${Date.now()}`
    };
    
    // 在实际应用中，这里应该更新对应的报价记录
    console.log('价格调整记录已添加:', newAdjustment);
    
    return of(newAdjustment);
  }

  // 获取难度系数配置
  getDifficultyCoefficients(): Observable<DifficultyCoefficient[]> {
    return of(this.difficultyCoefficients);
  }

  // 更新难度系数配置
  updateDifficultyCoefficients(coefficients: DifficultyCoefficient[]): Observable<boolean> {
    this.difficultyCoefficients = coefficients;
    return of(true);
  }

  // 获取绩效标准配置
  getPerformanceCriteria(): Observable<PerformanceCriteria[]> {
    return of(this.performanceCriteria);
  }

  // 更新绩效标准配置
  updatePerformanceCriteria(criteria: PerformanceCriteria[]): Observable<boolean> {
    this.performanceCriteria = criteria;
    return of(true);
  }
}