📄 alterdatabase.java
字号:
package net.aetherial.gis.baobu.TotalExcel;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.aetherial.gis.output.FileOperate;
import net.aetherial.gis.surface.ItemValue;
public class AlterDataBase {
String[][] cityArray = new String[][] { { "3401", "合肥市" }, { "3402", "芜湖市" },
{ "3403", "蚌埠市" }, { "3404", "淮南市" },
{ "3405", "马鞍山市" }, { "3406", "淮北市" },
{ "3407", "铜陵市" }, { "3408", "安庆市" },
{ "3410", "黄山市" },{ "3411", "滁州市" },
{ "3412", "阜阳市" }, { "3413", "宿州市" },
{ "3414", "巢湖市" }, { "3415", "六安市" },
{ "3416", "亳州市" },{ "3417", "池州市" },
{ "3418", "宣城市" }};
Map oldLxMap = new HashMap ();
Map newLxMap = new HashMap ();
Map oldLDMap = new HashMap ();
Map newLDMap = new HashMap ();
Map oldXzMap = new HashMap ();
Map newXzMap = new HashMap ();
Map oldJzcMap = new HashMap ();
Map newJzcMap = new HashMap ();
Map oldJzcTdMap = new HashMap ();
Map newJzcTdMap = new HashMap ();
Map oldXzTdMap = new HashMap ();
Map newXzTdMap = new HashMap ();
Map oldDkMap = new HashMap ();
Map newDkMap = new HashMap ();
Map oldQlMap = new HashMap ();
Map newQlMap = new HashMap ();
Map oldSdMap = new HashMap ();
Map newSdMap = new HashMap ();
private String oldFilePath = "E:\\报部JIO导出数据1\\报部接口\\first"; //上一次报部数据路径
private String newFilePath = "E:\\报部JIO导出数据1\\报部接口\\current"; //本次数据路径
private String outFilePath = "E:\\报部JIO比较后数据1\\"; //输出路径
/*
* 构造函数
*/
public AlterDataBase(){
super();
}
public void readData(){
System.out.println("正在读取数据,请稍候...");
oldLxMap = this.readFile(oldFilePath + "\\Lx.txt");
newLxMap = this.readFile(newFilePath + "\\Lx.txt");
oldLDMap = this.readFile(oldFilePath + "\\Ld.txt");
newLDMap = this.readFile(newFilePath + "\\Ld.txt");
oldQlMap = this.readFile(oldFilePath + "\\Ql.txt");
newQlMap = this.readFile(newFilePath + "\\Ql.txt");
oldDkMap = this.readFile(oldFilePath + "\\Dk.txt");
newDkMap = this.readFile(newFilePath + "\\Dk.txt");
oldSdMap = this.readFile(oldFilePath + "\\Sd.txt");
newSdMap = this.readFile(newFilePath + "\\Sd.txt");
oldJzcMap = this.readXzJzcFile(oldFilePath + "\\Jzcjbqk.txt");
newJzcMap = this.readXzJzcFile(newFilePath + "\\Jzcjbqk.txt");
oldXzMap = this.readXzJzcFile(oldFilePath + "\\Xzjbqk.txt");
newXzMap = this.readXzJzcFile(newFilePath + "\\Xzjbqk.txt");
oldJzcTdMap = this.readXzJzcFile(oldFilePath + "\\Jzctdqk.txt");
newJzcTdMap = this.readXzJzcFile(newFilePath + "\\Jzctdqk.txt");
oldXzTdMap = this.readXzJzcFile(oldFilePath + "\\Xztdqk.txt");
newXzTdMap = this.readXzJzcFile(newFilePath + "\\Xztdqk.txt");
}
//按市分类读取路线、路段数据
private Map readFile(String filename) {
File file = new File(filename);
String split = "\t";
String[] fields = null;
String cityCode = "";
Map roadMap = new HashMap();
List lxList = new ArrayList();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String road = br.readLine();//Ignore title line
road = br.readLine();
while (road != null) {
fields = road.split(split);
cityCode = fields[5].trim().substring(4,8);
if (roadMap.get((String) cityCode) == null) {
roadMap.put(cityCode, new ArrayList());
}
lxList = (List)roadMap.get(cityCode);
lxList.add(road);
road = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return roadMap;
}
//按市分类读取删除的超范围路线数据
private Map readCFWFile(String filename) {
File file = new File(filename);
String split = "\t";
String[] fields = null;
String cityCode = "";
Map roadMap = new HashMap();
List lxList = new ArrayList();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String road = br.readLine();//Ignore title line
road = br.readLine();
while (road != null) {
fields = road.split(split);
cityCode = fields[0].trim().substring(4,8);
if (roadMap.get((String) cityCode) == null) {
roadMap.put(cityCode, new ArrayList());
}
lxList = (List)roadMap.get(cityCode);
lxList.add(road);
road = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return roadMap;
}
//按市分类读取删除的超范围路段数据
private Map readCFWLdFile(String filename) {
File file = new File(filename);
String split = "\t";
String[] fields = null;
String cityCode = "";
Map roadMap = new HashMap();
List lxList = new ArrayList();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String road = br.readLine();//Ignore title line
road = br.readLine();
while (road != null) {
fields = road.split(split);
cityCode = fields[1].trim().substring(4,8);
if (roadMap.get((String) cityCode) == null) {
roadMap.put(cityCode, new ArrayList());
}
lxList = (List)roadMap.get(cityCode);
lxList.add(road);
road = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return roadMap;
}
// 按市分类读取路线、路段数据
private Map readXzJzcFile(String filename) {
File file = new File(filename);
String split = "\t";
String[] fields = null;
String cityCode = "";
Map jzcMap = new HashMap();
List lxList = new ArrayList();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String road = br.readLine();//Ignore title line
road = br.readLine();
while (road != null) {
fields = road.split(split);
cityCode = fields[5].trim().substring(0,4);
if (jzcMap.get((String) cityCode) == null) {
jzcMap.put(cityCode, new ArrayList());
}
lxList = (List)jzcMap.get(cityCode);
lxList.add(road);
road = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return jzcMap;
}
// 乡镇、建制村编码、名称变更
public void AlterXzAndJzc() throws IOException{
Iterator it = newXzMap.keySet().iterator();
String lineStr = "";
String townNumber = "";
String [] childStr = null;
String oldlineStr = "";
String oldtownNumber = "";
String [] oldchildStr = null;
String jinDu = "";
String weiDu = "";
int n = 0;
String cityName = "";
NewCommClass cc = new NewCommClass();
while (it.hasNext()) {
String key = (String) it.next(); //城市名称
if (!key.equals("3404")) continue;
for (int k = 0; cityArray != null && k < cityArray.length; k++){
if (key.equals(cityArray[k][0]))
{cityName = cityArray[k][1];
break;
}
}
System.err.println("***************正在处理 "+ cityName + " 数据! ********************");
FileOperate fo = new FileOperate();
String outPutFile = this.outFilePath + cityName + "\\乡镇建制村编码或名称调整一览表.txt";
File newFile = fo.createFolder(outPutFile);
FileWriter resultFile = new FileWriter(newFile);
PrintWriter myFile = new PrintWriter(resultFile);
List newXzList = (List) newXzMap.get(key); //本次报部路线(分市)
List oldXzList = (List) oldXzMap.get(key); //上次报部路线(分市)
//List newLdList = (List) newLDMap.get(key); //上次报部路线(分市)
for (int i = 0 ; newXzList != null && i < newXzList.size(); i++){
lineStr = (String)newXzList.get(i);
childStr = lineStr.split("\t");
townNumber = childStr[5];
int m = 4;
jinDu = childStr[12];
if (townNumber.substring(9,12).equals("000")){
weiDu = childStr[16];
m = 6;
}
else {
weiDu = childStr[20];
m = 9;
}
n = 0;
for (int j = 0 ; oldXzList != null && j < oldXzList.size(); j++){
oldlineStr = (String)oldXzList.get(j);
oldchildStr = oldlineStr.split("\t");
oldtownNumber = oldchildStr[5];
if ( (oldchildStr[4].equals(childStr[4] ) && oldtownNumber.equals(townNumber)))
break;
if ((!childStr[4].equals(oldchildStr[4]) && townNumber.equals(oldtownNumber) )
|| (childStr[4].equals(oldchildStr[4]) && !townNumber.equals(oldtownNumber))
&& oldtownNumber.substring(0,9).equals(townNumber.substring(0,9))){
n ++;
break;
}
}
if ( n != 0 ) {
System.out.println("变更的乡镇、行政村: "+ townNumber + " " + childStr[4]);
String [] temp = cc.getNameAndNumber(childStr[4],townNumber,oldXzList);
lineStr = temp[0] + " \t" + townNumber +"\t"+ temp[1] + "\t"
+ childStr[4] +"\t" + jinDu + "\t" + weiDu + "\r\n";
myFile.write(lineStr);
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
// 渡口变更
public void AlterDk() throws IOException{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -