档案制度建设评估指标体系搭建与落地实操指南

一、技术栈选型与环境准备

为了实现档案制度建设评估指标的自动化计算与可视化,本指南采用轻量级但功能完备的技术栈,确保零门槛快速落地。我们将使用 Python 作为核心计算语言,Flask 作为 Web 框架,ECharts 进行前端展示。

1. 基础环境安装

首先确保系统中已安装 Python 3.8 或更高版本。为了避免环境污染,我们强烈建议创建独立的虚拟环境。请在终端执行以下命令:

 创建项目目录
mkdir archive_assessment_system
cd archive_assessment_system
创建虚拟环境
python -m venv venv
激活虚拟环境(Windows)
venv\Scripts\activate
激活虚拟环境(Mac/Linux)
source venv/bin/activate

2. 依赖库安装

项目运行所需的依赖库非常精简,直接执行以下命令完成安装:

pip install flask flask-cors

注意:flask-cors 用于解决跨域问题,确保前后端分离调试时不会受阻。

二、评估指标体系数据结构设计

档案制度建设的评估通常包含多个维度,如“制度完备性”、“执行有效性”和“监控持续性”。为了灵活配置指标,我们不将权重写死在代码中,而是采用 JSON 配置文件进行管理。

在项目根目录下创建 config.json 文件,并填入以下完整的配置内容。该配置定义了三级指标体系及其计算权重:

{
"meta": {
"version": "1.0",
"total_score": 100
},
"dimensions": [
{
"id": "d1",
"name": "制度完备性",
"weight": 0.4,
"indicators": [
{
"id": "i1_1",
"name": "管理制度覆盖率",
"weight": 0.5,
"type": "percentage",
"desc": "已发布制度数量 / 计划发布制度数量"
},
{
"id": "i1_2",
"name": "制度更新及时性",
"weight": 0.5,
"type": "score",
"desc": "根据年度修订计划完成情况打分"
}
]
},
{
"id": "d2",
"name": "执行有效性",
"weight": 0.3,
"indicators": [
{
"id": "i2_1",
"name": "培训覆盖率",
"weight": 0.6,
"type": "percentage",
"desc": "参加培训人数 / 应培训总人数"
},
{
"id": "i2_2",
"name": "违规操作次数",
"weight": 0.4,
"type": "reverse_score",
"desc": "基准分100,每发现一次违规扣10分"
}
]
},
{
"id": "d3",
"name": "监控持续性",
"weight": 0.3,
"indicators": [
{
"id": "i3_1",
"name": "定期检查执行率",
"weight": 1.0,
"type": "percentage",
"desc": "实际检查次数 / 计划检查次数"
}
]
}
]
}

三、核心评估算法实现

接下来编写核心的后端逻辑。我们需要一个脚本来加载配置,接收前端提交的原始数据,并根据权重算法计算出最终得分。

档案制度建设评估指标体系搭建与落地实操指南

创建 app.py 文件,这是本系统的核心入口。代码包含完整的加载配置、数据校验和加权计算逻辑:

import json
import os
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
加载配置文件
def load_config():
config_path = os.path.join(os.path.dirname(__file__), 'config.json')
with open(config_path, 'r', encoding='utf-8') as f:
return json.load(f)
CONFIG = load_config()
@app.route('/api/calculate', methods=['POST'])
def calculate_score():
"""
核心计算接口
接收前端提交的各指标原始数值,返回加权计算后的总分及详细分项
"""
try:
input_data = request.json
dimensions = CONFIG.get('dimensions', [])
total_score = 0.0
detail_results = []
for dim in dimensions:
dim_score = 0.0
dim_id = dim['id']
dim_weight = dim['weight']
indicator_details = []
for ind in dim['indicators']:
ind_id = ind['id']
ind_weight = ind['weight']
ind_type = ind['type']
获取前端传入的原始数值,默认为0
raw_value = input_data.get(ind_id, 0)
根据不同类型计算单项得分
calculated_score = 0.0
if ind_type == 'percentage':
百分比类型:直接作为分数(假设传入的是0-100的数值)
calculated_score = float(raw_value)
elif ind_type == 'score':
直接打分类型
calculated_score = float(raw_value)
elif ind_type == 'reverse_score':
反向扣分类型
calculated_score = max(0, 100 - (float(raw_value)  10))
累加维度得分
dim_score += calculated_score  ind_weight
indicator_details.append({
"name": ind['name'],
"raw_value": raw_value,
"score": calculated_score,
"weight": ind_weight
})
维度加权得分
weighted_dim_score = dim_score  dim_weight
total_score += weighted_dim_score
detail_results.append({
"dimension_name": dim['name'],
"dimension_score": dim_score,
"weighted_score": weighted_dim_score,
"indicators": indicator_details
})
return jsonify({
"status": "success",
"total_score": round(total_score, 2),
"details": detail_results
})
except Exception as e:
return jsonify({"status": "error", "message": str(e)}), 500
@app.route('/')
def index():
return "Archive Assessment System API is running."
if __name__ == '__main__':
app.run(debug=True, port=5000)

四、前端可视化面板搭建

为了直观展示评估结果,我们构建一个单页面的 HTML 面板。该页面包含数据录入表单和基于 ECharts 的雷达图展示。

在项目根目录下创建 templates 文件夹,并在其中创建 index.html






档案制度建设评估系统




档案制度建设评估指标录入

综合得分: --

五、系统启动与验证

所有代码已准备就绪,现在启动服务并进行实际操作验证。

1. 启动后端服务

在项目根目录下执行以下命令启动 Flask 服务:

python app.py

终端显示 Running on http://127.0.0.1:5000 即表示启动成功。

2. 打开前端页面

直接使用浏览器打开之前创建的 templates/index.html 文件。

3. 执行评估操作

  1. 录入数据: 在页面表单中输入各项指标的原始数值。例如,将“管理制度覆盖率”设为 85,“违规操作次数”设为 0。
  2. 触发计算: 点击“开始评估”按钮。
  3. 查看结果: 页面下方将立即显示综合总分,雷达图会实时更新,展示“制度完备性”、“执行有效性”和“监控持续性”三个维度的得分分布。

六、自定义指标扩展指南

如果需要增加新的评估指标,无需修改代码逻辑,只需按照以下步骤操作:

  1. 修改配置: 打开 config.json,在 dimensions 数组中增加新的对象。
  2. 更新前端:index.htmlform-container div 中添加对应的输入框,确保 input 的 id 与配置中的 id 一致。
  3. 刷新生效: 重启 Flask 服务,刷新浏览器即可对新指标进行评估。
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统