33 KiB
需求定义文档
系统分析
1. 项目介绍
1.1 项目背景
环境监测系统(EMS)是为解决城市环境问题而设计的综合性管理平台。随着城市化进程加速,环境污染问题日益凸显,传统的环境问题上报和处理机制存在流程繁琐、响应缓慢、缺乏透明度等问题。本系统旨在通过数字化手段,构建一个连接公众、管理部门和执行人员的环境监测与治理平台,实现环境问题的快速发现、高效处理和全程监督。
1.2 项目目标
- 建立闭环管理机制:构建从问题发现、上报、审核、分配、处理到结果反馈的完整闭环流程,确保每个环境问题都能得到妥善解决。
- 提高处理效率:通过流程优化和智能算法,缩短环境问题从发现到解决的时间,提高环境治理效率。
- 增强公众参与:为公众提供便捷的问题上报渠道,增强公众参与环境治理的积极性和获得感。
- 辅助决策分析:通过数据可视化和多维度分析,为管理层提供决策支持,优化资源配置和治理策略。
- 提升治理透明度:实现环境问题处理全过程可追踪、可监督,增强政府工作透明度和公信力。
2. 业务分析
2.1 业务痛点
- 信息孤岛:环境问题信息分散在不同部门和系统中,缺乏统一管理和共享机制。
- 流程断裂:传统环境问题处理流程存在多个环节,各环节之间衔接不畅,容易导致问题处理延误或遗漏。
- 资源分配不均:缺乏科学的任务分配机制,导致人力资源利用不均衡,部分区域问题积压严重。
- 监督机制不足:公众难以了解问题处理进度和结果,缺乏有效的监督渠道。
- 数据分析不足:未能充分利用环境问题数据进行趋势分析和预测,难以支持科学决策。
2.2 业务价值
- 提升公众满意度:通过快速响应和处理环境问题,提高公众对环境治理工作的满意度。
- 优化资源配置:基于数据分析和智能算法,实现人力资源的科学分配,提高资源利用效率。
- 降低管理成本:减少人工干预和纸质流程,降低管理成本,提高工作效率。
- 提升环境质量:通过高效处理环境问题,改善城市环境质量,提升居民生活品质。
- 强化问责机制:通过全流程记录和追踪,明确责任分工,强化问责机制。
2.3 核心业务流程
环境监测系统的核心业务流程包括问题发现与上报、内容审核、任务创建与分配、任务执行与监督、结果审核与反馈等环节,形成一个完整的闭环管理体系。
- 问题发现与上报:公众通过移动端应用发现环境问题并提交反馈,包括问题描述、位置信息和图片证据。
- 内容审核:系统通过AI技术对上报内容进行初步审核,筛选出有效信息,并由主管进行人工复核确认。
- 任务创建与分配:对于审核通过的反馈,系统自动创建任务,并基于智能算法为任务推荐最合适的处理人员。
- 任务执行与监督:网格员接收任务后,前往现场处理问题,并记录处理过程和结果。
- 结果审核与反馈:主管对处理结果进行审核,确认任务是否完成,并将处理结果反馈给问题上报者。
3. 功能分析
3.1 用户角色分析
环境监测系统涉及四类主要用户角色,每个角色在系统中承担不同的职责:
- 公众用户:系统的信息输入端,负责发现和上报环境问题,是系统的主要服务对象。
- 网格员:系统的执行端,负责接收任务并前往现场处理环境问题,是系统的核心操作人员。
- 主管:系统的管理端,负责审核反馈、分配任务、审核结果,是系统的关键决策者。
- 管理员:系统的维护端,负责用户管理、权限设置、系统配置等基础支撑工作。
3.2 用例分析
3.2.1 用例图
graph TD
%% 定义角色
PublicUser["公众用户"]
GridWorker["网格员"]
Supervisor["主管"]
Admin["管理员"]
%% 定义用例
UC1["注册与登录"]
UC2["提交环境问题反馈"]
UC3["查看反馈处理进度"]
UC4["接收任务通知"]
UC5["执行任务"]
UC6["提交处理结果"]
UC7["审核反馈内容"]
UC8["分配任务"]
UC9["审核处理结果"]
UC10["查看统计数据"]
UC11["管理用户账户"]
UC12["配置系统参数"]
%% 建立关系
PublicUser --> UC1
PublicUser --> UC2
PublicUser --> UC3
GridWorker --> UC1
GridWorker --> UC4
GridWorker --> UC5
GridWorker --> UC6
Supervisor --> UC1
Supervisor --> UC7
Supervisor --> UC8
Supervisor --> UC9
Supervisor --> UC10
Admin --> UC1
Admin --> UC10
Admin --> UC11
Admin --> UC12
%% 设置样式
classDef actor fill:#f9f,stroke:#333,stroke-width:2px
classDef usecase fill:#ccf,stroke:#33f,stroke-width:1px
class PublicUser,GridWorker,Supervisor,Admin actor
class UC1,UC2,UC3,UC4,UC5,UC6,UC7,UC8,UC9,UC10,UC11,UC12 usecase
3.2.2 主要用例描述
用例1:提交环境问题反馈
- 参与者:公众用户
- 前置条件:用户已登录系统
- 基本流程:
- 用户选择"提交反馈"功能
- 系统显示反馈提交表单
- 用户填写问题标题、描述、污染类型、严重程度
- 用户上传问题现场图片
- 用户标记问题发生的地理位置
- 用户提交表单
- 系统验证表单数据
- 系统生成唯一事件ID并保存反馈信息
- 系统返回提交成功提示
- 替代流程:
- 如果表单验证失败,系统提示错误信息并返回表单页面
- 如果图片上传失败,系统提示重新上传
- 后置条件:反馈信息被保存,状态设为"待审核"
用例2:审核反馈内容
- 参与者:主管
- 前置条件:主管已登录系统,有待审核的反馈
- 基本流程:
- 主管进入反馈审核页面
- 系统显示待审核反馈列表
- 主管选择一条反馈查看详情
- 系统显示反馈详细信息和AI审核建议
- 主管审核内容并做出决定(通过/驳回)
- 如果通过,主管确认创建任务
- 如果驳回,主管填写驳回理由
- 系统更新反馈状态并通知相关人员
- 替代流程:
- 如果需要更多信息,主管可以暂缓决定,标记为"需补充信息"
- 后置条件:反馈状态更新为"已处理"或"已驳回"
用例3:执行任务
- 参与者:网格员
- 前置条件:网格员已登录系统,已接受任务
- 基本流程:
- 网格员查看任务详情
- 系统显示任务信息和位置
- 网格员请求路径规划
- 系统生成最优路径
- 网格员前往现场处理问题
- 网格员记录处理过程
- 网格员上传处理结果和证明材料
- 系统保存处理信息并更新任务状态
- 替代流程:
- 如果任务无法完成,网格员可提交说明并请求重新分配
- 后置条件:任务状态更新为"已提交",等待主管审核
3.3 活动图分析
3.3.1 反馈提交与处理活动图
stateDiagram-v2
[*] --> 发现环境问题
发现环境问题 --> 填写反馈表单
填写反馈表单 --> 上传图片
上传图片 --> 标记位置
标记位置 --> 提交反馈
提交反馈 --> AI自动审核
state AI自动审核 {
[*] --> 内容分析
内容分析 --> 垃圾信息检测
垃圾信息检测 --> 分类与评级
分类与评级 --> [*]
}
AI自动审核 --> 判断AI审核结果
判断AI审核结果 --> 明显无效: AI拒绝
判断AI审核结果 --> 需人工确认: 需确认
明显无效 --> 标记为AI_REJECTED
标记为AI_REJECTED --> 通知提交者
通知提交者 --> [*]
需人工确认 --> 主管人工审核
主管人工审核 --> 判断审核结果
判断审核结果 --> 驳回: 不通过
判断审核结果 --> 通过: 通过
驳回 --> 填写驳回理由
填写驳回理由 --> 更新状态为REJECTED
更新状态为REJECTED --> 通知提交者反馈被驳回
通知提交者反馈被驳回 --> [*]
通过 --> 创建任务
创建任务 --> 更新反馈状态为PROCESSED
更新反馈状态为PROCESSED --> 任务分配流程
任务分配流程 --> [*]
3.3.2 任务分配与执行活动图
stateDiagram-v2
[*] --> 任务创建完成
任务创建完成 --> 选择分配方式
state 选择分配方式 {
[*] --> 手动分配
[*] --> 智能推荐
智能推荐 --> 运行分配算法
运行分配算法 --> 推荐最佳人选
推荐最佳人选 --> 确认人选
手动分配 --> 选择特定网格员
选择特定网格员 --> 确认人选
确认人选 --> [*]
}
选择分配方式 --> 创建任务分配记录
创建任务分配记录 --> 更新任务状态为ASSIGNED
更新任务状态为ASSIGNED --> 通知网格员
通知网格员 --> 网格员接收通知
网格员接收通知 --> 判断是否接受
判断是否接受 --> 拒绝: 拒绝
判断是否接受 --> 接受: 接受
拒绝 --> 选择分配方式
接受 --> 更新状态为IN_PROGRESS
更新状态为IN_PROGRESS --> 获取路径规划
获取路径规划 --> 前往现场处理
前往现场处理 --> 记录处理过程
记录处理过程 --> 上传处理结果
上传处理结果 --> 提交处理结果
提交处理结果 --> 更新状态为SUBMITTED
更新状态为SUBMITTED --> 主管审核结果
主管审核结果 --> 判断结果是否合格
判断结果是否合格 --> 不合格: 不合格
判断结果是否合格 --> 合格: 合格
不合格 --> 填写原因要求重新处理
填写原因要求重新处理 --> 获取路径规划
合格 --> 确认任务完成
确认任务完成 --> 更新任务状态为APPROVED
更新任务状态为APPROVED --> 更新反馈状态为CLOSED
更新反馈状态为CLOSED --> 通知反馈提交者
通知反馈提交者 --> 更新统计数据
更新统计数据 --> [*]
4. 可行性分析
4.1 技术可行性
- 前端技术:采用Vue 3框架构建用户界面,结合Element Plus组件库,可以快速开发出美观、响应式的Web应用,满足不同设备的访问需求。
- 后端技术:基于Spring Boot 3框架和Java 17,具备高性能、高并发处理能力,能够满足系统的稳定性和扩展性需求。
- 地图服务:可以集成百度地图、高德地图等成熟的地图API,实现地理位置标记、路径规划等功能。
- AI技术:可以利用现有的自然语言处理和图像识别技术,实现对反馈内容的智能分析和审核。
- 数据存储:采用JSON文件存储方案,简化部署和维护,适合中小规模系统的快速实现。
4.2 经济可行性
- 开发成本:采用主流开源框架和技术栈,降低开发成本和技术门槛。
- 维护成本:模块化设计和完善的文档,降低后期维护和升级成本。
- 投资回报:通过提高环境问题处理效率,减少人力资源浪费,长期来看具有良好的投资回报。
- 社会效益:改善城市环境质量,提升居民生活满意度,产生显著的社会效益。
4.3 操作可行性
- 用户接受度:系统界面设计简洁直观,操作流程符合用户习惯,易于被各类用户接受和使用。
- 培训需求:系统操作简单,只需简单培训即可上手,降低推广和应用门槛。
- 业务适应性:系统流程设计符合环境问题处理的实际业务需求,能够无缝融入现有工作流程。
4.4 法律可行性
- 数据隐私:系统设计符合数据保护法规要求,对用户隐私数据进行加密存储和严格权限控制。
- 知识产权:系统开发过程中使用的第三方库和组件均为开源或已获得授权,不存在知识产权风险。
- 合规性:系统功能和流程设计符合相关法律法规和行业标准,确保合法合规运营。
5. 整体业务流程
下图描述了从公众发现问题、上报、到平台内部流转、处理、并最终反馈结果的完整闭环业务流程。
flowchart TD
%% 定义样式
classDef public fill:#d4f1f9,stroke:#05a8e5,color:#333
classDef platform fill:#ffe6cc,stroke:#f7a128,color:#333
classDef worker fill:#d5e8d4,stroke:#82b366,color:#333
classDef supervisor fill:#e1d5e7,stroke:#9673a6,color:#333
classDef decision fill:#f8cecc,stroke:#b85450,color:#333
classDef start_end fill:#f5f5f5,stroke:#666666,color:#333,stroke-width:2px
%% 流程开始
A([开始]) --> B["[公众端] 发现环境问题"]
B --> C["[公众端] 提交反馈<br>(标题/描述/图片/位置)"]
%% 平台接收与AI处理
C --> D["[平台] 接收反馈<br>生成唯一事件ID"]
D --> E{"[平台] AI自动审核<br>分析内容/分类"}
%% AI审核分支
E -- "明显无效" --> F1["[平台] 标记为AI_REJECTED"]
F1 --> F2["[平台] 通知提交者"]
F2 --> Z1([结束])
E -- "需人工确认" --> G["[主管] 查看反馈详情<br>进行人工审核"]
%% 主管审核分支
G --> H{"[主管] 审核决定"}
H -- "驳回" --> I1["[主管] 填写驳回理由"]
I1 --> I2["[平台] 更新状态为REJECTED"]
I2 --> I3["[平台] 通知提交者"]
I3 --> Z2([结束])
%% 审核通过,创建任务
H -- "通过" --> J1["[主管] 确认反馈有效"]
J1 --> J2["[平台] 自动创建结构化任务"]
J2 --> J3["[平台] 更新反馈状态为PROCESSED"]
%% 任务分配
J3 --> K1{"[主管] 选择分配方式"}
K1 -- "手动分配" --> K2["[主管] 选择特定网格员"]
K1 -- "智能推荐" --> K3["[平台] 运行分配算法<br>考虑位置/负载/专长"]
K3 --> K4["[平台] 推荐最佳人选"]
K4 --> K2
K2 --> K5["[平台] 创建任务分配记录<br>更新任务状态为ASSIGNED"]
K5 --> K6["[平台] 通知网格员"]
%% 网格员处理
K6 --> L1["[网格员] 接收任务通知"]
L1 --> L2{"[网格员] 接受任务?"}
L2 -- "拒绝" --> K1
L2 -- "接受" --> L3["[网格员] 更新任务状态为IN_PROGRESS"]
L3 --> L4["[网格员] 查看任务详情<br>获取路径规划"]
L4 --> L5["[网格员] 前往现场处理"]
L5 --> L6["[网格员] 记录处理过程<br>上传证明材料"]
L6 --> L7["[网格员] 提交处理结果<br>更新状态为SUBMITTED"]
%% 主管审核结果
L7 --> M1["[主管] 审核处理结果"]
M1 --> M2{"[主管] 结果是否合格?"}
M2 -- "不合格" --> M3["[主管] 填写原因<br>要求重新处理"]
M3 --> L4
%% 完成流程
M2 -- "合格" --> N1["[主管] 确认任务完成"]
N1 --> N2["[平台] 更新任务状态为APPROVED"]
N2 --> N3["[平台] 更新反馈状态为CLOSED"]
N3 --> N4["[平台] 通知反馈提交者"]
N4 --> N5["[平台] 更新统计数据"]
N5 --> O["[决策层] 查看数据看板<br>分析环境趋势"]
O --> Z3([结束])
%% 为节点添加类别
class A,Z1,Z2,Z3 start_end
class B,C,F2,I3,N4 public
class D,E,F1,I2,J2,J3,K3,K4,K5,K6,N2,N3,N5 platform
class G,H,I1,J1,K1,K2,M1,M2,M3,N1 supervisor
class L1,L2,L3,L4,L5,L6,L7 worker
class O decision
6. 功能性需求
6.1 功能层次方框图
flowchart TD
%% 用户交互层
subgraph "用户交互层"
direction LR
C["公众服务模块\n(问题上报)"]
H["个人中心模块\n(我的反馈/资料)"]
D["管理驾驶舱\n(数据决策)"]
end
%% 核心业务层
subgraph "核心业务层"
direction LR
AI["AI分析模块\n(内容审核)"]
E["任务管理模块\n(分配、流转、执行)"]
end
%% 应用支撑层
subgraph "应用支撑层"
direction LR
F["网格与地图模块\n(LBS & 寻路)"]
I["文件服务模块\n(附件存取)"]
end
%% 基础服务层
subgraph "基础服务层"
direction LR
B["用户与认证模块"]
G["系统管理模块\n(用户/权限)"]
J["日志审计模块"]
end
%% 定义关系
C -- "提交反馈" --> AI
AI -- "分析结果" --> E
C -- "附件" --> I
E -- "调用" --> F
E -- "任务附件" --> I
E -- "统计数据" --> D
H -- "查询个人数据" --> E
%% 基础服务支撑所有上层模块 (关系隐含)
G -- "管理" --> B
classDef userLayer fill:#d4f1f9,stroke:#05a8e5;
classDef coreLayer fill:#ffe6cc,stroke:#f7a128;
classDef appSupportLayer fill:#d5e8d4,stroke:#82b366;
classDef baseLayer fill:#e1d5e7,stroke:#9673a6;
class C,H,D userLayer;
class AI,E coreLayer;
class F,I appSupportLayer;
class B,G,J baseLayer;
6.2 需求描述
6.2.1 用户与认证模块
| 功能名称 | 用户与认证模块 |
|---|---|
| 优先级 | 高 |
| 业务背景 | 作为系统安全的基础,本模块负责管理所有用户的身份验证和访问控制,确保系统资源只能被授权用户访问,同时提供灵活的角色权限管理。 |
| 功能说明 | 1. 用户认证:基于JWT (JSON Web Token) 的安全认证机制,支持账号密码登录,提供令牌刷新功能。 2. 权限控制:基于RBAC (基于角色的访问控制) 模型,预设管理员、主管、网格员等角色,每个角色拥有特定的API访问权限。 3. 密码管理:支持安全的密码重置流程,包括邮箱验证码验证,以及定期密码更新提醒。 4. 会话管理:支持单点登录或多设备登录控制,可配置会话超时策略。 |
| 约束条件 | 1. 密码必须符合复杂度要求(至少8位,包含大小写字母、数字和特殊字符)。 2. 敏感操作(如修改权限)需要二次验证。 3. 密码在数据库中必须使用BCrypt等强哈希算法加密存储。 |
| 相关查询 | 1. 按用户名、邮箱或手机号查询用户信息。 2. 查询特定角色的所有用户列表。 3. 查询用户的权限和访问历史。 |
| 其他需求 | 1. 登录失败超过预设次数后,账户应被临时锁定。 2. 系统应记录所有关键安全事件(登录、权限变更等)的审计日志。 |
| 裁剪说明 | 不可裁剪,此为系统安全的基础组件。 |
6.2.2 反馈管理模块
| 功能名称 | 反馈管理模块 |
|---|---|
| 优先级 | 高 |
| 业务背景 | 作为系统的核心输入端口,本模块负责收集、处理和跟踪所有环境问题反馈,是连接公众与管理部门的桥梁,也是后续任务创建的数据源。 |
| 功能说明 | 1. 反馈提交:提供结构化的表单接口,支持文字描述、污染类型分类、严重程度评估、地理位置标记和多媒体附件上传。 2. AI内容审核:集成智能审核服务,对反馈内容进行自动分析,识别垃圾信息、重复提交,并进行初步的分类和紧急程度评估。 3. 人工审核工作台:为主管提供高效的反馈审核界面,支持批量处理、快速预览和详情查看。 4. 状态追踪:完整记录反馈从提交到处理完成的全生命周期状态变更,支持多维度的统计和查询。 |
| 约束条件 | 1. 反馈提交必须包含至少一张图片和准确的地理位置信息。 2. AI审核结果仅作为参考,最终决定权在人工审核者手中。 3. 对于紧急程度被标记为"高"的反馈,系统应在1小时内完成审核。 |
| 相关查询 | 1. 按状态、时间段、区域、污染类型等多维度查询反馈列表。 2. 查看特定反馈的详细信息和处理历史。 3. 统计不同类型反馈的数量分布和处理效率。 |
| 其他需求 | 1. 支持反馈的优先级标记和升级处理。 2. 对于同一区域短时间内的多个相似反馈,系统应能智能识别并提示可能的重复。 |
| 裁剪说明 | AI审核功能可在初期简化实现,但反馈的基本提交和人工审核流程不可裁剪。 |
6.2.3 任务管理模块
| 功能名称 | 任务管理模块 |
|---|---|
| 优先级 | 高 |
| 业务背景 | 本模块是系统的核心业务处理单元,负责将审核通过的反馈转化为可执行的工作任务,并对任务的分配、执行和完成进行全流程管理。 |
| 功能说明 | 1. 任务创建:支持从反馈自动生成任务,也支持主管手动创建临时任务,包含任务描述、位置、截止时间、优先级等信息。 2. 智能分配:基于多因素(网格员位置、当前负载、专业技能、历史表现)的任务分配算法,为每个任务推荐最合适的处理人员。 3. 任务执行跟踪:记录任务的每个状态变更(已分配、已接受、进行中、已提交、已审核),支持网格员实时上报处理进度。 4. 结果审核:主管对网格员提交的处理结果进行审核,可以通过或驳回,并提供反馈意见。 5. 任务看板:直观展示不同状态任务的数量和分布,支持拖拽操作进行状态更新。 |
| 约束条件 | 1. 任务必须关联到一个有效的反馈或由授权主管手动创建。 2. 任务分配时必须考虑网格员的工作区域和当前任务负载。 3. 高优先级任务应在24小时内分配并开始处理。 4. 任务提交时必须包含处理过程描述和至少一张结果照片。 |
| 相关查询 | 1. 按状态、负责人、时间段、区域等多维度查询任务列表。 2. 查看特定任务的详细信息、处理历史和相关反馈。 3. 统计不同网格员的任务完成率、平均处理时长等绩效指标。 |
| 其他需求 | 1. 支持任务的紧急程度升级和重新分配。 2. 对于长时间未处理的任务,系统应自动发送提醒通知。 3. 支持批量导出任务报告,用于绩效评估和工作汇报。 |
| 裁剪说明 | 智能分配算法可以在初期简化实现,但任务的基本创建、分配和状态管理功能不可裁剪。 |
6.2.4 网格与地图模块
| 功能名称 | 网格与地图模块 |
|---|---|
| 优先级 | 中 |
| 业务背景 | 本模块负责对地理空间进行网格化管理,将城市区域划分为可管理的网格单元,并为任务执行提供地理位置支持和路径规划。 |
| 功能说明 | 1. 网格定义与管理:支持管理员定义和维护城市网格系统,包括网格的坐标、属性(如是否为障碍物)和责任人分配。 2. A*寻路算法服务:基于网格系统和实时路况,为网格员提供从当前位置到任务地点的最优路径规划,考虑距离、交通状况和障碍物。 3. 地图可视化:在地图上直观展示反馈点、任务分布和网格员位置,支持多种筛选条件和图层切换。 4. 区域统计:基于网格系统,生成环境问题热力图,识别高发区域和问题类型分布。 |
| 约束条件 | 1. 网格系统应支持多级划分,最小网格单元不应大于500米×500米。 2. 路径规划应考虑实际道路情况和障碍物,避免不可通行区域。 3. 地图数据应定期更新,确保准确性。 |
| 相关查询 | 1. 查询特定区域内的网格定义和属性。 2. 查询特定网格的历史问题记录和统计数据。 3. 获取两点间的最优路径规划。 |
| 其他需求 | 1. 支持网格责任人的灵活调整和临时替换。 2. 地图界面应支持常见的交互操作(缩放、平移、点选)。 3. 支持离线地图数据缓存,保证在网络不稳定情况下的基本功能。 |
| 裁剪说明 | A*寻路算法的高级功能(如考虑实时交通)可以在后期迭代中实现,但基本的网格定义和地图展示功能不应裁剪。 |
6.2.5 决策支持模块
| 功能名称 | 决策支持模块 (管理驾驶舱) |
|---|---|
| 优先级 | 中 |
| 业务背景 | 本模块旨在将系统中沉淀的大量业务数据转化为有价值的决策洞察,帮助管理层了解环境状况、评估治理效果、优化资源配置。 |
| 功能说明 | 1. 核心指标看板:实时展示关键业务指标,如待处理反馈数、进行中任务数、平均处理时长、按时完成率等。 2. 多维度分析:支持按时间、区域、污染类型、处理人等多个维度对数据进行交叉分析和趋势展示。 3. 热力图可视化:在地图上以热力图形式展示环境问题的分布密度,直观识别高发区域。 4. 绩效评估:对网格员和区域的工作效率、问题解决质量等进行量化评估,生成排名和对比分析。 5. 预警机制:基于历史数据和趋势分析,对可能出现的环境风险提前预警。 |
| 约束条件 | 1. 数据分析应基于实时或准实时的业务数据,确保决策的时效性。 2. 图表和报表应支持多种导出格式(PDF、Excel等),便于进一步分析和汇报。 3. 敏感数据(如个人绩效)的访问应受到严格权限控制。 |
| 相关查询 | 1. 按自定义时间范围查询各类统计指标。 2. 查询特定区域或网格员的历史表现数据。 3. 生成定制化的数据报表和分析图表。 |
| 其他需求 | 1. 支持数据看板的个性化配置,满足不同管理者的关注点。 2. 提供数据异常检测和提醒功能,及时发现数据波动。 3. 支持定期自动生成并发送统计报告。 |
| 裁剪说明 | 高级分析功能(如预测模型)可以在后期迭代中实现,但基本的数据统计和可视化功能不应裁剪。 |
7. 需求规定
7.1 一般性需求
-
数据集中管理与共享:系统应采用统一的数据存储和访问机制,确保各模块间的数据一致性和实时共享。所有业务数据应按照标准化格式进行存储,并通过规范的API进行访问,避免数据孤岛。
-
高可用性与可靠性:系统应保证7x24小时的稳定运行,关键业务流程(如反馈提交、任务分配)的可用性应达到99.9%以上。应实现适当的错误处理和故障恢复机制,确保在出现异常情况时能够快速恢复。
-
安全性与合规性:
- 应用SSL/TLS加密保护所有网络通信。
- 实现严格的认证和授权机制,确保用户只能访问其权限范围内的数据和功能。
- 敏感数据(如用户密码)必须加密存储,并限制访问权限。
- 系统应保留完整的操作日志,支持安全审计和问题追溯。
- 符合相关的数据保护法规和隐私要求。
-
可扩展性与模块化:系统架构应支持水平扩展和功能模块的灵活添加。核心组件应设计为松耦合的,便于独立升级和替换。API设计应考虑向后兼容性,确保系统可以平滑演进。
-
用户体验优化:
- 界面设计应简洁直观,符合现代Web应用的设计标准。
- 关键操作路径应尽量简化,减少用户点击次数。
- 系统响应时间应控制在可接受范围内,核心API的平均响应时间不超过500ms。
- 提供适当的操作反馈和状态提示,增强用户对系统的信任感。
- 支持响应式设计,确保在不同设备(PC、平板、手机)上的良好体验。
-
国际化与本地化:系统应支持多语言界面,初期至少支持中英文切换。日期、时间、数字等格式应根据用户的区域设置进行适当显示。
-
可维护性与可测试性:系统代码应遵循统一的编码规范和设计模式,保持良好的可读性和可维护性。核心业务逻辑应有充分的单元测试覆盖,便于后续的功能迭代和质量保障。
8. 数据描述
8.1 用户账户 (UserAccount) 数据结构
| 字段名 | 描述 | 数据类型 | 约束条件 | 是否必填 |
|---|---|---|---|---|
id |
用户唯一标识符 | Long | 主键,自增 | 是 |
name |
用户姓名 | String | 最大长度50 | 是 |
phone |
手机号码 | String | 符合手机号格式 | 是 |
email |
电子邮箱 | String | 符合邮箱格式 | 是 |
password |
密码(加密存储) | String | 最小长度8,包含字母、数字和特殊字符 | 是 |
gender |
性别 | Enum | MALE, FEMALE, OTHER | 否 |
role |
用户角色 | Enum | ADMIN, SUPERVISOR, GRID_WORKER, PUBLIC_USER | 是 |
status |
账户状态 | Enum | ACTIVE, INACTIVE, LOCKED | 是 |
gridX |
网格X坐标(仅网格员) | Integer | 非负整数 | 否 |
gridY |
网格Y坐标(仅网格员) | Integer | 非负整数 | 否 |
createdAt |
账户创建时间 | DateTime | ISO 8601格式 | 是 |
updatedAt |
账户更新时间 | DateTime | ISO 8601格式 | 是 |
lastLoginAt |
最后登录时间 | DateTime | ISO 8601格式 | 否 |
8.2 反馈 (Feedback) 数据结构
| 字段名 | 描述 | 数据类型 | 约束条件 | 是否必填 |
|---|---|---|---|---|
id |
反馈唯一标识符 | Long | 主键,自增 | 是 |
eventId |
事件ID(业务编号) | String | UUID格式 | 是 |
title |
反馈标题 | String | 最大长度100 | 是 |
description |
问题详细描述 | String | 最大长度1000 | 是 |
pollutionType |
污染类型 | Enum | AIR, WATER, SOIL, NOISE, OTHER | 是 |
severityLevel |
严重程度 | Enum | LOW, MEDIUM, HIGH, CRITICAL | 是 |
longitude |
地理位置经度 | Double | 有效范围 | 是 |
latitude |
地理位置纬度 | Double | 有效范围 | 是 |
imageUrls |
图片URL列表 | Array | 至少一张图片 | 是 |
status |
反馈状态 | Enum | PENDING_REVIEW, AI_REJECTED, PROCESSED, CLOSED | 是 |
submitterId |
提交者ID | Long | 外键关联UserAccount | 是 |
reviewerId |
审核者ID | Long | 外键关联UserAccount | 否 |
reviewNote |
审核备注 | String | 最大长度500 | 否 |
createdAt |
提交时间 | DateTime | ISO 8601格式 | 是 |
updatedAt |
更新时间 | DateTime | ISO 8601格式 | 是 |
processedAt |
处理时间 | DateTime | ISO 8601格式 | 否 |
8.3 任务 (Task) 数据结构
| 字段名 | 描述 | 数据类型 | 约束条件 | 是否必填 |
|---|---|---|---|---|
id |
任务唯一标识符 | Long | 主键,自增 | 是 |
feedbackId |
关联的反馈ID | Long | 外键关联Feedback | 否 |
title |
任务标题 | String | 最大长度100 | 是 |
description |
任务描述 | String | 最大长度1000 | 是 |
assigneeId |
被指派的网格员ID | Long | 外键关联UserAccount | 否 |
createdBy |
创建者ID | Long | 外键关联UserAccount | 是 |
status |
任务状态 | Enum | CREATED, ASSIGNED, IN_PROGRESS, SUBMITTED, APPROVED, REJECTED | 是 |
priority |
优先级 | Enum | LOW, MEDIUM, HIGH, URGENT | 是 |
longitude |
任务地点经度 | Double | 有效范围 | 是 |
latitude |
任务地点纬度 | Double | 有效范围 | 是 |
deadline |
截止日期 | DateTime | ISO 8601格式 | 否 |
completionReport |
完成报告 | String | 最大长度2000 | 否 |
resultImageUrls |
结果图片URL列表 | Array | 可为空 | 否 |
createdAt |
创建时间 | DateTime | ISO 8601格式 | 是 |
assignedAt |
分配时间 | DateTime | ISO 8601格式 | 否 |
startedAt |
开始时间 | DateTime | ISO 8601格式 | 否 |
submittedAt |
提交时间 | DateTime | ISO 8601格式 | 否 |
approvedAt |
审核通过时间 | DateTime | ISO 8601格式 | 否 |
rejectionReason |
拒绝原因 | String | 最大长度500 | 否 |
8.4 网格 (Grid) 数据结构
| 字段名 | 描述 | 数据类型 | 约束条件 | 是否必填 |
|---|---|---|---|---|
id |
网格唯一标识符 | Long | 主键,自增 | 是 |
gridX |
网格X坐标 | Integer | 非负整数 | 是 |
gridY |
网格Y坐标 | Integer | 非负整数 | 是 |
cityName |
所属城市 | String | 最大长度50 | 是 |
districtName |
所属区县 | String | 最大长度50 | 是 |
description |
网格描述 | String | 最大长度200 | 否 |
isObstacle |
是否为障碍物 | Boolean | true/false | 是 |
responsibleUserId |
负责人ID | Long | 外键关联UserAccount | 否 |
createdAt |
创建时间 | DateTime | ISO 8601格式 | 是 |
updatedAt |
更新时间 | DateTime | ISO 8601格式 | 是 |
</rewritten_file>