> **源文件**:仪陇表务管理系统-PRD-04-功能需求说明-14-安装管理-V1.0.docx > **导出时间**:2026-05-26 10:34 **仪陇表务管理系统 产品需求说明书 04-功能需求说明 安装管理** 文档版本:V1.0 对应 01 版本:仪陇表务管理系统-PRD-01-总体说明-V1.0 模块序号:14 模块名称:安装管理 ## 安装管理 本模块覆盖用户水表新装报装对接、出库领表、安装任务派单、现场安装及验收全链路。含 Web「安装任务管理」及 App「安装任务」「安装验收」。对应《PRD-03》水表新安装业务流程;出库在「出库管理」办理,报装数据可对接报装系统。 ### **安装任务管理** #### 功能描述 统筹新装安装任务调度,支持审批通过自动派单、管理人员直接派单及报装事件驱动。任务下发至 App「安装任务」执行,验收在 App「安装验收」完成。 #### 菜单权限 表务营业办/供水站管理人员;表务分公司管理人员;表务水表管理中心;表务系统管理员 #### 数据权限 表务营业办/供水站管理人员:可见、可操作本营业办(或本供水站)范围内安装任务。 表务分公司管理人员:可见、可操作本分公司及下属营业办、供水站范围内安装任务。 表务水表管理中心、表务系统管理员:可见全公司安装任务(管理员可操作)。 #### 核心逻辑 本菜单实现《PRD-03》水表新安装业务流程中「安装工单派单」环节操作界面。 任务须关联已新装出库水表及计划用户信息;派单后推送至安装员 App。 现场数据录入与匹配校验在 App 完成;验收通过后联动台账「在用」。 #### 功能需求 ##### **一级页面:安装任务管理** #整体布局 -- 上下结构:查询条件区 + 任务列表;顶部「新建任务」「批量派单」 #查询条件 -- 任务编号、安装合同编号、用户编号/名称:文本,模糊搜索 -- 任务状态:下拉(全部、待派单、待接单、待安装、待验收、已完成、已关闭) -- 计划安装人、所属营业办/供水站:下拉 -- 申请日期:日期范围 -- 功能按钮:查询、重置 #数据列表 -- 表格字段:任务编号、来源(报装/工单通过/直接派单)、安装合同号、计划用户编号、安装地址、执行人、任务状态、创建时间 -- 行内操作:详情、派单、关闭(按状态与权限显示) #交互说明 -- 新建/派单打开「弹窗:新建/派单安装任务」 -- 详情打开「弹窗:安装任务详情」 -- 换表/领用工单审批通过后可自动生成待派单任务;报装系统事件可推送待派单记录 ##### **弹窗:新建/派单安装任务** #弹窗类型 -- 居中弹窗;遮罩:有 #信息展示 -- 任务来源:单选(直接派单、关联已通过新装领用工单、关联报装合同) -- 安装合同编号:选填(报装/合同模式必填) -- 出库水表编号:必填,须为已新装出库状态 -- 计划安装用户编号、安装地址:必填 -- 计划安装人:必填,人员选择(安装员) -- 备注:选填 #底部按钮 -- 保存并派单:生成任务并推送 App;取消 #交互说明 -- 派单成功后任务状态为「待接单」,安装员 App 可见 ##### **弹窗:安装任务详情** #弹窗类型 -- 抽屉弹窗(右侧);只读为主 #信息展示 -- 任务信息、合同信息、出库水表、计划/实际用户编号、不匹配原因、验收结论、台账状态 #底部按钮 -- 关闭;派单/关闭任务(有权限且状态允许时) ### **安装任务(App)** #### 功能描述 安装员接收任务、现场安装、录入数据并提交,支撑新装现场作业与户表匹配校验。 #### 菜单权限 表务营业办/供水站职员(安装员岗位) #### 数据权限 表务营业办/供水站职员:仅可见、可操作指派给本人的安装任务。 #### 核心逻辑 对应《PRD-03》现场安装与数据录入、系统自动匹配校验环节。 #### 功能需求 ##### **一级页面:安装任务列表(App)** #整体布局 -- 移动端列表页;默认展示本人待办/进行中任务 #页面标题 -- 安装任务 #数据列表 -- 列表项:任务编号、用户地址、计划用户、状态、计划安装时间 -- 行内操作:接单、进入作业(已接单) #交互说明 -- 接单后打开「二级页面:安装任务详情(App)」 ##### **二级页面:安装任务详情(App)** #整体布局 -- 顶部信息区 + 中部表单 + 底部提交 #页面标题 -- 安装任务详情 #信息展示 -- 只读:任务编号、合同号、计划用户编号、安装地址、出库水表编号 -- 必填:实际安装用户编号、安装现场信息、安装时间 -- 拍照留痕:至少 1 张现场照片 -- GPS 定位:自动采集(可选手工确认) #底部按钮 -- 提交安装数据;保存草稿 #交互说明 -- 提交后系统自动比对计划用户编号与实际用户编号;不一致须填写不匹配原因方可进入验收 -- 提交成功后任务状态为「待验收」,推送验收人员 ### **安装验收(App)** #### 功能描述 专项验收人员现场核查安装质量及户表匹配,提交验收结论并驱动台账更新。 #### 菜单权限 表务营业办/供水站职员(验收岗位) #### 数据权限 表务营业办/供水站职员:可见、可操作指派给本人的验收任务。 #### 核心逻辑 对应《PRD-03》现场安装验收与台账自动更新环节。 #### 功能需求 ##### **一级页面:安装验收列表(App)** #整体布局 -- 待验收任务列表 #页面标题 -- 安装验收 #数据列表 -- 任务编号、地址、安装人、提交时间;操作:进入验收 ##### **二级页面:安装验收填报(App)** #整体布局 -- 只读安装信息 + 验收结论区 #信息展示 -- 展示水表编号、计划/实际用户编号、不匹配原因(如有) -- 验收结论:必填,通过/不通过 -- 验收备注:不通过时必填 #底部按钮 -- 提交验收 #交互说明 -- 通过后系统更新水表状态为「在用」,回写出库/任务/台账;不通过退回整改 --- ## 详细设计(研发) > 以下内容合并自 `design/功能设计/`,与 PRD 需求章节配套使用。数据模型详见 `design/数据库设计-V1.0.md`。 ### 仪陇表务-功能设计-14-安装管理-V1.0 # 仪陇表务 — 功能设计 14 安装管理 V1.0 > 需求来源:`../demand/功能需求说明/仪陇表务管理系统-PRD-04-功能需求说明-14-*.md` > 数据模型:见 [数据库设计-V1.0.md](../数据库设计-V1.0.md) > 接口约定:见本文 **§接口设计(研发)**、[仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)、[00-总体框架设计-V1.0.md](../../design/00-总体框架设计-V1.0.md) ## 1. 模块概述 | 项 | 说明 | |----|------| | 模块序号 | 14 | | 模块名称 | 安装管理 | | 后端包(建议) | `com.tofly.wm.manage.install` | | 业务模式 | 任务+App | | 工单 | 无(任务) | ## 2. 功能范围 - 安装任务管理 - App 安装 - App 验收 ## 3. 数据模型 ### 3.1 涉及表 - `wssmet_installtask_w` - `wssmet_installrec_w` - `wssmet_installaccept_w` ### 3.2 实体约定 - 所有实体 `extends BaseEntity`;逻辑删除 `Boolean deleted` ↔ `deleted`。 - 字典 `DictEntry` + `@DictDirectory(MeterConstant.*)` ↔ 库列 `VARCHAR2`;组织/用户 `OrganizationEntry`/`UserNameEntry` ↔ 库列 `NUMBER(19)`;附件 `FileEntryList`/`FileEntry` 用 `@TableField(exist = false)`,**无库列**。 - 申请类主表含 `process_instance_id / work_order_code / approve_status`;工单反查 `(无本地表,见 workflow).TABLE_NAME` + `TABLE_ID`。 ## 4. 业务流程 报装/派单→新装出库→现场安装→户表校验→验收→在用。 ## 5. 核心业务规则 - 计划/实际用户编号校验 - 验收通过后更新 Meter ## 6. 接口设计(概要) | 方法 | 路径(示例前缀) | 说明 | |------|------------------|------| | — | `/installTask/` | 见 PRD 界面 | | — | `/installTask/dispatch` | 见 PRD 界面 | - 标准 CRUD 另含:`GET /page`、`GET /list`、`POST /update`、`DELETE /{id}`、`DELETE /deleteByIds`。 - 返回体:须为带**具体**泛型的 `ResultResponse<...>`,见下文 §接口设计(研发)各接口出参(**禁止** `T`/`Vo` 占位)。 ## 7. 权限与数据范围 遵循 PRD-02:菜单角色 + 组织数据权限 + 工单岗位权限;具体角色见 PRD-04 各功能「菜单权限」「数据权限」章节。 ## 8. 上下游依赖 | 上游 | 下游 | |------|------| | 见 PRD-03 流程说明 | 见 PRD-01 总体主流程 | --- *本设计仅依据 `../demand/` PRD 与 [数据库设计-V1.0.md](../数据库设计-V1.0.md);实现时遵循 `java6/java-ylsw-bw.md` 与 `database-design.mdc`(`wssmet_*` 表名),**不参照**存量业务表与接口。* --- ## 接口设计(研发) > 统一前缀:`/api/wm/manage/install`;各接口 **出参** 须为具体泛型(见下文,**禁止** `T`/`Vo` 占位);公共约定见 [仪陇表务-公共接口说明-V1.0.md](./仪陇表务-公共接口说明-V1.0.md)。 #### 新装安装任务-分页查询 | 项 | 内容 | |----|------| | 接口说明 | 分页查询新装安装任务 | | 请求地址 | `GET /api/wm/manage/install/installTask/page` | | 请求类型 | GET | **入参(Query(PageQuery))** | 字段 | 类型 | 说明 | |------|------|------| | taskCode | String | 任务编号 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | taskStatusCode | String(枚举 code) | 任务状态 | | remark | String | 备注 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(PageInfo)字段** | 字段 | 类型 | 说明 | |------|------|------| | pageNum | Integer | 当前页码 | | pageSize | Integer | 每页条数 | | total | Long | 总记录数 | | pages | Integer | 总页数 | | list | List | 当前页数据列表 | **`InstallTaskVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | taskCode | String | 任务 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | executorId | Long | 执行人ID,关联tf_user表的id字段 | | taskStatusCode | String(枚举 code) | 任务状态 | | outRecordId | Long | 出库主单ID,关联wssmet_invout_w表的id字段 | | applyId | Long | 领用申请ID,关联wssmet_claimapply_w表的id字段 | | remark | String | 备注 | #### 新装安装任务-列表查询 | 项 | 内容 | |----|------| | 接口说明 | 列表查询新装安装任务 | | 请求地址 | `GET /api/wm/manage/install/installTask/list` | | 请求类型 | GET | **入参(Query)** | 字段 | 类型 | 说明 | |------|------|------| | taskCode | String | 任务编号 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | taskStatusCode | String(枚举 code) | 任务状态 | | remark | String | 备注 | **出参** - ResultResponse> > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(List)元素字段** **`InstallTaskVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | taskCode | String | 任务 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | executorId | Long | 执行人ID,关联tf_user表的id字段 | | taskStatusCode | String(枚举 code) | 任务状态 | | outRecordId | Long | 出库主单ID,关联wssmet_invout_w表的id字段 | | applyId | Long | 领用申请ID,关联wssmet_claimapply_w表的id字段 | | remark | String | 备注 | #### 新装安装任务-详情 | 项 | 内容 | |----|------| | 接口说明 | 查询新装安装任务详情 | | 请求地址 | `GET /api/wm/manage/install/installTask/{id}` | | 请求类型 | GET | **入参(Path: id)** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | **出参** - ResultResponse(含明细 list 若适用) > 外层包装 ResultResponse 含 code、message、data,见 [公共接口说明](./仪陇表务-公共接口说明-V1.0.md) §1.3。 **data(InstallTaskVo)字段** **`InstallTaskVo` 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | String | 主键 | | taskCode | String | 任务 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | executorId | Long | 执行人ID,关联tf_user表的id字段 | | taskStatusCode | String(枚举 code) | 任务状态 | | outRecordId | Long | 出库主单ID,关联wssmet_invout_w表的id字段 | | applyId | Long | 领用申请ID,关联wssmet_claimapply_w表的id字段 | | remark | String | 备注 | #### 新装安装任务-新增 | 项 | 内容 | |----|------| | 接口说明 | 新增新装安装任务 | | 请求地址 | `POST /api/wm/manage/install/installTask/` | | 请求类型 | POST | **入参(Body: Dto)** | 字段 | 类型 | 说明 | |------|------|------| | taskCode | String | 任务编号 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | executorId | Long | 执行人ID,关联tf_user表的id字段 | | taskStatusCode | String(枚举 code) | 任务状态 | | outRecordId | Long | 出库主单ID,关联wssmet_invout_w表的id字段 | | applyId | Long | 领用申请ID,关联wssmet_claimapply_w表的id字段 | | remark | String | 备注 | **出参** - ResultResponse **data 字段** | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 新增记录主键 | #### 新装安装任务-修改 | 项 | 内容 | |----|------| | 接口说明 | 修改新装安装任务 | | 请求地址 | `POST /api/wm/manage/install/installTask/update` | | 请求类型 | POST | **入参(Body: Dto(含 id))** | 字段 | 类型 | 说明 | |------|------|------| | taskCode | String | 任务编号 | | taskSourceCode | String(枚举 code) | 任务来源 | | contractNo | String | 合同 | | meterId | Long | 水表ID,关联wssmet_meter_w表的id字段 | | meterCode | String | 水表表号 | | planUserNo | String | 计划用户 | | installAddress | String | 安装地址 | | executorId | Long | 执行人ID,关联tf_user表的id字段 | | taskStatusCode | String(枚举 code) | 任务状态 | | outRecordId | Long | 出库主单ID,关联wssmet_invout_w表的id字段 | | applyId | Long | 领用申请ID,关联wssmet_claimapply_w表的id字段 | | remark | String | 备注 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 新装安装任务-删除 | 项 | 内容 | |----|------| | 接口说明 | 逻辑删除新装安装任务(支持批量) | | 请求地址 | `DELETE /api/wm/manage/install/installTask/deleteByIds?ids=1,2` | | 请求类型 | DELETE | **入参(Query: ids)** | 字段 | 类型 | 说明 | |------|------|------| | ids | String | 主键,逗号分隔 | **出参** - ResultResponse **data** 无业务字段(null)。 #### 安装验收 | 项 | 内容 | |----|------| | 接口说明 | 新装验收登记 | | 请求地址 | `POST /api/wm/manage/install/installAccept/` | | 请求类型 | POST | **入参(Body: Dto)** | 字段 | 类型 | 说明 | |------|------|------| | taskId | Long | 新装安装任务ID,关联wssmet_installtask_w表的id字段 | | acceptResultCode | String(枚举 code) | 验收 | | acceptRemark | String | 验收备注 | | acceptorId | Long | 验收人ID,关联tf_user表的id字段 | | acceptorName | String | 验收人 | | acceptTime | DateTime | 验收时间 | **出参** - ResultResponse **data** 无业务字段(null)。