Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c02a1a19ae |
169
BUYOFF.md
Normal file
169
BUYOFF.md
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
# Deployment Buyoff Checklist
|
||||||
|
|
||||||
|
**Customer:** 天普大兴园区 (Tianpu Daxing Zero-Carbon Park)
|
||||||
|
**Project:** tp-ems
|
||||||
|
**Date:** _______________
|
||||||
|
**Performed by:** _______________
|
||||||
|
**Environment:** [ ] Staging [ ] Production
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1: Infrastructure
|
||||||
|
|
||||||
|
- [ ] PostgreSQL running and accessible
|
||||||
|
- [ ] Redis running and accessible
|
||||||
|
- [ ] All database migrations applied successfully
|
||||||
|
- [ ] Seed data loaded (device types, default config)
|
||||||
|
- [ ] Admin user created and can log in
|
||||||
|
- [ ] `.env` file configured with correct values
|
||||||
|
- [ ] All required ports open and not conflicting
|
||||||
|
|
||||||
|
## Phase 2: Backend API
|
||||||
|
|
||||||
|
- [ ] `GET /health` returns OK
|
||||||
|
- [ ] Auth endpoints working (login, token refresh, logout)
|
||||||
|
- [ ] Device stats endpoints return data
|
||||||
|
- [ ] Dashboard summary endpoint returns data
|
||||||
|
- [ ] Collectors are registered and configured
|
||||||
|
- [ ] Branding endpoint returns Tianpu config
|
||||||
|
- [ ] Swagger docs accessible at `/docs`
|
||||||
|
- [ ] Version endpoint returns correct version
|
||||||
|
- [ ] Solar KPI endpoints return data (PR, equivalent hours, revenue)
|
||||||
|
|
||||||
|
## Phase 3: Data Collection
|
||||||
|
|
||||||
|
- [ ] Collectors connected to data source (iSolarCloud API)
|
||||||
|
- [ ] Data being collected on schedule
|
||||||
|
- [ ] All expected devices showing online
|
||||||
|
- [ ] Energy data (kWh) being recorded
|
||||||
|
- [ ] No collector errors in logs
|
||||||
|
- [ ] Rate limits respected (no 429 errors)
|
||||||
|
|
||||||
|
## Phase 3.5: Data Pipeline & Accuracy
|
||||||
|
|
||||||
|
- [ ] PV power values match iSolarCloud source within 5%
|
||||||
|
- [ ] PV energy values match iSolarCloud source within 5%
|
||||||
|
- [ ] Heat pump power/energy values match source within 5%
|
||||||
|
- [ ] No double-counting between station-level and device-level data
|
||||||
|
- [ ] Daily summary aggregation correct
|
||||||
|
- [ ] Unit conversions correct (W/kW/MW, Wh/kWh/MWh)
|
||||||
|
- [ ] `scripts/validate_data.py` passes with no errors
|
||||||
|
|
||||||
|
### Data Accuracy Cross-Reference Table
|
||||||
|
|
||||||
|
| Metric | Source Value | EMS Value | Difference | Within 5%? |
|
||||||
|
|--------|-------------|-----------|------------|------------|
|
||||||
|
| PV Daily Energy (kWh) | | | | [ ] |
|
||||||
|
| PV Current Power (kW) | | | | [ ] |
|
||||||
|
| Heat Pump Daily Energy (kWh) | | | | [ ] |
|
||||||
|
| Heat Pump Current Power (kW) | | | | [ ] |
|
||||||
|
| Total Grid Import (kWh) | | | | [ ] |
|
||||||
|
| Total Grid Export (kWh) | | | | [ ] |
|
||||||
|
| Self-Consumption Rate (%) | | | | [ ] |
|
||||||
|
| PV Performance Ratio (%) | | | | [ ] |
|
||||||
|
|
||||||
|
**Source API checked:** _______________
|
||||||
|
**Timestamp of comparison:** _______________
|
||||||
|
|
||||||
|
## Phase 4: Frontend Pages
|
||||||
|
|
||||||
|
- [ ] Login page loads and authentication works
|
||||||
|
- [ ] Dashboard / Overview page
|
||||||
|
- [ ] Monitoring page (real-time)
|
||||||
|
- [ ] Device list page
|
||||||
|
- [ ] Analysis page
|
||||||
|
- [ ] Alarm management page
|
||||||
|
- [ ] Carbon tracking page
|
||||||
|
- [ ] Reports page
|
||||||
|
- [ ] Quota management page
|
||||||
|
- [ ] Maintenance / work orders page
|
||||||
|
- [ ] Data query page
|
||||||
|
- [ ] Prediction page
|
||||||
|
- [ ] System management page (users, roles)
|
||||||
|
- [ ] Energy strategy page
|
||||||
|
- [ ] AI operations page
|
||||||
|
- [ ] Big screen display page
|
||||||
|
|
||||||
|
## Phase 5: Feature Flags
|
||||||
|
|
||||||
|
- [ ] Disabled features are hidden from navigation
|
||||||
|
- [ ] Disabled feature routes return 404 or redirect
|
||||||
|
- [ ] All enabled features are functional
|
||||||
|
- [ ] Feature flag config matches customer requirements
|
||||||
|
|
||||||
|
## Phase 6: Dashboard Charts & Widgets
|
||||||
|
|
||||||
|
- [ ] PV power curve (real-time)
|
||||||
|
- [ ] Heat pump power/status
|
||||||
|
- [ ] Carbon reduction metrics
|
||||||
|
- [ ] Active alarms count
|
||||||
|
- [ ] Load curve chart
|
||||||
|
- [ ] Device status pie chart (online/offline/alarm)
|
||||||
|
- [ ] Energy flow diagram (Sankey or animated)
|
||||||
|
- [ ] Energy overview bar chart
|
||||||
|
- [ ] PV generation trend
|
||||||
|
- [ ] Installed capacity display
|
||||||
|
- [ ] Recent alarms list
|
||||||
|
- [ ] Performance Ratio (PR) gauge
|
||||||
|
- [ ] Equivalent full-load hours
|
||||||
|
- [ ] Estimated revenue
|
||||||
|
- [ ] Self-consumption ratio
|
||||||
|
|
||||||
|
**All charts showing real data (not zeros or placeholders):** [ ] Yes [ ] No
|
||||||
|
|
||||||
|
## Phase 7: UI Interactions
|
||||||
|
|
||||||
|
- [ ] Dark mode toggle works
|
||||||
|
- [ ] Language switch (zh-CN / en-US) works
|
||||||
|
- [ ] Sidebar navigation collapses/expands
|
||||||
|
- [ ] Alarm bell shows notification count
|
||||||
|
- [ ] User dropdown menu works
|
||||||
|
- [ ] Logout clears session
|
||||||
|
- [ ] Pagination works on list pages
|
||||||
|
- [ ] CRUD operations work (create, read, update, delete)
|
||||||
|
|
||||||
|
## Phase 8: Performance & Errors
|
||||||
|
|
||||||
|
- [ ] No JavaScript errors in browser console
|
||||||
|
- [ ] No failed API requests (check Network tab)
|
||||||
|
- [ ] No unhandled backend exceptions in logs
|
||||||
|
- [ ] Page load time < 3 seconds
|
||||||
|
- [ ] WebSocket connections stable (if applicable)
|
||||||
|
|
||||||
|
## Phase 9: Customer-Specific (Tianpu)
|
||||||
|
|
||||||
|
- [ ] Customer name displays as "天普大兴园区"
|
||||||
|
- [ ] Theme/branding matches Tianpu requirements
|
||||||
|
- [ ] All Tianpu devices present in device list
|
||||||
|
- [ ] Device models match physical installation
|
||||||
|
- [ ] Electricity pricing config correct
|
||||||
|
- [ ] Alarm rules configured for Tianpu thresholds
|
||||||
|
- [ ] Carbon emission factor set correctly
|
||||||
|
- [ ] Data source: iSolarCloud API configured with correct `ps_id`
|
||||||
|
- [ ] Version displayed in UI matches deployed version
|
||||||
|
- [ ] Feature flags match Tianpu scope
|
||||||
|
- [ ] `ps_id` values correct for all Tianpu stations
|
||||||
|
- [ ] Customer config volume/mount verified
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sign-Off
|
||||||
|
|
||||||
|
| Role | Name | Signature | Date |
|
||||||
|
|------|------|-----------|------|
|
||||||
|
| Developer | | | |
|
||||||
|
| QA / Tester | | | |
|
||||||
|
| Project Lead | | | |
|
||||||
|
| Customer Rep | | | |
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
_Use this space for any observations, deviations, or follow-up items:_
|
||||||
|
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Generated from EMS Deployment Buyoff Checklist template. All items must be checked before deployment is considered complete.*
|
||||||
Reference in New Issue
Block a user