无人机资产管理系统

BS 架构的无人机资产管理库:管理无人机基本信息(机型、编号、链路ID、飞控ID、备注), 记录每次主状态变更(待组装 / 待调试 / 待飞 / 损坏),可按机型查看"日期 × 飞机编号"的状态透视表, 也可查看每一架无人机的完整状态变更历史。

功能

  • 无人机管理:新增、编辑、删除无人机;机型筛选;编号唯一
  • 主状态管理:修改状态时写入一条含时间戳的记录(每次修改均保留)
  • 自定义状态:内置"待组装/待调试/待飞/损坏",可新增自定义状态并设置/修改颜色、改名;内置与已被使用的状态不可删除(改名会同步更新历史记录)
  • 状态历史:每一架无人机的时间线,展示每条变更记录(时间戳 + 状态 + 备注),单条记录可删除
  • 飞行历史:每架无人机的飞行记录(日期、时长、起降地点、备注),支持增/删/改;支持统一添加——一次勾选多架飞机编号批量添加,对应飞机自动同步
  • 飞行透视表:行=日期、列=编号,单元格=当日飞行次数,支持机型与日期范围筛选
  • 按机型透视表:行 = 日期、列 = 飞机编号、单元格 = 当日状态;无变更日期自动沿用前一状态;支持自定义日期范围(默认近 30 天)
  • 状态颜色区分:待组装=灰、待调试=橙、待飞=绿、损坏=红
  • 手动导出 Excel:点击「导出 Excel」按钮,下载 无人机台账.xlsx;不含日期时导出「无人机台账(含每架飞行次数)+ 状态历史 + 飞行历史」,选择日期时导出「每日状态矩阵 + 状态变更明细 + 无人机台账 + 飞行历史」;飞行历史 sheet 行=飞机编号、首列=飞行次数总计、后列=每日飞行记录;数据以点击时刻为准

技术栈

  • 后端:Python + FastAPI + Uvicorn
  • 数据库:SQLite(单文件 uav.db,无需安装数据库服务)
  • 前端:原生 HTML / CSS / JavaScript(无构建工具、无第三方依赖)
  • Excel 导出:openpyxl

部署(其他电脑)

  1. 安装 Python(3.9+):https://www.python.org/downloads/,安装时勾选 Add python.exe to PATH
  2. 把本项目整个文件夹拷贝到目标电脑(含 main.py、static/、start.bat)
  3. 双击 start.bat —— 首次运行会自动安装 fastapi、uvicorn 并启动服务
  4. 浏览器自动打开 http://127.0.0.1:8000 即可使用

局域网共享:同一网段内其他电脑浏览器访问 http://本机IP:8000(服务已监听 0.0.0.0)。 数据文件 uav.db 与程序同目录,备份/迁移时直接拷贝该文件即可。

手动启动

pip install fastapi uvicorn openpyxl
python -m uvicorn main:app --host 0.0.0.0 --port 8000

REST API

方法 路径 说明
GET /api/drones?model= 无人机列表(含当前状态,可按机型筛选)
POST /api/drones 新增无人机(机型、编号必填,编号唯一)
PUT /api/drones/{id} 编辑无人机(机型/链路ID/飞控ID/备注)
DELETE /api/drones/{id} 删除无人机(级联删除其状态记录)
GET /api/drones/models 全部机型列表
POST /api/drones/{id}/status 修改主状态,写入一条含时间戳的记录
GET /api/drones/{id}/history 单机完整状态变更记录
DELETE /api/drones/{id}/history/{record_id} 删除单条状态历史记录
GET/POST /api/drones/{id}/flights 单机飞行历史列表 / 新增飞行记录
PUT/DELETE /api/drones/{id}/flights/{flight_id} 修改 / 删除飞行记录
POST /api/flights/batch 统一添加飞行历史(多个编号批量同步)
GET /api/flight-matrix?model=&start=&end= 飞行透视表(当日飞行次数)
GET /api/status-matrix?model=&start=&end= 按机型返回日期×编号状态矩阵
GET /api/export-excel 手动导出 无人机台账.xlsx(台账 + 状态历史两个 sheet)
GET/POST /api/status-types 状态列表 / 新增自定义状态(name 必填,color 可选自动配色)
PUT/DELETE /api/status-types/{name} 状态改名/改色(改名同步历史)/ 删除(内置与已使用状态不可删)

交互式接口文档:启动服务后访问 http://127.0.0.1:8000/docs

目录结构

UAVManager/
├── main.py           # FastAPI 后端(应用 + 数据库 + API)
├── start.bat         # Windows 一键启动脚本
├── README.md
├── uav.db            # SQLite 数据库(运行时自动创建)
└── static/           # 前端页面
    ├── index.html
    ├── style.css
    └── app.js
S
Description
No description provided
Readme 117 KiB
Languages
Python 47.4%
JavaScript 41.8%
CSS 5.8%
HTML 3.4%
Batchfile 1.6%