feature(地址清洗):地址清洗开发
1. 地址分为3类(单套、楼栋、小区、包含多个楼栋或者单套) 2. 基于联城数库中的路名拆分,保证联城中的路名完全匹配; 3. 联城数库中的小区路名清洗(XX路、XX大道)
This commit is contained in:
parent
5dda87a984
commit
d552b7da05
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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);
|
||||||
|
|
||||||
|
}
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
@ -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) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
121
ruoyi/src/main/resources/address-dict/block.dict
Normal file
121
ruoyi/src/main/resources/address-dict/block.dict
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
大华
|
||||||
|
青浦新城
|
||||||
|
老西门
|
||||||
|
曲阳
|
||||||
|
佘山
|
||||||
|
龙华
|
||||||
|
江川路
|
||||||
|
洋泾
|
||||||
|
长寿
|
||||||
|
黄兴
|
||||||
|
新华路
|
||||||
|
曹杨
|
||||||
|
临港新城
|
||||||
|
大宁
|
||||||
|
华漕
|
||||||
|
曹家渡
|
||||||
|
张江
|
||||||
|
安亭汽车城
|
||||||
|
桃浦
|
||||||
|
彭浦
|
||||||
|
衡山路
|
||||||
|
颛桥
|
||||||
|
黄浦滨江
|
||||||
|
朱泾
|
||||||
|
长桥
|
||||||
|
东外滩
|
||||||
|
长兴岛
|
||||||
|
武宁
|
||||||
|
南京西路
|
||||||
|
花木
|
||||||
|
金山新城
|
||||||
|
海湾
|
||||||
|
江宁路
|
||||||
|
金山中部
|
||||||
|
曹路
|
||||||
|
松江南部
|
||||||
|
松江新城东区
|
||||||
|
青浦北部
|
||||||
|
田林
|
||||||
|
浦江
|
||||||
|
嘉定北部
|
||||||
|
打浦桥
|
||||||
|
碧云
|
||||||
|
九亭
|
||||||
|
庄行
|
||||||
|
亭林
|
||||||
|
外高桥
|
||||||
|
松江中部
|
||||||
|
新江湾城
|
||||||
|
张庙
|
||||||
|
横沙岛
|
||||||
|
崇明其他
|
||||||
|
古美罗阳
|
||||||
|
大场
|
||||||
|
唐镇
|
||||||
|
七宝
|
||||||
|
塘桥
|
||||||
|
南桥新城
|
||||||
|
西郊
|
||||||
|
北蔡
|
||||||
|
凉城
|
||||||
|
虹桥
|
||||||
|
淞南高境
|
||||||
|
柘林
|
||||||
|
长风
|
||||||
|
莘庄
|
||||||
|
马桥
|
||||||
|
枫泾
|
||||||
|
光新
|
||||||
|
泗泾
|
||||||
|
月浦
|
||||||
|
梅陇春申
|
||||||
|
金汇
|
||||||
|
真新
|
||||||
|
陈家镇
|
||||||
|
北外滩
|
||||||
|
江桥
|
||||||
|
中原
|
||||||
|
华泾
|
||||||
|
长征
|
||||||
|
嘉定主城区
|
||||||
|
南翔
|
||||||
|
四川北路
|
||||||
|
枫林
|
||||||
|
惠南
|
||||||
|
淮海中路
|
||||||
|
金虹桥
|
||||||
|
淞宝
|
||||||
|
南站
|
||||||
|
古北
|
||||||
|
松江新城西区
|
||||||
|
万里
|
||||||
|
吴泾
|
||||||
|
新场
|
||||||
|
杨行
|
||||||
|
徐家汇
|
||||||
|
赵巷
|
||||||
|
漕泾
|
||||||
|
人民广场
|
||||||
|
不夜城
|
||||||
|
三林
|
||||||
|
祝桥
|
||||||
|
川沙
|
||||||
|
浦东世博
|
||||||
|
中山公园
|
||||||
|
金桥
|
||||||
|
罗店
|
||||||
|
真如
|
||||||
|
周康
|
||||||
|
陆家嘴滨江
|
||||||
|
顾村
|
||||||
|
航头
|
||||||
|
徐泾
|
||||||
|
五角场
|
||||||
|
朱家角
|
||||||
|
新桥
|
||||||
|
崇明新城
|
||||||
|
堡镇
|
||||||
|
奉城
|
||||||
|
罗泾
|
||||||
|
鞍山
|
70
ruoyi/src/main/resources/address-dict/district.dict
Normal file
70
ruoyi/src/main/resources/address-dict/district.dict
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
宝山
|
||||||
|
宝山区
|
||||||
|
长宁
|
||||||
|
长宁区
|
||||||
|
崇明
|
||||||
|
崇明区
|
||||||
|
奉贤
|
||||||
|
奉贤区
|
||||||
|
虹口
|
||||||
|
虹口区
|
||||||
|
黄浦
|
||||||
|
黄浦区
|
||||||
|
嘉定
|
||||||
|
嘉定区
|
||||||
|
金山
|
||||||
|
金山区
|
||||||
|
静安
|
||||||
|
静安区
|
||||||
|
卢湾
|
||||||
|
闵行
|
||||||
|
闵行区
|
||||||
|
普陀
|
||||||
|
普陀区
|
||||||
|
浦东
|
||||||
|
浦东南汇
|
||||||
|
浦东新区
|
||||||
|
青浦
|
||||||
|
青浦区
|
||||||
|
上海市宝山
|
||||||
|
上海市宝山区
|
||||||
|
上海市长宁
|
||||||
|
上海市长宁区
|
||||||
|
上海市崇明
|
||||||
|
上海市崇明区
|
||||||
|
上海市奉贤
|
||||||
|
上海市奉贤区
|
||||||
|
上海市虹口
|
||||||
|
上海市虹口区
|
||||||
|
上海市黄浦
|
||||||
|
上海市黄浦区
|
||||||
|
上海市嘉定
|
||||||
|
上海市嘉定区
|
||||||
|
上海市金山
|
||||||
|
上海市金山区
|
||||||
|
上海市静安
|
||||||
|
上海市静安区
|
||||||
|
上海市卢湾区
|
||||||
|
上海市闵行
|
||||||
|
上海市闵行区
|
||||||
|
上海市南汇区
|
||||||
|
上海市普陀
|
||||||
|
上海市普陀区
|
||||||
|
上海市浦东
|
||||||
|
上海市浦东新区
|
||||||
|
上海市青浦
|
||||||
|
上海市青浦区
|
||||||
|
上海市松江
|
||||||
|
上海市松江区
|
||||||
|
上海市徐汇
|
||||||
|
上海市徐汇区
|
||||||
|
上海市杨浦
|
||||||
|
上海市杨浦区
|
||||||
|
上海市闸北区
|
||||||
|
松江
|
||||||
|
松江区
|
||||||
|
徐汇
|
||||||
|
徐汇区
|
||||||
|
杨浦
|
||||||
|
杨浦区
|
||||||
|
闸北
|
431
ruoyi/src/main/resources/address-dict/region.dict
Normal file
431
ruoyi/src/main/resources/address-dict/region.dict
Normal file
@ -0,0 +1,431 @@
|
|||||||
|
艾镇镇
|
||||||
|
安亭镇
|
||||||
|
八滧镇
|
||||||
|
白鹤镇
|
||||||
|
白玉路街道
|
||||||
|
半淞园路街道
|
||||||
|
浜镇镇
|
||||||
|
保安镇
|
||||||
|
堡镇
|
||||||
|
堡镇镇
|
||||||
|
北蔡镇
|
||||||
|
北川沙镇
|
||||||
|
北桥镇
|
||||||
|
北新泾街道
|
||||||
|
北新泾镇
|
||||||
|
北新桥镇
|
||||||
|
北闸镇
|
||||||
|
蔡路镇
|
||||||
|
仓桥镇
|
||||||
|
曹行镇
|
||||||
|
曹家渡街道
|
||||||
|
曹路镇
|
||||||
|
曹王镇
|
||||||
|
曹杨新村街道
|
||||||
|
漕河泾镇
|
||||||
|
漕泾镇
|
||||||
|
草棚镇
|
||||||
|
草镇镇
|
||||||
|
长白新村街道
|
||||||
|
长浜镇
|
||||||
|
长风新村街道
|
||||||
|
长江农场
|
||||||
|
长桥街道
|
||||||
|
长兴乡
|
||||||
|
长兴镇
|
||||||
|
长征镇
|
||||||
|
车墩镇
|
||||||
|
辰山镇
|
||||||
|
陈坊桥镇
|
||||||
|
陈行镇
|
||||||
|
陈家行镇
|
||||||
|
陈家镇
|
||||||
|
城北镇
|
||||||
|
城桥镇
|
||||||
|
城厢镇
|
||||||
|
澄桥镇
|
||||||
|
盛桥镇
|
||||||
|
盛梓庙镇
|
||||||
|
程家桥街道
|
||||||
|
储店镇
|
||||||
|
川沙县
|
||||||
|
川沙镇
|
||||||
|
大场镇
|
||||||
|
大椿镇
|
||||||
|
大港镇
|
||||||
|
大宁路街道
|
||||||
|
大桥街道
|
||||||
|
大团镇
|
||||||
|
大新镇
|
||||||
|
大盈镇
|
||||||
|
邓镇镇
|
||||||
|
丁棚镇
|
||||||
|
定海路街道
|
||||||
|
东风农场
|
||||||
|
东沟镇
|
||||||
|
东海镇
|
||||||
|
东新路街道
|
||||||
|
东新镇
|
||||||
|
董家渡街道
|
||||||
|
洞泾镇
|
||||||
|
杜坊镇
|
||||||
|
杜行镇
|
||||||
|
二堡镇
|
||||||
|
二条竖河镇
|
||||||
|
蕃瓜弄镇
|
||||||
|
方家窑镇
|
||||||
|
方泰镇
|
||||||
|
彷徨镇
|
||||||
|
丰乐镇
|
||||||
|
封浜镇
|
||||||
|
枫泾镇
|
||||||
|
凤凰镇
|
||||||
|
凤溪镇
|
||||||
|
奉城镇
|
||||||
|
奉浦工业区
|
||||||
|
奉贤镇
|
||||||
|
奉新镇
|
||||||
|
富民镇
|
||||||
|
干巷镇
|
||||||
|
港东乡
|
||||||
|
港口镇
|
||||||
|
港西镇
|
||||||
|
港沿镇
|
||||||
|
高东镇
|
||||||
|
高行镇
|
||||||
|
高桥镇
|
||||||
|
葛隆镇
|
||||||
|
龚路镇
|
||||||
|
共和新路街道
|
||||||
|
顾村镇
|
||||||
|
顾路镇
|
||||||
|
关港镇
|
||||||
|
光明镇
|
||||||
|
广福镇
|
||||||
|
广富林镇
|
||||||
|
广中路街道
|
||||||
|
海滨新村街道
|
||||||
|
海桥乡
|
||||||
|
海桥镇
|
||||||
|
海湾镇
|
||||||
|
航头镇
|
||||||
|
合庆镇
|
||||||
|
合兴乡
|
||||||
|
合兴镇
|
||||||
|
合作镇
|
||||||
|
横沔镇
|
||||||
|
横沙乡
|
||||||
|
洪庙镇
|
||||||
|
红卫镇
|
||||||
|
红星农场
|
||||||
|
红星镇
|
||||||
|
虹桥街道
|
||||||
|
虹桥镇
|
||||||
|
侯家镇
|
||||||
|
后岗镇
|
||||||
|
胡桥镇
|
||||||
|
花木镇
|
||||||
|
华漕镇
|
||||||
|
华泾镇
|
||||||
|
华路镇
|
||||||
|
华亭镇
|
||||||
|
华新镇
|
||||||
|
华阳桥镇
|
||||||
|
华阳镇
|
||||||
|
欢庵镇
|
||||||
|
黄埔区
|
||||||
|
黄渡镇
|
||||||
|
黄楼镇
|
||||||
|
黄路镇
|
||||||
|
惠南镇
|
||||||
|
机杨镇
|
||||||
|
汲浜镇
|
||||||
|
纪王镇
|
||||||
|
嘉定工业区
|
||||||
|
嘉定工业园区
|
||||||
|
嘉定镇
|
||||||
|
戬浜桥镇
|
||||||
|
戬浜镇
|
||||||
|
建设镇
|
||||||
|
江海镇
|
||||||
|
江口镇
|
||||||
|
江浦路街道
|
||||||
|
江桥镇
|
||||||
|
江湾镇
|
||||||
|
江镇镇
|
||||||
|
蒋庄镇
|
||||||
|
界排镇
|
||||||
|
金汇镇
|
||||||
|
金桥镇
|
||||||
|
金山工业区
|
||||||
|
金山区镇
|
||||||
|
金山卫
|
||||||
|
金山卫镇
|
||||||
|
金山嘴镇
|
||||||
|
金卫镇
|
||||||
|
金泽镇
|
||||||
|
九亭镇
|
||||||
|
菊园新区
|
||||||
|
康桥镇
|
||||||
|
控江路街道
|
||||||
|
廊下镇
|
||||||
|
老港镇
|
||||||
|
老西门街道
|
||||||
|
李塔汇镇
|
||||||
|
莲盛镇
|
||||||
|
练塘镇
|
||||||
|
燎原农场
|
||||||
|
凌桥镇
|
||||||
|
刘行镇
|
||||||
|
刘夏镇
|
||||||
|
六里镇
|
||||||
|
六团镇
|
||||||
|
六灶镇
|
||||||
|
龙华镇
|
||||||
|
娄塘镇
|
||||||
|
芦潮港
|
||||||
|
芦潮港镇
|
||||||
|
鲁汇镇
|
||||||
|
陆行镇
|
||||||
|
陆家巷镇
|
||||||
|
陆家嘴街道
|
||||||
|
罗店镇
|
||||||
|
罗泾镇
|
||||||
|
罗南镇
|
||||||
|
吕巷镇
|
||||||
|
绿华镇
|
||||||
|
马陆镇
|
||||||
|
马桥镇
|
||||||
|
毛家镇
|
||||||
|
泖港镇
|
||||||
|
泖桥镇
|
||||||
|
梅陇镇
|
||||||
|
梅园街道
|
||||||
|
猛将庙镇
|
||||||
|
庙行镇
|
||||||
|
庙镇镇
|
||||||
|
木杓镇
|
||||||
|
南二条竖河镇
|
||||||
|
南盘滧镇
|
||||||
|
南桥镇
|
||||||
|
南翔镇
|
||||||
|
南星镇
|
||||||
|
南苑镇
|
||||||
|
泥彩镇
|
||||||
|
泥城镇
|
||||||
|
牛棚镇
|
||||||
|
排衙镇
|
||||||
|
潘桥镇
|
||||||
|
潘石镇
|
||||||
|
蟠龙镇
|
||||||
|
彭浦镇
|
||||||
|
彭镇镇
|
||||||
|
平安镇
|
||||||
|
平凉路街道
|
||||||
|
浦东杨思
|
||||||
|
浦江镇
|
||||||
|
七宝镇
|
||||||
|
七滧镇
|
||||||
|
七灶镇
|
||||||
|
戚家墩镇
|
||||||
|
祁连镇
|
||||||
|
齐贤镇
|
||||||
|
前卫农场
|
||||||
|
钱门塘镇
|
||||||
|
钱桥镇
|
||||||
|
钱圩镇
|
||||||
|
秦镇镇
|
||||||
|
青村
|
||||||
|
青村镇
|
||||||
|
青墩镇
|
||||||
|
青浦镇
|
||||||
|
邱移庙镇
|
||||||
|
茸北镇
|
||||||
|
阮巷镇
|
||||||
|
三岔港镇
|
||||||
|
三墩镇
|
||||||
|
三光镇
|
||||||
|
三林镇
|
||||||
|
三桥镇
|
||||||
|
三星镇
|
||||||
|
三灶镇
|
||||||
|
山阳镇
|
||||||
|
商塌镇
|
||||||
|
邵厂镇
|
||||||
|
佘山镇
|
||||||
|
申港街道
|
||||||
|
莘庄镇
|
||||||
|
沈巷镇
|
||||||
|
沈家湾镇
|
||||||
|
沈家镇
|
||||||
|
沈庄镇
|
||||||
|
施镇镇
|
||||||
|
石湖荡镇
|
||||||
|
石皮泐镇
|
||||||
|
石泉路街道
|
||||||
|
书院镇
|
||||||
|
竖河镇
|
||||||
|
竖新镇
|
||||||
|
四平路街道
|
||||||
|
四团镇
|
||||||
|
四滧镇
|
||||||
|
泗泾镇
|
||||||
|
松江工业区
|
||||||
|
松江新城区
|
||||||
|
松江新桥
|
||||||
|
松江镇
|
||||||
|
松隐镇
|
||||||
|
苏民镇
|
||||||
|
孙桥镇
|
||||||
|
泰日镇
|
||||||
|
谈家港镇
|
||||||
|
坦直镇
|
||||||
|
唐行镇
|
||||||
|
唐家行镇
|
||||||
|
唐镇镇
|
||||||
|
塘桥镇
|
||||||
|
塘外镇
|
||||||
|
塘湾镇
|
||||||
|
桃浦镇
|
||||||
|
题桥镇
|
||||||
|
天马山镇
|
||||||
|
天目西路街道
|
||||||
|
田林街道
|
||||||
|
亭林镇
|
||||||
|
头桥镇
|
||||||
|
瓦屑镇
|
||||||
|
外冈镇
|
||||||
|
湾镇镇
|
||||||
|
万安镇
|
||||||
|
万祥镇
|
||||||
|
王港镇
|
||||||
|
王鲁玙镇
|
||||||
|
望仙桥镇
|
||||||
|
望新镇
|
||||||
|
邬桥镇
|
||||||
|
吴店镇
|
||||||
|
吴淞镇
|
||||||
|
吴淞镇街道
|
||||||
|
五角场镇
|
||||||
|
五厍镇
|
||||||
|
五四农场
|
||||||
|
五滧乡
|
||||||
|
五滧镇
|
||||||
|
西岑镇
|
||||||
|
西渡街道
|
||||||
|
西渡镇
|
||||||
|
西护塘镇
|
||||||
|
西门镇
|
||||||
|
西三江口镇
|
||||||
|
下坊渡镇
|
||||||
|
下三星镇
|
||||||
|
下沙镇
|
||||||
|
下协隆镇
|
||||||
|
夏阳街道
|
||||||
|
香花桥街道
|
||||||
|
香花桥镇
|
||||||
|
响哃镇
|
||||||
|
向化镇
|
||||||
|
萧塘镇
|
||||||
|
小东门街道
|
||||||
|
小横河镇
|
||||||
|
小昆山镇
|
||||||
|
小竖河镇
|
||||||
|
小湾镇
|
||||||
|
小营房镇
|
||||||
|
小蒸镇
|
||||||
|
滧村镇
|
||||||
|
协隆镇
|
||||||
|
斜土路街道
|
||||||
|
新安镇
|
||||||
|
新浜镇
|
||||||
|
新场镇
|
||||||
|
新城街道
|
||||||
|
新城区
|
||||||
|
新成街道
|
||||||
|
新成路街道
|
||||||
|
新村乡
|
||||||
|
新村镇
|
||||||
|
新风镇
|
||||||
|
新港路街道
|
||||||
|
新港镇
|
||||||
|
新海农场
|
||||||
|
新海镇
|
||||||
|
新河镇
|
||||||
|
新泾镇
|
||||||
|
新绿镇
|
||||||
|
新米行镇
|
||||||
|
新民镇
|
||||||
|
新农镇
|
||||||
|
新桥镇
|
||||||
|
新寺镇
|
||||||
|
新镇镇
|
||||||
|
兴塔镇
|
||||||
|
星火开发区
|
||||||
|
徐行镇
|
||||||
|
徐家行镇
|
||||||
|
徐家汇街道
|
||||||
|
徐泾镇
|
||||||
|
徐路镇
|
||||||
|
宣桥镇
|
||||||
|
殷行街道
|
||||||
|
烟墩头镇
|
||||||
|
严桥镇
|
||||||
|
延吉新村街道
|
||||||
|
盐仓镇
|
||||||
|
杨行镇
|
||||||
|
杨家桥镇
|
||||||
|
杨家镇镇
|
||||||
|
杨柳桥镇
|
||||||
|
杨思镇
|
||||||
|
杨园镇
|
||||||
|
洋泾街道
|
||||||
|
洋泾镇
|
||||||
|
洋桥镇
|
||||||
|
叶榭镇
|
||||||
|
一号桥镇
|
||||||
|
盈浦街道
|
||||||
|
永隆镇
|
||||||
|
油桥镇
|
||||||
|
友谊路街道
|
||||||
|
御桥镇
|
||||||
|
裕安镇
|
||||||
|
圆沙镇
|
||||||
|
月浦镇
|
||||||
|
跃进农场
|
||||||
|
张家桥镇
|
||||||
|
张江镇
|
||||||
|
张桥镇
|
||||||
|
张堰镇
|
||||||
|
张泽镇
|
||||||
|
章堰镇
|
||||||
|
朝阳镇
|
||||||
|
召楼镇
|
||||||
|
赵港镇
|
||||||
|
赵行镇
|
||||||
|
赵巷镇
|
||||||
|
赵屯镇
|
||||||
|
柘林镇
|
||||||
|
真如镇
|
||||||
|
真新街道
|
||||||
|
真新新村街道
|
||||||
|
蒸淀镇
|
||||||
|
芷江西路街道
|
||||||
|
中港镇
|
||||||
|
中山北路街道
|
||||||
|
中山街道
|
||||||
|
中兴镇
|
||||||
|
重固镇
|
||||||
|
周家渡
|
||||||
|
周浦区
|
||||||
|
周浦镇
|
||||||
|
朱行镇
|
||||||
|
朱家角镇
|
||||||
|
朱家桥镇
|
||||||
|
朱泾镇
|
||||||
|
诸翟镇
|
||||||
|
竹桥镇
|
||||||
|
祝桥鎮
|
||||||
|
祝桥镇
|
||||||
|
颛桥镇
|
||||||
|
庄行镇
|
3772
ruoyi/src/main/resources/address-dict/road.dict
Normal file
3772
ruoyi/src/main/resources/address-dict/road.dict
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@ package com.ruoyi;
|
|||||||
|
|
||||||
|
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import com.ruoyi.common.utils.LoadUtil;
|
||||||
import com.ruoyi.project.data.cases.domain.*;
|
import com.ruoyi.project.data.cases.domain.*;
|
||||||
import com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice;
|
import com.ruoyi.project.data.price.domain.ComputeResidenceSaleBasePrice;
|
||||||
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
import com.ruoyi.project.data.price.domain.UltimateOfficeBasePrice;
|
||||||
@ -82,7 +83,7 @@ public class GenerateTableTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void generateBatchInsertSqL() {
|
public void generateBatchInsertSqL() {
|
||||||
Class targetClass = OtherResidenceRentClosingCase .class;
|
Class targetClass = OtherResidenceRentClosingCase.class;
|
||||||
|
|
||||||
List<Field> fieldList = new ArrayList<>();
|
List<Field> fieldList = new ArrayList<>();
|
||||||
while (targetClass != null) {
|
while (targetClass != null) {
|
||||||
@ -224,9 +225,23 @@ public class GenerateTableTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void printUUID(){
|
public void printUUID() {
|
||||||
System.out.println(UUID.randomUUID().toString().replace("-",""));
|
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));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
204
ruoyi/src/test/resources/temp.dict
Normal file
204
ruoyi/src/test/resources/temp.dict
Normal 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号
|
Loading…
x
Reference in New Issue
Block a user