用途
warranty-tracker 是一个面向建筑项目的保修跟踪与管理技能,目标是解决保修管理常被忽视的问题,例如保修文件缺失、过期保修未跟踪、索赔难以提交、资料分散在多个文件中。它提供集中化的保修跟踪系统,用于监控到期时间、存储文档并管理索赔。
其业务价值包括:在到期前提交索赔以实现成本节约;建立集中的保修资料库以提升组织性;满足移交要求以符合合规性;通过自动到期提醒实现主动管理。
主要能力
保修记录管理
通过 add_warranty 添加保修记录,字段包括条目描述、建筑系统、保修类型、制造商、承包商、保修年限、保障范围、联系人邮箱,以及可选的开始日期、联系人姓名、电话、免责条款和位置。系统会自动生成形如 WRT-0001 的保修编号。若未提供开始日期,则默认使用项目实质性竣工日期;结束日期按开始日期加“年限 × 365 天”计算。
支持的保修类型(WarrantyType)包括:制造商(manufacturer)、承包商(contractor)、安装方(installer)、延保(extended)、性能(performance)。
支持的建筑系统(BuildingSystem)包括:结构、屋面、暖通空调、电气、给排水、电梯、消防、玻璃幕墙、地面、涂装、设备、外立面、其他。
状态与到期跟踪
保修状态由当前日期自动计算:已过结束日期为“已过期”(expired);距结束日期不超过 90 天为“即将到期”(expiring_soon);否则为“有效”(active)。剩余天数通过 days_remaining 获取。
查询方法包括:get_expiring_warranties(days) 获取指定天数内到期的保修(默认阈值为 90 天);get_active_warranties() 获取所有有效及即将到期的保修;get_warranties_by_system(system) 按建筑系统筛选。
文档管理
通过 add_document(warranty_id, filename, document_type, file_path) 为指定保修附加文档,文档类型可包括证书(certificate)、手册(manual)、条件说明(conditions)等。文档编号按保修编号加序号生成,并记录上传日期。
索赔管理
通过 file_claim(warranty_id, issue_description, issue_date, reported_by) 提交索赔,生成形如 CLM-0001 的索赔编号,初始状态为草稿(draft)。若保修已过期,提交会抛出错误。
索赔状态(ClaimStatus)包括:草稿、已提交、审核中、已批准、已拒绝、已解决。通过 update_claim_status 更新状态,可同时记录解决方案和已覆盖成本;当状态为已批准、已拒绝或已解决时,自动记录解决日期。
汇总与报告
get_summary() 生成汇总信息,包括保修总数、按状态分布、按系统分布、即将到期数量、索赔总数、未结索赔数量和已挽回总成本,以及项目名称和竣工日期。
generate_expiration_report(months_ahead) 生成到期报告,返回包含保修编号、条目、系统、制造商、结束日期、剩余天数、状态和联系人的 pandas DataFrame,按结束日期排序。
export_to_excel(output_path) 将全部保修数据导出为 Excel,包含 Warranties、Claims 以及 Expiring Soon(6 个月内到期)工作表。
使用方式
先初始化跟踪器并传入项目名称与实质性竣工日期:
from datetime import date
tracker = WarrantyTracker(
project_name="Office Tower",
substantial_completion_date=date(2024, 6, 1)
)
添加保修:
tracker.add_warranty(
item_description="HVAC System - Rooftop Units",
system=BuildingSystem.HVAC,
warranty_type=WarrantyType.MANUFACTURER,
manufacturer="Carrier",
contractor="ABC Mechanical",
duration_years=5,
coverage_details="Parts and labor for manufacturing defects",
contact_email="warranty@carrier.com"
)
查询即将到期的保修:
expiring = tracker.get_expiring_warranties(90)
print(f"Warranties expiring in 90 days: {len(expiring)}")
常见使用场景:
- 月度审查:
report = tracker.generate_expiration_report(months_ahead=3),然后打印条目、结束日期和剩余天数。 - 提交索赔:调用
file_claim并传入保修编号、问题描述、问题日期和报告人。 - 移交导出:
tracker.export_to_excel("warranty_register.xlsx")。
依赖
代码使用 pandas、datetime、typing、dataclasses 和 enum;导出 Excel 依赖 openpyxl 引擎。
适用场景
适用于建筑项目收尾与后期运维阶段的保修登记、到期监控、月度审查、索赔提交和移交资料导出,尤其适合需要按建筑系统组织保修并提前预警到期的项目团队。
限制
资料未提供该技能的安装命令、收费信息、平台支持范围或实际效果数据。基础分类表:{"coding": "编程与开发", "frontend": "前端与建站", "design": "设计与创作", "agents": "智能体与模型", "data": "数据与分析", "devops": "部署与运维", "security": "安全与审计", "testing": "测试与质量", "writing": "写作与研究", "marketing": "营销与增长", "office": "办公与效率", "general": "通用与其它"}