feature(地址清洗):地址清洗开发

1. 地址分为3类(单套、楼栋、小区、包含多个楼栋或者单套)
2. 基于联城数库中的路名拆分,保证联城中的路名完全匹配;
3. 联城数库中的小区路名清洗(XX路、XX大道)
This commit is contained in:
purple 2020-08-03 19:43:21 +08:00
parent 5dda87a984
commit d552b7da05
16 changed files with 5192 additions and 3 deletions

View File

@ -0,0 +1,33 @@
package com.ruoyi.project.tool.address;
import com.ruoyi.project.tool.address.model.CleanAddress;
import com.ruoyi.project.tool.address.model.CleanAddressBuilder;
import com.ruoyi.project.tool.address.service.impl.NoSignalAddressHandler;
import com.ruoyi.project.tool.address.service.impl.SignalAddressHandler;
import java.util.LinkedList;
import java.util.List;
/**
* 地址清洗
*
* @author lihe
*/
public class CleanUtil {
/**
* 清洗
*
* @param rawAddress
* @return
*/
public static CleanAddress clear(String rawAddress) {
CleanAddress cleanAddress = new CleanAddress(rawAddress);
if (cleanAddress.getContainsSpecialChar()) {
new SignalAddressHandler().clear(cleanAddress);
} else {
new NoSignalAddressHandler().clear(cleanAddress);
}
return cleanAddress;
}
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.project.tool.address.model;
import java.util.List;
/**
* 室地址
*
* @author lihe
*/
public class BuildingAddress extends PartialAddress {
public BuildingAddress(String address) {
super(address);
}
@Override
public List<PartialAddress> getPartialAddress() {
return null;
}
}

View File

@ -0,0 +1,221 @@
package com.ruoyi.project.tool.address.model;
import com.ruoyi.project.tool.address.service.impl.SignalAddressHandler;
import java.util.LinkedList;
import java.util.List;
/**
* 清洗地址
*
* @author lihe
*/
public class CleanAddress {
/**
* 原地址
*/
private String rawAddress;
/**
* 待处理的地址
*/
private StringBuilder boundAddress;
/**
* 区域
*/
private String district;
/**
*
*/
private String region;
/**
* 板块
*/
private String block;
/**
* 路名可能交叉路
*/
private String road;
/**
* 小区名称
*/
private String communityName;
/**
* 楼层
* 和地下有关系
*/
private Integer floor;
/**
* 小区地址
*/
private PartialAddress communityAddress;
/**
* 楼栋地址
*/
private PartialAddress buildingAddress;
/**
* 单套地址
*/
private PartialAddress condoAddress;
/**
* 物业普通车位
*/
private String propertyType;
/**
* 独栋
*/
private Boolean independent;
/**
* 多个地址
*/
private List<PartialAddress> addressList;
private Boolean containsSpecialChar;
private static List<String> specialChar = new LinkedList<>();
static {
specialChar.add("");
specialChar.add(".");
specialChar.add("");
specialChar.add(",");
specialChar.add("-");
specialChar.add("——");
specialChar.add("_");
specialChar.add("");
specialChar.add("");
specialChar.add("");
specialChar.add("(");
specialChar.add(")");
specialChar.add("");
specialChar.add("");
}
public CleanAddress(String rawAddress) {
this.rawAddress = rawAddress;
}
public String getRawAddress() {
return rawAddress;
}
public void setRawAddress(String rawAddress) {
this.rawAddress = rawAddress;
}
public String getDistrict() {
return district;
}
public void setDistrict(String district) {
this.district = district;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public String getBlock() {
return block;
}
public void setBlock(String block) {
this.block = block;
}
public String getRoad() {
return road;
}
public void setRoad(String road) {
this.road = road;
}
public String getCommunityName() {
return communityName;
}
public void setCommunityName(String communityName) {
this.communityName = communityName;
}
public Integer getFloor() {
return floor;
}
public void setFloor(Integer floor) {
this.floor = floor;
}
public PartialAddress getCommunityAddress() {
return communityAddress;
}
public void setCommunityAddress(PartialAddress communityAddress) {
this.communityAddress = communityAddress;
}
public PartialAddress getBuildingAddress() {
return buildingAddress;
}
public void setBuildingAddress(PartialAddress buildingAddress) {
this.buildingAddress = buildingAddress;
}
public PartialAddress getCondoAddress() {
return condoAddress;
}
public void setCondoAddress(PartialAddress condoAddress) {
this.condoAddress = condoAddress;
}
public String getPropertyType() {
return propertyType;
}
public void setPropertyType(String propertyType) {
this.propertyType = propertyType;
}
public List<PartialAddress> getAddressList() {
return addressList;
}
public void setAddressList(List<PartialAddress> addressList) {
this.addressList = addressList;
}
public Boolean getIndependent() {
return independent;
}
public void setIndependent(Boolean independent) {
this.independent = independent;
}
public StringBuilder getBoundAddress() {
return boundAddress;
}
public Boolean getContainsSpecialChar() {
String todoAddress = rawAddress.trim()
.replace("\t", "")
.replace(" ", "");
this.boundAddress = new StringBuilder(rawAddress);
for (int i = 0; i < specialChar.size(); i++) {
if (todoAddress.contains(specialChar.get(i))) {
return true;
}
}
return false;
}
}

View File

@ -0,0 +1,89 @@
package com.ruoyi.project.tool.address.model;
import com.ruoyi.common.utils.LoadUtil;
import java.util.List;
import java.util.Map;
/**
* 清洗地址构建
*
* @author lihe
*/
public class CleanAddressBuilder {
private Map<String, String> districtMap = LoadUtil.loadDict("address-dict/district.dict");
private List<String> regionList = LoadUtil.loadList("address-dict/region.dict");
private List<String> blockList = LoadUtil.loadList("address-dict/block.dict");
private CleanAddress cleanAddress;
private CleanAddressBuilder(CleanAddress cleanAddress) {
this.cleanAddress = cleanAddress;
}
public static CleanAddressBuilder builder(CleanAddress cleanAddress) {
return new CleanAddressBuilder(cleanAddress);
}
/**
* 解析区域
* 前面7个字符
*
* @return
*/
public void parseDistrict() {
String shanghaiAndDistrict = "" + cleanAddress.getBoundAddress().substring(0, 7).replace("上上", "");
for (Map.Entry<String, String> district : districtMap.entrySet()) {
if (shanghaiAndDistrict.startsWith(district.getKey())) {
cleanAddress.setDistrict(district.getKey());
break;
}
}
}
/**
* 解析镇
*
* @return
*/
public void parseRegion() {
for (int i = 0; i < regionList.size(); i++) {
if (-1 != cleanAddress.getBoundAddress().indexOf(regionList.get(i))) {
cleanAddress.setRegion(regionList.get(i));
}
}
}
/**
* 解析板块
*/
public void parseBlock() {
for (int i = 0; i < blockList.size(); i++) {
if (-1 != cleanAddress.getBoundAddress().indexOf(blockList.get(i))) {
cleanAddress.setBlock(regionList.get(i));
}
}
}
/**
* 解析路可能缺失
*/
public void parseRoad() {
}
/**
* 解析小区名称路名和小区名称重定义
*/
public void parseCommunityName() {
}
/**
* 是否独栋全幢
*/
public void parseIndependent() {
}
}

View File

@ -0,0 +1,21 @@
package com.ruoyi.project.tool.address.model;
import java.util.List;
/**
* 小区地址
*
* @author lihe
*/
public class CommunityAddress extends PartialAddress {
public CommunityAddress(String address) {
super(address);
}
@Override
public List<PartialAddress> getPartialAddress() {
return null;
}
}

View File

@ -0,0 +1,31 @@
package com.ruoyi.project.tool.address.model;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 室地址
*
* @author lihe
*/
public class CondoAddress extends PartialAddress {
public CondoAddress(String address) {
super(address);
}
@Override
public List<PartialAddress> getPartialAddress() {
Pattern pattern = Pattern.compile(SHI_PATTERN);
Matcher matcher = pattern.matcher(this.address);
// 这个需要优化地下层没有考虑
if (matcher.find()) {
this.shi = parseShi();
this.floor = parseFloor();
this.hao = parseHAO();
}
return null;
}
}

View File

@ -0,0 +1,105 @@
package com.ruoyi.project.tool.address.model;
import com.ruoyi.common.exception.CustomException;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.models.auth.In;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 清洗地址
*
* @author lihe
*/
public abstract class PartialAddress {
protected String address;
protected String hao;
protected String shi;
protected Integer floor;
protected final static String SHI_PATTERN = "([\\dA-Za-z]+)室$";
protected final static String HAO_PATTERN = "([\\dA-Za-z]+)(甲乙丙丁戊己庚辛仍亏)?号";
protected final static String NUMBER_PATTERN = "\\d+";
protected final int HUNDRED = 100;
protected final int TEN_THOUSAND = 10 * 1000;
public PartialAddress(String address) {
this.address = address;
}
public String getHao() {
return hao;
}
public String getShi() {
return shi;
}
public Integer getFloor() {
return floor;
}
/**
* 获取地址单套楼栋小区
*
* @return
*/
public abstract List<PartialAddress> getPartialAddress();
/**
* 室解析
*
* @return
*/
protected String parseShi() {
Pattern pattern = Pattern.compile(SHI_PATTERN);
Matcher matcher = pattern.matcher(this.address);
// 这个需要优化地下层没有考虑
if (matcher.find()) {
return matcher.group(1);
}
return null;
}
/**
* 楼层解析
*
* @return
*/
protected Integer parseFloor() {
if (StringUtils.isEmpty(this.shi)) {
return null;
}
Pattern pattern = Pattern.compile(NUMBER_PATTERN);
Matcher matcher = pattern.matcher(this.shi);
// 这个需要优化地下层没有考虑
if (matcher.find()) {
Integer num = new Integer(matcher.group(0));
if (num <= HUNDRED) {
return num / 10;
} else if (num > HUNDRED && num <= TEN_THOUSAND) {
return num / 100;
} else {
throw new CustomException("室号太大");
}
}
return null;
}
/**
*
*
* @return
*/
protected String parseHAO() {
Pattern pattern = Pattern.compile(HAO_PATTERN);
Matcher matcher = pattern.matcher(this.address);
// 这个需要优化地下层没有考虑
if (matcher.find()) {
return matcher.group(1);
}
return null;
}
}

View File

@ -0,0 +1,19 @@
package com.ruoyi.project.tool.address.service;
import com.ruoyi.project.tool.address.model.CleanAddress;
/**
* 地址处理方法
*
* @author lihe
*/
public interface AddressHandler {
/**
* 地址清洗
*
* @param cleanAddress
*/
void clear(CleanAddress cleanAddress);
}

View File

@ -0,0 +1,18 @@
package com.ruoyi.project.tool.address.service.impl;
import com.ruoyi.project.tool.address.model.CleanAddress;
import com.ruoyi.project.tool.address.model.CleanAddressBuilder;
import com.ruoyi.project.tool.address.service.AddressHandler;
/**
* 没有特殊符号的地址清洗
*
* @author lihe
*/
public class NoSignalAddressHandler implements AddressHandler {
@Override
public void clear(CleanAddress cleanAddress) {
CleanAddressBuilder.builder(cleanAddress).parseDistrict();
}
}

View File

@ -0,0 +1,18 @@
package com.ruoyi.project.tool.address.service.impl;
import com.ruoyi.project.tool.address.model.CleanAddress;
import com.ruoyi.project.tool.address.service.AddressHandler;
/**
* 带有字符的地址
*
* @author lihe
*/
public class SignalAddressHandler implements AddressHandler {
@Override
public void clear(CleanAddress cleanAddress) {
}
}

View File

@ -0,0 +1,121 @@
大华
青浦新城
老西门
曲阳
佘山
龙华
江川路
洋泾
长寿
黄兴
新华路
曹杨
临港新城
大宁
华漕
曹家渡
张江
安亭汽车城
桃浦
彭浦
衡山路
颛桥
黄浦滨江
朱泾
长桥
东外滩
长兴岛
武宁
南京西路
花木
金山新城
海湾
江宁路
金山中部
曹路
松江南部
松江新城东区
青浦北部
田林
浦江
嘉定北部
打浦桥
碧云
九亭
庄行
亭林
外高桥
松江中部
新江湾城
张庙
横沙岛
崇明其他
古美罗阳
大场
唐镇
七宝
塘桥
南桥新城
西郊
北蔡
凉城
虹桥
淞南高境
柘林
长风
莘庄
马桥
枫泾
光新
泗泾
月浦
梅陇春申
金汇
真新
陈家镇
北外滩
江桥
中原
华泾
长征
嘉定主城区
南翔
四川北路
枫林
惠南
淮海中路
金虹桥
淞宝
南站
古北
松江新城西区
万里
吴泾
新场
杨行
徐家汇
赵巷
漕泾
人民广场
不夜城
三林
祝桥
川沙
浦东世博
中山公园
金桥
罗店
真如
周康
陆家嘴滨江
顾村
航头
徐泾
五角场
朱家角
新桥
崇明新城
堡镇
奉城
罗泾
鞍山

View File

@ -0,0 +1,70 @@
宝山
宝山区
长宁
长宁区
崇明
崇明区
奉贤
奉贤区
虹口
虹口区
黄浦
黄浦区
嘉定
嘉定区
金山
金山区
静安
静安区
卢湾
闵行
闵行区
普陀
普陀区
浦东
浦东南汇
浦东新区
青浦
青浦区
上海市宝山
上海市宝山区
上海市长宁
上海市长宁区
上海市崇明
上海市崇明区
上海市奉贤
上海市奉贤区
上海市虹口
上海市虹口区
上海市黄浦
上海市黄浦区
上海市嘉定
上海市嘉定区
上海市金山
上海市金山区
上海市静安
上海市静安区
上海市卢湾区
上海市闵行
上海市闵行区
上海市南汇区
上海市普陀
上海市普陀区
上海市浦东
上海市浦东新区
上海市青浦
上海市青浦区
上海市松江
上海市松江区
上海市徐汇
上海市徐汇区
上海市杨浦
上海市杨浦区
上海市闸北区
松江
松江区
徐汇
徐汇区
杨浦
杨浦区
闸北

View File

@ -0,0 +1,431 @@
艾镇镇
安亭镇
八滧镇
白鹤镇
白玉路街道
半淞园路街道
浜镇镇
保安镇
堡镇
堡镇镇
北蔡镇
北川沙镇
北桥镇
北新泾街道
北新泾镇
北新桥镇
北闸镇
蔡路镇
仓桥镇
曹行镇
曹家渡街道
曹路镇
曹王镇
曹杨新村街道
漕河泾镇
漕泾镇
草棚镇
草镇镇
长白新村街道
长浜镇
长风新村街道
长江农场
长桥街道
长兴乡
长兴镇
长征镇
车墩镇
辰山镇
陈坊桥镇
陈行镇
陈家行镇
陈家镇
城北镇
城桥镇
城厢镇
澄桥镇
盛桥镇
盛梓庙镇
程家桥街道
储店镇
川沙县
川沙镇
大场镇
大椿镇
大港镇
大宁路街道
大桥街道
大团镇
大新镇
大盈镇
邓镇镇
丁棚镇
定海路街道
东风农场
东沟镇
东海镇
东新路街道
东新镇
董家渡街道
洞泾镇
杜坊镇
杜行镇
二堡镇
二条竖河镇
蕃瓜弄镇
方家窑镇
方泰镇
彷徨镇
丰乐镇
封浜镇
枫泾镇
凤凰镇
凤溪镇
奉城镇
奉浦工业区
奉贤镇
奉新镇
富民镇
干巷镇
港东乡
港口镇
港西镇
港沿镇
高东镇
高行镇
高桥镇
葛隆镇
龚路镇
共和新路街道
顾村镇
顾路镇
关港镇
光明镇
广福镇
广富林镇
广中路街道
海滨新村街道
海桥乡
海桥镇
海湾镇
航头镇
合庆镇
合兴乡
合兴镇
合作镇
横沔镇
横沙乡
洪庙镇
红卫镇
红星农场
红星镇
虹桥街道
虹桥镇
侯家镇
后岗镇
胡桥镇
花木镇
华漕镇
华泾镇
华路镇
华亭镇
华新镇
华阳桥镇
华阳镇
欢庵镇
黄埔区
黄渡镇
黄楼镇
黄路镇
惠南镇
机杨镇
汲浜镇
纪王镇
嘉定工业区
嘉定工业园区
嘉定镇
戬浜桥镇
戬浜镇
建设镇
江海镇
江口镇
江浦路街道
江桥镇
江湾镇
江镇镇
蒋庄镇
界排镇
金汇镇
金桥镇
金山工业区
金山区镇
金山卫
金山卫镇
金山嘴镇
金卫镇
金泽镇
九亭镇
菊园新区
康桥镇
控江路街道
廊下镇
老港镇
老西门街道
李塔汇镇
莲盛镇
练塘镇
燎原农场
凌桥镇
刘行镇
刘夏镇
六里镇
六团镇
六灶镇
龙华镇
娄塘镇
芦潮港
芦潮港镇
鲁汇镇
陆行镇
陆家巷镇
陆家嘴街道
罗店镇
罗泾镇
罗南镇
吕巷镇
绿华镇
马陆镇
马桥镇
毛家镇
泖港镇
泖桥镇
梅陇镇
梅园街道
猛将庙镇
庙行镇
庙镇镇
木杓镇
南二条竖河镇
南盘滧镇
南桥镇
南翔镇
南星镇
南苑镇
泥彩镇
泥城镇
牛棚镇
排衙镇
潘桥镇
潘石镇
蟠龙镇
彭浦镇
彭镇镇
平安镇
平凉路街道
浦东杨思
浦江镇
七宝镇
七滧镇
七灶镇
戚家墩镇
祁连镇
齐贤镇
前卫农场
钱门塘镇
钱桥镇
钱圩镇
秦镇镇
青村
青村镇
青墩镇
青浦镇
邱移庙镇
茸北镇
阮巷镇
三岔港镇
三墩镇
三光镇
三林镇
三桥镇
三星镇
三灶镇
山阳镇
商塌镇
邵厂镇
佘山镇
申港街道
莘庄镇
沈巷镇
沈家湾镇
沈家镇
沈庄镇
施镇镇
石湖荡镇
石皮泐镇
石泉路街道
书院镇
竖河镇
竖新镇
四平路街道
四团镇
四滧镇
泗泾镇
松江工业区
松江新城区
松江新桥
松江镇
松隐镇
苏民镇
孙桥镇
泰日镇
谈家港镇
坦直镇
唐行镇
唐家行镇
唐镇镇
塘桥镇
塘外镇
塘湾镇
桃浦镇
题桥镇
天马山镇
天目西路街道
田林街道
亭林镇
头桥镇
瓦屑镇
外冈镇
湾镇镇
万安镇
万祥镇
王港镇
王鲁玙镇
望仙桥镇
望新镇
邬桥镇
吴店镇
吴淞镇
吴淞镇街道
五角场镇
五厍镇
五四农场
五滧乡
五滧镇
西岑镇
西渡街道
西渡镇
西护塘镇
西门镇
西三江口镇
下坊渡镇
下三星镇
下沙镇
下协隆镇
夏阳街道
香花桥街道
香花桥镇
响哃镇
向化镇
萧塘镇
小东门街道
小横河镇
小昆山镇
小竖河镇
小湾镇
小营房镇
小蒸镇
滧村镇
协隆镇
斜土路街道
新安镇
新浜镇
新场镇
新城街道
新城区
新成街道
新成路街道
新村乡
新村镇
新风镇
新港路街道
新港镇
新海农场
新海镇
新河镇
新泾镇
新绿镇
新米行镇
新民镇
新农镇
新桥镇
新寺镇
新镇镇
兴塔镇
星火开发区
徐行镇
徐家行镇
徐家汇街道
徐泾镇
徐路镇
宣桥镇
殷行街道
烟墩头镇
严桥镇
延吉新村街道
盐仓镇
杨行镇
杨家桥镇
杨家镇镇
杨柳桥镇
杨思镇
杨园镇
洋泾街道
洋泾镇
洋桥镇
叶榭镇
一号桥镇
盈浦街道
永隆镇
油桥镇
友谊路街道
御桥镇
裕安镇
圆沙镇
月浦镇
跃进农场
张家桥镇
张江镇
张桥镇
张堰镇
张泽镇
章堰镇
朝阳镇
召楼镇
赵港镇
赵行镇
赵巷镇
赵屯镇
柘林镇
真如镇
真新街道
真新新村街道
蒸淀镇
芷江西路街道
中港镇
中山北路街道
中山街道
中兴镇
重固镇
周家渡
周浦区
周浦镇
朱行镇
朱家角镇
朱家桥镇
朱泾镇
诸翟镇
竹桥镇
祝桥鎮
祝桥镇
颛桥镇
庄行镇

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@ package com.ruoyi;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.LoadUtil;
import com.ruoyi.project.data.cases.domain.*;
import com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice;
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
@ -224,9 +225,23 @@ public class GenerateTableTests {
}
}
@Test
public void printUUID() {
System.out.println(UUID.randomUUID().toString().replace("-", ""));
}
@Test
public void appendDouHao() {
List<String> list = LoadUtil.loadList("temp.dict");
list.forEach(x -> {
int index = x.indexOf("大道");
if(-1 != index) {
System.out.println(x.substring(0,index+2));
}
});
}
}

