实战构建档案制度执行力审核系统技术指南

系统架构设计与环境准备

本指南将基于Python Flask框架与SQLite数据库,构建一套轻量级但功能完整的档案制度执行力审核系统。该系统核心逻辑包含三大模块:制度定义(档案建设标准)、执行上报(执行力数据采集)和合规审核(自动化与人工审核)。

开发环境初始化

在开始编写代码前,需要确保本地环境中已安装Python 3.8及以上版本。为了快速搭建Web服务与数据库ORM,我们将使用Flask和Flask-SQLAlchemy。请在终端中执行以下命令安装核心依赖包:

pip install flask flask-sqlalchemy flask-cors requests

安装完成后,新建一个项目目录,例如 archive_audit_system,并在其中创建主程序文件 app.py。所有后续代码将集中在此文件中,确保零配置即可运行。

数据库模型设计:映射制度与执行

数据库设计是系统的基石。我们需要设计三张核心表来对应业务流程:Policy(制度表)ExecutionRecord(执行记录表)AuditLog(审核日志表)。这种设计能够清晰地追踪从制度下发到执行落地的全链路数据。

app.py 中输入以下代码完成数据库模型定义:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
import json
app = Flask(__name__)
配置SQLite数据库,数据将存储在当前目录下的audit.db文件中
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///audit.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
1. 制度表:定义档案建设的要求和标准
class Policy(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)   制度标题
description = db.Column(db.Text, nullable=False)     制度详细要求
deadline = db.Column(db.DateTime, nullable=False)   执行截止时间
required_files = db.Column(db.Text)                 要求提交的文件类型(JSON格式存储)
status = db.Column(db.String(20), default='active')  制度状态:active/archived
2. 执行记录表:记录责任人提交的执行情况
class ExecutionRecord(db.Model):
id = db.Column(db.Integer, primary_key=True)
policy_id = db.Column(db.Integer, db.ForeignKey('policy.id'), nullable=False)
executor = db.Column(db.String(50), nullable=False)  执行人姓名/ID
submit_time = db.Column(db.DateTime, default=datetime.now)  提交时间
evidence_files = db.Column(db.Text)                 提交的证据文件列表(JSON)
self_assessment = db.Column(db.Text)               执行人自评
audit_status = db.Column(db.String(20), default='pending')  审核状态:pending/pass/fail
3. 审核日志表:记录审核过程和结果
class AuditLog(db.Model):
id = db.Column(db.Integer, primary_key=True)
execution_id = db.Column(db.Integer, db.ForeignKey('execution_record.id'), nullable=False)
auditor = db.Column(db.String(50), nullable=False)  审核人
audit_time = db.Column(db.DateTime, default=datetime.now)
result = db.Column(db.String(20), nullable=False)   审核结果
comments = db.Column(db.Text)                       审核意见
初始化数据库
with app.app_context():
db.create_all()

上述代码定义了完整的数据结构。required_filesevidence_files 使用 JSON 字符串存储复杂数据,这是处理档案附件列表的轻量级方案,避免了引入对象存储的复杂性。

核心功能实现:制度发布与执行上报

接下来实现系统的“输入端”。我们需要两个核心接口:一个用于管理员发布新的档案制度,另一个用于普通用户上报执行情况。这两个接口将直接对接数据库模型,实现数据的持久化。

接口一:发布档案制度

实战构建档案制度执行力审核系统技术指南

该接口接收制度标题、描述、截止日期及必须提交的文件清单。在 app.py 中添加以下路由:

@app.route('/api/policy/create', methods=['POST'])
def create_policy():
data = request.json
try:
数据校验
if not data.get('title') or not data.get('deadline'):
return jsonify({'error': '标题和截止时间不能为空'}), 400
new_policy = Policy(
title=data['title'],
description=data.get('description', ''),
deadline=datetime.strptime(data['deadline'], '%Y-%m-%d %H:%M:%S'),
required_files=json.dumps(data.get('required_files', []))
)
db.session.add(new_policy)
db.session.commit()
return jsonify({'message': '制度发布成功', 'policy_id': new_policy.id}), 201
except Exception as e:
return jsonify({'error': str(e)}), 500

接口二:提交执行记录

此接口允许用户关联特定制度ID,上传执行证据。在 app.py 中继续添加:

@app.route('/api/execute/submit', methods=['POST'])
def submit_execution():
data = request.json
try:
policy = Policy.query.get(data['policy_id'])
if not policy:
return jsonify({'error': '指定的制度不存在'}), 404
检查是否逾期
if datetime.now() > policy.deadline:
return jsonify({'error': '已超过执行截止时间,无法提交'}), 400
record = ExecutionRecord(
policy_id=data['policy_id'],
executor=data['executor'],
evidence_files=json.dumps(data.get('evidence_files', [])),
self_assessment=data.get('self_assessment', '')
)
db.session.add(record)
db.session.commit()
return jsonify({'message': '执行记录提交成功', 'record_id': record.id}), 201
except Exception as e:
return jsonify({'error': str(e)}), 500

