Files
ONE-OS/docs/generate_xiaolingling_plan_docx.py
王冕 a27e3b8e43 feat: sync full workspace including web modules, docs, and configurations to Gitea
Optimized the root .gitignore to exclude virtual environments, node modules,
and temp folders to ensure clean and lightweight version tracking.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 18:12:25 +08:00

245 lines
15 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""生成小羚羚氢能产业数字化平台方案书 Word 文档"""
from pathlib import Path
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
from docx.shared import Cm, Pt, RGBColor
OUTPUT = Path(__file__).resolve().parent / "小羚羚氢能产业数字化平台方案书.docx"
FONT_CN = "微软雅黑"
COLOR_PRIMARY = RGBColor(0x00, 0xBF, 0xA5)
COLOR_TITLE = RGBColor(0x1A, 0x1F, 0x2E)
COLOR_MUTED = RGBColor(0x5C, 0x65, 0x78)
def set_run_font(run, size=11, bold=False, color=None, name=FONT_CN):
run.font.name = name
run._element.rPr.rFonts.set(qn("w:eastAsia"), name)
run.font.size = Pt(size)
run.font.bold = bold
if color:
run.font.color.rgb = color
def add_para(doc, text, size=11, bold=False, color=None, align=None, space_after=6):
p = doc.add_paragraph()
if align is not None:
p.alignment = align
p.paragraph_format.space_after = Pt(space_after)
p.paragraph_format.line_spacing = 1.35
run = p.add_run(text)
set_run_font(run, size=size, bold=bold, color=color)
return p
def add_heading(doc, text, level=1):
h = doc.add_heading(level=level)
h.clear()
run = h.add_run(text)
sizes = {1: 22, 2: 16, 3: 13}
set_run_font(run, size=sizes.get(level, 12), bold=True, color=COLOR_TITLE if level == 1 else COLOR_PRIMARY)
h.paragraph_format.space_before = Pt(14 if level > 1 else 0)
h.paragraph_format.space_after = Pt(8)
return h
def shade_cell(cell, fill="E8F8F4"):
tc = cell._tc
tcPr = tc.get_or_add_tcPr()
shd = tcPr.find(qn("w:shd"))
if shd is None:
from docx.oxml import OxmlElement
shd = OxmlElement("w:shd")
tcPr.append(shd)
shd.set(qn("w:fill"), fill)
shd.set(qn("w:val"), "clear")
def add_table(doc, headers, rows, col_widths=None):
table = doc.add_table(rows=1 + len(rows), cols=len(headers))
table.style = "Table Grid"
table.alignment = WD_TABLE_ALIGNMENT.CENTER
hdr_cells = table.rows[0].cells
for i, h in enumerate(headers):
hdr_cells[i].text = ""
run = hdr_cells[i].paragraphs[0].add_run(h)
set_run_font(run, size=10, bold=True, color=COLOR_TITLE)
shade_cell(hdr_cells[i], "D4F5EC")
for ri, row in enumerate(rows):
cells = table.rows[ri + 1].cells
for ci, val in enumerate(row):
cells[ci].text = ""
run = cells[ci].paragraphs[0].add_run(str(val))
set_run_font(run, size=10)
if ri % 2 == 1:
shade_cell(cells[ci], "F7FBFA")
if col_widths:
for row in table.rows:
for i, w in enumerate(col_widths):
row.cells[i].width = Cm(w)
doc.add_paragraph()
return table
def build_document():
doc = Document()
section = doc.sections[0]
section.top_margin = Cm(2.5)
section.bottom_margin = Cm(2.5)
section.left_margin = Cm(2.8)
section.right_margin = Cm(2.8)
# 封面
add_para(doc, "", space_after=24)
add_para(doc, "羚牛氢能 · OneOS 生态", size=12, color=COLOR_MUTED, align=WD_ALIGN_PARAGRAPH.CENTER, space_after=12)
add_para(doc, "小羚羚氢能产业数字化平台方案书", size=26, bold=True, color=COLOR_PRIMARY, align=WD_ALIGN_PARAGRAPH.CENTER, space_after=16)
add_para(doc, "手机端「小羚羚」多端协同 · 氢能产业链数字化规划", size=13, color=COLOR_MUTED, align=WD_ALIGN_PARAGRAPH.CENTER, space_after=32)
meta = doc.add_paragraph()
meta.alignment = WD_ALIGN_PARAGRAPH.CENTER
for line in ["文档版本v1.0", "文档类型:平台建设规划 / 商业计划", "适用读者:管理层、产品、业务、项目团队"]:
r = meta.add_run(line + "\n")
set_run_font(r, size=11, color=COLOR_MUTED)
doc.add_page_break()
# 一、概述
add_heading(doc, "一、项目概述", 1)
add_para(doc, "以手机端「小羚羚」为统一入口,连接内部运营、车队客户、司机、加氢站、维修站、制氢企业与集团客户,实现氢气采购—加氢站—氢能车运营全链路数字化闭环。")
add_para(doc, "一句话定位", size=12, bold=True, color=COLOR_PRIMARY, space_after=4)
add_para(doc, "小羚羚 = 氢能产业的「业务操作系统」:一端登录、多角色协同,把合同、车辆、能源、维保、氢气贸易串成可落地、可风控、可结算的完整商业链条。")
add_heading(doc, "核心指标", 2)
add_table(doc, ["指标项", "目标值"], [
["目标用户角色", "7 类"],
["业务闭环条数", "3 条"],
["产业链覆盖", "上中下游(制氢采购 → 加氢站 → 氢能车运营)"],
["首期上线周期", "6 个月"],
], col_widths=[5, 11])
# 二、产业链商业计划
add_heading(doc, "二、氢能产业链商业计划(上游 → 下游)", 1)
add_para(doc, "覆盖氢气采购、加氢站运营、氢能车租赁/自营三大环节,形成「制氢—储运—加注—运营—结算」一体化商业模式。")
add_heading(doc, "2.1 产业链三段式布局", 2)
add_table(doc, ["环节", "业务内容", "平台价值"], [
["上游 · 制氢采购", "制氢企业挂牌售氢、管束车调度、到站交付", "氢气贸易与物流协同"],
["中游 · 加氢站", "预约接单、电子加氢卡结算、巡检与对账", "加注服务数字化与氢费结算"],
["下游 · 氢能车运营", "租赁/自营、交还车、能源与 ETC 账单闭环", "车辆运营与资产管理"],
], col_widths=[3.5, 7, 5.5])
add_heading(doc, "2.2 商业模式与收入结构", 2)
add_heading(doc, "上游 · 氢气贸易", 3)
add_para(doc, "制氢企业在线挂牌售氢;加氢站/运营方发起采购询价;成交后管束车配送到站。平台收取交易撮合费、物流调度服务费、数据监测服务费。")
add_heading(doc, "中游 · 加氢服务", 3)
add_para(doc, "司机预约加氢、电子加氢卡预充值结算;站点 OCR 识别加氢量自动入账;氢费对账线上化。平台收取 SaaS 服务费、支付通道费、对账增值服务费。")
add_heading(doc, "下游 · 车辆运营", 3)
add_para(doc, "租赁/自营合同在线签约;交还车+替换车闭环;能源/ETC/维保账单聚合;客户评级与敏感客户风控。平台核心收入为租赁服务费、资产管理费、金融结算服务。")
# 三、平台架构
add_heading(doc, "三、平台架构:七类用户 · 一套数据底座", 1)
add_table(doc, ["用户端", "主体", "核心能力", "关键场景"], [
["内部用户", "羚牛氢能员工", "合同-收款-交还车-结算全链路;车辆全生命周期;风控审批", "业务员/运维/能源/财务/法务/CEO 等"],
["车队长", "车队管理者", "一键租车报价签约;车辆运行/账单/开票/对讲", "注册验证、在线合同、实时定位"],
["氢能车司机", "自营+外部租赁", "路线导航、能源账单、安全培训考试、预约加氢、故障救援", "内外部司机差异化权限"],
["加氢站用户", "站点运营", "预约接单、电子加氢卡结算、OCR 识别加氢量、氢费对账", "特种设备/行驶证校验"],
["维修站用户", "维保服务", "维修/保养派单接单、费用记录、运维核实对账", "配件人工自动入账"],
["制氢企业", "氢气供应", "在线挂牌售氢、管束车监测、询价成交与运费结算", "对接加氢站采购"],
["集团客户", "企业级客户", "多项目车辆/账单/能源/ETC 总览;在线租车签约", "类车队长但主体为企业"],
], col_widths=[2.2, 2.5, 6.3, 5])
# 四、分角色方案
add_heading(doc, "四、分角色业务方案(可落地)", 1)
add_heading(doc, "4.1 内部用户 — 运营中枢与风控大脑", 2)
add_para(doc, "羚牛氢能内部员工 · 多部门协同", size=10, color=COLOR_MUTED)
add_para(doc, "业务条线 A氢能车租赁/自营", size=11, bold=True)
add_para(doc, "合同发起 → 客户评级/敏感客户校验 → 标准/非标合同审批 → 收款 → 交车 → 账单收款 → 还车 → 还车结算。过程中支持替换车业务,全程留痕、可审计。")
add_para(doc, "业务条线 B车辆全生命周期", size=11, bold=True)
add_para(doc, "采购/外租 → 验车入库 → 维修/年审/保养/故障/事故 → 出库(出售/报废/停租)。形成单车全生命周期数据档案,支撑资产决策与残值管理。")
add_para(doc, "覆盖角色业务员、客服、运维、能源、安全、财务、法务、CEO 等;按岗位分配功能模块与审批权限。")
add_heading(doc, "4.2 车队长 — 车队管理者自助门户", 2)
add_para(doc, "注册验证 · 在线租车 · 合同签约", size=10, color=COLOR_MUTED)
add_para(doc, "一键登录验证注册状态:未注册客户可快速登记营业执照/身份证;已注册客户直接进入管理页。")
add_table(doc, ["步骤", "动作", "系统响应"], [
["1", "选择车型、数量、租期发起租车意向", "短信/推送通知对应业务员"],
["2", "系统按地区自动生成报价单", "业务员可调整并与客户在线沟通"],
["3", "确认报价并提交", "自动生成电子合同,推送客户签章"],
["4", "运维完成交车", "车队长查看车辆运行、账单、开票、对讲"],
], col_widths=[1.2, 6, 8.8])
add_para(doc, "交车后能力:实时定位/轨迹、氢/电能源账单、ETC、合同账单、付款、在线开票、语音对讲类对讲机")
add_heading(doc, "4.3 氢能车司机 — 自营与外部双轨", 2)
add_table(doc, ["类型", "核心能力"], [
["内部自营司机", "定位/轨迹、送货路线规划与导航、氢/电/ETC 账单、安全培训与定期考试、证照管理、氢/电量提醒、预约附近加氢站(校验特种设备登记/行驶证)、故障提报、紧急救援"],
["外部租赁司机", "轨迹与路线导航、能源/ETC 账单、安全培训、司机与车辆证件管理、预约加氢(证件校验提示)、故障提报、紧急救援;不含集团内部物流专属调度能力"],
], col_widths=[3, 13])
add_heading(doc, "4.4 加氢站用户 — 加注服务与氢费结算", 2)
add_table(doc, ["功能模块", "说明"], [
["预约接单", "验证车辆特种设备检验登记、行驶证后确认服务"],
["电子加氢卡结算", "扫描司机电子加氢卡,预充值客户直接扣款"],
["加氢过程管理", "加氢前/中/后检查、卸气记录、站点巡检记录"],
["OCR 加氢量识别", "拍摄加氢机面板自动识别加氢量,绑定车辆生成记录"],
["氢费对账", "接收并操作氢费对账单,线上确认"],
["氢气采购", "向制氢企业发起采购(与上游模块联动)"],
], col_widths=[3.5, 12.5])
add_heading(doc, "4.5 维修站用户 — 维保派单与对账", 2)
add_para(doc, "接收内部员工发起的维修/保养派单 → 记录维修过程与人工/配件费用 → 自动生成维修记录 → 运维核实 → 内部用户与维修站在线对账及账期结算。与车辆全生命周期数据打通。")
add_heading(doc, "4.6 制氢企业 — 氢气在线交易与物流", 2)
add_para(doc, "企业资质验证后,在线发布氢气对外采购价(类商城模式);对接管束车实时数据,监测氢气运输车状态;加氢站发起询价与采购申请 → 制氢企业成交 → 运输到场 → 自动计算管束车使用费用。")
add_para(doc, "关键能力:挂牌售氢 · 询价采购 · 物流调度 · 运费结算")
add_heading(doc, "4.7 集团客户 — 企业级总览与在线租车", 2)
add_para(doc, "主体为企业(区别于个人车队长):查看集团所有租赁/自营项目车辆使用情况、全项目账单与结算、电子开票、能源费(氢/电、ETC、司机信息汇总。同时支持 APP 在线租车并生成对应合同,完成业务闭环。")
add_para(doc, "与车队长差异:车队长侧重单车队运营;集团客户侧重企业级多项目、多合同、多车队的统一视图与集团采购决策。", bold=True)
# 五、业务闭环
add_heading(doc, "五、三大业务闭环总览", 1)
loops = [
("闭环一 · 租赁/自营运营(核心收入)", "意向单 → 报价 → 合同(评级/敏感客户审批)→ 交车 → 运营监控 → 账单收款 → 还车 → 结算 → 替换车(如需)"),
("闭环二 · 车辆资产生命周期(资产管控)", "采购/外租 → 验车入库 → 维保/年审/故障/事故 → 能源消耗 → 出库处置;全链路数据沉淀至 OneOS 数据底座"),
("闭环三 · 氢气贸易与加注(产业延伸)", "制氢企业挂牌 → 加氢站询价采购 → 管束车配送 → 司机预约加氢 → 电子加氢卡结算 → 氢费对账 → 运营账单聚合"),
]
for title, flow in loops:
add_para(doc, title, size=12, bold=True, color=COLOR_PRIMARY)
add_para(doc, flow)
# 六、路线图
add_heading(doc, "六、分阶段落地路线图", 1)
add_table(doc, ["阶段", "周期", "重点模块", "交付成果"], [
["第一阶段", "06 月", "内部用户 + 车队长 + 司机核心闭环", "合同审批、交还车、替换车、基础账单"],
["第二阶段", "612 月", "加氢站 + 维修站接入", "预约加氢、电子加氢卡、维修派单对账"],
["第三阶段", "1218 月", "制氢企业 + 氢气采购商城", "挂牌售氢、管束车调度、到站结算"],
["第四阶段", "1824 月", "集团客户 + 数据智能", "集团总览、风控模型、产业数据分析"],
], col_widths=[2.2, 2, 5.8, 6])
# 七、汇报要点
add_heading(doc, "七、向管理层汇报要点", 1)
points = [
"小羚羚不是单一 App而是氢能产业多端协同的数字化入口与 OneOS Web 端形成「大屏管控 + 手机执行」互补。",
"首期 6 个月聚焦租赁闭环与内部风控,快速产生业务价值;氢气贸易模块作为第二增长曲线。",
"客户评级与敏感客户审批机制内嵌合同流程,从源头降低收账风险,支撑非标业务合规扩张。",
"七类用户共用同一数据底座,避免信息孤岛,为后续氢能产业数据分析与智能调度奠定基础。",
]
for i, pt in enumerate(points, 1):
add_para(doc, f"{i}. {pt}")
add_para(doc, "", space_after=24)
add_para(doc, "— 文档结束 —", size=10, color=COLOR_MUTED, align=WD_ALIGN_PARAGRAPH.CENTER)
add_para(doc, "羚牛氢能 · 小羚羚平台方案 · OneOS 生态 · 供内部汇报使用", size=10, color=COLOR_MUTED, align=WD_ALIGN_PARAGRAPH.CENTER)
doc.save(OUTPUT)
return OUTPUT
if __name__ == "__main__":
path = build_document()
print(f"已生成:{path}")