View File

@ -0,0 +1,204 @@
世博大道1859号
世博大道2095号
世界大道1710号
世纪大道100号
世纪大道1065号,世纪大道1701号
世纪大道1118号
世纪大道1128号
世纪大道1168号
世纪大道1192号
世纪大道1200号
世纪大道1217号
世纪大道1500号
世纪大道1501号
世纪大道1568号
世纪大道1589号
世纪大道1600号
世纪大道1700号
世纪大道1777号
世纪大道199号
世纪大道2000号
世纪大道201号
世纪大道210号
世纪大道211号
世纪大道800号
世纪大道88号
世纪大道88号
世纪大道8号
东方路69号,浦东大道555号
东方路与张扬路交叉口,福山路268号,世纪大道1217号,张杨路980号
五莲路201弄,莱阳路451弄,利津路158弄,浦东大道2970弄
五莲路201弄,莱阳路451弄,利津路158弄,浦东大道2970弄
商城路800号,世纪大道1090号
大道站路94弄,迎博路94弄(旧)
奉浦大道95弄
奉浦大道95弄
奉浦大道95弄
奉浦大道95弄
奉浦大道95弄
奉浦大道97号,奉浦大道99号,环城东路455弄,环城东路465弄
山兰路446-462号,申港大道87号,水芸路445-473号
崂山路80弄,浦东大道290弄,浦东大道310号,浦东大道312号
崧泽大道6066号
崧泽大道9188弄
崧泽大道9288弄
崧泽大道崧盈路
巨野路22号,浦东大道1638号(旧)
德平路12弄10号,浦东大道2346号
德平路25弄,浦东大道2388弄,龙居路30弄
新园路508弄,新园路509弄,崧泽大道9190弄
昌邑路588弄,浦东大道580号
昌邑路600号,浦东大道599号
朱家角镇绿舟路228弄,朱家角镇绿舟路188弄,淀山湖大道3699弄
杭州湾大道118弄
杭州湾大道1858号
杭州湾大道88号
林荫大道1888弄,林荫新路255弄
梅川路1518号,浦东大道2238号
沪太路1717号,浦东大道1476号,浦东大道1482号
浦东大道1000弄
浦东大道1081-1089号,浦东大道1081号,浦东大道1083号,浦东大道1085号,浦东大道1087号,浦东大道1089号
浦东大道1081-1089号,浦东大道1081号,浦东大道1083号,浦东大道1085号,浦东大道1087号,浦东大道1089号
浦东大道1081号,浦东大道1085号,浦东大道1089号A座,浦东大道1089号B座
浦东大道1093弄
浦东大道1093弄
浦东大道1093弄5号,浦东大道1093弄6号,浦东大道1093弄11号,浦东大道1093弄12号,浦东大道1093弄15号,浦东大道1093弄16号
浦东大道1097弄
浦东大道1097弄
浦东大道1097弄12-16号
浦东大道1139号,浦东大道1139弄
浦东大道1139弄
浦东大道1200号
浦东大道1235号
浦东大道136弄
浦东大道138号
浦东大道140弄
浦东大道1460弄
浦东大道1464-1470号
浦东大道1525号,浦东大道1535号,浦东大道1539号
浦东大道1585弄,浦东大道1615弄,浦东大道1591-1617号(单)
浦东大道1608号
浦东大道1608号
浦东大道1623弄
浦东大道1695弄16-51号
浦东大道1695弄1号
浦东大道1700弄
浦东大道1700弄,浦东大道1666号
浦东大道1819弄
浦东大道1851弄
浦东大道1868号
浦东大道1号
浦东大道2000号
浦东大道2123号
浦东大道2139弄
浦东大道2160号,浦东大道2220号
浦东大道2164、2188、2212号,浦东大道2160号,浦东大道2164号,浦东大道2188号,浦东大道2212号,浦东大道2220号
浦东大道2330号
浦东大道2406弄
浦东大道2406弄
浦东大道2440号
浦东大道2511弄
浦东大道2511弄
浦东大道2515号
浦东大道2515号,浦东大道2521号
浦东大道2536号
浦东大道2554号
浦东大道2554弄
浦东大道2556号
浦东大道2567弄
浦东大道2567弄
浦东大道2568弄
浦东大道2641弄,浦东大道2639弄
浦东大道2738号
浦东大道2742弄
浦东大道2742弄2号,浦东大道2742弄3号
浦东大道2762、2776号,浦东大道2762号,浦东大道2776号
浦东大道2762、2776号,浦东大道2762号,浦东大道2776号
浦东大道2769号,浦东大道2771号,浦东大道2773号
浦东大道2778弄
浦东大道2789号
浦东大道288号
浦东大道2926号,浦东大道2930号,五莲路2、4、6、18、20、28号,五莲路22号
浦东大道2970弄
浦东大道2970弄3号,浦东大道2970弄4号,浦东大道2970弄5号
浦东大道3000号
浦东大道3036弄
浦东大道3040弄
浦东大道3076弄,浦东大道3080弄
浦东大道3号
浦东大道3号,东城路180号
浦东大道435号,浦东大道437号,浦东大道437号甲
浦东大道501弄
浦东大道592号
浦东大道599号,昌邑路600号
浦东大道604弄
浦东大道637号
浦东大道637号
浦东大道651弄,浦东大道691弄
浦东大道666号
浦东大道720号
浦东大道727弄
浦东大道814号
浦东大道834弄
浦东大道900-988号,浦东大道900号,浦东大道988号
浦东大道981号
浦东大道988弄
海港大道和沪城环路转角内侧
海秀路83-139号,金山大道3898弄,卫宏路530号
淀山湖大道218号
淀山湖大道3600弄,淀山湖大道3800弄
淀山湖大道399号
淀山湖大道851号
滨江大道1380弄,滨江大道1399弄
滨江大道1773弄
滨江大道1777号
滨江大道399弄
滨江大道999号、滨江大道993弄
物流大道600弄
环湖西二路568-624号,龙竹路102-120号,申港大道153-177号,云鹃路473-527号,申港大道588号
瑞木路130号,申港大道158号,云娟路628号,云鹃路628_4号
申港大道133号
申港大道1号,申港大道33号,水芸路418号
申港大道200号
申港大道88号,水芸路501号,水芸路505号,水芸路523号,水芸路525号,水芸路527号
福山路,浦东大道729号
福山路268号,世纪大道1217号,张杨路980号
莱阳路201弄,莱阳路301弄,浦东大道2920弄,五莲路100弄
诸陆西路1088弄,崧泽大道2333弄
金山大道2335号
金山大道2335弄,卫零路886弄
金山大道2335弄,卫零路886弄
金山大道2335弄,卫零路886弄
金桥路301弄,金桥路351弄,浦东大道2746弄
青浦镇淀山湖大道199弄
龙东大道1288号
龙东大道1号
龙东大道1号,龙东大道415弄
龙东大道1号,龙东大道415弄
龙东大道1号,龙东大道415弄
龙东大道1号,龙东大道415弄
龙东大道1号,龙东大道415弄
龙东大道2001弄
龙东大道2001弄
龙东大道2001弄
龙东大道2211弄
龙东大道2211弄
龙东大道2211弄
龙东大道2255弄
龙东大道2255弄
龙东大道2255弄
龙东大道2255弄
龙东大道3000号
龙东大道3158弄
龙东大道3800弄
龙东大道4028弄
龙东大道4288弄
龙东大道4288弄
龙东大道4288弄
龙东大道5385号
龙东大道5401弄
龙东大道5401弄
龙东大道666弄,松涛路200弄
龙东大道华东路
龙腾大道2555-9
龙腾大道2815号,龙腾大道2835号,龙腾大道2865号