B/S版档案软件适配环保资质合规的实操技术指南
前置环境准备
1.1 服务器基础配置
使用CentOS 7.9操作系统的服务器(物理机或云主机均可),执行以下命令更新系统并关闭不必要的安全限制:
1. 更新系统包:
``` yum update -y ```2. 关闭防火墙并禁用SELinux(避免端口和权限冲突):
``` systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ```1.2 部署基础依赖环境
安装B/S版档案软件必需的Nginx(前端反向代理)、MySQL(数据库)、Python(后端运行环境),并确认版本匹配:
1. 安装依赖包:
``` yum install nginx mysql-server python3-devel mysql-devel -y ```2. 升级Python至3.8+版本(若默认版本过低):
``` yum install https://repo.ius.io/ius-release-el7.rpm -y yum install python38 -y ```3. 安装Python第三方库:
``` pip3 install flask pymysql datetime ```B/S版档案软件核心适配环保资质要求
2.1 数据库添加环保资质必填字段
为档案表新增环保资质存储字段,执行完整SQL语句:
``` ALTER TABLE archives ADD COLUMN env_qualification_type VARCHAR(50) NOT NULL DEFAULT ''; ALTER TABLE archives ADD COLUMN env_qualification_number VARCHAR(100) NOT NULL DEFAULT ''; ALTER TABLE archives ADD COLUMN env_qualification_expire DATE NOT NULL DEFAULT '2000-01-01'; ALTER TABLE archives ADD COLUMN env_qualification_attach TEXT NOT NULL DEFAULT ''; ```该语句完全覆盖生态环境部门要求的环保资质核心数据项:资质类型(如危险废物经营许可证)、资质编号、有效期、附件路径,无遗漏字段。
2.2 Nginx前端配置环保资质接口转发
修改Nginx配置文件/etc/nginx/conf.d/archives.conf,添加环保资质接口转发规则,完整配置代码:
``` server { listen 80; server_name your_domain_name; 替换为你的实际域名或服务器公网IP root /var/www/archives; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } 环保资质专用接口配置 location /api/env-qualification { proxy_pass http://127.0.0.1:5000/api/env-qualification; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ```
配置完成后重启Nginx生效:
``` systemctl restart nginx ```2.3 后端添加环保资质强制校验逻辑
修改档案软件后端核心文件(app.py),添加环保资质必填项和有效期校验规则,完整代码如下:
```python from flask import Flask, request, jsonify import pymysql from datetime import datetime app = Flask(__name__) 数据库连接配置(直接使用root,实操零门槛,生产环境需调整权限) db = pymysql.connect(host='127.0.0.1', user='root', password='your_mysql_root_password', db='archives_db', charset='utf8') cursor = db.cursor() @app.route('/api/env-qualification', methods=['POST']) def submit_env_qualification(): data = request.get_json() 强制校验3项核心字段完整性 required_fields = ['env_qualification_type', 'env_qualification_number', 'env_qualification_expire'] for field in required_fields: if not data.get(field): return jsonify({'code': 400, 'msg': f'缺少必填项:{field}'}), 400 校验有效期是否过期 try: expire_date = datetime.strptime(data['env_qualification_expire'], '%Y-%m-%d') if expire_date < datetime.now(): return jsonify({'code': 400, 'msg': '环保资质有效期已过期,请更新后提交'}), 400 except ValueError: return jsonify({'code': 400, 'msg': '有效期格式错误,需为YYYY-MM-DD'}), 400 存储数据到数据库 sql = """INSERT INTO archives (env_qualification_type, env_qualification_number, env_qualification_expire, env_qualification_attach) VALUES (%s, %s, %s, %s)""" cursor.execute(sql, (data['env_qualification_type'], data['env_qualification_number'], data['env_qualification_expire'], data['env_qualification_attach'])) db.commit() return jsonify({'code': 200, 'msg': '环保资质提交成功'}), 200 if __name__ == '__main__': 监听所有内网IP,避免公网访问限制 app.run(host='0.0.0.0', port=5000, debug=False) ```重点操作:替换代码中your_mysql_root_password为你的MySQL root密码,替换your_domain_name为实际域名,否则数据库连接和前端接口无法访问。
实操验证与上线检查
3.1 后端服务启动测试
启动后端服务:
``` python3 app.py ```确认终端输出「 Running on http://0.0.0.0:5000」则服务启动成功。
3.2 接口功能测试
使用curl发送测试请求,验证接口逻辑:
``` curl -X POST http://你的域名/api/env-qualification \ -H "Content-Type: application/json" \ -d '{ "env_qualification_type": "危险废物经营许可证", "env_qualification_number": "RW202300123", "env_qualification_expire": "2025-12-31", "env_qualification_attach": "/uploads/qualification/RW202300123.pdf" }' ```返回「{"code":200,"msg":"环保资质提交成功"}」则接口功能正常。
3.3 前端页面最终验证
登录B/S版档案系统前端,进入档案录入模块,确认环保资质字段已显示,且有效期过期的资质无法提交、缺失必填项会弹出错误提示,完全符合环保监管的数据要求。
常见问题排查
4.1 前端无环保资质字段
执行以下命令清除Nginx缓存后刷新浏览器(强制刷新:Ctrl+F5):
``` nginx -s reload rm -rf /var/cache/nginx/ ```4.2 数据库连接失败
检查MySQL服务状态:
``` systemctl status mysqld ```若服务未启动,执行systemctl start mysqld;若密码修改,同步更新app.py中的数据库密码配置。