user9994793890 a5eaa68dca docs: 创建Windows开发和测试详细指南
新增 WINDOWS_GUIDE.md 文件,包含Windows系统下的完整操作指南:

1. 软件安装步骤
   - Node.js 20.x LTS 安装(含官网下载链接)
   - pnpm 安装命令和验证方法
   - VSCode 推荐安装和扩展配置

2. 项目准备和启动
   - 命令提示符操作方法
   - VSCode使用方式(含快捷键Ctrl+~打开终端)
   - 依赖安装命令和等待时间说明
   - 开发服务器启动和浏览器访问

3. 数据库初始化(首次运行)
   - 浏览器直接访问方式
   - curl命令方式
   - PowerShell Invoke-WebRequest方式

4. 功能测试清单
   - 配置创建(选择企业/用户、字段、求和)
   - 日报生成(选择配置、预设时间)
   - 单个下载和批量下载测试
   - 定时任务测试说明

5. Windows常见问题解决
   - 端口占用(netstat + taskkill命令)
   - pnpm找不到(重启终端或重新安装)
   - 数据库连接失败(防火墙设置)
   - Excel无法打开(软件版本建议)
   - 页面空白(浏览器缓存清除)

6. 开发和测试技巧
   - 实时日志查看
   - 代码错误检查
   - 重启服务器方法
   - 清除缓存命令

7. Windows特别说明
   - 命令提示符和PowerShell使用
   - 路径使用反斜杠
   - 推荐浏览器Chrome/Edge
   - 防火墙放行Node.js

8. 性能优化建议
   - 使用SSD硬盘
   - Node.js内存限制调整
   - 浏览器选择建议

包含完整的命令示例、错误信息、解决方法,适合Windows用户快速上手开发和测试!

Coze-Commit-Type: user
Coze-User-ID: 3722323274763196
Coze-Conversation-ID: 9894087
2026-07-08 13:57:14 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:14:42 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:14:42 +08:00
2026-07-07 16:00:36 +08:00
2026-07-07 16:14:42 +08:00
2026-07-07 16:14:42 +08:00
2026-07-07 16:00:36 +08:00
2026-07-08 13:22:30 +08:00
2026-07-07 16:00:36 +08:00

订单日报系统 - 本地运行指南

这是一个基于 Next.js + TypeScript 的订单日报系统,用于自动生成公交等企业的订单日报。

系统要求

必需软件

  1. Node.js (版本要求)

    • 推荐版本Node.js 20+ 或 Node.js 24+
    • 最低版本Node.js 18.17+
    • 下载地址https://nodejs.org/
  2. pnpm (包管理器)

    • 安装命令
      npm install -g pnpm
      
    • 说明本项目强制使用pnpm禁止使用npm或yarn

可选软件(用于生产环境)

  • PM2:用于进程管理和自动重启
    npm install -g pm2
    

本地运行步骤

1. 安装 Node.js

Windows系统

  • 访问 https://nodejs.org/
  • 下载 LTS 版本(推荐 Node.js 20+
  • 双击安装包,按提示完成安装
  • 安装完成后,打开命令提示符验证:
    node --version
    npm --version
    

macOS系统

  • 使用 Homebrew 安装:
    brew install node@20
    
  • 或访问官网下载安装包

Linux系统 (Ubuntu/Debian)

# 使用 NodeSource 仓库
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# 验证安装
node --version
npm --version

2. 安装 pnpm

# 全局安装 pnpm
npm install -g pnpm

# 验证安装
pnpm --version

3. 克隆或下载项目

# 如果使用 Git
git clone <项目地址>
cd <项目目录>

# 或者直接下载项目压缩包并解压

4. 安装项目依赖

# 进入项目目录
cd <项目目录>

# 安装所有依赖(必须使用 pnpm
pnpm install

安装时间首次安装约需5-10分钟取决于网络速度。

5. 配置数据库连接

项目已配置好数据库连接,默认连接:

  • 地址haoslm2.xicp.net:10216
  • 数据库yltcharge
  • 用户名root
  • 密码DsideaL147258369

如果需要修改,编辑 src/lib/db.ts 文件。

6. 初始化数据库表

首次运行时,需要初始化数据库表:

方式1通过API初始化推荐

启动服务后,访问或调用:

# 启动服务
pnpm run dev

# 在浏览器访问或使用 curl
# 访问地址http://localhost:5000/api/init-tables
# 或使用命令:
curl -X POST http://localhost:5000/api/init-tables

方式2手动执行SQL

如果无法访问API可以手动在数据库执行建表SQL参考 src/lib/init-tables.ts)。

7. 启动开发服务器

# 启动开发环境(带热更新)
pnpm run dev

启动成功标志

✓ Compiled in xxxms
✓ Ready in xxxms
Local:   http://localhost:5000

8. 访问应用

打开浏览器,访问:

  • 本地地址http://localhost:5000
  • 功能页面
    • 配置管理:创建和管理日报配置
    • 日报生成:选择配置和时间范围生成日报
    • 历史记录:查看和下载已生成的日报

生产环境部署

1. 构建生产版本

# 构建优化的生产版本
pnpm run build

2. 启动生产服务器

方式1直接启动

pnpm run start

方式2使用 PM2推荐

