# 福建水务营收系统详细设计说明书 | 文件状态: | 文档密级: | 公开 | | :--- | :--- | :--- | | 【】草稿 | | | | 【√】修改稿 | | | | 【】正式发布 | | | | | **当前版本:** | **V1.5** | | | **作者:** | **唐伟杰** | | | **完成日期:** | **2025-08-01** | ## 版本历史 | 日期 | 版本号 | 作者 | 备注 | | :--- | :--- | :--- | :--- | | 2025-07-01 | V1.0 | 唐伟杰 | 初版 | | 2025-07-17 | V1.1 | 唐伟杰 | 补充详细设计内容 | | 2025-08-01 | V1.2 | 唐伟杰 | 1. 同步更新概要设计中的子系统和模块结构。
2. 重构表务、报装、客户服务子系统,确保逻辑清晰。
3. 补充和完善数据库设计章节,解决缺失和不明确的问题。
4. 全面审查并修正文档,提升整体质量和一致性。 | | 2025-08-01 | V1.3 | 唐伟杰 | 数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,更新所有相关架构图和技术描述。 | | 2025-08-01 | V1.4 | 唐伟杰 | 单点登录采用OAuth2.0协议:完善单点登录模块设计,新增OAuth2.0授权流程、接口设计和相关数据表。 | # 目录 - [福建水务营收系统详细设计说明书](#福建水务营收系统详细设计说明书) - [版本历史](#版本历史) - [目录](#目录) - [前言](#前言) - [编写目的](#编写目的) - [背景与任务](#背景与任务) - [建设背景](#建设背景) - [主要任务](#主要任务) - [术语与缩略语](#术语与缩略语) - [参考资料](#参考资料) - [系统总体设计](#系统总体设计) - [逻辑架构](#逻辑架构) - [整体架构图](#整体架构图) - [系统数据流向图](#系统数据流向图) - [表现层](#表现层) - [网关层](#网关层) - [业务服务层](#业务服务层) - [数据层](#数据层) - [物理架构](#物理架构) - [物理部署图](#物理部署图) - [容器化部署架构](#容器化部署架构) - [硬件配置规格表](#硬件配置规格表) - [DMZ区域](#dmz区域) - [应用服务区](#应用服务区) - [数据服务区](#数据服务区) - [管理服务区](#管理服务区) - [对外接口](#对外接口) - [子系统列表](#子系统列表) - [子系统相互关系与接口](#子系统相互关系与接口) - [子系统1设计: 统一平台](#子系统1设计-统一平台) - [功能与界面](#功能与界面) - [模块列表](#模块列表) - [模块间关系](#模块间关系) - [权限管理功能群](#权限管理功能群) - [系统监控功能群](#系统监控功能群) - [模块设计](#模块设计) - [模块1: 单点登录](#模块1-单点登录) - [功能](#功能) - [功能1: 用户登录认证](#功能1-用户登录认证) - [设计图](#设计图) - [功能描述](#功能描述) - [输入输出数据](#输入输出数据) - [业务规则](#业务规则) - [业务流程](#业务流程) - [数据设计](#数据设计) - [方法说明](#方法说明) - [其他说明](#其他说明) - [功能2: 第三方登录](#功能2-第三方登录) - [功能描述](#功能描述-1) - [业务规则](#业务规则-1) - [接口](#接口) - [接口1: 用户登录接口](#接口1-用户登录接口) - [模块2: 系统管理](#模块2-系统管理) - [功能](#功能-1) - [功能1: 用户管理](#功能1-用户管理) - [设计图](#设计图-1) - [功能描述](#功能描述-2) - [输入输出数据](#输入输出数据-1) - [业务规则](#业务规则-2) - [业务流程](#业务流程-1) - [数据设计](#数据设计-1) - [方法说明](#方法说明-1) - [功能2: 角色管理](#功能2-角色管理) - [功能描述](#功能描述-3) - [接口](#接口-1) - [接口1: 用户管理接口](#接口1-用户管理接口) - [子系统2设计: 营收系统](#子系统2设计-营收系统) - [功能与界面](#功能与界面-1) - [模块列表](#模块列表-1) - [模块间关系](#模块间关系-1) - [营收核心业务群](#营收核心业务群) - [客户服务业务群](#客户服务业务群) - [模块设计](#模块设计-1) - [模块1: 客户资料管理](#模块1-客户资料管理) - [功能](#功能-2) - [功能1: 客户信息管理](#功能1-客户信息管理) - [设计图](#设计图-2) - [功能描述](#功能描述-4) - [输入输出数据](#输入输出数据-2) - [业务规则](#业务规则-3) - [业务流程](#业务流程-2) - [数据设计](#数据设计-2) - [方法说明](#方法说明-2) - [其他说明](#其他说明-1) - [功能2: 抄表数据录入](#功能2-抄表数据录入) - [功能描述](#功能描述-5) - [抄表开账业务流程图](#抄表开账业务流程图) - [业务规则](#业务规则-4) - [数据设计](#数据设计-3) - [方法说明](#方法说明-3) - [接口](#接口-2) - [接口1: 客户信息查询接口](#接口1-客户信息查询接口) - [模块2: 抄表开账](#模块2-抄表开账) - [功能](#功能-3) - [功能1: 抄表录入](#功能1-抄表录入) - [设计图](#设计图-3) - [功能描述](#功能描述-6) - [输入输出数据](#输入输出数据-3) - [业务规则](#业务规则-5) - [业务流程](#业务流程-3) - [数据设计](#数据设计-4) - [方法说明](#方法说明-4) - [其他说明](#其他说明-2) - [功能2: 复核开账](#功能2-复核开账) - [功能描述](#功能描述-7) - [业务规则](#业务规则-6) - [接口](#接口-3) - [接口1: 抄表数据提交接口](#接口1-抄表数据提交接口) - [模块3: 营业收费](#模块3-营业收费) - [功能](#功能-4) - [功能1: 柜台收费](#功能1-柜台收费) - [功能描述](#功能描述-8) - [业务规则](#业务规则-7) - [设计图](#设计图-4) - [功能描述](#功能描述-9) - [柜台收费业务流程图](#柜台收费业务流程图) - [输入输出数据](#输入输出数据-4) - [业务规则](#业务规则-8) - [数据设计](#数据设计-5) - [方法说明](#方法说明-5) - [其他说明](#其他说明-3) - [模块4: 账务处理](#模块4-账务处理) - [功能](#功能-5) - [功能1: 未销账调整](#功能1-未销账调整) - [功能描述](#功能描述-10) - [业务规则](#业务规则-9) - [业务流程](#业务流程-4) - [数据设计](#数据设计-6) - [方法说明](#方法说明-6) - [功能2: 分账调整](#功能2-分账调整) - [功能描述](#功能描述-11) - [业务规则](#业务规则-10) - [业务流程](#业务流程-5) - [数据设计](#数据设计-7) - [方法说明](#方法说明-7) - [功能3: 预付款退款](#功能3-预付款退款) - [功能描述](#功能描述-12) - [业务规则](#业务规则-11) - [业务流程](#业务流程-6) - [数据设计](#数据设计-8) - [方法说明](#方法说明-8) - [功能4: 呆坏账申请](#功能4-呆坏账申请) - [功能描述](#功能描述-13) - [业务规则](#业务规则-12) - [业务流程](#业务流程-7) - [数据设计](#数据设计-9) - [方法说明](#方法说明-9) - [模块5: 发票管理](#模块5-发票管理) - [功能](#功能-6) - [功能1: 发票查询](#功能1-发票查询) - [功能描述](#功能描述-14) - [业务规则](#业务规则-13) - [业务流程](#业务流程-8) - [数据设计](#数据设计-10) - [方法说明](#方法说明-10) - [功能2: 发票开具](#功能2-发票开具) - [功能描述](#功能描述-15) - [业务规则](#业务规则-14) - [业务流程](#业务流程-9) - [数据设计](#数据设计-11) - [方法说明](#方法说明-11) - [功能3: 电子发票管理](#功能3-电子发票管理) - [功能描述](#功能描述-16) - [业务规则](#业务规则-15) - [模块6: 催缴管理](#模块6-催缴管理) - [功能](#功能-7) - [功能1: 欠费催缴](#功能1-欠费催缴) - [功能描述](#功能描述-17) - [业务规则](#业务规则-16) - [业务流程](#业务流程-10) - [数据设计](#数据设计-12) - [方法说明](#方法说明-12) - [功能2: 催缴记录管理](#功能2-催缴记录管理) - [功能描述](#功能描述-18) - [业务规则](#业务规则-17) - [模块7: 统计分析](#模块7-统计分析) - [功能](#功能-8) - [功能1: 报表查询](#功能1-报表查询) - [功能描述](#功能描述-19) - [业务规则](#业务规则-18) - [业务流程](#业务流程-11) - [数据设计](#数据设计-13) - [方法说明](#方法说明-13) - [功能2: 缴费记录查询](#功能2-缴费记录查询) - [功能描述](#功能描述-20) - [业务规则](#业务规则-19) - [数据设计](#数据设计-14) - [方法说明](#方法说明-14) - [功能3: 欠费查询分析](#功能3-欠费查询分析) - [功能描述](#功能描述-21) - [业务规则](#业务规则-20) - [数据设计](#数据设计-15) - [方法说明](#方法说明-15) - [模块8: 代收业务](#模块8-代收业务) - [功能](#功能-9) - [功能1: 实时收费](#功能1-实时收费) - [功能描述](#功能描述-22) - [业务规则](#业务规则-21) - [业务流程](#业务流程-12) - [数据设计](#数据设计-16) - [方法说明](#方法说明-16) - [功能2: 银行代扣](#功能2-银行代扣) - [功能描述](#功能描述-23) - [功能3: 银行托收](#功能3-银行托收) - [功能描述](#功能描述-24) - [模块9: 业务工单](#模块9-业务工单) - [功能](#功能-10) - [功能1: 业务清单管理](#功能1-业务清单管理) - [功能描述](#功能描述-25) - [业务工单流程图](#业务工单流程图) - [业务规则](#业务规则-22) - [数据设计](#数据设计-17) - [方法说明](#方法说明-17) - [功能2: 上报清单管理](#功能2-上报清单管理) - [功能描述](#功能描述-26) - [上报工单处理流程图](#上报工单处理流程图) - [业务规则](#业务规则-23) - [数据设计](#数据设计-18) - [功能3: 稽查工单管理](#功能3-稽查工单管理) - [功能描述](#功能描述-27) - [稽查工单流程图](#稽查工单流程图) - [业务规则](#业务规则-24) - [数据设计](#数据设计-19) - [功能4: 换表工单管理](#功能4-换表工单管理) - [功能描述](#功能描述-28) - [换表工单业务流程图](#换表工单业务流程图) - [业务规则](#业务规则-25) - [数据设计](#数据设计-20) - [方法说明](#方法说明-18) - [接口](#接口-4) - [接口1: 创建业务工单接口](#接口1-创建业务工单接口) - [接口2: 工单处理接口](#接口2-工单处理接口) - [子系统3设计: 表务系统](#子系统3设计-表务系统) - [功能与界面](#功能与界面-2) - [模块列表](#模块列表-2) - [模块设计](#模块设计-2) - [模块1: 表务仓库管理](#模块1-表务仓库管理) - [功能](#功能-11) - [功能1: 水表库存管理](#功能1-水表库存管理) - [功能描述](#功能描述-29) - [业务规则](#业务规则-26) - [数据设计](#数据设计-21) - [方法说明](#方法说明-19) - [功能2: 物料管理](#功能2-物料管理) - [功能描述](#功能描述-30) - [业务规则](#业务规则-27) - [模块2: 表务基础管理](#模块2-表务基础管理) - [功能](#功能-12) - [功能1: 水表档案管理](#功能1-水表档案管理) - [功能描述](#功能描述-31) - [业务规则](#业务规则-28) - [数据设计](#数据设计-22) - [方法说明](#方法说明-20) - [子系统4设计: 报装系统](#子系统4设计-报装系统) - [功能与界面](#功能与界面-3) - [模块列表](#模块列表-3) - [模块设计](#模块设计-3) - [模块1: 报装流程管理](#模块1-报装流程管理) - [功能](#功能-13) - [功能1: 报装流程](#功能1-报装流程) - [功能描述](#功能描述-32) - [新用户报装业务流程图](#新用户报装业务流程图) - [业务规则](#业务规则-29) - [数据设计](#数据设计-23) - [方法说明](#方法说明-21) - [模块2: 现场踏勘管理](#模块2-现场踏勘管理) - [功能](#功能-14) - [功能1: 现场勘查](#功能1-现场勘查) - [功能描述](#功能描述-33) - [业务规则](#业务规则-30) - [数据设计](#数据设计-24) - [方法说明](#方法说明-22) - [功能2: 技术方案设计](#功能2-技术方案设计) - [功能描述](#功能描述-34) - [业务规则](#业务规则-31) - [模块3: 报装档案管理](#模块3-报装档案管理) - [功能](#功能-15) - [功能1: 报装档案管理](#功能1-报装档案管理) - [功能描述](#功能描述-35) - [业务规则](#业务规则-32) - [数据设计](#数据设计-25) - [方法说明](#方法说明-23) - [子系统5设计: 客户服务](#子系统5设计-客户服务) - [功能与界面](#功能与界面-4) - [模块列表](#模块列表-4) - [模块设计](#模块设计-4) - [模块1: 账户绑定管理](#模块1-账户绑定管理) - [功能](#功能-16) - [功能1: 账户绑定](#功能1-账户绑定) - [功能描述](#功能描述-36) - [业务规则](#业务规则-33) - [数据设计](#数据设计-26) - [方法说明](#方法说明-24) - [功能2: 账户管理](#功能2-账户管理) - [功能描述](#功能描述-37) - [业务规则](#业务规则-34) - [模块2: 信息查询服务](#模块2-信息查询服务) - [功能](#功能-17) - [功能1: 账单查询](#功能1-账单查询) - [功能描述](#功能描述-38) - [业务规则](#业务规则-35) - [数据设计](#数据设计-27) - [方法说明](#方法说明-25) - [模块3: 在线缴费服务](#模块3-在线缴费服务) - [功能](#功能-18) - [功能1: 多渠道支付](#功能1-多渠道支付) - [功能描述](#功能描述-39) - [业务规则](#业务规则-36) - [数据设计](#数据设计-28) - [方法说明](#方法说明-26) - [模块4: 电子发票服务](#模块4-电子发票服务) - [功能](#功能-19) - [功能1: 发票管理](#功能1-发票管理) - [功能描述](#功能描述-40) - [业务规则](#业务规则-37) - [数据设计](#数据设计-29) - [方法说明](#方法说明-27) - [子系统6设计: 手机抄表APP](#子系统6设计-手机抄表app) - [功能与界面](#功能与界面-5) - [模块列表](#模块列表-5) - [模块设计](#模块设计-5) - [模块1: 登录模块](#模块1-登录模块) - [功能](#功能-20) - [功能1: 核心登录功能](#功能1-核心登录功能) - [功能描述](#功能描述-41) - [业务规则](#业务规则-38) - [业务流程](#业务流程-13) - [界面设计要点](#界面设计要点) - [数据设计](#数据设计-30) - [方法说明](#方法说明-28) - [模块2: 首页搜索模块](#模块2-首页搜索模块) - [功能](#功能-21) - [功能1: 搜索框功能](#功能1-搜索框功能) - [功能描述](#功能描述-42) - [业务规则](#业务规则-39) - [业务流程](#业务流程-14) - [界面设计要点](#界面设计要点-1) - [数据设计](#数据设计-31) - [方法说明](#方法说明-29) - [模块3: 采集任务管理模块](#模块3-采集任务管理模块) - [功能](#功能-22) - [功能1: 任务列表管理](#功能1-任务列表管理) - [功能描述](#功能描述-43) - [业务规则](#业务规则-40) - [业务流程](#业务流程-15) - [界面设计要点](#界面设计要点-2) - [数据设计](#数据设计-32) - [方法说明](#方法说明-30) - [功能2: 单户采集详情](#功能2-单户采集详情) - [功能描述](#功能描述-44) - [业务规则](#业务规则-41) - [界面设计要点](#界面设计要点-3) - [模块4: 换表工单模块](#模块4-换表工单模块) - [功能](#功能-23) - [功能1: 换表工单处理流程](#功能1-换表工单处理流程) - [功能描述](#功能描述-45) - [业务规则](#业务规则-42) - [业务流程](#业务流程-16) - [界面设计要点](#界面设计要点-4) - [数据设计](#数据设计-33) - [方法说明](#方法说明-31) - [模块5: 其他工单模块](#模块5-其他工单模块) - [功能](#功能-24) - [功能1: 复水工单](#功能1-复水工单) - [功能描述](#功能描述-46) - [业务流程](#业务流程-17) - [功能2: 稽查任务](#功能2-稽查任务) - [功能描述](#功能描述-47) - [功能3: 抄表稽查](#功能3-抄表稽查) - [功能描述](#功能描述-48) - [界面设计要点](#界面设计要点-5) - [功能4: 问题上报](#功能4-问题上报) - [功能描述](#功能描述-49) - [界面设计要点](#界面设计要点-6) - [数据设计](#数据设计-34) - [模块6: 个人信息与系统设置模块](#模块6-个人信息与系统设置模块) - [功能](#功能-25) - [功能1: 个人信息管理](#功能1-个人信息管理) - [功能描述](#功能描述-50) - [界面设计要点](#界面设计要点-7) - [功能2: 账户安全配置](#功能2-账户安全配置) - [功能描述](#功能描述-51) - [功能3: 系统维护选项](#功能3-系统维护选项) - [功能描述](#功能描述-52) - [界面设计要点](#界面设计要点-8) - [数据设计](#数据设计-35) - [关键业务规则与注意事项](#关键业务规则与注意事项) - [数据校验规则](#数据校验规则) - [状态一致性规则](#状态一致性规则) - [离线能力支持](#离线能力支持) - [防误操作机制](#防误操作机制) - [中间件和其他设计](#中间件和其他设计) - [缓存设计](#缓存设计) - [Redis](#redis) - [消息队列设计](#消息队列设计) - [RabbitMQ](#rabbitmq) - [定时任务设计](#定时任务设计) - [数据库设计](#数据库设计) - [数据字典设计](#数据字典设计) - [对外接口](#对外接口-1) - [金融支付接口](#金融支付接口) - [银行接口](#银行接口) - [银行代扣接口详细设计](#银行代扣接口详细设计) - [第三方支付接口](#第三方支付接口) - [微信支付接口](#微信支付接口) - [支付宝接口](#支付宝接口) - [通信接口](#通信接口) - [短信平台接口](#短信平台接口) - [短信发送接口详细设计](#短信发送接口详细设计) - [邮件接口](#邮件接口) - [税务接口](#税务接口) - [开票接口](#开票接口) - [电子发票开具接口详细设计](#电子发票开具接口详细设计) - [物联网接口](#物联网接口) - [集抄系统接口](#集抄系统接口) - [水表数据采集接口详细设计](#水表数据采集接口详细设计) - [政务系统接口](#政务系统接口) - [政务平台对接](#政务平台对接) - [其他系统接口](#其他系统接口) - [环卫系统接口](#环卫系统接口) - [客服系统接口](#客服系统接口) - [消火栓系统接口](#消火栓系统接口) - [接口安全设计](#接口安全设计) - [认证机制](#认证机制) - [加密机制](#加密机制) - [限流机制](#限流机制) - [接口监控](#接口监控) - [性能监控](#性能监控) - [错误监控](#错误监控) - [业务监控](#业务监控) - [非功能性需求的设计](#非功能性需求的设计) - [性能的考虑](#性能的考虑) - [兼容性的考虑](#兼容性的考虑) - [安全的考虑](#安全的考虑) - [可移植性的考虑](#可移植性的考虑) - [集成与测试的考虑](#集成与测试的考虑) - [可扩展性的考虑](#可扩展性的考虑) - [可靠性的考虑](#可靠性的考虑) - [可维护性的考虑](#可维护性的考虑) # 前言 ## 编写目的 本文档在《概要设计说明书》的基础上,对福建水务营收系统的各核心子系统及模块进行详细的功能设计、流程设计和技术实现说明。 本文档主要用途: - 为开发团队提供详细的技术实现指导 - 为测试团队提供功能测试依据 - 为运维团队提供系统部署和维护参考 - 为项目管理提供开发进度跟踪依据 本文档的预期读者包括: - 系统架构师和开发人员 - 测试工程师 - 运维工程师 - 项目经理和技术负责人 ## 背景与任务 福建水务营收系统是为满足福建省水投数字科技有限公司客户服务管理领域的业务需求而建设的综合管理平台。系统以客户关系数据库为核心和基础,实现客户全生命周期管理。 ### 建设背景 福建水投集团注册资本46亿元,在全省40多个县市区投资重大水利项目超过450亿元,拥有全级次子公司超过67家,职工人数超3500人。当前,集团正紧紧抓住城乡供水一体化建设的机遇,需要构建以客户为中心的客户服务平台。 ### 主要任务 通过系统的建设,实现: 1. 客户服务管理领域的业务流程梳理再造 2. 组织架构的优化和管理制度的建设 3. 绩效考核标准的建设 4. 构建以客户为中心的客户服务平台 5. 提高客户服务的质量和客户满意度 ## 术语与缩略语 | **术语、缩写** | **解释** | |---|---| | SaaS | Software as a Service,软件即服务 | | RBAC | Role-Based Access Control,基于角色的访问控制 | | JWT | JSON Web Token,基于JSON的Web令牌 | | OAuth2 | 开放授权标准 | | RESTful | Representational State Transfer,表现层状态转化 | | OpenAPI | 开放应用程序接口规范 | | DDL | Data Definition Language,数据定义语言 | | DML | Data Manipulation Language,数据操作语言 | | 站点 | 用于划分用户所属管辖区域,站点可以进行多级管理 | | 册本 | 又称抄表本或抄表簿,根据抄表线路规划,按排相邻的一些水表给某一个抄表员进行抄表 | | 用户编号 | 为签定了供用水合同的正式用户分配的唯一识别号 | | 售水量 | 抄收水量+查处水量±调整水量 | | 当期应收水费 | 当期售水量乘以不同类别的水价(到户价)所得的金额 | | 水表抄见率 | (当期应抄用户数-当期估表用户数)/当期应抄用户数×100% | ## 参考资料 - 《福建水务营收系统需求规格说明书》 - 《福建水务营收系统概要设计说明书》 - 《福建水务营收系统数据库设计说明书》 - 《福建水务营收系统接口设计说明书》 - GB/T 8556-2007 信息技术软件生存周期过程 - GB/T 9385-2008 计算机软件需求规格说明规范 - GB/T 8567-2006 计算机软件文档编制规范 # 系统总体设计 ## 逻辑架构 系统采用现代化的多层分布式架构,基于微服务设计思想,实现松耦合、高内聚的系统架构。 ### 整体架构图 ```mermaid graph TB subgraph "表现层" A1[Web管理端
Vue3 + Element Plus] A2[移动抄表端
uni-app] A3[客户微信小程序] A4[客户支付宝小程序] end subgraph "网关层" B1[API网关
Spring Cloud Gateway] B2[负载均衡
Nginx] B3[认证授权
Spring Security + JWT] end subgraph "业务服务层" C1[统一平台服务
用户权限管理] C2[营收管理服务
抄表收费核心业务] C3[表务管理服务
水表全生命周期] C4[报装管理服务
报装流程管理] C5[客户服务
线上服务渠道] end subgraph "基础服务层" D1[权限服务
RBAC权限控制] D2[工作流服务
Flowable引擎] D3[消息服务
异步消息处理] D4[文件服务
文档附件管理] D5[支付服务
第三方支付集成] end subgraph "数据层" E1[(达梦数据库 8.0+
主从架构)] E2[(Redis 6.0+
分布式缓存)] E3[MinIO
分布式文件存储] end %% 层级间调用关系 A1 --> B1 A2 --> B1 A3 --> B1 A4 --> B1 B1 --> B3 B2 --> B1 B3 --> C1 B3 --> C2 B3 --> C3 B3 --> C4 B3 --> C5 C1 --> D1 C2 --> D2 C2 --> D3 C3 --> D4 C4 --> D2 C5 --> D5 D1 --> E1 D2 --> E1 D3 --> E2 D4 --> E3 D5 --> E1 ``` ### 系统数据流向图 ```mermaid flowchart TD subgraph "数据采集层" A1[移动抄表APP
数据采集] A2[智能水表
远程数据] A3[Web管理端
业务录入] A4[客户端小程序
用户数据] A5[外部系统
接口数据] end subgraph "数据接入层" B1[API网关
数据验证] B2[数据清洗
格式转换] B3[消息队列
异步处理] B4[数据缓存
临时存储] end subgraph "业务处理层" C1[统一平台服务
用户权限] C2[营收管理服务
核心业务] C3[表务管理服务
设备管理] C4[报装管理服务
流程管理] C5[客户服务
对外服务] end subgraph "数据存储层" D1[(达梦数据库主库
核心业务数据)] D2[(达梦数据库从库
查询数据)] D3[(Redis缓存
热点数据)] D4[文件存储
附件图片] D5[(备份库
历史数据)] end subgraph "数据服务层" E1[查询服务
数据检索] E2[报表服务
统计分析] E3[接口服务
对外开放] E4[推送服务
消息通知] end subgraph "数据展现层" F1[管理后台
业务操作] F2[统计大屏
可视化展示] F3[移动端
现场作业] F4[客户端
自助服务] F5[第三方系统
数据集成] end %% 数据流向关系 A1 -.->|数据采集
格式验证| B1 A2 -.->|数据采集
格式验证| B1 A3 -.->|数据采集
格式验证| B1 A4 -.->|数据采集
格式验证| B1 A5 -.->|数据采集
格式验证| B1 B1 -.->|数据接入
清洗转换| B2 B2 -.->|数据接入
清洗转换| B3 B3 -.->|数据接入
清洗转换| B4 B4 -.->|业务处理
数据持久化| C1 B4 -.->|业务处理
数据持久化| C2 B4 -.->|业务处理
数据持久化| C3 B4 -.->|业务处理
数据持久化| C4 B4 -.->|业务处理
数据持久化| C5 C1 -.->|数据存储| D1 C2 -.->|数据存储| D1 C3 -.->|数据存储| D1 C4 -.->|数据存储| D1 C5 -.->|数据存储| D1 D1 -.->|数据查询
统计分析| E1 D2 -.->|数据查询
统计分析| E2 D3 -.->|数据查询
统计分析| E3 D4 -.->|数据查询
统计分析| E4 E1 -.->|数据服务
接口调用| F1 E2 -.->|数据服务
接口调用| F2 E3 -.->|数据服务
接口调用| F3 E4 -.->|数据服务
接口调用| F4 E1 -.->|数据服务
接口调用| F5 ``` ### 表现层 - PC端管理后台:基于yudao-ui-admin-vue3框架,提供完整的业务管理功能 - 移动端抄表APP:基于uni-app框架,支持现场抄表作业 - 客户端小程序:微信、支付宝小程序,提供客户自助服务 ### 网关层 - API网关:基于Spring Cloud Gateway,实现统一的接口管理 - 负载均衡:Nginx集群,实现高可用的请求分发 - 认证授权:Spring Security + JWT,提供安全的访问控制 ### 业务服务层 - 统一平台服务:用户管理、权限管理、组织管理等基础服务 - 营收管理服务:抄表、收费、账务等核心业务服务 - 表务管理服务:水表仓库、工单管理等设备管理服务 - 报装管理服务:报装流程管理服务 - 客户服务:微信、支付宝等客户服务渠道 ### 数据层 - 主数据库:达梦数据库 8.0+,采用主从架构,保证数据的高可用性 - 缓存:Redis 6.0+,分布式缓存集群,提升系统性能 - 文件存储:MinIO分布式文件存储,处理系统文件和附件 ## 物理架构 系统采用分布式部署架构,通过多个服务器集群实现高可用和高性能。 ### 物理部署图 ```mermaid graph TB subgraph "DMZ区域" subgraph "负载均衡集群" LB1[Nginx 主
8核16G] LB2[Nginx 备
8核16G] WAF[Web应用防火墙] end end subgraph "应用服务区" subgraph "Web服务集群" WEB1[Web服务器1
8核32G] WEB2[Web服务器2
8核32G] end subgraph "应用服务集群" APP1[应用服务器1
16核64G] APP2[应用服务器2
16核64G] end subgraph "中间件集群" MQ1[消息队列1
8核16G] MQ2[消息队列2
8核16G] end end subgraph "数据服务区" subgraph "数据库集群" DB1[达梦数据库主库
32核128G] DB2[达梦数据库从库
32核128G] DB3[达梦数据库备库
32核128G] end subgraph "缓存集群" REDIS1[Redis主节点
16核32G] REDIS2[Redis从节点
16核32G] REDIS3[Redis哨兵
8核16G] end subgraph "文件存储集群" FILE1[MinIO节点1
8核32G 10TB] FILE2[MinIO节点2
8核32G 10TB] FILE3[MinIO节点3
8核32G 10TB] end end subgraph "管理服务区" MONITOR[监控服务器
Prometheus + Grafana
8核16G] BACKUP[备份服务器
8核32G 20TB] JUMP[跳板服务器
4核8G] LOG[日志服务器
ELK Stack
16核32G] end %% 网络连接关系 Internet --> WAF WAF --> LB1 WAF --> LB2 LB1 --> WEB1 LB1 --> WEB2 LB2 --> WEB1 LB2 --> WEB2 WEB1 --> APP1 WEB1 --> APP2 WEB2 --> APP1 WEB2 --> APP2 APP1 --> DB1 APP1 --> REDIS1 APP1 --> FILE1 APP2 --> DB1 APP2 --> REDIS1 APP2 --> FILE1 DB1 -.->|主从同步| DB2 DB1 -.->|主备同步| DB3 REDIS1 -.->|主从同步| REDIS2 ``` ### 容器化部署架构 ```mermaid graph TB subgraph "容器化部署架构" subgraph "前端容器" WEB_C1[Web前端容器1
nginx:alpine
2核4G] WEB_C2[Web前端容器2
nginx:alpine
2核4G] end subgraph "后端应用容器" APP_C1[应用容器1
openjdk:17-jre
4核8G] APP_C2[应用容器2
openjdk:17-jre
4核8G] APP_C3[应用容器3
openjdk:17-jre
4核8G] end subgraph "数据存储容器" DB_C1[达梦数据库主容器
dm:8.0
8核16G] DB_C2[达梦数据库从容器
dm:8.0
8核16G] REDIS_C[Redis容器
redis:7-alpine
2核4G] MINIO_C[MinIO容器
minio/minio
2核4G] end subgraph "监控服务容器" MONITOR_C[监控容器
prom/prometheus
2核4G] GRAFANA_C[图表容器
grafana/grafana
1核2G] ELK_C[日志容器
elastic/elasticsearch
4核8G] end end subgraph "容器编排" DOCKER[Docker Engine] COMPOSE[Docker Compose] SWARM[Docker Swarm
可选] end %% 容器间调用关系 WEB_C1 --> APP_C1 WEB_C1 --> APP_C2 WEB_C2 --> APP_C2 WEB_C2 --> APP_C3 APP_C1 --> DB_C1 APP_C1 --> REDIS_C APP_C1 --> MINIO_C APP_C2 --> DB_C1 APP_C2 --> REDIS_C APP_C3 --> DB_C1 APP_C3 --> REDIS_C DB_C1 -.->|主从同步| DB_C2 MONITOR_C -.->|监控| APP_C1 MONITOR_C -.->|监控| APP_C2 MONITOR_C -.->|监控| APP_C3 GRAFANA_C --> MONITOR_C ELK_C -.->|日志收集| APP_C1 ELK_C -.->|日志收集| APP_C2 ELK_C -.->|日志收集| APP_C3 ``` ### 硬件配置规格表 **DMZ区域配置** | 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 | |---------|---------|------|----------|------| | 负载均衡器 | 8核16G,双网卡,1TB SSD | 2台 | 负载均衡、高可用 | 主备模式 | | Web应用防火墙 | 硬件WAF设备或软件WAF | 1台 | 安全防护、入侵检测 | 可选硬件或软件方案 | **应用服务区配置** | 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 | |---------|---------|------|----------|------| | Web服务器 | 8核32G,1TB SSD,千兆网卡 | 2台 | 前端应用部署 | 负载均衡集群 | | 应用服务器 | 16核64G,2TB SSD,万兆网卡 | 2台 | 后端服务部署 | 支持水平扩展 | | 消息队列服务器 | 8核16G,1TB SSD,千兆网卡 | 2台 | 异步消息处理 | Redis/RabbitMQ集群 | **数据服务区配置** | 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 | |---------|---------|------|----------|------| | 数据库服务器 | 32核128G,10TB SSD,万兆网卡 | 3台 | 主从备数据库 | 达梦数据库分布式架构 | | 缓存服务器 | 16核32G,1TB SSD,万兆网卡 | 3台 | Redis集群 | 主从哨兵模式 | | 文件存储服务器 | 8核32G,10TB HDD,千兆网卡 | 3台 | 分布式文件存储 | MinIO集群模式 | **管理服务区配置** | 设备类型 | 配置规格 | 数量 | 主要作用 | 备注 | |---------|---------|------|----------|------| | 监控服务器 | 8核16G,1TB SSD,千兆网卡 | 1台 | 系统监控告警 | Prometheus + Grafana | | 备份服务器 | 8核32G,20TB HDD,千兆网卡 | 1台 | 数据备份恢复 | 定时备份策略 | | 跳板服务器 | 4核8G,500GB SSD,千兆网卡 | 1台 | 运维管理 | 堡垒机功能 | | 日志服务器 | 16核32G,5TB SSD,万兆网卡 | 1台 | 日志收集分析 | ELK Stack | ### DMZ区域 - 负载均衡器:Nginx集群,实现请求分发和故障转移 - Web应用防火墙:WAF防护,防止Web攻击和恶意访问 ### 应用服务区 - Web服务集群:2台服务器,8核32G,部署前端应用和静态资源 - 应用服务集群:2台服务器,16核64G,部署后端微服务应用 ### 数据服务区 - 数据库集群:达梦数据库主从架构,32核128G,保证数据高可用 - 缓存集群:Redis集群,16核32G,提升系统响应性能 - 文件存储:分布式文件存储,8核32G 10TB,处理业务文件 ### 管理服务区 - 监控服务器:系统监控,8核16G,实时监控系统状态 - 备份服务器:数据备份,8核32G 20TB,保证数据安全 - 跳板服务器:运维管理,4核8G,安全的运维入口 ## 对外接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-001 | 银行代扣接口 | 银行托收代扣缴费 | HTTPS | 用户信息、缴费金额 | 扣款结果 | | EXT-002 | 微信支付接口 | 微信在线支付 | HTTPS | 订单信息、金额 | 支付结果 | | EXT-003 | 支付宝支付接口 | 支付宝在线支付 | HTTPS | 订单信息、金额 | 支付结果 | | EXT-004 | 短信平台接口 | 短信通知发送 | HTTPS | 手机号、短信内容 | 发送结果 | | EXT-005 | 集抄系统接口 | 智能水表数据采集 | TCP/HTTPS | 水表编号 | 抄表数据 | ## 子系统列表 | 子系统编号 | 子系统名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | SYS-001 | 统一平台 | 单点登录、系统管理、权限管理 | 自行开发 | | SYS-002 | 营收系统 | 抄表开账、收费管理、账务处理 | 自行开发 | | SYS-003 | 表务系统 | 表务工单、表务仓库管理 | 自行开发 | | SYS-004 | 报装系统 | 报装流程管理 | 自行开发 | | SYS-005 | 客户服务 | 微信、支付宝服务窗 | 自行开发 | ## 子系统相互关系与接口 各子系统之间的主要调用关系如下: 1. **统一平台 → 营收系统**:提供用户认证、权限控制、组织机构信息 2. **营收系统 → 表务系统**:提供客户信息、水表信息,接收换表工单 3. **营收系统 → 报装系统**:接收新用户立户信息 4. **营收系统 → 客户服务**:提供账单信息、缴费接口 5. **表务系统 → 营收系统**:提供水表库存信息、换表完成通知 # 子系统1设计: 统一平台 ## 功能与界面 统一平台是整个系统的基础支撑平台,提供统一的用户认证、权限管理、组织管理等功能。主要功能包括: - 单点登录:统一认证入口,支持多种登录方式 - 系统管理:组织机构、员工管理、角色权限管理 - 菜单配置:系统菜单和功能模块配置 - 数据字典:系统基础代码数据管理 - 系统监控:在线用户、系统性能监控 ### 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | UP-001 | 单点登录模块 | 用户认证、授权管理 | 自行开发 | | UP-002 | 系统管理模块 | 组织、用户、角色管理 | 自行开发 | | UP-003 | 权限控制模块 | 菜单权限、数据权限 | 自行开发 | | UP-004 | 监控管理模块 | 系统监控、日志管理 | 自行开发 | ### 模块间关系 #### 权限管理功能群 统一平台的权限管理功能群包括用户管理、角色管理、菜单管理等模块,它们之间的关系如下: - 用户管理模块:管理系统用户基本信息 - 角色管理模块:定义系统角色和权限 - 菜单管理模块:配置系统菜单和功能权限 - 部门管理模块:管理组织架构信息 #### 系统监控功能群 系统监控功能群包括在线用户监控、系统性能监控、操作日志等模块。 ### 模块设计 #### 模块1: 单点登录 ##### 功能 ##### 功能1: 用户登录认证 ###### 设计图 用户登录界面,包含用户名、密码输入框,以及验证码输入。 ###### 功能描述 1. **功能概述** 提供统一的用户登录认证功能,基于OAuth2.0协议实现单点登录,支持用户名密码登录、手机号短信验证码登录等多种认证方式。登录成功后生成JWT令牌,用于后续请求的身份验证。 2. **操作权限** 所有系统用户均可访问登录功能,无需特殊权限。 3. **功能约束** - 密码错误超过5次将锁定账户30分钟 - 验证码有效期为5分钟 - JWT令牌有效期为2小时,支持自动刷新 ###### 输入输出数据 1. **输入数据** - 用户名:长度3-30位,支持字母、数字、下划线 - 密码:长度6-20位,必须包含字母和数字 - 验证码:4位数字或字母组合 - 记住我:布尔值,可选 2. **输出数据** - 登录成功:返回用户信息、权限信息、JWT令牌 - 登录失败:返回错误信息和错误码 ###### 业务规则 1. **密码规则**:密码必须包含字母和数字,长度6-20位 2. **验证码规则**:验证码区分大小写,有效期5分钟 3. **账户锁定规则**:连续5次密码错误将锁定账户30分钟 4. **OAuth2.0协议支持**:支持授权码模式(Authorization Code)和客户端凭证模式(Client Credentials) 5. **令牌管理规则**:JWT令牌有效期2小时,支持自动刷新,OAuth2.0访问令牌有效期4小时 ###### 业务流程 **标准登录流程:** 1. 用户访问登录页面 2. 输入用户名、密码、验证码 3. 系统验证输入参数的有效性 4. 系统验证用户账户状态(是否锁定、是否禁用) 5. 系统验证密码是否正确 6. 验证成功后生成JWT令牌 7. 返回用户信息和令牌给前端 8. 前端保存令牌并跳转到首页 **OAuth2.0授权码模式流程:** 1. 客户端应用重定向用户到授权服务器(/oauth/authorize) 2. 用户在授权服务器进行身份认证 3. 用户授权后,授权服务器重定向回客户端并携带授权码 4. 客户端使用授权码向授权服务器请求访问令牌(/oauth/token) 5. 授权服务器验证授权码并返回访问令牌和刷新令牌 6. 客户端使用访问令牌访问受保护的资源 ###### 数据设计 涉及的主要数据表: - `system_users`:用户基本信息表 - `system_login_log`:登录日志表 - `system_user_session`:用户会话表 - `system_oauth2_client`:OAuth2客户端表 - `system_oauth2_access_token`:OAuth2访问令牌表 - `system_oauth2_refresh_token`:OAuth2刷新令牌表 - `system_oauth2_code`:OAuth2授权码表 - `system_oauth2_approve`:OAuth2批准表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | login | 用户登录 | username:用户名(必填)
password:密码(必填)
captcha:验证码(必填) | 登录结果、用户信息、JWT令牌 | | logout | 用户登出 | token:JWT令牌(必填) | 登出结果 | | refreshToken | 刷新令牌 | refreshToken:刷新令牌(必填) | 新的JWT令牌 | | oauthAuthorize | OAuth2.0授权 | client_id:客户端ID(必填)
response_type:响应类型(必填)
redirect_uri:重定向URI(必填)
scope:权限范围(可选) | 授权页面或授权码 | | oauthToken | OAuth2.0获取令牌 | grant_type:授权类型(必填)
code:授权码(必填)
client_id:客户端ID(必填)
client_secret:客户端密钥(必填) | 访问令牌、刷新令牌、令牌类型 | | oauthRefresh | OAuth2.0刷新令牌 | grant_type:授权类型(必填)
refresh_token:刷新令牌(必填)
client_id:客户端ID(必填) | 新的访问令牌、刷新令牌 | ###### 其他说明 支持多租户登录,根据租户配置显示不同的登录界面风格和Logo。 ##### 功能2: 第三方登录 ###### 功能描述 支持通过微信、支付宝等第三方平台进行登录认证。 ###### 业务规则 1. 第三方登录需要先绑定系统账户 2. 支持手机号一键绑定 3. 首次登录需要完善用户信息 #### 接口 ##### 接口1: 用户登录接口 a、**接口名称** | 用户登录接口 | |---| b、**接口描述** | 1. 用户身份认证登录
2. 支持用户名密码登录
3. 支持手机号短信验证码登录 | |---| c、**请求地址** | /admin-api/system/auth/login | |---| d、**请求方式** | POST | |---| e、**请求参数** 1) Header参数 | 参数名 | 必选 | 类型/参数值 | 说明 | |---|---|---|---| | Content-Type | 是 | application/json | 请求参数类型 | 2) Body参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | username | 是 | string | 3 < length < 30 | 用户账号 | | | password | 是 | string | 6 < length < 20 | 密码 | | | captchaVerification | 是 | string | length = 4 | 验证码 | | 3) 请求实例 ```json { "username": "admin", "password": "123456", "captchaVerification": "1234" } ``` f、**响应参数** 1) 返回参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | accessToken | 是 | string | | 访问令牌 | | | refreshToken | 是 | string | | 刷新令牌 | | | expiresTime | 是 | number | | 过期时间 | | 2) 返回示例 ```json { "code": 0, "msg": "成功", "data": { "accessToken": "eyJhbGciOiJIUzI1NiJ9...", "refreshToken": "eyJhbGciOiJIUzI1NiJ9...", "expiresTime": 1640995200000 } } ``` g、**备注** 登录成功后需要将accessToken存储到本地,用于后续API调用的身份验证。 h、**错误响应码** | 错误码 | 错误描述 | 原因 | 解决方案 | 示例值 | |---|---|---|---|---| | 1002000000 | 用户账号或密码不正确 | 用户名或密码错误 | 检查用户名和密码 | 001 | | 1002000002 | 验证码不存在 | 验证码已过期或不存在 | 重新获取验证码 | 002 | #### 模块2: 系统管理 ##### 功能 ##### 功能1: 用户管理 ###### 设计图 用户管理界面,包含用户列表、新增/编辑用户对话框、用户详情页等。 ###### 功能描述 1. **功能概述** 对系统用户进行统一管理,包括用户的新增、修改、删除、查询等操作。支持用户角色分配、部门归属设置、用户状态管理等功能。 2. **操作权限** 需要具有用户管理权限的管理员才能执行用户管理操作。 3. **功能约束** - 用户名不能重复 - 手机号不能重复 - 超级管理员不能被删除 - 不能删除当前登录用户 ###### 输入输出数据 1. **输入数据** - 用户基本信息:用户名、昵称、邮箱、手机号 - 组织信息:所属部门、岗位 - 权限信息:角色分配 - 状态信息:启用/禁用状态 2. **输出数据** - 用户列表:分页展示用户信息 - 用户详情:完整的用户信息 ###### 业务规则 1. **用户名规则**:用户名为系统唯一标识,不可重复,长度3-30位 2. **手机号规则**:手机号必须为11位数字,不可重复 3. **密码规则**:初始密码由系统自动生成,用户首次登录需修改 4. **部门规则**:用户必须归属于某个部门 ###### 业务流程 1. **新增用户流程**: - 填写用户基本信息 - 选择所属部门和岗位 - 分配用户角色 - 设置用户状态 - 保存用户信息 - 发送初始密码通知 2. **修改用户流程**: - 查询用户信息 - 修改用户信息 - 更新用户权限 - 保存修改结果 ###### 数据设计 主要涉及的数据表: - `system_users`:用户基本信息 - `system_user_role`:用户角色关联 - `system_dept`:部门信息 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createUser | 创建用户 | 用户信息对象(必填) | 创建结果 | | updateUser | 更新用户 | 用户ID(必填)、用户信息对象(必填) | 更新结果 | | deleteUser | 删除用户 | 用户ID(必填) | 删除结果 | | getUserPage | 分页查询用户 | 查询条件(可选)、分页参数(必填) | 用户列表 | ##### 功能2: 角色管理 ###### 功能描述 管理系统角色和权限,支持角色的增删改查、权限分配等功能。 #### 接口 ##### 接口1: 用户管理接口 参考上述用户管理接口规范。 # 子系统2设计: 营收系统 ## 功能与界面 营收系统是水务业务的核心系统,主要负责客户资料管理、抄表开账、营业收费、账务处理、发票管理等核心业务功能。 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | REV-001 | 客户资料管理 | 客户信息管理、分组管理 | 自行开发 | | REV-002 | 抄表开账 | 抄表录入、复核开账 | 自行开发 | | REV-003 | 营业收费 | 柜台收费、缴费管理 | 自行开发 | | REV-004 | 账务处理 | 账务调整、退款处理 | 自行开发 | | REV-005 | 发票管理 | 发票开具、查询管理 | 自行开发 | | REV-006 | 催缴管理 | 欠费催缴、短信通知 | 自行开发 | ## 模块间关系 ### 营收核心业务群 营收系统的核心业务流程:客户资料管理 → 抄表开账 → 营业收费 → 账务处理 → 发票管理 ### 客户服务业务群 围绕客户服务的业务流程:客户资料管理 → 催缴管理 → 客户服务 ## 模块设计 ### 模块1: 客户资料管理 #### 功能 ##### 功能1: 客户信息管理 ###### 设计图 客户信息管理界面包含客户列表、查询条件、新增/编辑表单等功能区域。 ###### 功能描述 1. **功能概述** 客户信息管理功能提供完整的客户档案管理,包括客户基本信息、用水信息、联系方式等的增删改查操作。支持客户分组管理、批量导入导出等功能。 2. **操作权限** - 营收管理员:完整的客户信息管理权限 - 营收操作员:客户信息查询和基本维护权限 - 抄表员:客户信息查询权限 3. **功能约束** - 客户编号必须唯一,系统自动生成 - 必须填写客户姓名、联系电话等必要信息 - 客户信息变更需要保留变更历史记录 ###### 输入输出数据 1. **输入数据** - 客户基本信息:姓名、证件号码、联系电话、地址等 - 用水信息:水表编号、用水性质、收费方式等 - 分组信息:客户分组、抄表册本、抄表员等 2. **输出数据** - 客户档案信息:完整的客户档案数据 - 客户列表:支持分页查询的客户列表 - 导出文件:Excel格式的客户信息文件 ###### 业务规则 1. 客户编号自动生成,格式为:地区代码+顺序号(6位数字) 2. 同一地址下可以有多个客户,但水表编号不能重复 3. 客户信息变更时,需要记录变更人、变更时间和变更原因 4. 客户销户时,需要确认无欠费且水表已拆除 ###### 业务流程 ```mermaid flowchart TD Start([开始客户建档]) --> CheckInput[验证客户信息] CheckInput --> ValidInput{信息是否完整?} ValidInput -->|否| InputError[提示缺失信息] InputError --> CheckInput ValidInput -->|是| CheckDuplicate[检查重复客户] CheckDuplicate --> IsDuplicate{是否存在重复?} IsDuplicate -->|是| DuplicateError[提示重复客户] DuplicateError --> CheckInput IsDuplicate -->|否| GenerateCode[生成客户编号] GenerateCode --> SaveCustomer[保存客户信息] SaveCustomer --> CreateAccount[创建客户账户] CreateAccount --> AssignMeter[分配水表] AssignMeter --> SetBook[设置抄表册本] SetBook --> NotifySuccess[建档成功通知] NotifySuccess --> End([完成建档]) ``` ###### 数据设计 主要涉及以下数据表: - `customer_info`:客户基本信息表 - `customer_change_log`:客户变更日志表 - `customer_account`:客户账户信息表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createCustomer | 创建新客户 | customerInfo:客户信息(必填) | Customer对象 | | updateCustomer | 更新客户信息 | id:客户ID(必填),customerInfo:客户信息(必填) | Boolean类型:true/false | | deleteCustomer | 删除客户 | id:客户ID(必填) | Boolean类型:true/false | | getCustomerById | 根据ID获取客户 | id:客户ID(必填) | Customer对象 | | getCustomerList | 获取客户列表 | pageNum:页码(选填),pageSize:页面大小(选填) | PageInfo | ###### 其他说明 客户信息管理模块与抄表开账、营业收费等模块紧密关联,客户信息的准确性直接影响到后续的业务处理。 ##### 功能2: 抄表数据录入 ###### 功能描述 抄表数据录入功能支持多种抄表方式,包括现场抄表、远程抄表、客户自报等,提供数据校验和异常处理功能。 ###### 抄表开账业务流程图 ```mermaid flowchart TD A[开始抄表] --> B{选择抄表方式} B -->|手工抄表| C[手工录入抄表数据] B -->|PDA抄表| D[PDA现场抄表] B -->|远传抄表| E[自动采集抄表数据] B -->|批量导入| F[Excel批量导入] C --> G[系统数据验证] D --> H[PDA数据上传] E --> I[远传数据同步] F --> J[批量数据校验] H --> G I --> G J --> G G --> K{数据是否有效?} K -->|否| L[数据修正] L --> G K -->|是| M[抄表数据复核] M --> N{复核是否通过?} N -->|否| O[标记异常数据] O --> P[人工处理异常] P --> M N -->|是| Q[计算用水量] Q --> R[计算水费金额] R --> S[生成账单] S --> T[账单审核] T --> U{审核是否通过?} U -->|否| V[退回修改] V --> R U -->|是| W[确认开账] W --> X[发送缴费通知] X --> Y([完成抄表开账]) ``` ###### 业务规则 1. **抄表数据验证规则**: - 本期抄数不能小于上期抄数 - 月用水量不能超过设定的最大用水量限制 - 连续几个月用水量为0需要人工确认 2. **异常数据处理规则**: - 抄表数据异常自动标记,需要人工复核 - 超出正常用水量范围的数据需要现场核实 - 连续估抄超过3个月需要强制抄表 3. **开账计算规则**: - 按照阶梯水价计算水费 - 污水费按照用水量的一定比例计算 - 其他费用根据客户类型和政策文件计算 ###### 数据设计 主要涉及以下数据表: - `reading_record`:抄表记录表 - `billing_record`:开账记录表 - `meter_info`:水表信息表 - `price_policy`:价格政策表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | submitReading | 提交抄表数据 | meterCode:水表编号(必填),reading:抄表数据(必填) | Boolean类型:true/false | | validateReading | 验证抄表数据 | readingData:抄表数据(必填) | ValidationResult对象 | | calculateBill | 计算水费账单 | customerId:客户ID(必填),usage:用水量(必填) | BillInfo对象 | | approveReading | 审核抄表数据 | readingId:抄表记录ID(必填),approveResult:审核结果(必填) | Boolean类型:true/false | #### 接口 ##### 接口1: 客户信息查询接口 a、**接口名称** | 客户信息查询接口 | |---| b、**接口描述** | 1. 查询客户基本信息
2. 支持多条件组合查询
3. 支持分页查询和排序 | |---| c、**请求地址** | /admin-api/revenue/customer/page | |---| d、**请求方式** | GET | |---| e、**请求参数** 1) Query参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | pageNo | 否 | number | > 0 | 页码 | 默认为1 | | pageSize | 否 | number | 1-100 | 每页大小 | 默认为10 | | customerNo | 否 | string | | 客户编号 | 支持模糊查询 | | customerName | 否 | string | | 客户名称 | 支持模糊查询 | | status | 否 | number | 0,1,2 | 客户状态 | 0正常1停用2注销 | f、**响应参数** 1) 返回参数 | 参数名 | 必选 | 类型 | 说明 | 备注 | |---|---|---|---|---| | list | 是 | array | 客户列表 | | | total | 是 | number | 总记录数 | | 2) 返回示例 ```json { "code": 0, "msg": "成功", "data": { "list": [ { "id": 1, "customerNo": "001202400001", "customerName": "张三", "customerType": "个人", "phone": "13800138000", "address": "福州市鼓楼区某小区1号楼101室", "status": 0 } ], "total": 1 } } ``` ### 模块2: 抄表开账 #### 功能 ##### 功能1: 抄表录入 ###### 设计图 抄表录入界面,包含册本选择、抄表数据录入、异常处理等功能。 ###### 功能描述 1. **功能概述** 支持手工、PDA、远传导入、Excel导入等多种抄表方式。录入时系统自动计算水量,并与历史平均值比较,对"量高"、"量低"情况进行提示。 2. **操作权限** 抄表员、抄表管理员具有抄表录入权限。 3. **功能约束** - 抄表员只能操作自己负责的册本 - 已复核的数据不能再次修改 - 估抄连续超过3次需要现场核实 ###### 输入输出数据 1. **输入数据** - 册本信息:册本编号、抄表周期、抄表员 - 抄表数据:水表编号、本期抄数、抄表日期、抄表状态 - 异常信息:异常类型、异常说明、处理方式 2. **输出数据** - 抄表记录:完整的抄表数据记录 - 异常统计:异常数据统计报表 - 抄表进度:册本抄表完成进度 ###### 业务规则 1. **抄表数据验证**: - 本期抄数必须大于等于上期抄数 - 用水量异常(超出正常范围)需要标记 - 连续0用水量需要人工确认 2. **估抄处理规则**: - 允许临时估抄,但需要标记估抄状态 - 估抄连续超过3次强制要求实抄 - 估抄用水量按历史平均值计算 3. **异常处理规则**: - 系统自动识别异常数据并标记 - 异常数据需要抄表员确认或重新抄表 - 特殊异常需要管理员审核 ###### 业务流程 ```mermaid flowchart TD Start([开始抄表流程]) --> SelectBook[选择抄表册本] SelectBook --> LoadCustomers[加载册本客户] LoadCustomers --> SelectMethod{选择抄表方式} SelectMethod -->|手工录入| ManualInput[手工录入抄表数据] SelectMethod -->|PDA抄表| PDAInput[PDA设备录入] SelectMethod -->|远传采集| RemoteCollect[自动采集远传数据] SelectMethod -->|Excel导入| ExcelImport[Excel批量导入] ManualInput --> ValidateData[数据验证] PDAInput --> SyncPDA[PDA数据同步] RemoteCollect --> ValidateRemote[远传数据验证] ExcelImport --> ValidateExcel[Excel数据验证] SyncPDA --> ValidateData ValidateRemote --> ValidateData ValidateExcel --> ValidateData ValidateData --> CheckException{检查异常} CheckException -->|有异常| MarkException[标记异常数据] CheckException -->|无异常| SaveReading[保存抄表数据] MarkException --> HandleException{异常处理方式} HandleException -->|估抄| EstimateReading[按历史均值估抄] HandleException -->|重抄| ReturnToInput[返回重新录入] HandleException -->|确认| ConfirmException[确认异常数据] EstimateReading --> SaveReading ReturnToInput --> ManualInput ConfirmException --> SaveReading SaveReading --> CheckProgress{检查抄表进度} CheckProgress -->|未完成| LoadCustomers CheckProgress -->|已完成| CompleteReading[完成抄表] CompleteReading --> End([结束抄表流程]) ``` ###### 数据设计 主要涉及以下数据表: - `reading_book`:抄表册本表 - `reading_record`:抄表记录表 - `meter_info`:水表信息表 - `customer_info`:客户信息表 - `reading_exception`:抄表异常表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | loadReadingBook | 加载抄表册本 | bookId:册本ID(必填) | ReadingBook对象 | | submitReadingData | 提交抄表数据 | readingData:抄表数据(必填) | SubmitResult对象 | | validateReading | 验证抄表数据 | meterCode:水表编号(必填),currentReading:本期抄数(必填) | ValidationResult对象 | | markException | 标记异常数据 | readingId:抄表记录ID(必填),exceptionType:异常类型(必填) | Boolean类型:true/false | | getReadingProgress | 获取抄表进度 | bookId:册本ID(必填) | ProgressInfo对象 | ###### 其他说明 抄表录入是营收系统的起始环节,数据质量直接影响后续的开账和收费环节。系统提供多种抄表方式以适应不同的业务场景。 ##### 功能2: 复核开账 ###### 功能描述 内勤人员对抄表数据进行审核,审核通过后生成账单。 ###### 业务规则 1. 复核人员不能复核自己录入的抄表数据 2. 异常抄表数据必须提供处理说明 3. 复核通过的数据才能进入开账流程 #### 接口 ##### 接口1: 抄表数据提交接口 a、**接口名称** | 抄表数据提交接口 | |---| b、**接口描述** | 1. 提交单条或批量抄表数据
2. 自动计算用水量
3. 检测异常用水情况 | |---| c、**请求地址** | /admin-api/revenue/reading/submit | |---| d、**请求方式** | POST | |---| e、**请求参数** 2) Body参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | bookId | 是 | number | > 0 | 册本ID | | | meterId | 是 | number | > 0 | 水表ID | | | currentReading | 是 | number | ≥ 0 | 本期读数 | | | readingStatus | 是 | string | | 抄表状态 | 正常/故障/估读等 | | remark | 否 | string | | 备注 | | f、**响应参数** 2) 返回示例 ```json { "code": 0, "msg": "成功", "data": { "readingId": 1001, "waterUsage": 25.5, "isAbnormal": false, "abnormalType": null } } ``` ### 模块3: 营业收费 #### 功能 ##### 功能1: 柜台收费 ###### 功能描述 营业厅核心功能,支持通过客户编号、姓名、地址等多种方式快速定位客户欠费信息,支持多种支付方式。 ###### 业务规则 1. 收费员每日下班前必须进行"柜台结账" 2. 结账前,收错的账款可以执行"红冲"操作 3. 支持现金、POS机、微信、支付宝等多种支付方式 ###### 设计图 柜台收费界面,包含客户查询、账单显示、收费录入、票据打印等功能区域。 ###### 功能描述 1. **功能概述** 提供营业厅柜台现金收费、银行卡收费等服务,支持实时收费、预存款充值、欠费缴纳等多种收费场景。 2. **操作权限** - 收费员:柜台收费操作权限 - 收费主管:收费审核和退款权限 - 系统管理员:收费参数配置权限 3. **功能约束** - 收费员每日需要进行开账和结账操作 - 现金收费金额需要与库存现金核对 - 大额收费(超过设定金额)需要主管确认 ###### 柜台收费业务流程图 ```mermaid flowchart TD A[客户到营业厅缴费] --> B[收费员查询客户信息] B --> C{客户是否存在?} C -->|否| D[提示客户不存在] D --> E[核实客户信息] E --> B C -->|是| F[显示客户欠费信息] F --> G[选择缴费账单] G --> H[确认缴费金额] H --> I{选择支付方式} I -->|现金支付| J[现金收款] I -->|银行卡支付| K[POS机刷卡] I -->|扫码支付| L[扫码收款] I -->|预存款抵扣| M[预存款扣减] J --> N[找零处理] K --> O[确认支付成功] L --> P[确认支付成功] M --> Q[确认余额充足] N --> R[生成收费记录] O --> R P --> R Q --> S{余额是否充足?} S -->|否| T[提示余额不足] T --> I S -->|是| R R --> U[打印收费凭证] U --> V[更新账单状态] V --> W{是否有其他费用?} W -->|是| X[显示其他欠费] X --> G W -->|否| Y[完成缴费] Y --> Z[客户离开] Z --> AA([结束收费流程]) ``` ###### 输入输出数据 1. **输入数据** - 客户信息:客户编号、姓名、联系方式 - 收费信息:收费金额、收费方式、收费项目 - 支付信息:支付方式、支付凭证、找零金额 2. **输出数据** - 收费凭证:收费单据、发票信息 - 收费记录:完整的收费交易记录 - 账务更新:客户账户余额、欠费状态更新 ###### 业务规则 1. **收费计算规则**: - 按照欠费发生时间顺序收费 - 支持部分缴费,优先缴纳主费用 - 违约金按日计算,支持减免 2. **支付方式规则**: - 现金支付需要找零处理 - 银行卡支付需要确认到账 - 预存款不足时可组合支付 3. **票据管理规则**: - 收费凭证必须连续编号 - 作废票据需要保留存根 - 发票开具需要客户提供税号 ###### 数据设计 主要涉及以下数据表: - `payment_record`:收费记录表 - `payment_item`:收费项目明细表 - `customer_account`:客户账户表 - `receipt_info`:票据信息表 - `cashier_session`:收费员工作会话表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryCustomerBill | 查询客户账单 | customerCode:客户编号(必填) | List对象 | | processPayment | 处理收费业务 | paymentData:收费数据(必填) | PaymentResult对象 | | generateReceipt | 生成收费凭证 | paymentId:收费记录ID(必填) | ReceiptInfo对象 | | updateAccountBalance | 更新账户余额 | customerId:客户ID(必填),amount:金额(必填) | Boolean类型:true/false | | cashierCheckIn | 收费员签到 | cashierId:收费员ID(必填) | SessionInfo对象 | ###### 其他说明 柜台收费是客户服务的重要窗口,需要确保操作简便、流程顺畅,提供良好的客户体验。 ### 模块4: 账务处理 #### 功能 ##### 功能1: 未销账调整 ###### 功能描述 1. **功能概述** 对已生成但客户尚未缴纳的账单进行调整,包括按水量调整和按费用组成调整。支持分级审批和完整的调整流程管理。 2. **操作权限** - 营收员:提交调整申请 - 营收主管:审批小额调整 - 财务经理:审批大额调整 3. **功能约束** - 只能调整未销账的账单 - 调整金额需要设置上限 - 调整操作需要保留完整记录 ###### 业务规则 1. **调整条件规则**: - 只能调整未收费的账单 - 调整水量不能超过抄见水量 - 调整金额不能超过原账单金额 2. **审批流程规则**: - 调整金额≤100元:营收主管审批 - 调整金额>100元:财务经理审批 - 调整金额>1000元:总经理审批 3. **调整方式规则**: - 按水量调整:重新计算各项费用 - 按费用组成调整:直接调整费用项 - 混合调整:同时调整水量和费用 ###### 业务流程 ```mermaid flowchart TD A[查询未销账账单] --> B[选择调整账单] B --> C{选择调整方式} C -->|按水量调整| D[输入调整后水量] C -->|按费用调整| E[调整费用组成] D --> F[系统重新计算费用] E --> G[确认调整金额] F --> H[填写调整原因] G --> H H --> I[上传调整附件] I --> J[提交调整申请] J --> K[系统分配审批人] K --> L[审批人审核] L --> M{审批结果} M -->|通过| N[执行账单调整] M -->|拒绝| O[返回调整申请] N --> P[更新账单金额] P --> Q[生成调整凭证] Q --> R[通知申请人] R --> S([调整完成]) O --> T[修改调整申请] T --> J ``` ###### 数据设计 主要涉及以下数据表: - `account_adjustment`:账务调整表 - `adjustment_approval`:调整审批表 - `adjustment_detail`:调整明细表 - `adjustment_attachment`:调整附件表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryUnsettledBills | 查询未销账账单 | customerId:客户ID(必填) | List对象 | | submitAdjustment | 提交调整申请 | adjustmentData:调整数据(必填) | AdjustmentResult对象 | | approveAdjustment | 审批调整申请 | adjustmentId:调整ID(必填)
approvalResult:审批结果(必填) | Boolean类型:true/false | | executeAdjustment | 执行账单调整 | adjustmentId:调整ID(必填) | Boolean类型:true/false | ##### 功能2: 分账调整 ###### 功能描述 1. **功能概述** 将一笔账单分成多笔独立的账单,支持按水量和按费用组成两种分账方式。适用于混合用水、分期缴费等业务场景。 2. **操作权限** - 营收员:提交分账申请 - 营收主管:审批分账申请 - 系统管理员:分账规则配置 3. **功能约束** - 只能对未收费账单进行分账 - 分账后的总金额必须等于原账单金额 - 分账操作不可逆,需要谨慎处理 ###### 业务规则 1. **分账条件规则**: - 原账单必须是未收费状态 - 分账金额总和必须等于原账单金额 - 分账后的每笔账单都必须大于0 2. **分账方式规则**: - 按水量分账:按比例分配各项费用 - 按费用组成分账:直接分配费用项 - 按客户分账:多客户共用一个账单 3. **分账审批规则**: - 分账金额≤500元:营收主管审批 - 分账金额>500元:财务经理审批 ###### 业务流程 ```mermaid flowchart TD A[查询可分账账单] --> B[选择分账账单] B --> C{选择分账方式} C -->|按水量分账| D[设置水量分配比例] C -->|按费用分账| E[设置费用分配方案] D --> F[系统计算分账金额] E --> F F --> G[验证分账合理性] G --> H{验证是否通过} H -->|否| I[提示分账错误] H -->|是| J[填写分账原因] I --> C J --> K[提交分账申请] K --> L[系统分配审批人] L --> M[审批人审核] M --> N{审批结果} N -->|通过| O[执行分账操作] N -->|拒绝| P[返回分账申请] O --> Q[生成多个子账单] Q --> R[更新原账单状态] R --> S[生成分账凭证] S --> T([分账完成]) P --> U[修改分账申请] U --> K ``` ###### 数据设计 主要涉及以下数据表: - `account_split`:分账记录表 - `split_detail`:分账明细表 - `split_approval`:分账审批表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | querySplittableBills | 查询可分账账单 | queryCondition:查询条件(必填) | List对象 | | submitSplitApplication | 提交分账申请 | splitData:分账数据(必填) | SplitResult对象 | | approveSplitApplication | 审批分账申请 | splitId:分账ID(必填)
approvalResult:审批结果(必填) | Boolean类型:true/false | | executeSplitOperation | 执行分账操作 | splitId:分账ID(必填) | Boolean类型:true/false | ##### 功能3: 预付款退款 ###### 功能描述 1. **功能概述** 对客户的预付款进行退款处理,包括退款申请、审批、退款执行等完整流程。支持全额退款和部分退款。 2. **操作权限** - 营收员:提交退款申请 - 营收主管:审批退款申请 - 财务人员:执行退款操作 3. **功能约束** - 只能退还客户预付款余额 - 退款金额不能超过预付款余额 - 退款操作需要财务确认 ###### 业务规则 1. **退款条件规则**: - 客户预付款余额大于0 - 客户无欠费记录 - 退款原因合理 2. **退款审批规则**: - 退款金额≤200元:营收主管审批 - 退款金额>200元:财务经理审批 - 退款金额>1000元:总经理审批 3. **退款方式规则**: - 现金退款:直接现金退还 - 转账退款:转账到客户指定账户 - 抵扣退款:抵扣其他费用 ###### 业务流程 ```mermaid flowchart TD A[查询客户预付款] --> B[验证退款条件] B --> C{是否满足退款条件} C -->|否| D[提示不满足条件] C -->|是| E[填写退款申请] E --> F[输入退款金额] F --> G[选择退款方式] G --> H[填写退款原因] H --> I[上传相关证明] I --> J[提交退款申请] J --> K[系统分配审批人] K --> L[审批人审核] L --> M{审批结果} M -->|通过| N[财务确认退款] M -->|拒绝| O[返回退款申请] N --> P[执行退款操作] P --> Q[更新预付款余额] Q --> R[生成退款凭证] R --> S[通知客户] S --> T([退款完成]) O --> U[修改退款申请] U --> J D --> V([退款申请失败]) ``` ###### 数据设计 主要涉及以下数据表: - `prepayment_refund`:预付款退款表 - `refund_approval`:退款审批表 - `refund_voucher`:退款凭证表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryPrepaymentBalance | 查询预付款余额 | customerId:客户ID(必填) | PrepaymentBalance对象 | | submitRefundApplication | 提交退款申请 | refundData:退款数据(必填) | RefundResult对象 | | approveRefundApplication | 审批退款申请 | refundId:退款ID(必填)
approvalResult:审批结果(必填) | Boolean类型:true/false | | executeRefundOperation | 执行退款操作 | refundId:退款ID(必填) | Boolean类型:true/false | ##### 功能4: 呆坏账申请 ###### 功能描述 1. **功能概述** 对长期无法收回的欠费进行呆坏账处理,包括呆坏账申请、审批、核销等完整流程。用于处理确实无法收回的欠费。 2. **操作权限** - 催缴专员:提交呆坏账申请 - 财务经理:审批呆坏账申请 - 总经理:核销呆坏账 3. **功能约束** - 只能对长期欠费进行呆坏账申请 - 必须提供完整的催缴证明材料 - 呆坏账处理需要严格审批 ###### 业务规则 1. **呆坏账条件规则**: - 欠费时间超过3年 - 经过多次催缴无果 - 客户失联或破产 2. **申请材料规则**: - 完整的催缴记录 - 客户失联证明 - 法律咨询意见 3. **审批流程规则**: - 财务经理初审 - 总经理终审 - 董事会特别审批(大额) ###### 业务流程 ```mermaid flowchart TD A[筛选长期欠费] --> B[准备申请材料] B --> C[填写呆坏账申请] C --> D[上传催缴证明] D --> E[提交呆坏账申请] E --> F[财务经理初审] F --> G{初审结果} G -->|通过| H[总经理终审] G -->|拒绝| I[返回补充材料] H --> J{终审结果} J -->|通过| K[执行呆坏账核销] J -->|拒绝| L[申请被拒绝] K --> M[更新账单状态] M --> N[生成核销凭证] N --> O[财务账务处理] O --> P[归档处理记录] P --> Q([呆坏账处理完成]) I --> R[补充完善材料] R --> E L --> S([申请失败]) ``` ###### 数据设计 主要涉及以下数据表: - `bad_debt_application`:呆坏账申请表 - `bad_debt_approval`:呆坏账审批表 - `bad_debt_writeoff`:呆坏账核销表 - `bad_debt_document`:呆坏账证明材料表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryLongTermArrears | 查询长期欠费 | queryCondition:查询条件(必填) | List对象 | | submitBadDebtApplication | 提交呆坏账申请 | applicationData:申请数据(必填) | BadDebtResult对象 | | approveBadDebtApplication | 审批呆坏账申请 | applicationId:申请ID(必填)
approvalResult:审批结果(必填) | Boolean类型:true/false | | executeBadDebtWriteoff | 执行呆坏账核销 | applicationId:申请ID(必填) | Boolean类型:true/false | ### 模块5: 发票管理 #### 功能 ##### 功能1: 发票查询 ###### 功能描述 1. **功能概述** 提供发票查询功能,支持多种查询条件和查询方式。用户可以查询发票开具情况、发票状态、发票内容等信息。 2. **操作权限** - 营收员:查询发票基本信息 - 财务人员:查询发票详细信息 - 系统管理员:查询所有发票信息 3. **功能约束** - 支持多种查询条件组合 - 查询结果支持导出 - 敏感信息需要权限控制 ###### 业务规则 1. **查询条件规则**: - 支持按客户、时间、金额等条件查询 - 支持按发票状态筛选 - 支持按发票类型分类查询 2. **权限控制规则**: - 按组织架构控制查询范围 - 按时间范围限制查询跨度 - 按发票类型控制查看权限 ###### 业务流程 ```mermaid flowchart TD A[用户登录] --> B[选择查询条件] B --> C[输入查询参数] C --> D[权限验证] D --> E{权限是否通过} E -->|否| F[提示权限不足] E -->|是| G[执行查询] G --> H[显示查询结果] H --> I[选择操作] I --> J{选择操作类型} J -->|查看详情| K[显示发票详情] J -->|导出数据| L[导出发票列表] J -->|打印发票| M[打印发票] K --> N[返回查询结果] L --> O[生成导出文件] M --> P[发送打印任务] N --> Q([查询完成]) O --> Q P --> Q F --> B ``` ###### 数据设计 主要涉及以下数据表: - `invoice_info`:发票信息表 - `invoice_detail`:发票明细表 - `invoice_query_log`:发票查询日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryInvoiceList | 查询发票列表 | queryCondition:查询条件(必填) | PageResult对象 | | getInvoiceDetail | 获取发票详情 | invoiceId:发票ID(必填) | InvoiceDetail对象 | | exportInvoiceData | 导出发票数据 | exportCondition:导出条件(必填) | ExportResult对象 | | printInvoice | 打印发票 | invoiceId:发票ID(必填) | PrintResult对象 | ##### 功能2: 发票开具 ###### 功能描述 1. **功能概述** 对接第三方税控平台,支持电子发票和纸质发票的开具和管理。提供发票开具、发票作废、发票红冲等完整功能。 2. **操作权限** - 开票员:开具发票权限 - 财务主管:发票审核权限 - 系统管理员:发票系统配置权限 3. **功能约束** - 发票开具需要税控设备支持 - 发票内容需要符合税务要求 - 发票操作需要完整记录 ###### 业务规则 1. **开票条件规则**: - 客户已完成缴费 - 发票信息准确完整 - 税控设备正常工作 2. **发票类型规则**: - 电子发票:自动开具 - 纸质发票:手工开具 - 专用发票:需要资质验证 3. **发票管理规则**: - 发票号码连续管理 - 发票作废需要审批 - 发票红冲需要原因 ###### 业务流程 ```mermaid flowchart TD A[客户缴费完成] --> B[选择开票方式] B --> C{开票方式} C -->|自动开票| D[系统自动开具] C -->|手工开票| E[手工开具发票] D --> F[生成发票数据] E --> G[填写发票信息] G --> H[验证发票信息] H --> I{信息是否正确} I -->|否| J[修改发票信息] I -->|是| F F --> K[调用税控接口] K --> L[税控系统处理] L --> M{开票是否成功} M -->|否| N[开票失败处理] M -->|是| O[保存发票信息] O --> P[生成发票文件] P --> Q[发送给客户] Q --> R[更新发票状态] R --> S([开票完成]) N --> T[记录失败原因] T --> U[重新开具] U --> F J --> G ``` ###### 数据设计 主要涉及以下数据表: - `invoice_request`:开票请求表 - `invoice_tax_control`:税控接口记录表 - `invoice_error_log`:开票错误日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createInvoice | 开具发票 | invoiceData:发票数据(必填) | InvoiceResult对象 | | cancelInvoice | 作废发票 | invoiceId:发票ID(必填)
reason:作废原因(必填) | Boolean类型:true/false | | redInvoice | 红冲发票 | invoiceId:发票ID(必填)
reason:红冲原因(必填) | InvoiceResult对象 | | sendInvoiceToCustomer | 发送发票给客户 | invoiceId:发票ID(必填)
customerContact:客户联系方式(必填) | Boolean类型:true/false | ##### 功能3: 电子发票管理 ###### 功能描述 专门管理电子发票的功能,包括电子发票的生成、发送、查验等功能。支持多种电子发票格式和发送方式。 ###### 业务规则 1. **电子发票规则**:符合国家电子发票标准 2. **发送方式规则**:支持邮箱、短信、微信等多种发送方式 3. **查验规则**:支持二维码和发票代码查验 ### 模块6: 催缴管理 #### 功能 ##### 功能1: 欠费催缴 ###### 功能描述 1. **功能概述** 查询欠费用户信息,生成催缴任务,支持打印催缴单和批量发送短信。系统支持多种催缴方式,包括短信催缴、电话催缴、上门催缴等。 2. **操作权限** - 催缴专员:催缴任务执行权限 - 催缴主管:催缴任务分配和监督权限 - 收费员:催缴结果录入权限 3. **功能约束** - 催缴任务需要按照欠费金额和时间优先级排序 - 短信催缴需要控制发送频率,避免过度骚扰 - 催缴结果需要及时反馈和记录 ###### 业务规则 1. **催缴条件规则**: - 欠费超过30天自动生成催缴任务 - 欠费金额超过设定标准优先催缴 - 连续欠费客户重点关注 2. **催缴方式规则**: - 首次催缴:短信通知 - 二次催缴:电话催缴 - 三次催缴:上门催缴 - 特殊情况:停水催缴 3. **催缴频率规则**: - 同一客户一天内最多催缴3次 - 短信催缴间隔不少于2小时 - 电话催缴间隔不少于1天 ###### 业务流程 ```mermaid flowchart TD A[系统自动扫描欠费] --> B[筛选催缴条件] B --> C[生成催缴任务] C --> D[任务分配] D --> E[催缴专员接收] E --> F{选择催缴方式} F -->|短信催缴| G[编辑短信内容] F -->|电话催缴| H[拨打客户电话] F -->|上门催缴| I[安排上门时间] G --> J[批量发送短信] H --> K[电话沟通记录] I --> L[上门催缴记录] J --> M[记录催缴结果] K --> M L --> M M --> N{客户是否缴费} N -->|是| O[更新缴费状态] N -->|否| P[升级催缴方式] O --> Q[催缴任务完成] P --> R{是否达到停水条件} R -->|是| S[生成停水工单] R -->|否| T[安排下次催缴] S --> U[执行停水操作] T --> V[等待催缴时间] V --> F Q --> W([催缴流程结束]) U --> W ``` ###### 数据设计 主要涉及以下数据表: - `reminder_task`:催缴任务表 - `reminder_record`:催缴记录表 - `reminder_result`:催缴结果表 - `sms_send_log`:短信发送日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | generateReminderTask | 生成催缴任务 | customerFilter:客户筛选条件(必填) | List对象 | | sendSmsReminder | 发送短信催缴 | taskId:任务ID(必填)
smsContent:短信内容(必填) | SendResult对象 | | recordReminderResult | 记录催缴结果 | taskId:任务ID(必填)
result:催缴结果(必填) | Boolean类型:true/false | | getReminderStatistics | 获取催缴统计 | dateRange:日期范围(必填) | StatisticsResult对象 | ##### 功能2: 催缴记录管理 ###### 功能描述 管理催缴记录,包括催缴历史查询、催缴效果统计、催缴人员绩效分析等功能。 ###### 业务规则 1. **记录管理规则**:所有催缴活动都需要详细记录 2. **统计分析规则**:按时间、人员、方式统计催缴效果 3. **绩效考核规则**:根据催缴成功率进行绩效评估 ### 模块7: 统计分析 #### 功能 ##### 功能1: 报表查询 ###### 功能描述 1. **功能概述** 提供各类业务报表的查询和生成功能,包括收费报表、抄表报表、欠费报表等。支持自定义查询条件和报表格式,满足不同层级管理人员的数据需求。 2. **操作权限** - 统计员:基础报表查询权限 - 部门经理:部门级报表查询权限 - 公司领导:全公司报表查询权限 3. **功能约束** - 报表数据需要实时更新 - 大数据量报表需要异步处理 - 敏感报表需要审批才能查看 ###### 业务规则 1. **报表分类规则**: - 经营报表:收费、欠费、回收率等 - 业务报表:抄表、开账、销账等 - 管理报表:人员绩效、工作量等 2. **查询权限规则**: - 按组织架构控制数据范围 - 按时间范围限制查询跨度 - 按报表类型控制查看权限 3. **数据更新规则**: - 实时报表立即更新 - 汇总报表定时更新 - 历史报表按月归档 ###### 业务流程 ```mermaid flowchart TD A[用户登录] --> B[选择报表类型] B --> C[设置查询条件] C --> D[权限验证] D --> E{权限是否通过} E -->|否| F[提示权限不足] E -->|是| G[查询数据] G --> H{数据量大小} H -->|小数据量| I[实时生成报表] H -->|大数据量| J[异步处理] I --> K[展示报表结果] J --> L[后台生成报表] L --> M[通知用户完成] M --> N[下载报表文件] K --> O[导出报表] N --> O O --> P[打印报表] P --> Q([报表查询完成]) F --> C ``` ###### 数据设计 主要涉及以下数据表: - `report_template`:报表模板表 - `report_config`:报表配置表 - `report_generate_log`:报表生成日志表 - `report_export_log`:报表导出日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | generateReport | 生成报表 | reportType:报表类型(必填)
queryCondition:查询条件(必填) | ReportResult对象 | | exportReport | 导出报表 | reportId:报表ID(必填)
exportFormat:导出格式(必填) | ExportResult对象 | | getReportList | 获取报表列表 | userId:用户ID(必填) | List对象 | | saveReportTemplate | 保存报表模板 | templateData:模板数据(必填) | Boolean类型:true/false | ##### 功能2: 缴费记录查询 ###### 功能描述 1. **功能概述** 查询和统计客户的缴费记录,包括缴费时间、缴费金额、缴费方式、收费员等信息。支持多维度查询和统计分析。 2. **操作权限** - 收费员:查看自己的收费记录 - 收费主管:查看部门收费记录 - 财务人员:查看全部收费记录 3. **功能约束** - 支持按时间范围查询 - 支持按收费方式分类统计 - 支持按收费员分组查询 ###### 业务规则 1. **查询条件规则**: - 时间范围:支持日、月、年查询 - 金额范围:支持按金额区间筛选 - 方式筛选:支持按收费方式筛选 2. **统计分析规则**: - 按时间维度统计收费趋势 - 按方式维度统计收费结构 - 按人员维度统计收费绩效 ###### 数据设计 主要涉及以下数据表: - `payment_record`:缴费记录表 - `payment_statistics`:缴费统计表 - `cashier_performance`:收费员绩效表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryPaymentRecord | 查询缴费记录 | queryCondition:查询条件(必填) | PageResult对象 | | getPaymentStatistics | 获取缴费统计 | statisticsType:统计类型(必填)
dateRange:日期范围(必填) | StatisticsResult对象 | | exportPaymentData | 导出缴费数据 | exportCondition:导出条件(必填) | ExportResult对象 | ##### 功能3: 欠费查询分析 ###### 功能描述 1. **功能概述** 查询和分析客户的欠费情况,包括欠费金额、欠费时间、欠费原因等。支持欠费趋势分析和风险评估。 2. **操作权限** - 催缴专员:查看催缴范围内的欠费 - 财务人员:查看全部欠费情况 - 领导:查看欠费统计分析 3. **功能约束** - 支持按欠费时长分类查询 - 支持按欠费金额分级查询 - 支持按客户类型分组查询 ###### 业务规则 1. **欠费分类规则**: - 按时长:30天内、30-90天、90天以上 - 按金额:小额、中额、大额欠费 - 按类型:居民、商业、工业欠费 2. **风险评估规则**: - 长期欠费客户标记为高风险 - 大额欠费客户重点关注 - 频繁欠费客户列入黑名单 ###### 数据设计 主要涉及以下数据表: - `arrears_record`:欠费记录表 - `arrears_analysis`:欠费分析表 - `customer_risk_level`:客户风险等级表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | queryArrearsRecord | 查询欠费记录 | queryCondition:查询条件(必填) | PageResult对象 | | getArrearsAnalysis | 获取欠费分析 | analysisType:分析类型(必填) | AnalysisResult对象 | | assessCustomerRisk | 评估客户风险 | customerId:客户ID(必填) | RiskLevel对象 | ### 模块8: 代收业务 #### 功能 ##### 功能1: 实时收费 ###### 功能描述 1. **功能概述** 支持第三方渠道的实时收费业务,包括银行柜台、ATM、网上银行、手机银行等渠道的实时收费接口。 2. **操作权限** - 系统管理员:接口配置权限 - 财务人员:收费监控权限 - 技术人员:接口维护权限 3. **功能约束** - 实时收费需要保证接口稳定性 - 收费失败需要自动重试机制 - 收费记录需要完整保存 ###### 业务规则 1. **收费验证规则**: - 客户信息验证 - 欠费金额验证 - 支付能力验证 2. **收费处理规则**: - 实时扣款处理 - 账单状态更新 - 收费凭证生成 ###### 业务流程 ```mermaid flowchart TD A[第三方发起收费] --> B[接收收费请求] B --> C[验证客户信息] C --> D{客户信息是否正确} D -->|否| E[返回错误信息] D -->|是| F[查询欠费信息] F --> G[计算收费金额] G --> H[执行收费处理] H --> I{收费是否成功} I -->|否| J[返回收费失败] I -->|是| K[更新账单状态] K --> L[生成收费凭证] L --> M[返回收费成功] M --> N[记录收费日志] N --> O([实时收费完成]) E --> P[记录错误日志] J --> P P --> Q([收费流程结束]) ``` ###### 数据设计 主要涉及以下数据表: - `realtime_payment`:实时收费表 - `payment_interface_log`:收费接口日志表 - `payment_error_log`:收费错误日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | processRealtimePayment | 处理实时收费 | paymentRequest:收费请求(必填) | PaymentResponse对象 | | queryCustomerBills | 查询客户账单 | customerId:客户ID(必填) | List对象 | | updateBillStatus | 更新账单状态 | billId:账单ID(必填)
status:状态(必填) | Boolean类型:true/false | ##### 功能2: 银行代扣 ###### 功能描述 与银行系统对接,支持银行代扣业务,包括代扣文件生成、代扣结果处理、代扣对账等功能。 ##### 功能3: 银行托收 ###### 功能描述 与银行系统对接,支持银行托收业务,包括托收文件生成、托收结果处理、托收对账等功能。 ### 模块9: 业务工单 #### 功能 业务工单模块负责管理水务系统中的各类业务工单,包括客户服务工单、维修工单、稽查工单等,实现工单的全生命周期管理。 ##### 功能1: 业务清单管理 ###### 功能描述 业务清单管理用于查询和管理通过系统办理的日常业务工单及其进度信息,包括客户工单和账务处理工单。 ###### 业务工单流程图 ```mermaid flowchart TD A[工单来源] --> B{工单类型} B -->|客户服务| C[客户服务工单] B -->|账务处理| D[账务处理工单] B -->|投诉建议| E[投诉建议工单] B -->|故障报修| F[故障报修工单] C --> G[工单创建] D --> G E --> G F --> G G --> H[工单分类] H --> I[工单派发] I --> J[工单处理] J --> K{处理结果} K -->|完成| L[工单完成] K -->|需要协调| M[工单转派] K -->|需要升级| N[工单升级] M --> J N --> O[上级处理] O --> P[处理完成] L --> Q[工单归档] P --> Q Q --> R([工单结束]) ``` ###### 业务规则 1. **工单创建规则**: - 工单编号系统自动生成,格式:BW+年月日+4位流水号 - 紧急工单需要在1小时内响应 - 普通工单需要在8小时内派发 2. **工单分类规则**: - 客户服务类:开户、过户、更名、停用等 - 账务处理类:调账、退款、销账等 - 投诉建议类:服务投诉、建议反馈等 - 故障报修类:设施故障、管道漏水等 3. **工单处理规则**: - 工单必须在规定时间内处理完成 - 处理过程需要详细记录操作日志 - 重要工单需要上级审核确认 ###### 数据设计 主要涉及以下数据表: - `business_work_order`:业务工单表 - `work_order_log`:工单处理日志表 - `work_order_attachment`:工单附件表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createBusinessWorkOrder | 创建业务工单 | workOrderInfo:工单信息(必填) | WorkOrder对象 | | queryWorkOrderList | 查询工单列表 | queryCondition:查询条件(选填) | PageInfo | | processWorkOrder | 处理工单 | workOrderId:工单ID(必填),processInfo:处理信息(必填) | Boolean类型:true/false | | closeWorkOrder | 完成工单 | workOrderId:工单ID(必填),closeInfo:完成信息(必填) | Boolean类型:true/false | ##### 功能2: 上报清单管理 ###### 功能描述 上报清单管理用于处理通过移动端上报的问题工单,包括抄表员现场发现的问题、客户报告的异常等。 ###### 上报工单处理流程图 ```mermaid flowchart TD A[移动端上报] --> B[上报清单录入] B --> C[问题分类] C --> D{问题类型} D -->|水表故障| E[表务工单] D -->|管道问题| F[维修工单] D -->|水质问题| G[水质检测工单] D -->|其他问题| H[一般处理工单] E --> I[工单登记] F --> I G --> I H --> I I --> J[工单派发] J --> K[现场处理] K --> L[工单回填] L --> M[内勤审核] M --> N{审核结果} N -->|通过| O[工单完成] N -->|不通过| P[退回重处理] P --> K O --> Q([工单结束]) ``` ###### 业务规则 1. **上报规则**: - 上报必须包含现场照片或视频 - 上报地点必须准确定位 - 紧急问题需要标注紧急级别 2. **处理规则**: - 紧急上报1小时内响应 - 普通上报24小时内处理 - 处理结果需要现场确认 ###### 数据设计 主要涉及以下数据表: - `report_work_order`:上报工单表 - `report_attachment`:上报附件表 - `report_location`:上报位置表 ##### 功能3: 稽查工单管理 ###### 功能描述 稽查工单管理用于处理抄表稽查和水价稽查工单,确保抄表数据和水价政策的准确执行。 ###### 稽查工单流程图 ```mermaid flowchart TD A[稽查任务下达] --> B{稽查类型} B -->|抄表稽查| C[抄表数据核实] B -->|水价稽查| D[水价政策核实] C --> E[现场抄表核对] D --> F[价格政策核对] E --> G[稽查结果记录] F --> G G --> H{稽查结果} H -->|合格| I[稽查通过] H -->|不合格| J[问题处理] J --> K[整改要求] K --> L[重新稽查] L --> G I --> M[稽查报告] M --> N([稽查完成]) ``` ###### 业务规则 1. **稽查标准**: - 抄表稽查:核实抄表数据准确性 - 水价稽查:核实价格政策执行情况 - 稽查必须有现场证据支持 2. **稽查频率**: - 重点客户每月稽查 - 普通客户季度抽查 - 异常客户随时稽查 ###### 数据设计 主要涉及以下数据表: - `audit_work_order`:稽查工单表 - `audit_result`:稽查结果表 - `audit_evidence`:稽查证据表 ##### 功能4: 换表工单管理 ###### 功能描述 换表工单管理处理因故障、到期、客户申请等原因需要更换水表的业务工单,与表务系统的工单管理功能整合。 ###### 换表工单业务流程图 ```mermaid flowchart TD A[换表需求] --> B{换表原因} B -->|故障换表| C[故障登记] B -->|到期换表| D[到期提醒] B -->|客户申请| E[申请受理] C --> F[创建换表工单] D --> F E --> F F --> G[工单信息完善] G --> H[仓库申请水表] H --> I[工单派发] I --> J[现场换表] J --> K[旧表拆除] K --> L[新表安装] L --> M[表码记录] M --> N[工单回填] N --> O[内勤审核] O --> P{审核结果} P -->|通过| Q[更新客户档案] P -->|不通过| R[退回重做] R --> J Q --> S[旧表回库] S --> T([换表完成]) ``` ###### 业务规则 1. **换表条件**: - 水表故障无法正常计量 - 水表到期需要强制更换 - 客户申请且符合换表条件 2. **换表流程**: - 必须先申请新表再进行换表 - 换表过程需要拍照记录 - 新旧表码必须准确记录 3. **质量控制**: - 换表工单必须当日完成 - 换表质量需要客户签字确认 - 异常情况需要详细说明 ###### 数据设计 主要涉及以下数据表: - `meter_work_order`:表务工单表(复用表务系统) - `meter_replacement_log`:水表更换日志表 - `work_order_material`:工单用料表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createMeterWorkOrder | 创建换表工单 | workOrderInfo:工单信息(必填) | WorkOrder对象 | | assignMeterWorkOrder | 派发换表工单 | workOrderId:工单ID(必填),assigneeId:指派人员ID(必填) | Boolean类型:true/false | | completeMeterReplacement | 完成换表 | workOrderId:工单ID(必填),replacementInfo:换表信息(必填) | Boolean类型:true/false | | queryMeterWorkOrderList | 查询换表工单列表 | queryCondition:查询条件(选填) | PageInfo | #### 接口 ##### 接口1: 创建业务工单接口 a、**接口名称** | 创建业务工单接口 | |---| b、**接口描述** | 1. 创建各类业务工单
2. 自动分配工单编号
3. 设置工单优先级和处理期限 | |---| c、**请求地址** | /admin-api/revenue/work-order/create | |---| d、**请求方式** | POST | |---| e、**请求参数** 2) Body参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | orderType | 是 | string | | 工单类型 | 客户服务/账务处理/投诉建议/故障报修 | | title | 是 | string | 长度≤100 | 工单标题 | | | description | 是 | string | 长度≤500 | 工单描述 | | | priority | 是 | string | | 优先级 | 紧急/高/中/低 | | customerId | 否 | number | > 0 | 客户ID | 客户相关工单必填 | | contactPhone | 否 | string | | 联系电话 | | f、**响应参数** 2) 返回示例 ```json { "code": 0, "msg": "成功", "data": { "workOrderId": 1001, "orderNo": "BW20241219001", "status": "待处理", "expectedTime": "2024-12-20 18:00:00" } } ``` ##### 接口2: 工单处理接口 a、**接口名称** | 工单处理接口 | |---| b、**接口描述** | 1. 处理工单并更新状态
2. 记录处理日志
3. 支持附件上传 | |---| c、**请求地址** | /admin-api/revenue/work-order/process | |---| d、**请求方式** | POST | |---| e、**请求参数** 2) Body参数 | 参数名 | 必选 | 类型 | 限制条件 | 说明 | 备注 | |---|---|---|---|---|---| | workOrderId | 是 | number | > 0 | 工单ID | | | processResult | 是 | string | | 处理结果 | 完成/转派/升级 | | processNote | 是 | string | 长度≤500 | 处理说明 | | | attachments | 否 | array | | 附件列表 | 支持图片、文档 | f、**响应参数** 2) 返回示例 ```json { "code": 0, "msg": "成功", "data": { "workOrderId": 1001, "status": "已完成", "processTime": "2024-12-19 15:30:00" } } ``` # 子系统3设计: 表务系统 ## 功能与界面 表务系统主要负责水表的全生命周期管理,包括水表安装、维修、更换、报废等业务流程管理。 **核心业务流程:** 故障报告 → 工单创建 → 工单派发 → 现场处理 → 工单回填 → 工程验收 → 档案更新 **主要功能模块:** - **表务仓库管理**:水表库存管理、出入库记录、库存预警、物料管理 - **表务基础管理**:水表档案、维修记录、使用历史、技术参数管理 **注意**:表务工单管理功能已整合到营收系统的业务工单模块中,避免功能重复。 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | METER-001 | 表务仓库管理 | 水表库存管理和出入库管理 | 自行开发 | | METER-002 | 表务基础管理 | 水表档案和历史记录管理 | 自行开发 | ## 模块设计 ### 模块1: 表务仓库管理 #### 功能 ##### 功能1: 水表库存管理 ###### 功能描述 管理水表库存,包括入库、出库、库存查询、库存预警、物料管理等功能。 ###### 业务规则 1. **入库规则**:新水表采购入库需要验收确认,记录水表型号、规格、生产厂家等信息 2. **出库规则**:维修工单领取需要审核批准,记录领用人、用途、数量等信息 3. **库存预警**:库存低于安全库存时自动预警,支持邮件和短信通知 4. **盘点规则**:定期进行库存盘点,处理盘盈盘亏 ###### 数据设计 主要涉及以下数据表: - `meter_warehouse`:水表仓库表 - `meter_stock`:水表库存表 - `meter_in_out_record`:水表出入库记录表 - `meter_inventory`:水表盘点表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | meterStockIn | 水表入库 | stockInfo:入库信息(必填) | Boolean类型:true/false | | meterStockOut | 水表出库 | stockOutInfo:出库信息(必填) | Boolean类型:true/false | | queryStockList | 查询库存列表 | queryCondition:查询条件(选填) | PageInfo | | stockWarning | 库存预警 | warehouseId:仓库ID(选填) | List | ##### 功能2: 物料管理 ###### 功能描述 管理表务相关的物料,包括管材、配件、工具等辅助材料的管理。 ###### 业务规则 1. **物料分类**:按照用途对物料进行分类管理 2. **领用管理**:工单领用物料需要登记,完工后核销 3. **采购管理**:根据消耗情况制定采购计划 ### 模块2: 表务基础管理 #### 功能 ##### 功能1: 水表档案管理 ###### 功能描述 管理水表的基础档案信息,包括水表技术参数、安装记录、维修历史等。 ###### 业务规则 1. **档案建立**:新水表安装时建立档案,记录基本信息 2. **信息更新**:水表更换、维修时更新档案信息 3. **历史追踪**:完整记录水表的使用历史和维修记录 ###### 数据设计 主要涉及以下数据表: - `meter_archive`:水表档案表 - `meter_maintenance_record`:水表维修记录表 - `meter_replacement_history`:水表更换历史表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createMeterArchive | 创建水表档案 | meterInfo:水表信息(必填) | MeterArchive对象 | | updateMeterArchive | 更新水表档案 | archiveId:档案ID(必填),updateInfo:更新信息(必填) | Boolean类型:true/false | | queryMeterHistory | 查询水表历史 | meterId:水表ID(必填) | List | | getMeterMaintenanceRecord | 获取维修记录 | meterId:水表ID(必填) | List | # 子系统4设计: 报装系统 ## 功能与界面 报装系统负责新用户报装的全流程管理,从用户申请到最终通水的完整业务流程。 **核心业务流程:** 报装申请 → 现场踏勘 → 方案设计 → 合同签订 → 施工实施 → 验收通水 → 档案归档 **主要功能模块:** - **报装流程管理**:申请受理、踏勘设计、合同签订、施工协调、验收通水 - **现场踏勘管理**:现场勘查、技术方案设计、工程预算、可行性评估 - **报装档案管理**:报装档案、工程档案、图纸管理、客户资料管理 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | INSTALL-001 | 报装流程管理 | 新用户报装全流程管理 | 自行开发 | | INSTALL-002 | 现场踏勘管理 | 现场勘查和技术方案设计 | 自行开发 | | INSTALL-003 | 报装档案管理 | 报装和工程档案管理 | 自行开发 | ## 模块设计 ### 模块1: 报装流程管理 #### 功能 ##### 功能1: 报装流程 ###### 功能描述 报装流程管理新用户从申请到通水的全过程业务流程,实现报装业务的标准化管理。 ###### 新用户报装业务流程图 - 总流程图 ```mermaid %%{init: {'themeVariables': {'primaryColor': '#F0F7FF'}}}%% flowchart TD classDef stage fill:#4A90E2,stroke:#333,color:#fff,font-weight:bold classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A classDef endpoint fill:#FFF7E6,stroke:#FA8C16 subgraph 总流程["水务报装全流程"] direction TB A[用户报装申请]:::process --> B[资料收集与审核] B --> C{材料齐全?}:::decision C -->|否| D[补充材料] --> B C -->|是| E[受理登记] --> F[现场勘查设计] F --> G[方案审批] --> H[签订供水合同] H --> I[施工实施] --> J[工程验收] --> K[通水调试] K --> L{客户满意?}:::decision L -->|否| M[问题整改] --> K L -->|是| N([报装完成]):::endpoint end ``` - 申请受理阶段 ```mermaid flowchart LR classDef header fill:#4A90E2,stroke:#333,color:#fff classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A subgraph 申请受理[" "] A[用户提交申请]:::process --> B[资料收集] B --> C[审核材料清单] C --> D{材料齐全合规?}:::decision D -->|否| E[通知补正材料] --> C D -->|是| F[[受理登记]]:::process end ``` - 现场勘查设计阶段 ```mermaid flowchart LR classDef header fill:#4A90E2,stroke:#333,color:#fff classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A subgraph 现场勘查设计[" "] direction LR F -.-> G[分配报装编号] G --> H[安排现场踏勘] H --> I[现场勘查] I --> J[工程设计] J --> K[制定施工方案] K --> L[费用预算]:::endpoint end - 合同签订阶段 ```mermaid flowchart LR classDef header fill:#4A90E2,stroke:#333,color:#fff classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A subgraph 合同签订[" "] direction LR L -.-> M[方案审批] M --> N{审批是否通过?}:::decision N -->|否| O[方案修改] O --> M N -->|是| P[制作供水合同] P --> Q[通知用户签约]:::endpoint end ``` - 工程施工阶段 ```mermaid flowchart LR classDef header fill:#4A90E2,stroke:#333,color:#fff classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A subgraph 工程施工[" "] direction LR Q -.-> R[合同签订] R --> S[收取相关费用] S --> T[安排施工] T --> U[施工队伍派工] U --> V[现场施工] V --> W[施工进度监控] W --> X[工程质量检查]:::endpoint end ``` - 验收移交阶段 ```mermaid flowchart LR classDef header fill:#4A90E2,stroke:#333,color:#fff classDef process fill:#E6F7FF,stroke:#1890FF classDef decision fill:#F6FFED,stroke:#52C41A subgraph 验收移交[" "] direction LR X -.-> Y{质量是否合格?}:::decision Y -->|否| Z[整改处理] Z --> V Y -->|是| AA[工程验收] AA --> BB[水表安装] BB --> CC[试压测试] CC --> DD[通水调试] DD --> EE[客户验收] EE --> FF{客户是否满意?}:::decision FF -->|否| GG[问题整改] GG --> DD FF -->|是| HH[工程移交] HH --> II[档案归档] II --> JJ[开通营收账户] JJ --> KK([报装完成]):::endpoint end ``` ###### 业务规则 1. **申请受理规则**: - 申请材料必须包含身份证明、产权证明、用水申请 - 工业用水需要提供用水计划和环评报告 - 特殊用水性质需要相关部门审批 2. **现场踏勘规则**: - 踏勘需要在受理后3个工作日内完成 - 踏勘结果需要包含现场照片和测量数据 - 复杂工程需要多部门联合踏勘 3. **施工管理规则**: - 施工前需要办理相关许可手续 - 施工过程需要拍照记录关键节点 - 工程变更需要客户签字确认 ###### 数据设计 主要涉及以下数据表: - `installation_application`:报装申请表 - `site_survey`:现场踏勘表 - `construction_plan`:施工方案表 - `installation_contract`:报装合同表 - `construction_progress`:施工进度表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | submitApplication | 提交报装申请 | applicationInfo:申请信息(必填) | Application对象 | | scheduleSurvey | 安排现场踏勘 | applicationId:申请ID(必填),surveyDate:踏勘日期(必填) | Boolean类型:true/false | | createConstructionPlan | 制定施工方案 | surveyResult:踏勘结果(必填) | ConstructionPlan对象 | | signContract | 签订报装合同 | contractInfo:合同信息(必填) | Contract对象 | | trackProgress | 跟踪施工进度 | contractId:合同ID(必填) | ProgressInfo对象 | ### 模块2: 现场踏勘管理 #### 功能 ##### 功能1: 现场勘查 ###### 功能描述 负责新用户报装的现场勘查,收集现场信息,为工程设计提供基础数据。 ###### 业务规则 1. **踏勘安排**:根据申请类型和复杂程度安排相应的踏勘人员 2. **信息收集**:记录现场地理位置、管网分布、施工条件等 3. **方案建议**:提出初步的工程实施方案和注意事项 ###### 数据设计 主要涉及以下数据表: - `site_survey`:现场踏勘表 - `survey_photo`:踏勘照片表 - `survey_measurement`:踏勘测量数据表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | scheduleSurvey | 安排现场踏勘 | applicationId:申请ID(必填),surveyDate:踏勘日期(必填) | Boolean类型:true/false | | recordSurveyData | 记录踏勘数据 | surveyData:踏勘数据(必填) | SurveyRecord对象 | | generateTechPlan | 生成技术方案 | surveyId:踏勘ID(必填) | TechnicalPlan对象 | | calculateCost | 计算工程造价 | planId:方案ID(必填) | CostEstimate对象 | ##### 功能2: 技术方案设计 ###### 功能描述 根据现场踏勘结果,设计技术实施方案,包括管线走向、施工方案、材料清单等。 ###### 业务规则 1. **方案设计**:根据踏勘结果制定详细的技术方案 2. **材料清单**:计算所需材料的种类和数量 3. **造价预算**:根据方案和材料清单计算工程造价 ### 模块3: 报装档案管理 #### 功能 ##### 功能1: 报装档案管理 ###### 功能描述 管理报装过程中产生的各类档案资料,包括申请资料、踏勘资料、施工资料、验收资料等。 ###### 业务规则 1. **档案分类**:按照业务类型对档案进行分类管理 2. **档案归档**:报装完成后及时归档相关资料 3. **档案查询**:支持多种方式查询档案信息 ###### 数据设计 主要涉及以下数据表: - `installation_archive`:报装档案表 - `archive_document`:档案文档表 - `archive_category`:档案分类表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createArchive | 创建报装档案 | archiveInfo:档案信息(必填) | Archive对象 | | uploadDocument | 上传档案文档 | archiveId:档案ID(必填),document:文档(必填) | Boolean类型:true/false | | queryArchive | 查询报装档案 | queryCondition:查询条件(选填) | PageInfo | | archiveComplete | 档案归档 | archiveId:档案ID(必填) | Boolean类型:true/false | # 子系统5设计: 客户服务 ## 功能与界面 客户服务系统为用水客户提供多渠道、便捷的线上自助服务,主要通过微信和支付宝小程序实现。 **核心业务流程:** 账户绑定 → 信息查询 → 在线缴费 → 电子发票 → 客户服务 **主要功能模块:** - **账户绑定管理**:客户账户绑定、解绑、验证、多账户管理 - **信息查询服务**:账单查询、缴费记录查询、用水量查询、欠费查询 - **在线缴费服务**:微信支付、支付宝支付、银行卡支付、预存款缴费 - **电子发票服务**:发票申请、发票查询、发票下载、发票推送 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | SERVICE-001 | 账户绑定管理 | 客户账户绑定和管理 | 自行开发 | | SERVICE-002 | 信息查询服务 | 各类信息查询服务 | 自行开发 | | SERVICE-003 | 在线缴费服务 | 多渠道在线缴费服务 | 自行开发 | | SERVICE-004 | 电子发票服务 | 电子发票管理服务 | 自行开发 | ## 模块设计 ### 模块1: 账户绑定管理 #### 功能 ##### 功能1: 账户绑定 ###### 功能描述 用户通过微信或支付宝绑定水务账户,实现在线查询和缴费功能。支持多种绑定方式和多账户管理。 ###### 业务规则 1. **绑定验证**:通过客户编号、手机号、身份证等信息验证身份 2. **多账户管理**:一个微信/支付宝账户可以绑定多个水务账户 3. **安全控制**:绑定和解绑操作需要短信验证码确认 ###### 数据设计 主要涉及以下数据表: - `customer_binding`:客户绑定关系表 - `binding_verification`:绑定验证记录表 - `binding_log`:绑定操作日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | bindAccount | 绑定客户账户 | bindingInfo:绑定信息(必填) | BindingResult对象 | | unbindAccount | 解绑客户账户 | bindingId:绑定ID(必填) | Boolean类型:true/false | | verifyBinding | 验证绑定信息 | customerCode:客户编号(必填),verifyInfo:验证信息(必填) | Boolean类型:true/false | | getBindingList | 获取绑定列表 | openId:微信/支付宝ID(必填) | List | ##### 功能2: 账户管理 ###### 功能描述 管理已绑定的客户账户,包括账户信息更新、绑定状态管理、账户切换等。 ###### 业务规则 1. **状态管理**:支持启用、停用绑定关系 2. **信息同步**:定期同步客户基础信息 3. **异常处理**:处理账户异常情况(如销户、过户等) ### 模块2: 信息查询服务 #### 功能 ##### 功能1: 账单查询 ###### 功能描述 提供客户账单查询服务,包括当期账单、历史账单、欠费信息等查询功能。 ###### 业务规则 1. **查询权限**:只能查询已绑定账户的信息 2. **数据范围**:支持查询最近24个月的账单信息 3. **实时更新**:账单信息实时同步更新 ###### 数据设计 主要涉及以下数据表: - `billing_record`:开账记录表 - `payment_record`:缴费记录表 - `customer_info`:客户信息表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | getBillInfo | 获取账单信息 | customerCode:客户编号(必填),billMonth:账单月份(选填) | BillInfo对象 | | getPaymentHistory | 获取缴费历史 | customerCode:客户编号(必填),startDate:开始日期(选填),endDate:结束日期(选填) | List | | getArrearsInfo | 获取欠费信息 | customerCode:客户编号(必填) | ArrearsInfo对象 | | getUsageHistory | 获取用水历史 | customerCode:客户编号(必填),months:查询月数(选填) | List | ### 模块3: 在线缴费服务 #### 功能 ##### 功能1: 多渠道支付 ###### 功能描述 支持微信支付、支付宝支付、银行卡支付等多种支付方式,为客户提供便捷的在线缴费服务。 ###### 业务规则 1. **支付限额**:单次支付金额不超过5000元 2. **支付确认**:支付完成后实时更新账户状态 3. **退款处理**:支持支付失败和错误支付的退款处理 ###### 数据设计 主要涉及以下数据表: - `online_payment`:在线支付记录表 - `payment_channel`:支付渠道表 - `refund_record`:退款记录表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | createPayment | 创建支付订单 | paymentInfo:支付信息(必填) | PaymentOrder对象 | | confirmPayment | 确认支付结果 | orderId:订单ID(必填) | PaymentResult对象 | | processRefund | 处理退款申请 | refundInfo:退款信息(必填) | RefundResult对象 | | getPaymentStatus | 查询支付状态 | orderId:订单ID(必填) | PaymentStatus对象 | ### 模块4: 电子发票服务 #### 功能 ##### 功能1: 发票管理 ###### 功能描述 提供电子发票申请、查询、下载等服务,支持个人和企业发票需求。 ###### 业务规则 1. **发票类型**:支持普通发票和专用发票 2. **开票时限**:缴费后30天内可申请发票 3. **发票推送**:发票开具成功后自动推送给客户 ###### 数据设计 主要涉及以下数据表: - `invoice_application`:发票申请表 - `invoice_info`:发票信息表 - `invoice_push_log`:发票推送日志表 ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | applyInvoice | 申请电子发票 | invoiceRequest:发票申请(必填) | InvoiceApplication对象 | | getInvoiceList | 获取发票列表 | customerCode:客户编号(必填) | List | | downloadInvoice | 下载电子发票 | invoiceId:发票ID(必填) | InvoiceFile对象 | | pushInvoice | 推送电子发票 | invoiceId:发票ID(必填),pushChannel:推送渠道(必填) | Boolean类型:true/false | # 子系统6设计: 手机抄表APP ## 功能与界面 手机抄表APP是为抄表员提供的移动端应用,实现现场抄表、工单处理、数据同步等功能。 **核心业务流程:** 任务下载 → 现场抄表 → 问题上报 → 工单处理 → 数据上传 → 结果同步 **主要功能模块:** - **登录模块**:机构编号、用户名密码认证、自动登录、版权标识 - **首页搜索**:多维度搜索、最近搜索记录、抄表任务列表 - **采集任务管理**:任务列表、批量下载、单户采集详情 - **换表工单**:工单处理流程、设备信息录入、附件上传 - **其他工单**:复水工单、稽查任务、抄表稽查、问题上报 - **个人信息与系统设置**:个人信息管理、账户安全、系统维护 ## 模块列表 | 模块编号 | 模块名称(标识) | 功能描述 | 开发方式 | |---|---|---|---| | MOBILE-001 | 登录模块 | 机构编号、用户名密码认证、自动登录 | 自行开发 | | MOBILE-002 | 首页搜索模块 | 多维度搜索、最近搜索记录、抄表任务 | 自行开发 | | MOBILE-003 | 采集任务管理模块 | 任务列表管理、批量下载、单户采集 | 自行开发 | | MOBILE-004 | 换表工单模块 | 换表工单处理、设备信息录入 | 自行开发 | | MOBILE-005 | 其他工单模块 | 复水、稽查、问题上报等工单处理 | 自行开发 | | MOBILE-006 | 个人信息与系统设置模块 | 个人信息管理、系统设置维护 | 自行开发 | ## 模块设计 ### 模块1: 登录模块 #### 功能 ##### 功能1: 核心登录功能 ###### 功能描述 1. **功能概述** 提供移动端用户登录认证功能,支持机构编号、用户名、密码三要素登录,包含自动登录选项和登录问题支持。 2. **操作权限** - 抄表员:基础抄表功能权限 - 抄表组长:抄表监督和工单分配权限 - 表务人员:换表和维修工单权限 3. **功能约束** - 必须输入机构编号、用户名、密码三要素 - 支持自动登录功能(默认未勾选) - 登录失败提供客服支持途径 ###### 业务规则 1. **登录验证规则**:机构编号、用户名、密码三要素缺一不可 2. **自动登录规则**:勾选后下次打开应用自动提交历史凭证登录 3. **安全控制规则**:密码输入内容自动掩码显示 ###### 业务流程 ```mermaid flowchart TD A[启动APP] --> B[显示欢迎语] B --> C[显示登录表单] C --> D[输入机构编号] D --> E[输入用户名] E --> F[输入密码] F --> G[选择自动登录] G --> H[点击登录按钮] H --> I[提交身份验证] I --> J{验证结果} J -->|成功| K[进入主界面] J -->|失败| L[显示登录失败] L --> M[提示联系客服] M --> C K --> N[保存登录状态] N --> O([登录完成]) ``` ###### 界面设计要点 1. **欢迎语**:顶部显示"您好!欢迎使用「手机抄表」功能" 2. **登录表单**: - 机构编号输入框:占位提示"请输入机构ID" - 用户名输入框:占位提示"输入账号" - 密码输入框:占位提示"输入密码",内容自动掩码 - 自动登录复选框:标签为"自动登录",默认未勾选 - 登录按钮:标签为"登录",主操作按钮 3. **辅助功能**: - 底部提示"登录遇到问题联系客服" - 底部版权标识"福建水投集团" ###### 数据设计 主要涉及以下数据表: - `system_users`:用户基本信息表(复用Web端) - `system_login_log`:登录日志表(复用Web端,扩展设备类型字段) - `mobile_user_cache`:移动端用户缓存表(移动端特有,用于离线缓存) ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | submitLogin | 提交登录验证 | orgCode:机构编号(必填)
username:用户名(必填)
password:密码(必填)
autoLogin:自动登录(可选) | LoginResult对象 | | checkAutoLogin | 检查自动登录 | deviceId:设备ID(必填) | AutoLoginResult对象 | | saveLoginCredentials | 保存登录凭证 | credentials:登录凭证(必填) | Boolean类型:true/false | | clearLoginCache | 清除登录缓存 | userId:用户ID(必填) | Boolean类型:true/false | ### 模块2: 首页搜索模块 #### 功能 ##### 功能1: 搜索框功能 ###### 功能描述 1. **功能概述** 提供多维度客户搜索功能,支持户号、户名、地址、钢印号、手机号等多种搜索条件,实现快速定位客户信息。 2. **操作权限** - 所有登录用户均可使用搜索功能 - 搜索结果根据用户权限进行过滤 3. **功能约束** - 支持实时搜索和关键词高亮 - 搜索历史自动保存和去重 - 异常状态需要友好提示 ###### 业务规则 1. **搜索条件规则**:支持户号、户名、地址、钢印号、手机号模糊匹配 2. **搜索历史规则**:最近搜索记录自动去重,显示关键信息 3. **结果展示规则**:搜索结果实时显示,支持关键词高亮 ###### 业务流程 ```mermaid flowchart TD A[进入首页] --> B[显示搜索框] B --> C[显示最近搜索记录] C --> D[显示抄表任务列表] B --> E[输入搜索关键词] E --> F[实时搜索匹配] F --> G{是否有结果} G -->|有结果| H[显示搜索结果] G -->|无结果| I[显示"未找到相关用户"] H --> J[点击搜索结果] C --> K[点击最近搜索] D --> L[点击抄表任务] J --> M[跳转用户详情页] K --> M L --> M M --> N[携带用户信息] N --> O[加载用户档案] O --> P[显示水表数据] P --> Q[显示欠费账单] Q --> R([完成用户信息加载]) ``` ###### 界面设计要点 1. **搜索框区域**: - 占位提示:"户号/户名/地址/钢印号/手机号" - 右侧取消按钮:清空内容并退出搜索状态 2. **最近搜索记录**: - 显示"最近搜索"标签 - 条目包含户号、户名、地址末段 - 点击条目跳转用户详情页 3. **抄表任务列表**: - 显示"抄表任务"标签 - 每户显示户号、户名、完整地址 - 相同户号的多条记录合并显示 4. **搜索结果列表**: - 实时展示匹配结果 - 支持关键词高亮显示 - 无结果时显示友好提示 ###### 数据设计 主要涉及以下数据表: - `mobile_search_history`:移动端搜索历史表(移动端特有) - `reading_book`:抄表册本表(复用Web端) - `customer_info`:客户基本信息表(复用Web端) - `meter_info`:水表信息表(复用Web端) ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | searchCustomer | 搜索客户信息 | keyword:搜索关键词(必填)
searchType:搜索类型(可选) | List对象 | | getSearchHistory | 获取搜索历史 | userId:用户ID(必填)
limit:条数限制(可选) | List对象 | | saveSearchHistory | 保存搜索历史 | userId:用户ID(必填)
keyword:关键词(必填) | Boolean类型:true/false | | getReadingTaskList | 获取抄表任务列表 | employeeId:抄表员ID(必填) | List对象 | ### 模块3: 采集任务管理模块 #### 功能 ##### 功能1: 任务列表管理 ###### 功能描述 1. **功能概述** 管理抄表员的采集任务,包括任务列表展示、数据统计面板、任务筛选分类、批量下载等功能。 2. **操作权限** - 抄表员:查看和执行自己的任务 - 抄表组长:查看所有任务和分配权限 3. **功能约束** - 任务按册本组织,支持离线操作 - 未下载任务需要联网下载数据包 - 支持全选和批量操作 ###### 业务规则 1. **任务状态规则**:未下载(需联网)、已下载(支持离线) 2. **任务筛选规则**:按"全部/未采集/采集"分类查看 3. **批量操作规则**:支持全选和多选批量下载 ###### 业务流程 ```mermaid flowchart TD A[进入任务管理] --> B[显示操作员姓名] B --> C[显示全局搜索框] C --> D[显示数据统计面板] D --> E[显示任务筛选标签] E --> F[显示任务列表] F --> G[选择任务项] G --> H[批量操作] H --> I[全选功能] I --> J[点击下载按钮] J --> K{网络状态} K -->|有网络| L[下载任务数据包] K -->|无网络| M[提示网络异常] L --> N[更新任务状态] N --> O[显示"已下载"] O --> P[支持离线操作] P --> Q([任务下载完成]) M --> R[等待网络恢复] R --> J ``` ###### 界面设计要点 1. **页面头部**: - 显示当前操作员姓名(如"张三") - 全局搜索框:支持按"户号/户名/地址/钢印"搜索 2. **数据统计面板**: - 分栏显示"应采集X|已采集Y|已上传Z" - 实时反映任务进度 3. **任务筛选**: - 标签页导航:"全部/未采集/采集" - 支持按状态分类查看 4. **任务列表**: - 单条任务项:册本编号、备注、状态标签 - 左侧单选按钮:支持勾选任务项 - 状态标识:"未下载"或"已下载" 5. **批量操作区**: - 底部"全选"按钮:勾选所有任务 - 显示"已选册本(N)"计数 - 蓝色"下载"按钮:批量下载选中任务 ###### 数据设计 主要涉及以下数据表: - `reading_book`:抄表册本表(复用Web端) - `reading_record`:抄表记录表(复用Web端) - `customer_info`:客户基本信息表(复用Web端) - `meter_info`:水表信息表(复用Web端) - `mobile_task_sync`:移动端任务同步表(移动端特有,用于离线任务管理) ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | getTaskList | 获取任务列表 | employeeId:抄表员ID(必填)
status:任务状态(可选) | List对象 | | downloadTaskData | 下载任务数据包 | taskIds:任务ID列表(必填) | DownloadResult对象 | | getTaskStatistics | 获取任务统计 | employeeId:抄表员ID(必填) | TaskStatistics对象 | | updateTaskStatus | 更新任务状态 | taskId:任务ID(必填)
status:状态(必填) | Boolean类型:true/false | ##### 功能2: 单户采集详情 ###### 功能描述 1. **功能概述** 提供单个客户的详细采集功能,包括住户档案展示、多种采集方式选择、户间导航等。 2. **功能约束** - 显示完整的客户档案信息 - 支持定位、NFC、扫码三种采集方式 - 支持按任务列表顺序切换客户 ###### 业务规则 1. **档案展示规则**:显示户号、户名、地址、表钢印号、水表编号、安装位置等 2. **采集方式规则**:定位(GPS)、NFC(电子标签)、扫码(二维码/条形码) 3. **导航规则**:按任务列表顺序支持上一户/下一户切换 ###### 界面设计要点 1. **住户档案区域**: - 显示户号、户名、完整地址 - 显示表钢印号、水表编号、安装位置 - 右上角显示状态标签(如"正常""欠费") 2. **采集方式选择**: - 并列提供三种采集入口 - 定位:获取GPS坐标 - NFC:读取电子标签 - 扫码:识别二维码/条形码 3. **户间导航**: - 底部"上一户/下一户"按钮 - 按任务列表顺序切换 ### 模块4: 换表工单模块 #### 功能 ##### 功能1: 换表工单处理流程 ###### 功能描述 1. **功能概述** 处理换表工单的完整流程,从待办工单列表到工单完成,包括工单信息填写、设备信息录入、附件上传等。 2. **操作权限** - 表务人员:处理换表工单 - 工单管理员:工单分配和审核 3. **功能约束** - 必填字段必须完整填写 - 必须上传现场照片和视频 - 支持工单退单和说明原因 ###### 业务规则 1. **工单筛选规则**:支持按用户名、时间、工单类型、抄表员多维度筛选 2. **信息录入规则**:旧表底码、新表底码为必填项 3. **设备信息规则**:IMEI为强制录入,IMSI和通讯模块号可选 4. **附件要求规则**:必须上传图片或视频作为现场证据 ###### 业务流程 ```mermaid flowchart TD A[待办工单列表] --> B[筛选工单] B --> C[选择换表工单] C --> D[查看工单详情] D --> E[填写基础信息] E --> F[录入表具数据] F --> G[填写技术参数] G --> H[录入设备标识] H --> I[填写备注信息] I --> J[上传附件] J --> K{信息是否完整} K -->|否| L[提示必填项] L --> F K -->|是| M[选择操作] M --> N{完成还是退单} N -->|完成| O[提交工单] N -->|退单| P[填写退单原因] O --> Q[工单状态更新] P --> R[工单退回] Q --> S[通知相关人员] R --> T[记录退单日志] S --> U([工单处理完成]) T --> U ``` ###### 界面设计要点 1. **待办工单列表**: - 筛选功能:用户名、开始时间、工单类型、抄表员 - 时间选择器:支持跨年度选择(2023-2025年) - 工单信息:编号、户主姓名、地址、联系方式、创建时间 2. **工单信息填写**: - 基础信息:户号、户名、地址、联系电话(自动带出,不可编辑) - 表具数据:旧表底码(必填)、新表底码(必填)、表钢印号/水表编号/条形码 - 技术参数:新表口径、新表量程、新表厂家/型号 - 设备标识:IMEI(强制录入)、IMSI、通讯模块号 - 备注框:支持长文本输入 3. **附件上传**: - 支持图片(拍照/相册) - 支持视频(现场录制) 4. **操作按钮**: - 蓝色"完成"按钮:提交工单 - 红色"退单"按钮:终止并说明原因 ###### 数据设计 主要涉及以下数据表: - `meter_work_order`:表务工单表(复用Web端) - `meter_replacement_log`:水表更换日志表(复用Web端) - `work_order_material`:工单用料表(复用Web端) - `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场附件管理) ###### 方法说明 | 方法名 | 方法作用 | 输入参数(是否必填) | 返回数据 | |---|---|---|---| | getWorkOrderList | 获取待办工单列表 | employeeId:抄表员ID(必填)
filter:筛选条件(可选) | List对象 | | submitMeterChange | 提交换表工单 | workOrderId:工单ID(必填)
meterChangeData:换表数据(必填) | SubmitResult对象 | | uploadAttachment | 上传附件 | workOrderId:工单ID(必填)
attachmentData:附件数据(必填) | UploadResult对象 | | rejectWorkOrder | 退单处理 | workOrderId:工单ID(必填)
reason:退单原因(必填) | Boolean类型:true/false | ### 模块5: 其他工单模块 #### 功能 ##### 功能1: 复水工单 ###### 功能描述 1. **功能概述** 处理客户复水工单,包括日期选择、用户信息展示、欠费状态校验、二次确认操作等。 2. **业务规则** - 必须校验欠费结清状态 - 需要二次确认操作 - 记录复水操作时间和操作人 ###### 业务流程 ```mermaid flowchart TD A[选择复水工单] --> B[选择日期] B --> C[展示用户信息] C --> D[显示欠费结清状态] D --> E{欠费是否结清} E -->|是| F[显示"确认开水"按钮] E -->|否| G[提示需要结清欠费] F --> H[点击确认开水] H --> I[二次弹窗确认] I --> J{确认操作} J -->|是| K[执行复水操作] J -->|否| L[取消操作] K --> M[更新客户状态] M --> N[记录操作日志] N --> O([复水工单完成]) ``` ##### 功能2: 稽查任务 ###### 功能描述 1. **功能概述** 执行抄表稽查任务,包括待办列表、采集任务管理、数据看板、离线数据下载等。 2. **业务规则** - 支持双模式入口:待办列表和采集任务管理 - 实时显示稽查进度 - 支持册本批量下载 ##### 功能3: 抄表稽查 ###### 功能描述 1. **功能概述** 对抄表数据进行稽查验证,包括用户档案核对、抄表数据对比、稽查结论填写、过程存证等。 2. **业务规则** - 必须填写稽查结论(合格/不合格) - 必须上传图片和视频证据 - 记录上期读数和本期读数 ###### 界面设计要点 1. **信息结构**: - 用户档案:编号、姓名、地址、钢印号 - 抄表数据:上期读数→本期读数 - 稽查结论:"合格"单选按钮(强制选择) - 过程存证:图片+视频附件上传(必传) 2. **操作按钮**: - 蓝色"保存"按钮:完成稽查 ##### 功能4: 问题上报 ###### 功能描述 1. **功能概述** 支持现场问题上报,包括问题类型选择、处理时效设置、溯源证据上传等。 2. **业务规则** - 上报类型固定为"换表申请" - 处理时效精确到小时 - 必须上传图片或视频证据 ###### 界面设计要点 1. **核心字段**: - 上报类型:固定为"换表申请" - 处理时效:精确到小时(如2025-06-06至2025-06-06) - 溯源证据:强制上传图片/视频 2. **操作流程**: - 保存提交后触发后台工单派发 ###### 数据设计 其他工单模块主要涉及以下数据表: - `meter_work_order`:表务工单表(复用Web端,包括复水、稽查、维修等工单) - `customer_info`:客户基本信息表(复用Web端) - `customer_account`:客户账户信息表(复用Web端,用于欠费状态查询) - `reading_record`:抄表记录表(复用Web端,用于稽查数据对比) - `mobile_work_attachment`:移动端工单附件表(移动端特有,用于现场证据存储) ### 模块6: 个人信息与系统设置模块 #### 功能 ##### 功能1: 个人信息管理 ###### 功能描述 1. **功能概述** 管理个人基本信息,包括姓名修改、手机号设置、信息查看等功能。 2. **业务规则** - 姓名可以修改,需要二次确认 - 手机号首次设置后可以修改 - 账号信息不可修改 ###### 界面设计要点 1. **信息展示**: - 姓名、账号、手机号码状态 2. **编辑功能**: - 修改姓名:进入子页面,点击"完成"提交 - 设置手机号:未设置时填写,点击"完成"保存 ##### 功能2: 账户安全配置 ###### 功能描述 1. **功能概述** 管理账户安全相关设置,包括密码修改、退出登录等。 2. **业务规则** - 新密码需要符合安全要求 - 需要输入新密码和确认密码 - 退出登录清除本地会话 ##### 功能3: 系统维护选项 ###### 功能描述 1. **功能概述** 提供系统维护相关功能,包括日志上传、缓存清理、数据备份、版本信息等。 2. **业务规则** - 重要操作需要二次确认 - 支持异常水量预警开关 - 显示当前应用版本 ###### 界面设计要点 1. **系统维护功能**: - 日志上传:弹出确认框,发送至服务器 - 清理缓存:弹出提示确认,清空本地记录 - 抄表设置:启用"异常水量预警"开关 - 备份数据库:保存本地数据 - 版本信息:显示当前版本(如V1.0.3) ###### 数据设计 主要涉及以下数据表: - `system_users`:用户基本信息表(复用Web端) - `system_login_log`:登录日志表(复用Web端,记录密码修改等操作) - `mobile_app_config`:移动端应用配置表(移动端特有,用于个性化设置) ## 关键业务规则与注意事项 ### 数据校验规则 1. **必填字段验证**: - 标*字段必须完整填写 - 换表工单的旧表底码、新表底码为必填 - IMEI设备识别码为强制录入项 2. **格式校验规则**: - 手机号格式验证 - 日期范围不超过当前日期 - 表底码数值合理性检查 ### 状态一致性规则 1. **任务状态管理**: - 未下载任务不可直接采集 - 相同户号在列表中合并显示 - 任务状态实时同步更新 2. **工单状态流转**: - 工单状态按流程严格流转 - 退单操作需要填写原因 - 完成工单需要附件证据 ### 离线能力支持 1. **离线操作规则**: - 已下载任务支持无网环境操作 - 网络恢复后自动同步数据 - 本地缓存数据完整性保证 2. **数据同步策略**: - 支持实时上传和批量上传 - 冲突数据需要人工处理 - 重要数据多重备份保护 ### 防误操作机制 1. **二次确认操作**: - 复水操作需要二次确认 - 退单操作需要填写原因 - 清理缓存需要确认提示 2. **数据完整性保护**: - 附件上传需要清晰可辨 - 安装位置照片必须上传 - 关键操作记录审计日志 # 中间件和其他设计 ## 缓存设计 ### Redis | 作用 | Key | Value | 过期时间 | |---|---|---|---| | 用户会话 | user:session:{userId} | 用户信息JSON | 2小时 | | 系统配置 | system:config:{configKey} | 配置值 | 24小时 | | 数据字典 | system:dict:{dictType} | 字典项列表 | 24小时 | | 验证码 | captcha:{uuid} | 验证码值 | 5分钟 | | 移动端任务 | mobile:task:{employeeId} | 抄表任务JSON | 12小时 | | 移动端缓存 | mobile:cache:{deviceId} | 缓存数据JSON | 24小时 | ## 消息队列设计 ### RabbitMQ | 作用 | Queue | Consumer | |---|---|---| | 短信发送 | sms.send | SmsConsumer | | 邮件发送 | email.send | EmailConsumer | | 抄表数据处理 | reading.process | ReadingConsumer | ## 定时任务设计 | 使用工具 | 功能描述 | 方法名称 | 调用周期 | |---|---|---|---| | Quartz | 自动开账任务 | autoGenerateBills | 每日凌晨2点 | | Quartz | 欠费统计 | calculateArrears | 每日凌晨3点 | | Quartz | 数据备份 | backupDatabase | 每日凌晨4点 | | Quartz | 清理过期日志 | cleanExpiredLogs | 每周日凌晨1点 | ## 数据库设计 详见《新-数据库设计说明书.md》。 ## 数据字典设计 详见《新-数据库设计说明书.md》中的数据字典部分。 # 对外接口 系统需要与多个外部系统进行接口对接,实现数据交换和业务协同。以下是主要外部接口的详细设计。 ## 金融支付接口 ### 银行接口 银行接口用于实现银行代扣、托收、实时收费等功能。 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-001 | 银行代扣接口 | 银行托收代扣缴费 | HTTPS | 用户信息、缴费金额 | 扣款结果 | | EXT-002 | 银行托收接口 | 银行托收业务 | HTTPS | 托收文件、客户信息 | 托收结果 | | EXT-003 | 银行实时收费接口 | 银行柜台实时收费 | HTTPS | 客户编号、收费金额 | 收费结果 | | EXT-004 | 银行对账接口 | 银行交易对账 | HTTPS | 对账文件、交易记录 | 对账结果 | #### 银行代扣接口详细设计 **接口描述:** 与银行系统对接,实现自动代扣客户水费功能。 **业务流程:** ```mermaid flowchart TD A[生成代扣文件] --> B[上传到银行FTP] B --> C[银行处理代扣] C --> D[接收代扣结果] D --> E[更新客户账单] E --> F[生成代扣记录] F --> G[对账处理] G --> H([代扣完成]) ``` **接口参数:** - 请求方式:POST - 数据格式:JSON - 加密方式:RSA + AES **请求参数:** ```json { "customerCode": "客户编号", "customerName": "客户姓名", "bankAccount": "银行账户", "amount": "代扣金额", "billInfo": "账单信息", "deductDate": "代扣日期" } ``` **响应参数:** ```json { "resultCode": "结果码", "resultMsg": "结果信息", "transactionId": "交易流水号", "deductResult": "代扣结果", "balance": "账户余额" } ``` ### 第三方支付接口 #### 微信支付接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-101 | 微信支付统一下单 | 微信支付下单 | HTTPS | 订单信息、金额 | 预支付ID | | EXT-102 | 微信支付结果查询 | 查询支付结果 | HTTPS | 订单号 | 支付结果 | | EXT-103 | 微信支付退款 | 微信支付退款 | HTTPS | 订单号、退款金额 | 退款结果 | #### 支付宝接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-201 | 支付宝统一收单 | 支付宝收单 | HTTPS | 订单信息、金额 | 支付结果 | | EXT-202 | 支付宝交易查询 | 查询交易状态 | HTTPS | 交易号 | 交易状态 | | EXT-203 | 支付宝交易退款 | 支付宝退款 | HTTPS | 交易号、退款金额 | 退款结果 | ## 通信接口 ### 短信平台接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-301 | 短信发送接口 | 发送短信通知 | HTTPS | 手机号、短信内容 | 发送结果 | | EXT-302 | 短信状态查询 | 查询短信状态 | HTTPS | 短信ID | 发送状态 | | EXT-303 | 短信余额查询 | 查询短信余额 | HTTPS | 账户信息 | 余额信息 | #### 短信发送接口详细设计 **接口描述:** 与短信平台对接,实现催缴短信、通知短信等功能。 **业务流程:** ```mermaid flowchart TD A[生成短信内容] --> B[调用短信接口] B --> C[短信平台处理] C --> D[返回发送结果] D --> E[记录发送日志] E --> F[状态回调处理] F --> G([短信发送完成]) ``` **接口参数:** ```json { "mobile": "手机号码", "content": "短信内容", "templateId": "模板ID", "params": "模板参数" } ``` ### 邮件接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-401 | 邮件发送接口 | 发送邮件通知 | HTTPS | 邮箱地址、邮件内容 | 发送结果 | | EXT-402 | 邮件状态查询 | 查询邮件状态 | HTTPS | 邮件ID | 发送状态 | ## 税务接口 ### 开票接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-501 | 电子发票开具 | 开具电子发票 | HTTPS | 发票信息、税率 | 发票结果 | | EXT-502 | 发票状态查询 | 查询发票状态 | HTTPS | 发票代码 | 发票状态 | | EXT-503 | 发票作废 | 作废发票 | HTTPS | 发票代码、作废原因 | 作废结果 | | EXT-504 | 发票红冲 | 红冲发票 | HTTPS | 发票代码、红冲原因 | 红冲结果 | #### 电子发票开具接口详细设计 **接口描述:** 与税控平台对接,实现电子发票开具功能。 **业务流程:** ```mermaid flowchart TD A[客户缴费完成] --> B[生成发票数据] B --> C[调用开票接口] C --> D[税控平台处理] D --> E{开票是否成功} E -->|是| F[返回发票信息] E -->|否| G[返回错误信息] F --> H[保存发票记录] G --> I[记录错误日志] H --> J[发送发票给客户] I --> K[重试或人工处理] J --> L([开票完成]) K --> C ``` ## 物联网接口 ### 集抄系统接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-601 | 水表数据采集 | 远程抄表数据采集 | HTTPS | 水表编号、时间范围 | 抄表数据 | | EXT-602 | 水表状态查询 | 查询水表在线状态 | HTTPS | 水表编号 | 状态信息 | | EXT-603 | 水表参数设置 | 设置水表参数 | HTTPS | 水表编号、参数信息 | 设置结果 | | EXT-604 | 水表控制指令 | 远程控制水表 | HTTPS | 水表编号、控制指令 | 控制结果 | #### 水表数据采集接口详细设计 **接口描述:** 与物联网集抄系统对接,实现远程抄表数据采集。 **业务流程:** ```mermaid flowchart TD A[定时采集任务] --> B[发送采集指令] B --> C[集抄系统处理] C --> D[水表数据采集] D --> E[返回抄表数据] E --> F[数据验证处理] F --> G{数据是否有效} G -->|是| H[保存抄表数据] G -->|否| I[标记异常数据] H --> J[更新抄表记录] I --> K[人工处理] J --> L([采集完成]) K --> L ``` ## 政务系统接口 ### 政务平台对接 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-701 | 数据汇聚接口 | 向政务平台推送数据 | HTTPS | 业务数据、统计数据 | 推送结果 | | EXT-702 | 报装工单接口 | 政务平台报装工单 | HTTPS | 工单信息 | 处理结果 | | EXT-703 | 缴费查询接口 | 政务平台缴费查询 | HTTPS | 客户信息 | 缴费信息 | | EXT-704 | 用户认证接口 | 政务平台用户认证 | HTTPS | 用户凭证 | 认证结果 | ## 其他系统接口 ### 环卫系统接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-801 | 污水费计算接口 | 计算污水费 | HTTPS | 用水量、费率 | 污水费金额 | | EXT-802 | 垃圾费计算接口 | 计算垃圾费 | HTTPS | 用水量、费率 | 垃圾费金额 | | EXT-803 | 环卫收费对接 | 环卫收费数据同步 | HTTPS | 收费数据 | 同步结果 | ### 客服系统接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-901 | 通话记录接口 | 获取通话记录 | HTTPS | 时间范围、客户信息 | 通话记录 | | EXT-902 | 工单创建接口 | 创建客服工单 | HTTPS | 工单信息 | 工单ID | | EXT-903 | 客户投诉接口 | 客户投诉处理 | HTTPS | 投诉信息 | 处理结果 | ### 消火栓系统接口 | 接口编号 | 接口名称(标识) | 功能描述 | 接口协议 | 输入参数 | 输出结果 | |---|---|---|---|---|---| | EXT-1001 | 取水权限设置 | 设置取水权限 | HTTPS | 用户信息、权限参数 | 设置结果 | | EXT-1002 | 取水量监控 | 监控取水量 | HTTPS | 设备编号、时间范围 | 取水记录 | | EXT-1003 | 设备控制接口 | 控制取水设备 | HTTPS | 设备编号、控制指令 | 控制结果 | ## 接口安全设计 ### 认证机制 1. **API密钥认证**:每个接口调用需要提供有效的API密钥 2. **数字签名**:关键接口使用RSA数字签名验证 3. **时间戳验证**:防止重放攻击 4. **IP白名单**:限制接口调用来源 ### 加密机制 1. **传输加密**:所有接口使用HTTPS加密传输 2. **数据加密**:敏感数据使用AES加密 3. **密钥管理**:定期更换加密密钥 ### 限流机制 1. **接口限流**:每个接口设置调用频率限制 2. **用户限流**:每个用户设置调用总量限制 3. **异常检测**:检测异常调用模式 ## 接口监控 ### 性能监控 1. **响应时间监控**:监控接口响应时间 2. **成功率监控**:监控接口调用成功率 3. **并发量监控**:监控接口并发调用量 ### 错误监控 1. **错误日志记录**:记录所有接口错误 2. **告警机制**:异常情况及时告警 3. **自动重试**:临时性错误自动重试 ### 业务监控 1. **交易量监控**:监控各类交易量 2. **资金监控**:监控资金流水 3. **业务异常监控**:监控业务异常情况 # 非功能性需求的设计 ## 性能的考虑 为满足系统性能要求,采取以下设计措施: 1. **数据库优化** - 采用达梦数据库主从架构,读写分离 - 关键查询建立合适索引 - 大表分区存储,历史数据归档 2. **缓存策略** - Redis缓存热点数据 - 系统配置、数据字典缓存 - 用户会话信息缓存 3. **应用优化** - 接口响应时间控制在3秒内 - 支持200并发用户访问 - 批量操作采用异步处理 ## 兼容性的考虑 1. **数据库兼容性** - 支持达梦数据库 8.0+ - 兼容PostgreSQL语法 - 预留MySQL适配接口 2. **浏览器兼容性** - 支持Chrome 80+ - 支持Firefox 75+ - 支持Safari 13+ ## 安全的考虑 1. **认证授权** - 基于OAuth2.0协议的单点登录认证 - 基于JWT的身份认证 - RBAC权限控制模型 - 多租户数据隔离 2. **数据安全** - 敏感数据加密存储 - SQL注入防护 - XSS攻击防护 3. **传输安全** - HTTPS加密传输 - API接口签名验证 - 请求频率限制 ## 可移植性的考虑 1. **容器化部署** - 基于Docker容器部署 - Kubernetes编排管理 - 支持多云部署 2. **配置外部化** - 环境配置与代码分离 - 支持配置中心管理 - 数据库连接池化 ## 集成与测试的考虑 1. **集成策略** - 采用自底向上的集成方式 - 先完成基础服务开发 - 再进行业务服务集成 2. **测试策略** - 单元测试覆盖率达到80% - 集成测试覆盖主要业务流程 - 性能测试验证系统性能指标 ## 可扩展性的考虑 1. **架构扩展** - 微服务架构支持横向扩展 - 数据库读写分离支持性能扩展 - 缓存集群支持容量扩展 2. **功能扩展** - 插件化架构支持功能扩展 - 开放API支持第三方集成 - 工作流引擎支持业务流程扩展 ## 可靠性的考虑 1. **故障恢复** - 数据库主从备份 - 应用服务集群部署 - 定时数据备份机制 2. **监控告警** - 系统性能监控 - 业务异常告警 - 日志分析和追踪 ## 可维护性的考虑 1. **代码质量** - 统一编码规范 - 代码审查机制 - 自动化测试 2. **运维友好** - 完善的部署文档 - 运维监控界面 - 问题定位工具