spec.md 5.6 KB

引江济太填报模块 - 产品需求文档

Overview

  • Summary: 实现引江济太填报模块,包含水量数据和水质数据两大功能模块,每个模块提供文件上传、数据展示、条件查询和数据导出功能。
  • Purpose: 解决引江济太项目中水量和水质数据的批量导入、统一管理和便捷查询需求,支持江苏、上海、浙江三省的数据上报。
  • Target Users: 太湖流域水环境综合治理信息共享平台的运维人员和数据管理人员。

Goals

  • 实现水量数据的Excel文件上传功能,支持江苏、上海、浙江三省模板
  • 实现水量数据的查询展示功能,支持多条件筛选和导出
  • 实现水质数据的Excel文件上传功能,支持江苏、上海、浙江三省模板
  • 实现水质数据的查询展示功能,支持多条件筛选和导出

Non-Goals (Out of Scope)

  • 数据编辑功能(仅支持导入、查询、导出)
  • 实时数据同步功能
  • 数据校验规则的复杂配置
  • 移动端适配

Background & Context

  • 现有系统已存在引江济太模块目录结构(yjjtgl)
  • 已存在水量数据实体类 YjjtSlData 和水质数据实体类 YjjtSzData
  • 已存在文件管理实体类 YjjtFile
  • 需要在现有基础上增强上传功能和查询条件

Functional Requirements

FR-1: 水量数据文件上传

  • FR-1.1: 支持上传Excel格式的水量数据文件
  • FR-1.2: 提供三种上传模板:江苏省水量(js-station-sl-model.xlsx)、上海市水量(sh-station-sl-model.xlsx)、浙江省水量(zj-station-sl-model.xlsx)
  • FR-1.3: 上传文件记录保存到YJJT_FILE表
  • FR-1.4: 解析Excel数据并存储到YJJT_SL_DATA表

FR-2: 水量数据查询展示

  • FR-2.1: 展示导入的水量数据列表(分页)
  • FR-2.2: 支持按断面名称查询
  • FR-2.3: 支持按测站编码查询
  • FR-2.4: 支持按数据来源(ADDVCD)查询:WX(无锡)、JS(江苏)、SH(上海)、ZJ(浙江)
  • FR-2.5: 支持按监测时间(SPT)时间段查询(YYYY-MM-DD~YYYY-MM-DD)
  • FR-2.6: 支持数据导出功能

FR-3: 水质数据文件上传

  • FR-3.1: 支持上传Excel格式的水质数据文件
  • FR-3.2: 提供三种上传模板:江苏省水质(js-station-sz-model.xlsx)、上海市水质(sh-station-sz-model.xlsx)、浙江省水质(zj-station-sz-model.xlsx)
  • FR-3.3: 上传文件记录保存到YJJT_FILE表
  • FR-3.4: 解析Excel数据并存储到YJJT_SZ_DATA表

FR-4: 水质数据查询展示

  • FR-4.1: 展示导入的水质数据列表(分页)
  • FR-4.2: 支持按断面名称查询
  • FR-4.3: 支持按测站编码查询
  • FR-4.4: 支持按数据来源(ADDVCD)查询:WX(无锡)、JS(江苏)、SH(上海)、ZJ(浙江)
  • FR-4.5: 支持按监测时间(SPT)时间段查询(YYYY-MM-DD~YYYY-MM-DD)
  • FR-4.6: 支持数据导出功能

Non-Functional Requirements

  • NFR-1: 上传文件大小限制不超过10MB
  • NFR-2: 数据查询响应时间不超过2秒
  • NFR-3: 支持并发上传(同一时刻不超过5个上传任务)
  • NFR-4: 上传失败时提供明确的错误提示信息

Constraints

  • Technical: Java 17, Spring Boot 3.x, MyBatis, Vue 3.x, Element Plus
  • Business: 数据来源固定为WX/JS/SH/ZJ四个选项
  • Dependencies: 需要依赖Apache POI进行Excel解析

Assumptions

  • Excel模板格式已确定,包含固定字段顺序
  • ADDVCD字段值固定为:WX(无锡)、JS(江苏)、SH(上海)、ZJ(浙江)
  • 用户具备上传和查询权限

Acceptance Criteria

AC-1: 水量数据文件上传成功

  • Given: 用户进入水量数据上传页面,选择有效的Excel文件
  • When: 用户点击上传按钮
  • Then: 文件记录保存到YJJT_FILE表,数据解析后保存到YJJT_SL_DATA表,页面提示上传成功
  • Verification: programmatic

AC-2: 水量数据查询功能

  • Given: 系统中已存在水量数据
  • When: 用户输入断面名称、测站编码、数据来源、时间范围等查询条件并点击搜索
  • Then: 表格展示符合条件的数据,支持分页
  • Verification: programmatic

AC-3: 水量数据导出功能

  • Given: 系统中已存在水量数据
  • When: 用户点击导出按钮
  • Then: 生成Excel文件并下载,包含所有查询条件过滤后的字段
  • Verification: programmatic

AC-4: 水质数据文件上传成功

  • Given: 用户进入水质数据上传页面,选择有效的Excel文件
  • When: 用户点击上传按钮
  • Then: 文件记录保存到YJJT_FILE表,数据解析后保存到YJJT_SZ_DATA表,页面提示上传成功
  • Verification: programmatic

AC-5: 水质数据查询功能

  • Given: 系统中已存在水质数据
  • When: 用户输入断面名称、测站编码、数据来源、时间范围等查询条件并点击搜索
  • Then: 表格展示符合条件的数据,支持分页
  • Verification: programmatic

AC-6: 水质数据导出功能

  • Given: 系统中已存在水质数据
  • When: 用户点击导出按钮
  • Then: 生成Excel文件并下载,包含所有查询条件过滤后的字段
  • Verification: programmatic

AC-7: 数据来源选项显示

  • Given: 用户打开水量或水质数据查询页面
  • When: 用户点击数据来源下拉框
  • Then: 显示选项:无锡(WX)、江苏(JS)、上海(SH)、浙江(ZJ)
  • Verification: human-judgment

Open Questions

  • Excel模板的具体字段结构需要确认
  • 是否需要对上传数据进行唯一性校验(如按测站编码+监测时间)
  • 是否需要支持上传失败时的回滚机制