# 安装 PM2
npm install -g pm2

# 启动服务
pm2 start scripts/start.sh --name "daily-report"

# 查看状态
pm2 status

# 查看日志
pm2 logs daily-report

# 设置开机自启
pm2 startup
pm2 save

3. 配置定时任务

项目内置定时任务每天8:01自动生成日报

  • 定时任务在 src/server.ts 中配置
  • 使用 node-cron 实现
  • 北京时间UTC+8

如果需要修改定时任务时间,编辑 src/server.ts

// 修改定时任务时间cron表达式
cron.schedule('1 8 * * *', async () => {
  // 每天8:01执行
  console.log('开始生成日报...');
}, {
  timezone: "Asia/Shanghai"
});

常见问题

1. pnpm 安装失败

问题pnpm: command not found

解决

# 使用 npm 安装 pnpm
npm install -g pnpm

# 或使用 corepackNode.js 16.10+
corepack enable
corepack prepare pnpm@latest --activate

2. Node.js 版本过低

问题error: The engine "node" is incompatible

解决

  • 升级 Node.js 到 20+ 版本
  • 或修改 package.json 中的 engines 配置

3. 数据库连接失败

问题Error: connect ETIMEDOUTError: connect ECONNREFUSED

解决

  1. 检查数据库地址和端口是否正确
  2. 检查防火墙是否允许访问
  3. 检查数据库用户名和密码
  4. 编辑 src/lib/db.ts 修改连接配置

4. 端口占用

问题Error: listen EADDRINUSE: address already in use :::5000

解决

# Windows
netstat -ano | findstr :5000
taskkill /PID <进程ID> /F

# Linux/macOS
lsof -ti:5000 | xargs kill -9

5. Excel 文件无法下载

问题:点击下载按钮无反应

解决

  • 检查 public/reports/ 目录是否存在
  • 检查文件是否成功生成(查看历史记录)
  • 浏览器可能拦截下载,检查浏览器设置

6. 定时任务不执行

问题8:01没有自动生成日报

解决

  1. 确认服务是否持续运行(不要关闭终端)
  2. 检查是否有启用的配置is_active=1
  3. 查看日志是否有错误信息
  4. 手动测试定时任务:
    # 访问测试接口(如果有)
    curl http://localhost:5000/api/test-cron
    

项目目录说明

/workspace/projects/
├── src/                      ← 主程序目录
│   ├── app/                  ← Next.js 应用
│   │   ├── page.tsx         ← 主页面(配置、生成、历史)
│   │   ├── api/             ← API 接口
│   │   └── layout.tsx       ← 应用布局
│   ├── lib/                  ← 核心业务逻辑
│   │   ├── db.ts            ← 数据库连接
│   │   ├── report-generator.ts ← 日报生成
│   │   └ init-tables.ts      ← 建表脚本
│   │   └ field-mapping.ts    ← 字段映射
│   ├── server.ts            ← 服务启动(含定时任务)
│   └ components/            ← UI 组件
│   └ hooks/                 ← React Hooks
├── scripts/                  ← 启动脚本
│   ├── dev.sh               ← 开发启动
│   ├── build.sh             ← 构建脚本
│   └ start.sh               ← 生产启动
├── public/                   ← 静态资源
│   └ reports/               ← Excel 文件存储
├── package.json              ← 依赖配置
├── tsconfig.json             ← TS 配置
├── .coze                     ← 启动配置
├── AGENTS.md                 ← 项目说明
└── README.md                 ← 本文件

运行命令总结

# 1. 安装依赖
pnpm install

# 2. 开发环境启动(带热更新)
pnpm run dev
# 访问http://localhost:5000

# 3. 构建生产版本
pnpm run build

# 4. 生产环境启动
pnpm run start

# 5. 代码检查
pnpm run validate

# 6. TypeScript 类型检查
pnpm run ts-check

# 7. 代码格式检查
pnpm run lint

数据库初始化

首次运行需要初始化数据库表:

自动创建的表(不修改原表)

  1. t_daily_report_config - 配置表

    • 存储用户的日报配置
    • 包含字段选择、求和字段等
  2. t_daily_report_history - 历史表

    • 记录每次日报生成的历史
    • 包含文件路径、统计信息等

重要:原表 t_equipment_charge_order 只读取,结构和内容都不会修改。

技术栈说明

  • Next.js 16React全栈框架App Router模式
  • React 19前端UI库
  • TypeScript 5类型安全的JavaScript
  • Tailwind CSS 4实用优先的CSS框架
  • shadcn/ui基于Radix UI的组件库
  • mysql2MySQL数据库驱动
  • node-cron:定时任务调度器
  • xlsxExcel文件生成库

许可和说明

  • 本项目仅供内部使用
  • 数据库连接信息已预配置
  • 定时任务使用北京时间Asia/Shanghai
  • Excel文件存储在 public/reports/ 目录

获取帮助

如有问题,请查看:

  1. 本README文件的常见问题部分
  2. AGENTS.md 项目说明文档
  3. 检查日志文件(如有)
  4. 查看API返回的错误信息

最后更新时间2025-07-08

Description
日报仓库
Readme 3 MiB
Languages
Python 57.4%
JavaScript 30.1%
HTML 6.4%
CSS 4.5%
Batchfile 1.6%