地址管理*
产品文档:https://pjpqgu7dv2.feishu.cn/docx/IwZLdknqSoGhlMxh2dcc6nAynMd v3地址页面 v4地址管理新页面 可在左侧展示栏中新增小区信息 删除小区信息(只可删除无地址的小区) 修改小区地址 对小区中的地址进行分配
配置说明
配置名称 | 类型 | 说明 |
---|---|---|
delArea | LOGIC 业务逻辑 | 删除小区logic |
compatibilityAddress | LOGIC 业务逻辑 | 地址兼容logic |
getOperatingAreas | LOGIC 业务逻辑 | 经营地区选择框(省市区选择框)用 |
addArea | LOGIC 业务逻辑 | 添加小区logic |
editArea | LOGIC 业务逻辑 | 修改小区logic |
asigAddres | LOGIC 业务逻辑 | 给地址重新分配小区logic |
delAddress | LOGIC 业务逻辑 | 删除地址 |
addAddress | LOGIC 业务逻辑 | 添加地址 |
getAreaMsg | LOGIC 业务逻辑 | 点击小区新建地址时获取小区详情 |
ImportOrMoPerfectAddress | LOGIC 业务逻辑 | 导入完善地址的logic逻辑 |
ImportOrMoPerfectAddressVerify | LOGIC 业务逻辑 | 导入前验证地址是否正确的逻辑 |
addAreaForm | SIMPLE_FORM 简易表单 | 新增小区表单 |
editAreaForm | SIMPLE_FORM 简易表单 | 修改小区表单 |
addressType | JSON 配置(后续可能变成 单独一类配置) | 左侧树配置 |
address_management | CRUD_FORM 查询表单 | 查询列表配置 |
addressTypeDic | 字典配置 | 地址类型配置 城市/乡镇等 |
功能描述
相比于 v3 功能,v4地址管理移除了新建省市区街道的单独页面 省市区街道合并为 经营地区
从 divisions_of_china 取值,这个表得数据 从产品标准库拿 2024.6.17 有 44703 条数据
所以如果旧系统迁移使用新地址管理 需要在 divisions_of_china 表中找到对应的数据,并将 isused 字段改成 1,这样才能在新系统中使用
其中对应关系为 :
街道表 t_street 中 f_street 字段 找到 对应的 divisions_of_china 记录 并设置 isused 字段为 1,再 t_street 中的 f_street_number 改成 divisions_of_china 中的 code 字段.
省市区表 t_pcd 中 f_pcd 字段 找到 对应的 divisions_of_china 记录 并设置 isused 字段为 1,再 t_pcd 中的 f_pcd_number 改成 divisions_of_china 中的 code 字段.
注意:修改 t_pcd 表中 f_pcd 应该 = divisions_of_china.describe;t_street 表中 f_street 应该 = divisions_of_china.name;
参考sql
-- 查询所有的省市区
select * from t_pcd ;
|id|f_pcd|
|---|---|
|1|北京市市辖区东城区|
-- 根据省市区名称查询 找到区级
select * from divisions_of_china where describe = '北京市市辖区东城区';
-- 修改 t_pcd.f_pc_number = divisions_of_china.code
update t_pcd set f_pcd_number = '110101' where f_pcd = '北京市市辖区东城区';
-- 查到记录之后修改 isused 字段为 1
update divisions_of_china set isused = 1 where describe = '北京市市辖区东城区';
-- 并修改父级(区级)也是 1
update divisions_of_china set isused = 1 where code in (
select parent_code from divisions_of_china where describe = '北京市市辖区东城区'
);
-- 并修改父级得父级(市级)也是 1
update divisions_of_china set isused = 1 where code in (
select parent_code from divisions_of_china where code in (
select parent_code from divisions_of_china where describe = '北京市市辖区东城区'
)
);
-- 并修改父级得父级(省级)也是 1
update divisions_of_china set isused = 1 where code in (
select parent_code from divisions_of_china where code in (
select parent_code from divisions_of_china where code in (
select parent_code from divisions_of_china where describe = '北京市市辖区东城区'
)
)
);
-- 查询所有的街道
select * from t_street ;
|id|f_street|
|---|---|
|1|东城区|
-- 根据街道名称 和 区级id 查询 街道
select * from divisions_of_china where name = '东城区' and parent_code in (
select code from divisions_of_china where describe = '北京市市辖区东城区'
);
-- 查到记录之后修改 isused 字段为 1
update divisions_of_china set isused = 1 where name = '东城区' and parent_code in (
select code from divisions_of_china where describe = '北京市市辖区东城区'
);
-- 所有的街道 省市区找到之后 才能建立系统中的关联关系
-- 粗暴sql 找到一级使用的 执行四五次就可以把他得上级都改成 1
update divisions_of_china set isused = 1 where code in (
select parent_code from divisions_of_china where isused = 1
);
2024-07-12 之后处理数据注意
由于添加了分公司功能,所以同步数据时需要 在表中 org_full_ids 字段复制为所有的id 参考下面sql
select distinct F_ORGID from T_STREET;
| F_ORGID |
| :--- |
| 35526 |
| 35520 |
| 10101 |
| 35538 |
| 35532 |
-- 把使用状态的记录修改 分公司id 注意 前面要多加一个 , 否则 35526 再删除某个经营区域的时候可能删不掉
update DIVISIONS_OF_CHINA
set org_full_ids =',35526,35520,10101,35538,35532'
where ISUSED > 0;
关于地址类型
第一版配置 addressTypeDic
{
"value": [
{
"expression": "{f_building}楼号{f_unit}单元{f_floor}楼层{f_room}门牌号",
"label": "城市",
"value": "城市"
},
{
"expression": "{f_building}组{f_unit}号",
"label": "乡镇",
"value": "乡镇"
},
{
"expression": "{f_address}",
"label": "自定义",
"value": "自定义"
}
]
}
其中 中的部分会在页面上生成输入框,修改地址的话 数据会从 当条记录默认带入 中的数据。
每个输入框中得值填写完成之后 会组织成地址串进行保存