📄 totalsixtable.java
字号:
//if (!oldlxNumber.substring(0,1).equals("C")) continue; //只取村道
if (oldlxNumber.equals(lxNumber)){
n ++;
break;
}
}
if ( n == 0 ) {
System.out.println("删除路线:"+ lxNumber + " " + childStr[4]);
double [] roadInfo = cc.getRoadMile1(oldLdList,lxNumber); //在路段信息表中得到里程信息
mileCount = roadInfo[0]; //合计
gradeValue = roadInfo[1]; //等级
notGradeValue = roadInfo[2]; //等外
gradeCount += gradeValue ; //等级合计
notGradeCount += notGradeValue ; //等外合计
sumMileCount += mileCount ; //总合计
tempStr = lxNumber + "\t" + childStr[4] + "\t" + ItemValue.getRound(mileCount,3)
+ "\t" + ItemValue.getRound(gradeValue,3) + "\t" + ItemValue.getRound(notGradeValue,3) + "\r\n";
myFile.write(tempStr);
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
// 新增乡镇、建制村
public void NewAddXzAndJzc() throws IOException{
Iterator it = newXzMap.keySet().iterator();
String lineStr = "";
String townNumber = "";
String [] childStr = null;
String oldlineStr = "";
String oldtownNumber = "";
String [] oldchildStr = null;
String renKou = "";
int n = 0;
String cityName = "";
while (it.hasNext()) {
String key = (String) it.next(); //城市名称
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];
renKou = childStr[6];
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].trim().equals(childStr[4].trim() ) && oldtownNumber.equals(townNumber))
|| ((oldchildStr[4].equals(childStr[4] ) && !oldtownNumber.equals(townNumber)))
|| ((!oldchildStr[4].equals(childStr[4] ) && oldtownNumber.equals(townNumber)))){
// if ( oldtownNumber.equals(townNumber)){
n ++;
break;
}
}
if ( n == 0 ) {
System.out.println("新增的乡镇、行政村: "+ townNumber + " " + childStr[4]);
lineStr = townNumber + "\t" + childStr[4] + "\t" + renKou + "\r\n" ;
myFile.write(lineStr);
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
// 删除乡镇、建制村
public void DelXzAndJzc() throws IOException{
Iterator it = oldXzMap.keySet().iterator();
String lineStr = "";
String townNumber = "";
String [] childStr = null;
String oldlineStr = "";
String oldtownNumber = "";
String [] oldchildStr = null;
String renKou = "";
int n = 0;
String cityName = "";
while (it.hasNext()) {
String key = (String) it.next(); //城市名称
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) oldXzMap.get(key); //上次报部路线(分市)
List oldXzList = (List) newXzMap.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];
renKou = childStr[6];
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))
|| ((oldchildStr[4].equals(childStr[4] ) && !oldtownNumber.equals(townNumber)))
|| ((!oldchildStr[4].equals(childStr[4] ) && oldtownNumber.equals(townNumber)))){
// if ( oldtownNumber.equals(townNumber)){
n ++;
break;
}
}
if ( n == 0 ) {
System.out.println("删除的乡镇、行政村: "+ townNumber + " " + childStr[4]);
lineStr = townNumber + "\t" + childStr[4] + "\t" + renKou + "\r\n" ;
myFile.write(lineStr);
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
// 乡镇、建制村编码、名称变更
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 + " 数据,处理完毕! ********************");
}
}
/*
*1、通达路线选取变化一览表,所有与第一次报送数据中通达路线发生变化的乡镇、建制村通达路线信息
*2、里程为乡镇政府距离通达路线的里程
*3、新增或删除的乡镇、建制村不在表中
*4、按照乡镇、建制村编码排序
*/
public void AlterTDLX() throws IOException{
Iterator it = newXzMap.keySet().iterator();
String lineStr = "";
String townNumber = "";
String [] childStr = null;
int n = 0;
String cityName = "";
NewCommClass cc = new NewCommClass();
List tdLxList1 = new ArrayList();
List tdLxList2 = new ArrayList();
String roadNumber = "";
double roadMile = 0.0;
String [] newChildStr = null;
String newLineStr = "";
String newRoadNumber = "";
String tempStr = "";
boolean isAlter =true;
while (it.hasNext()) {
String key = (String) it.next(); //城市名称
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 newTdList = (List) newTdMap.get(key);
List oldTdList = (List) oldTdMap.get(key);
for (int i = 0 ; newXzList != null && i < newXzList.size(); i++){
lineStr = (String)newXzList.get(i);
childStr = lineStr.split("\t");
townNumber = childStr[5];
tdLxList1 = cc.getFirstTongDaByNum(oldTdList,townNumber); //根据乡镇、行政村编码得到上次通达的路线
tdLxList2 = cc.getFirstTongDaByNum(newTdList,townNumber); //根据乡镇、行政村编码得到本次通达的路线
isAlter = false;
String tempLineStr = "";
for (int k = 0; tdLxList1 != null && k < tdLxList1.size(); k++ ){
lineStr = (String)tdLxList1.get(k);
childStr = lineStr.split("\t");
roadNumber = childStr[7].trim();
roadMile = ItemValue.getRound(ItemValue.getRound(Double.parseDouble(childStr[13]),6)/0.001,2);
n = 0;
for (int j = 0; tdLxList2 != null && j < tdLxList2.size(); j++ ){
lineStr = (String)tdLxList2.get(j);
newChildStr = lineStr.split("\t");
newLineStr = newChildStr[0];
newRoadNumber = newChildStr[7].trim();
if (newRoadNumber.equals("null")) continue;
if (newRoadNumber.equals(roadNumber)){
n++;
break;
}
}
if (n != 0 ){
tempStr = townNumber + "\t" + roadNumber + "\t" + roadNumber + "\t" + roadMile + "\t\r\n" ;
tempLineStr += tempStr;
}else {
tempStr = townNumber + "\t" + roadNumber + "\t\t" + roadMile + "\t\r\n" ;
tempLineStr += tempStr;
isAlter = true;
}
}
if (isAlter){ //两次比较有变化
newLineStr = cc.getNewTongDaString(townNumber,tdLxList1,tdLxList2); //获取本次新增的通达路线
myFile.write( tempLineStr) ;
System.out.println("有变化的乡镇、行政村: "+ townNumber);
if (newLineStr != null )
myFile.write( newLineStr) ;
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
// 删除超范围上报路线
public void DelCFWLx() throws IOException{
Iterator it = delLxMap.keySet().iterator();
String lineStr = "";
String lxNumber = "";
String [] childStr = null;
String oldlineStr = "";
String oldlxNumber = "";
String [] oldchildStr = null;
int n = 0;
String cityName = "";
String tongDaStr = "";
NewCommClass cc = new NewCommClass();
double liCheng = 0.0;
while (it.hasNext()) {
String key = (String) it.next(); //城市名称
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 newLxList = (List) delLxMap.get(key); //上次报部路线(分市)
List oldLdList = (List) delLdMap.get(key); //上次报部路段(分市)
List oldTdList = (List) oldTdMap.get(key); //上次通达信息(分市)
List lxOfLd = new ArrayList();
for (int i = 0 ; newLxList != null && i < newLxList.size(); i++){
lineStr = (String)newLxList.get(i);
childStr = lineStr.split("\t");
lxNumber = childStr[0];
lxOfLd = cc.getLdByLxnumber(oldLdList,lxNumber);
//System.out.println("删除路线:"+ lxNumber + " " + childStr[1]);
liCheng = cc.getRoadInfo2(lxOfLd,lxNumber); //获取里程
if (liCheng > 0.0 ){
// System.out.println("删除路线:"+ lxNumber + " " + childStr[1]);
boolean isTongDa = cc.isTDLx(oldTdList,lxNumber); //判断是否是通达路线
if (isTongDa) {
System.out.println("删除路线:"+ lxNumber + " " + childStr[1]);
//tongDaStr = cc.getIsTongDa(oldTongList,oldLxNumber); //得到上次报部时所用的行政村编码
lineStr = lxNumber + "\t" + childStr[1] + "\t" + liCheng+ "\t" + tongDaStr + "\r\n";
myFile.write(lineStr);
}
}
}
myFile.close();
System.err.println("*************** "+ cityName + " 数据,处理完毕! ********************");
}
}
public static void main(String [] args) throws IOException{
// NewCommClass cc = new NewCommClass();
// System.out.println("==========count========" + cc.getCityCount("3405"));
TotalSixTable tst = new TotalSixTable();
tst.readData();
//tst.NewAddLx();
//tst.NewAddXzAndJzc();
//tst.DelXzAndJzc();
//tst.AlterXzAndJzc();
// tst.DelLx();
tst.DelFirstLx();
// tst.AlterTDLX();
//tst.DelCFWLx();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -