00-总体框架设计-V1.0.md 7.9 KB

仪陇表务管理系统 — 总体框架设计 V1.0

依据:../demand/ 下 PRD-01/02/03、产品功能清单、PRD-04 功能需求说明。
后端约束:PROJECT_SKILL.mdjava6/java-ylsw-bw.md(Oracle 11、com.tofly.wm、BaseEntity、Boolean deleted、Entry 列映射见 java6 §值对象)。

1. 建设目标与边界

  • 目标:水表全生命周期数字化(采购→检定→仓储→安装→运行→检定/检查→退库/报废),Web 管控 + 移动外勤 + 内部系统集成。
  • 原则:「申请走工单、执行可直办」——带「申请」的能力挂 workflow;任务派单、计划维护、业务登记支持授权直办,工单通过后亦可自动生成下游任务/登记。
  • 边界:不含财务收费、GIS 绘制、硬件运维、客服工单;对接报装/营销/抄表/采购(及检定测量系统)。

2. 逻辑架构

┌─────────────────────────────────────────────────────────────┐
│  Web 管理端(配置/审批/台账/统计)  │  移动端(外勤任务执行)   │
└───────────────┬─────────────────────────────┬───────────────┘
                │                             │
        ┌───────▼─────────────────────────────▼───────┐
        │     business/water-meter(表务微服务)         │
        │  com.tofly.wm:manage / ledger / workorder    │
        └───────┬─────────────────────┬───────────────┘
                │                     │
     ┌──────────▼──────────┐   ┌──────▼──────┐
     │ workflow 审批引擎    │   │ 平台公共服务  │
     │(工单中心 UI 复用)   │   │ 组织/用户/附件│
     └──────────┬──────────┘   └─────────────┘
                │
     ┌──────────▼──────────────────────────────────┐
     │ Oracle 11:wssmet_* 业务表(审批走 workflow)  │
     └───────────────────────────────────────────────┘

3. 后端包结构

根包 com.tofly.wm(模块 business/water-meter):

职责 典型内容
cons 模块常量 MeterConstant 字典目录码、流水号类型
manage 写操作、主数据、流程业务 采购、领取、调拨、检定、任务、配置
ledger 只读台账、汇总、导出 水表/采购/检定/入出库台账
workorder 工单 UI 聚合(可选) 委托 workflow API,不映射本地工单表
api 对外/第三方接口 检定记录同步等

单域内平铺 Controller/Service/Entity/Mapper/Query/Vo;枚举放 {domain}/enums/;明细子表放 list 等子包。

4. 数据与持久化约定

仅依据 PRD + database-design.mdc + java6/java-ylsw-bw.md;不参照存量 wssmet_* 表与既有实体。

  • 表名wssmet_{x2}_w(x1=wssmet,供水表务);主键 id NUMBER(19)(雪花)。
  • 公共列:每张业务表 CREATE TABLE 内含 BaseEntity 扩展列(见 数据库设计-V1.0.md §2)。
  • 逻辑删除deleted NUMBER(1) ↔ Java Boolean deleted
  • 字典:库表 *_code VARCHAR2 ↔ Java DictEntry + @DictDirectory;COMMENT 标明 字典类型与目录码。
  • 枚举:库表 *_status / *_status_code 等 ↔ Java 业务枚举;COMMENT 标明 枚举类型与枚举类名。
  • 组织/用户:库表 *_id NUMBER(19) ↔ Java OrganizationEntry / UserNameEntry;关联列 COMMENT 写明目标表(如 tf_user.id)。
  • 附件无库列;Java FileEntryList / FileEntry + @TableField(exist = false),走平台文件服务。
  • 字典/枚举清单:按表见 数据库设计-V1.0.md §2.1(仅字典、枚举列)。
  • 水表主数据wssmet_meter_w;生命周期 wssmet_meterlife_w;入出库 wssmet_invin_w / wssmet_invout_w 及明细表。

完整 DDL 见 数据库设计-V1.0.md

5. 工单外挂模式(PRD-04-01,无本地工单表)

5.1 申请主表审批字段(业务库)

说明
process_instance_id workflow 流程实例 ID
work_order_code 工单编号(列表/台账展示)
approve_status 审批状态,与流程引擎同步
apply_code 等 业务单号、申请人/部门等业务字段(各模块 PRD)

工单待办/已办/流程配置 不落表务库,由 workflow 提供(PRD:复用 workflow 组件)。

5.2 申请类业务保存模式(设计期)

  1. 生成业务单号,写入申请主表 + 明细(wssmet_*apply*_w)。
  2. 调用 workflow 发起流程,回写 process_instance_idwork_order_codeapprove_status=pending
  3. 用户在工单中心办理;通过后更新 approve_status 与业务 process_status_code,并按 PRD 触发下游(计划、任务、出入库等)。

5.3 工单类型与业务表映射

TYPE(建议) 业务表 模块
PURCHASE_APPLY wssmet_purapply_w 采购申请
CLAIM_APPLY wssmet_claimapply_w 领用申请
TRANSFER_APPLY wssmet_transferapply_w 调拨申请
REPLACE_APPLY wssmet_replaceapply_w 换表申请
DISPUTE_VERIFY_APPLY wssmet_disverifyapply_w 争议检定申请
RELOCATE_APPLY wssmet_relocateapply_w 迁表申请
REMOVE_APPLY wssmet_removeapply_w 拆表申请
RETURN_STATION_APPLY wssmet_retstnapply_w 营业所退库
RETURN_HQ_APPLY wssmet_rethqapply_w 退回总仓
SCRAP_APPLY wssmet_scrapapply_w 报废申请

任务类(安装/换表/检定/轮换/周期检查等)不挂审批流程表,使用 wssmet_*task*_w + App wssmet_*rec*_w

6. 接口与返回约定

  • 统一 ResultResponse<T>(带泛型)。
  • Controller:GET /pageGET /list(同 Query)、GET /{id}POST /POST /updateDELETE /deleteByIds禁止 DELETE /{id});台账 GET /export。接口文档须按 java6 模板 全量列出 路径。
  • 分页:PageQuery + PageHelper.startPage;单表 Wrappers.lambdaQuery;多表台账 MPJWrappers.lambdaJoin
  • 详见 接口文档-V1.0.md

7. 组织与数据权限(摘要)

  • RBAC:菜单权限 + 数据权限(组织管辖)+ 工单节点岗位权限。
  • 上级可查下级;工单待办/已办按本人与岗位匹配。
  • 详见 PRD-02。

8. 集成接口(摘要)

系统 方向 用途
报装 新装/改址/销户驱动任务
营销 表号、户档、状态同步(表号变更以营销成功为前提)
抄表 安装信息、设备标识
检定测量系统 wssmet_verifyrecord_w 同步,关联落地/到期/争议/其他检定
采购系统 订单/到货(可选)

9. 文档地图