自动化审核逻辑:执行力合规性校验

这是本系统的“大脑”。为了体现“执行力审核”的技术含量,我们将实现一个半自动化的审核函数。该函数会对比制度要求实际提交,进行初步的合规性检查。例如,检查是否漏交了必须的文件类型。

app.py 中添加以下核心逻辑函数:

def auto_check_compliance(policy_id, evidence_files):
"""
自动校验执行力:检查提交的文件是否满足制度要求
"""
policy = Policy.query.get(policy_id)
required = json.loads(policy.required_files) if policy.required_files else []
submitted = [f['type'] for f in evidence_files]  假设evidence_files包含type字段
missing_files = []
for req in required:
if req not in submitted:
missing_files.append(req)
if missing_files:
return False, f"缺少必要的档案类型: {', '.join(missing_files)}"
return True, "文件类型齐全,符合制度要求"

随后,创建审核接口,调用上述逻辑:

@app.route('/api/audit/review', methods=['POST'])
def audit_execution():
data = request.json
record = ExecutionRecord.query.get(data['record_id'])
if not record:
return jsonify({'error': '执行记录不存在'}), 404
1. 执行自动校验
evidence_list = json.loads(record.evidence_files) if record.evidence_files else []
is_compliant, auto_comment = auto_check_compliance(record.policy_id, evidence_list)
2. 记录审核结果
如果自动校验不通过,且审核人未强制通过,则标记为fail
force_pass = data.get('force_pass', False)
final_result = 'pass' if (is_compliant or force_pass) else 'fail'
audit_log = AuditLog(
execution_id=record.id,
auditor=data['auditor'],
result=final_result,
comments=f"系统自动校验: {auto_comment}. 审核人备注: {data.get('comments', '')}"
)
更新执行记录的状态
record.audit_status = final_result
db.session.add(audit_log)
db.session.commit()
return jsonify({
'message': '审核完成',
'auto_check_result': is_compliant,
'final_status': final_result
})

全流程测试与运行指南

代码编写完毕后,我们需要验证系统的闭环逻辑。请确保 app.py 底部包含启动代码:

if __name__ == '__main__':
app.run(debug=True, port=5000)

在终端运行 python app.py 启动服务。接下来,使用 Python 脚本模拟一次完整的业务流程(发布制度 -> 提交执行 -> 自动审核)。新建一个测试文件 test_system.py

import requests
import json
import time
BASE_URL = "http://127.0.0.1:5000/api"
1. 管理员发布制度:要求提交“会议记录”和“签到表”
print(" 1. 发布档案制度 ")
policy_data = {
"title": "2023年度档案归档制度",
"description": "所有部门必须按时归档",
"deadline": "2025-12-31 23:59:59",
"required_files": ["meeting_minutes", "sign_in_sheet"]
}
r = requests.post(f"{BASE_URL}/policy/create", json=policy_data)
policy_id = r.json()['policy_id']
print(f"制度创建成功,ID: {policy_id}")
2. 员工提交执行:故意漏掉“签到表”
print("\n 2. 员工提交执行(漏交文件) ")
execution_data = {
"policy_id": policy_id,
"executor": "user_001",
"evidence_files": [{"name": "doc1.pdf", "type": "meeting_minutes"}],  只交了一个
"self_assessment": "已完成"
}
r = requests.post(f"{BASE_URL}/execute/submit", json=execution_data)
record_id = r.json()['record_id']
print(f"执行提交成功,ID: {record_id}")
3. 系统审核:触发自动校验
print("\n 3. 触发审核流程 ")
audit_data = {
"record_id": record_id,
"auditor": "admin",
"force_pass": False,  不强制通过
"comments": "请核对系统自动检查结果"
}
r = requests.post(f"{BASE_URL}/audit/review", json=audit_data)
result = r.json()
print(f"审核结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
预期结果:auto_check_result 为 False,final_status 为 fail
系统会自动提示缺少 "sign_in_sheet"

运行 python test_system.py。如果看到返回的 JSON 中提示“缺少必要的档案类型: sign_in_sheet”且最终状态为“fail”,说明自动化审核逻辑生效成功。此时,你已拥有了一个具备基础AI能力的档案制度执行力审核系统。通过扩展 auto_check_compliance 函数,你可以接入更复杂的规则引擎,例如调用NLP接口分析档案内容质量,从而实现更深度的技术落地。

AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

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

微信扫码关注安答联动

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

安答联动档案管理系统