这是一个由东北大学大一学生在2025年6月设计和编写的、基于JavaFX技术栈开发的、功能比较完备、基本实现全流程闭环管理的环保公众监督协同平台,作为课设。项目旨在通过精细化、数字化的业务流程再造,解决传统环保监督模式中存在的流程僵化、职责不清、监管缺失和效率低下等痛点。
本项目的UI实现中,部分图片的加载路径在代码中与数据库文件名进行了拼接,形成了指向特定本地目录的绝对路径。这是一个为了在课程设计环境中快速迭代和稳定演示而采取的设计。
因此,为了完整地体验所有功能,您需要在您的计算机上手动创建相应的文件夹,并将项目提供的图片资源放置到指定位置。详细步骤请参见下方的“快速开始”一节。
-
动态工作流引擎 (Dynamic Workflow Engine)
- 摒弃硬编码逻辑,创新性地通过后台数据库的JSON配置,动态生成不同环保问题专属的、多步骤、多指标的复杂处理流程。
- 实现了业务规则与程序代码的完全解耦,无需重新编译即可适应未来业务的快速变化,具备极高的灵活性和可扩展性。
-
智能化审批与调度 (Intelligent Decision Support)
- 带权复合排序: 借鉴经济学MCDA思想,通过归一化算法,解决了对不同单位、不同性质的异构环保指标进行科学优先级排序的难题。
- 数据驱动的网格员调度: 基于网格员历史工作效能数据(如平均耗时、超时率、通过率),进行多维度评估和智能推荐,将任务分配从主观判断升级为数据决策。
-
专业级持久化与数据可视化 (Professional Persistence & Visualization)
- 采用业界主流的 MySQL + MyBatis 技术栈,通过复杂的动态SQL(含多表JOIN、GROUP BY、JSON字段查询),为数据看板和可视化图表提供强大的聚合数据支持。
- 深入框架底层,自定义实现 MyBatis TypeHandler,优雅地解决了复杂Java对象与数据库JSON字段的自动映射问题,保证了代码的解耦。
-
现代化的UI/UX与服务集成 (Modern UI/UX & Service Integration)
- 采用 FXML与Java代码混合 的模式,通过“UI工厂” (
DisplayUtil) 动态生成瀑布流卡片,实现了状态驱动的响应式UI。 - 成功集成百度地图API,并通过
JavaBridge技术解决了JavaFX与JavaScript之间的跨语言通信难题,提供了地图搜索、点击选点等高级功能。
- 采用 FXML与Java代码混合 的模式,通过“UI工厂” (
-
企业级安全标准 (Enterprise-level Security)
- 遵循业界安全最佳实践,实现了基于 盐值(Salt) + SHA-256 的密码哈希加密存储方案,有效保障用户账户安全。
- 前端: JavaFX 17, FXML, CSS
- 后端: Java 17 (JDK 17)
- 持久化框架: MyBatis 3.5.11
- 数据库: MySQL 8.0
- 项目管理: Apache Maven
请确保您的环境中已安装 Java 17 (JDK), Maven 和 MySQL 8.0。
-
克隆仓库
git clone [https://github.com/rocinc/NEP-Guard-System.git](https://github.com/rocinc/NEP-Guard-System.git) cd NEP-Guard-System -
手动配置图片路径 (关键!)
- 在您的C盘,打开以下路径。请确保路径完全一致:
C:\Users\Administrator\ - 将项目根目录下的
nep_uploads文件夹直接复制到这个路径,确保最终的图片路径是 C:\Users\Administrator\nep_uploads\xxx.png 这样的形式。
- 在您的C盘,打开以下路径。请确保路径完全一致:
-
创建并初始化数据库
- 登录您的MySQL。
- 创建一个新的数据库:
CREATE DATABASE nep_env_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - 使用MySQL Workbench等数据库工具,依次执行项目根目录下的两个SQL文件:
- 先执行
schema.sql(创建表结构) - 再执行
data.sql(导入初始数据)
- 先执行
-
配置数据库连接
- 第一处:MyBatis配置文件
- 打开
src/main/resources/mybatis-config.xml文件。 - 修改
<dataSource>部分的url,username, 和password,使其与您的MySQL配置相匹配。
- 打开
- 第二处:数据库工具类
- 打开
src/main/java/com/nep/nep_env/util/DatabaseUtil.java。 - 在文件中找到定义数据库连接信息的代码行,同样修改 URL, 用户名, 和密码。
- 打开
- 注意: 请确保这两处的配置信息完全一致。
- 第一处:MyBatis配置文件
-
构建并运行项目
- 在项目根目录下,使用Maven进行构建并运行:
mvn clean javafx:run
- 在项目根目录下,使用Maven进行构建并运行:
-
登录任何角色或注册公众监管员帐户
- 参照根目录附的
用户与密码对照表.txt。
- 参照根目录附的