📄 datavirytabulation.java
字号:
for ( int p = 0 ; p < delRowList.size(); p++ ){
lineStr = (String)delRowList.get(p);
//System.err.println(lineStr);
childStr = lineStr.split("\t");
dwNumber = childStr[1].trim();
if (dwNumber.equals(danWeiNumber)){
m++ ;
break;
}
}
if ( m == 0 ) { //过滤掉新增或者删除的乡镇、行政村
//System.err.println("=========Number========="+danWeiNumber);
isAlter = false;
tongDaList = cc.getFirstTongDaByNum(oldList,danWeiNumber); //根据乡镇、行政村编码得到上次通达的路线
newList = cc.getFirstTongDaByNum(newTDList,danWeiNumber); //根据乡镇、行政村编码得到本次通达的路线
String tempLineStr = "";
for (int k = 0; tongDaList != null && k < tongDaList.size(); k++ ){
lineStr = (String)tongDaList.get(k);
childStr = lineStr.split("\t");
dwNumber = childStr[0];
roadNumber = childStr[1].trim();
if (roadNumber.equals("null")) continue;
roadMile = ItemValue.getRound(Double.parseDouble(childStr[6]),6)/0.001;
n = 0;
for (int j = 0; newList != null && j < newList.size(); j++ ){
lineStr = (String)newList.get(j);
newChildStr = lineStr.split("\t");
newLineStr = newChildStr[0];
newRoadNumber = newChildStr[1].trim();
if (newRoadNumber.equals("null")) continue;
if (newRoadNumber.equals(roadNumber)){
n++;
break;
}
}
if (n != 0 ){
tempStr = danWeiNumber + "\t" + roadNumber + "\t" + roadNumber + "\t" + roadMile + "\t\r\n" ;
tempLineStr += tempStr;
}else {
tempStr = danWeiNumber + "\t" + roadNumber + "\t\t" + roadMile + "\t\r\n" ;
tempLineStr += tempStr;
isAlter = true;
}
}
if (isAlter){ //两次比较有变化
newLineStr = cc.getNewTongDaString(danWeiNumber,tongDaList,newList); //获取本次新增的通达路线
contentTxt += tempLineStr ;
System.out.println("有变化的乡镇、行政村: "+ danWeiNumber);
if (newLineStr != null )
contentTxt += newLineStr ;
//System.err.println(contentTxt);
}
}
}
fileOperate.newFile("e:\\报部接口文件\\"+this.cityName + "\\通达路线选取变化一览表.txt",contentTxt);//输出文件
return tempList;
}
//获取所有已经删除或新增的行政村或乡镇信息
public List getdelTownAndVillage(){
List tempList = new ArrayList();
// List addTownList = this.getNewVillagesAndTowns(); //新增行政村、乡镇信息
// List delTownList = this.hasEarseVillagesAndTowns();//删除行政村、乡镇信息
String lineStr = "";
for (int i = 0; i< newAddList.size();i++){
lineStr = (String)newAddList.get(i);
System.err.println(lineStr);
tempList.add(lineStr);
}
for (int i = 0; i< delList.size();i++){
lineStr = (String)delList.get(i);
tempList.add(lineStr);
}
return tempList;
}
//比较11个文件,去除上次报部与本次相同的记录
public void createTxtFile(String fileName){
String filePath = "E:\\比较数据"; //接口文件路径
//String filePath = "E:\\temp";
File allFile = new File(filePath);
File[] files = allFile.listFiles();// 获取城市目录列表
for (int k = 0; files != null && k < files.length ; k++){
filePath = files[k].getPath();
String tempPath = filePath.replace('\\', ',');
String[] paths = tempPath.split(",");
int lenInt = paths.length - 1;
String shiName = paths[lenInt]; // 城市名
this.oldFilePath = filePath + "\\first\\"; //上次报部接口文件路径
this.newFilePath = filePath + "\\current\\"; //本次报部接口文件路径
CommClass cc = new CommClass();
List oldList = cc.getAllTxt(this.oldFilePath + fileName + ".txt"); //打开上次报部接口文件
List newList = cc.getAllTxt(this.newFilePath + fileName + ".txt"); //打开本次报部接口文件
String oldLineStr = "";
String newLineStr = "";
String [] oldchildStr = null;
String [] newChildStr = null;
String txtStr = "";
int n = 0;
for (int i=0; newList != null && i<newList.size(); i++){
newLineStr = (String)newList.get(i);
newChildStr = newLineStr.split("\t");
n = 0;
for (int j=0; oldList != null && j<oldList.size(); j++){
oldLineStr = (String)oldList.get(j);
oldchildStr = oldLineStr.split("\t");
//桥梁、渡口、路线、乡镇、建制村基本情况、隧道只需一种判断
if ( fileName.equals("Ql") || fileName.equals("Dk") || fileName.equals("Sd") ){
if (oldchildStr[0].trim().equals(newChildStr[0].trim()) ){
n ++ ;
break;
}
}
//路断、乡镇、建制村通达情况需两种判断
if ( fileName.equals("Jzctdqk") || fileName.equals("Xztdqk") || fileName.equals("Ld")){
if (oldchildStr[0].trim().equals(newChildStr[0].trim()) &&
oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
n++;
break;
}
}
//未标注的建制村、未找到的建制村只需一种判断
if ( fileName.equals("未标注的建制村") || fileName.equals("未找到的建制村") ){
if (oldLineStr.equals(newLineStr)){
n ++;
break;
}
}
}
//本次报部接口与上次报部接口不相等时,进行汇总
if (n == 0) {
txtStr += newLineStr + "\r\n";
System.out.println(newLineStr);
}
}
FileOperate fileOperate = new FileOperate();
fileOperate.newFile("e:\\比较后文件\\"+shiName + "\\"+ fileName + ".txt",txtStr);//输出文件
System.err.println("****************** "+ shiName + " 比较完成! ***********************");
}
}
// 比较11个文件,去除上次报部与本次相同的记录
public void createTxtFile2(String fileName){
String filePath = "E:\\比较数据"; //接口文件路径
//String hbfilePath = "e:\\合并的数据";
String filePath2 = "E:\\报部JIO比较后数据";
File allFile = new File(filePath);
File[] files = allFile.listFiles();// 获取城市目录列表
for (int k = 0; files != null && k < files.length ; k++){
filePath = files[k].getPath();
String tempPath = filePath.replace('\\', ',');
String[] paths = tempPath.split(",");
int lenInt = paths.length - 1;
String shiName = paths[lenInt]; // 城市名
this.oldFilePath = filePath + "\\current\\"; //上次报部接口文件路径
this.newFilePath = filePath2 + "\\" + shiName+ "\\"; //本次报部接口文件路径
String tempName = "";
if (fileName.equals("Jzcjbqk") || fileName.equals("Xzjbqk") )
tempName = "新增乡镇建制村一览表.txt";
if (fileName.equals("Ld") || fileName.equals("Lx"))
tempName = "新增路线一览表.txt";
CommClass cc = new CommClass();
List oldList = cc.getAllTxt(this.oldFilePath + fileName + ".txt"); //打开上次报部接口文件
List newList = cc.getAllTxt(this.newFilePath + tempName); //打开本次报部接口文件
String oldLineStr = "";
String newLineStr = "";
String [] oldchildStr = null;
String [] newChildStr = null;
String tempStr = "";
String txtStr = "";
int n = 0;
if (fileName.equals("Ld")){
for (int i=0; oldList != null && i<oldList.size(); i++){
newLineStr = (String)oldList.get(i);
newChildStr = newLineStr.split("\t");
n = 0;
for (int j=0; newList != null && j<newList.size(); j++){
oldLineStr = (String)newList.get(j);
oldchildStr = oldLineStr.split("\t");
if (oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
txtStr += newLineStr + "\r\n";
System.out.println(newLineStr);
break;
}
}
}
}else {
for (int i=0; newList != null && i<newList.size(); i++){
newLineStr = (String)newList.get(i);
newChildStr = newLineStr.split("\t");
n = 0;
for (int j=0; oldList != null && j<oldList.size(); j++){
oldLineStr = (String)oldList.get(j);
oldchildStr = oldLineStr.split("\t");
//桥梁、渡口、路线、乡镇、建制村基本情况、隧道只需一种判断
if (fileName.equals("Ld")){
if (oldchildStr[1].trim().equals(newChildStr[1].trim()) ){
txtStr += oldLineStr + "\r\n";
System.out.println(oldLineStr);
break;
}
}else if (oldchildStr[0].trim().equals(newChildStr[1].trim()) ){
txtStr += oldLineStr + "\r\n";
System.out.println(oldLineStr);
break;
}
}
}
}
FileOperate fileOperate = new FileOperate();
fileOperate.newFile("e:\\比较后文件\\"+shiName + "\\"+ fileName + ".txt",txtStr);//输出文件
System.err.println("****************** "+ shiName + " 比较完成! ***********************");
}
}
//------全省汇总-----------------
public void huiZhong(){
String [] fileNames = new String[11];
fileNames[0] = "Dk";
fileNames[1] = "Ql";
fileNames[2] = "Sd";
fileNames[3] = "Jzctdqk";
fileNames[4] = "Xztdqk";
fileNames[5] = "未标注的建制村";
fileNames[6] = "未找到的建制村";
fileNames[7] = "Lx";
fileNames[8] = "Ld";
fileNames[9] = "Jzcjbqk";
fileNames[10] = "Xzjbqk";
for (int i = 0; i < fileNames.length ; i++){
if (i < 7 )
createTxtFile( fileNames[i]);
else
createTxtFile2( fileNames[i]);
System.out.println("*************** " + fileNames[i] + "比较结束! *********************");
}
MergeFiles mergefiles = new MergeFiles();//将全省的11个文件,合并。
try {
mergefiles.merge("E:\\比较后文件", "E:\\部接口文件汇总");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public void printFile(){
CommClass cc = new CommClass();
String contentStr = "";
String temp = "";
String filePath = "E:\\test"; //接口文件路径
String txtFilePath = "";
File allFile = new File(filePath);
List list = new ArrayList();
File[] files = allFile.listFiles();// 获取城市目录列表
for (int k = 0; files != null && k < files.length ; k++){
contentStr = "";
// filePath = files[k].getPath();
String tempPath = files[k].getPath().replace('\\', ',');
String[] paths = tempPath.split(",");
int lenInt = paths.length - 1;
String shiName = paths[lenInt]; // 城市名
txtFilePath = filePath + "\\" + shiName + "\\" ;
// filePath = filePath + shiName + "\\";
list = cc.getTxtAndInt (txtFilePath + "通达路线选取变化一览表.txt");
for (int i=0; list != null && i<list.size(); i++){
temp = (String)list.get(i);
System.out.println(temp);
contentStr += temp;
}
FileOperate fileOperate = new FileOperate();
fileOperate.newFile("E:\\myFile\\ " + shiName + "\\通达路线选取变化一览表.txt",contentStr);//输出文件
}
}
public void printFile(String filePath,String outPutFile) throws IOException{
CommClass cc = new CommClass();
// cc.getTxtAndIntToStringBuffer(filePath,outPutFile);
cc.getTxtFile(filePath,outPutFile);
}
public static void main(String[] args) throws IOException {
DataViryTabulation dvt = new DataViryTabulation();
//dvt.printAll(); //分市生成六张表格数据(输出目录:E:\\报部接口文件)
//dvt.huiZhong(); //分设汇总11个接口文件(去除上次与本次报部都有的记录)
//dvt.createTxtFile("Ld");
dvt.printFile("D:\\最新更改全省部接口汇总1\\Ld.txt","C:\\99\\Ld.txt");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -