城市部件-功能设计方案.md 8.26 KB

城市部件 — 功能设计方案

基于「西单项目一物一码模型命名规则」设计。资产 ID 编码规则参考西单北大街一物一码属性信息表。


一、菜单结构

城市部件(一级目录)
├── 城市部件类型(二级菜单)
│   ├── 查询   garden:city-component-type:query
│   ├── 新增   garden:city-component-type:create
│   ├── 修改   garden:city-component-type:update
│   └── 删除   garden:city-component-type:delete
└── 城市部件管理(二级菜单)
    ├── 查询   garden:city-component:query
    ├── 新增   garden:city-component:create
    ├── 修改   garden:city-component:update
    ├── 删除   garden:city-component:delete
    └── 导出   garden:city-component:export

二、部件编码规则(一物一码)

2.1 资产 ID 格式

{城市代码}{城区代码}{街道代码}_{道路编码}_{类型编码}_{顺序号}

示例110102001_02_0211_0001

含义
110 北京市 城市代码
102 西城区 城区代码
001 西长安街街道 街道代码
02 西单北大街 道路编码
0211 公共设施>照明灯>路灯 三级类型编码
0001 第1个 顺序号(4位,同前缀递增)

2.2 类型编码层级规则

层级 位数 示例 规则
一级 2位 02 公共设施要素
二级 3位 021 照明灯 = 一级编码 02 + 序号 1
三级 4位 0211 路灯 = 二级编码 021 + 序号 1

2.3 一级分类(来自命名规则)

编码 名称
01 建筑要素
02 公共设施要素
03 园林绿化要素
04 道路交通要素

2.4 二级/三级分类示例(公共设施要素 02 下)

二级编码 二级名称 三级编码 三级名称
021 照明灯 0211 路灯
0212 投光灯
022 摄像头 0221 球机
0222 枪机
0223 半球
023 井盖 0231 电力
0232 污水
... ...
024 宣传栏 0241 立式
0242 壁挂式
025 垃圾桶 0251 单桶
0252 双桶
026 下水道口 0261 平篦
0262 立篦
027 路障 0271 隔离墩
0272 防撞桶
028 变电箱 0281 配电箱
0282 变电箱
0283 控制箱
029 街道家具 0291 座椅
0292 花箱
... ...

三、数据库设计

3.1 城市部件类型表 garden_city_component_type

字段 类型 说明
id bigint PK 主键
type_code varchar(32) UNIQUE 类型编码(2/3/4位数字,如 02、021、0211)
type_name varchar(64) 类型名称
level tinyint 1=一级(2位), 2=二级(3位), 3=三级(4位)
parent_code varchar(32) 父级编码(一级为 NULL)
sort int 排序
status tinyint 1启用 0禁用
remark varchar(512) 备注
+ 通用字段 creator/create_time/updater/update_time/deleted/tenant_id

编码生成规则

  • 一级:{01..99},取当前最大一级编码+1(如已有 01~04,新增为 05)
  • 二级:{父级编码}{1..9},如父级 02,取当前最大二级序号+1
  • 三级:{父级编码}{1..9},如父级 021,取当前最大三级序号+1

3.2 城市部件管理表 garden_city_component

字段分组 字段 类型 说明
编码 component_code varchar(64) UNIQUE 资产 ID(一物一码)
类型 level_one_type_code varchar(32) 一级类型编码
level_one_type_name varchar(64) 一级类型名称(冗余)
level_two_type_code varchar(32) 二级类型编码
level_two_type_name varchar(64) 二级类型名称(冗余)
level_three_type_code varchar(32) 三级类型编码
level_three_type_name varchar(64) 三级类型名称(冗余)
行政区划 city_code varchar(16) 城市代码
district_code varchar(16) 城区代码
street_code varchar(16) 街道代码
位置 area varchar(128) 所属区域
road_code varchar(16) 道路编码
road_name varchar(128) 道路名称
x_coord decimal(12,8) X(WGS84 经度)
y_coord decimal(12,8) Y(WGS84 纬度)
z_coord decimal(10,4) Z(高程)
longitude_amap decimal(12,8) 高德经度(GCJ02,自动转换)
latitude_amap decimal(12,8) 高德纬度(GCJ02,自动转换)
install_orientation varchar(32) 安装方位(人行道/车行道/绿化带)
grid varchar(128) 所属网格
设备 brand varchar(128) 品牌/厂家
model_spec varchar(128) 型号规格
material varchar(64) 材质
length/width/height decimal(10,2) 长/宽/高(cm)
dbh decimal(10,2) 胸径(cm,树木专用)
生命周期 install_date date 安装/种植时间
asset_status varchar(32) 资产状态
management_unit varchar(128) 管理单位
responsible_person varchar(64) 责任人
service_years decimal(4,1) 投入年限
maintenance_deadline date 维保到期日
procurement_batch varchar(128) 采购批次/项目名称
巡检 inspection_cycle varchar(32) 巡检周期(日/周/月/季)
last_inspection_time datetime 最近巡检时间
inspector varchar(64) 巡检人员
inspection_result varchar(32) 巡检结果(正常/异常/损坏/丢失)
abnormal_description varchar(512) 异常描述
维修 repair_order_no varchar(64) 报修工单编号
repair_complete_time datetime 维修完成时间
repair_unit varchar(128) 维修单位
其他 remark varchar(512) 备注
qr_code_url varchar(512) 二维码 URL
通用 creator/create_time/updater/update_time/deleted/tenant_id

四、后端接口

4.1 城市部件类型

方法 URL 说明
POST /garden/city-component-type/create 新增
PUT /garden/city-component-type/update 修改
DELETE /garden/city-component-type/delete?id= 删除
GET /garden/city-component-type/get?id= 详情
GET /garden/city-component-type/page 分页列表(级联筛选)
GET /garden/city-component-type/list-by-parent 按父级查子级
GET /garden/city-component-type/generate-next-code 生成下级编码
GET /garden/city-component-type/tree 完整三级树

4.2 城市部件管理

方法 URL 说明
POST /garden/city-component/create 新增(自动坐标转换)
PUT /garden/city-component/update 修改
DELETE /garden/city-component/delete?id= 删除
GET /garden/city-component/get?id= 详情
GET /garden/city-component/page 分页列表
GET /garden/city-component/export-excel 导出 Excel
GET /garden/city-component/generate-qr 生成二维码

五、坐标转换

  • 复用 GisCoordinateUtil.wgs84ToGcj02(x, y) 将 WGS84 转 GCJ02
  • create/update 时若 X/Y 有值,自动计算高德经纬度

六、文件清单

后端(garden 模块)

类型CityComponentTypeDO / CityComponentTypeMapper / CityComponentTypeService / CityComponentTypeServiceImpl / CityComponentTypeController + 3 个 VO

部件CityComponentDO / CityComponentMapper / CityComponentService / CityComponentServiceImpl / CityComponentController + 4 个 VO

前端

类型src/api/garden/cityComponentType/index.ts + src/views/garden/cityComponentType/ (index.vue + form)

部件src/api/garden/cityComponent/index.ts + src/views/garden/cityComponent/ (index.vue + form)

SQL

  • docs/城市部件-建表SQL.sql
  • docs/城市部件-菜单SQL.sql

七、实现顺序

  1. 建表 DDL
  2. 城市部件类型后端 + 编译验证
  3. 城市部件类型前端
  4. 城市部件管理后端 + 编译验证
  5. 城市部件管理前端
  6. 菜单 SQL
  7. 整体验证