高校固定资产管理一直是校园信息化建设中的重点难点。传统的手工台账或简单电子表格管理方式,在面对数以万计的仪器设备、家具、房产等资产时,往往出现数据更新滞后、盘点效率低下、责任归属不清等问题。我们团队去年为某省属高校实施的这套系统,正是为了解决以下典型痛点:
采用Flask+Vue的组合主要基于以下考量:
技术栈版本说明:
- Python 3.8 + Flask 2.0
- Vue 2.6 + Element UI 2.15
- 数据库:MySQL 8.0(考虑事务完整性) + Redis(缓存资产变更记录)
python复制class AssetWorkflow:
def __init__(self, asset_type):
self.states = {'闲置':0, '使用中':1, '维修中':2}
self.transitions = {
0: [{'trigger':'allocate', 'source':'闲置', 'dest':'使用中'}],
1: [{'trigger':'report', 'source':'使用中', 'dest':'维修中'}]
}
采用复合编码规则:[购置年度][资产大类][使用部门][序列号],例如2022-03-015-00089表示2022年购置的电子类设备(03),归属计算机学院(015),序列号89。在Flask中的实现:
python复制def generate_asset_id(asset):
dept_code = Department.query.get(asset.dept_id).code
return f"{asset.purchase_year}-{asset.category_code}-{dept_code}-{asset.serial:05d}"
解决财务系统(用友NC)与国资系统的数据一致性问题:
基于RBAC扩展的"三维权限"体系:
sql复制CREATE TABLE `permission` (
`role_id` int NOT NULL,
`asset_type` varchar(20) NOT NULL,
`operation` enum('read','edit','delete') NOT NULL,
`scope_level` tinyint COMMENT '1-校级 2-院级 3-科室级'
);
| 组件 | 最低配置 | 推荐配置 | 备注 |
|---|---|---|---|
| Web服务器 | 2核4G | 4核8G | 建议Nginx+uWSGI |
| 数据库 | 4核8G | 8核16G | SSD存储必备 |
| Redis缓存 | 1核2G | 2核4G | 持久化开启 |
初期使用qrcode库直接生成导致内存溢出:
python复制@app.route('/generate_qrcodes')
def gen_qrcodes():
page = request.args.get('page',1)
assets = Asset.query.paginate(page, 100)
for asset in assets.items:
generate_qrcode.delay(asset.id) # celery任务
曾遭遇攻击者上传webshell:
多校区网络延迟导致数据冲突:
这套系统在某高校运行一年后,资产盘点时间从14人天缩减到2小时,设备利用率提升27%,报废资产残值回收率提高40%。特别在疫情防控期间,远程盘点功能发挥了重要作用。