4.4 KiB
4.4 KiB
固定资产管理系统
这是一个前后端分离的固定资产管理系统,覆盖资产台账、借用归还、扫码出入库、挂载关系、维修、报废、统计分析和系统设置等功能。
技术栈
- 前端:Vue 3、Vite、TypeScript、Pinia、Vue Router、Tailwind CSS
- 后端:Express、TypeScript、Prisma、MySQL
- 部署:Docker Compose
目录结构
frontend/:前端页面、组件、状态管理、接口封装backend/:后端路由、控制器、中间件、工具函数backend/prisma/schema.prisma:数据库模型deploy.sh:固定资产系统安全部署脚本scripts/backup-equipment.sh:固定资产系统备份脚本AGENTS.md:仓库协作与多代理分工说明BACKUP.md:备份与回滚说明
本地开发
先复制环境变量模板:
cp .env.example .env
分别安装依赖:
cd frontend && npm install
cd backend && npm install
常用命令:
cd frontend && npm run dev
cd frontend && npm run build
cd backend && npm run dev
cd backend && npm run build
cd backend && npm run prisma:generate
cd backend && npm run prisma:migrate
服务器部署
生产服务器上同时运行两套同类系统:
- 固定资产系统:
/opt/equipment-management - 摄影设备借还系统:
/opt/shebeiguanli
两套系统使用不同的容器、端口、网络和数据卷。部署本项目时,只能操作固定资产系统这一套资源,不能影响 shebeiguanli-* 容器。
执行部署:
cd /opt/equipment-management
./deploy.sh
部署脚本默认会先备份,再重建固定资产系统容器,最后检查健康状态和另一套系统状态。
标准发布命令
在当前这台 Windows 开发机上,推荐直接使用:
$env:DEPLOY_HOST="<服务器地址>"
$env:DEPLOY_PASSWORD="<部署密码>"
.\scripts\publish-to-server.ps1
这个脚本会自动完成:
- 打包当前仓库源码
- 上传到
/opt/equipment-management - 只覆盖固定资产系统源码
- 调用服务器上的安全部署脚本
常用参数:
.\scripts\publish-to-server.ps1 -SkipDeploy
.\scripts\publish-to-server.ps1 -SkipBackup
-SkipDeploy:只同步代码,不执行服务器部署-SkipBackup:执行部署,但跳过备份,不建议常用
备份与回滚
执行备份:
cd /opt/equipment-management
./scripts/backup-equipment.sh
默认只保留最近 3 份备份,备份目录在 /opt/backups/equipment-management。详细说明见 BACKUP.md。
人员与组织同步
后端已预留钉钉中台同步能力,支持同步:
hr_groups-> 部门hr_employee+hr_employee_register-> 使用者
同步接口:
GET /api/sync/hr/preview
POST /api/sync/hr/run
这两个接口都只允许管理员访问。源库必须保持只读,不允许对 SQL Server 做写操作。
建议配置的环境变量:
SQLSERVER_HOST=<sqlserver-host>
SQLSERVER_PORT=1433
SQLSERVER_DATABASE=<sqlserver-database>
SQLSERVER_USER=<sqlserver-user>
SQLSERVER_PASSWORD=<sqlserver-password>
SQLSERVER_ENCRYPT=false
SQLSERVER_TRUST_CERT=true
HR_SYNC_ENABLED=false
HR_SYNC_SCHEDULE=03:00
HR_SYNC_ALLOWED_STATUS_VALUES=3
HR_SYNC_INACTIVE_STATUS_VALUES=5
HR_SYNC_EXCLUDED_DEPARTMENTS=供应商,快递公司,外部交流
HR_SYNC_EXCLUDED_NAME_KEYWORDS=
HR_SYNC_ENABLED=true时,后端会启动每日定时同步HR_SYNC_SCHEDULE建议使用03:00HR_SYNC_ALLOWED_STATUS_VALUES用来标记“哪些源状态算正式员工”,当前建议3HR_SYNC_INACTIVE_STATUS_VALUES用来标记源系统里的非在职状态码- 当前组织同步默认以
hr_employee_register为主口径,hr_employee只用于补充姓名、手机、邮箱、岗位等字段 HR_SYNC_EXCLUDED_DEPARTMENTS用来排除供应商、快递公司等外部对象HR_SYNC_EXCLUDED_NAME_KEYWORDS可选,用来额外排除名字特征- 如果源库是较老版本 SQL Server,建议
SQLSERVER_ENCRYPT=false
当前线上资源
- 前端:
http://<server-host> - 后端:
http://<server-host>:3000/api - 健康检查:
http://<server-host>:3000/api/health
注意事项
- 不要把真实密码、数据库连接串或生产环境地址提交到仓库。
- 涉及 Prisma 模型调整时,先生成客户端,再验证相关接口。
- 发布前默认执行备份,不建议跳过。