⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datald.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.aetherial.gis.baobu.TotalExcel;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import net.aetherial.gis.output.FileOperate;
import net.aetherial.gis.surface.ItemValue;

public class DataLd {
	/**
	 * @param args
	 */
	private String oldFilePath = "E:\\temp\\first"; // 上一次报部数据路径

	private String newFilePath = "E:\\temp\\current"; // 本次数据路径

	// private String oldFilePath = "d:\\test"; //上一次报部数据路径
	// private String newFilePath = "d:\\testbak"; //本次数据路径

	private List newAddList = new ArrayList(); // 新增的乡镇、行政村

	private List delList = new ArrayList(); // 已经删除的乡镇、行政村

	private String[] oldLdArray = null;

	private String[] newLdArray = null;

	private String cityName = ""; // 城市名

	/*
	 * 构造函数
	 */
	public DataLd() {
		super();
	}

	public void print(List list) {
		List l = list;
		for (int j = 0; j < l.size(); j++) {
			String str = (String) l.get(j);
			System.out.println(str);
		}
	}

	public void printAll() throws IOException {
		String filePath = "E:\\test";
		File allFile = new File(filePath);
		File[] files = allFile.listFiles();// 获取城市目录列表
		for (int i = 0; files != null && i < files.length; i++) {
			filePath = files[i].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"; // 本次报部接口文件路径
			this.cityName = shiName;
			CommClass cc = new CommClass();
			oldLdArray = cc.getOldLd(this.oldFilePath);
			newLdArray = cc.getNewLd(this.newFilePath);

			System.out.println("***************正在处理  " + shiName
					+ "  数据!  ********************");
			/*
			 * System.out.println(" 正在处理 已删除路段一览表..."); getDelRoadS();
			 * System.out.println(" 正在处理 已保留路段一览表..."); getBoliuLD();
			 * System.out.println(" 正在处理 新增加路段一览表..."); getAddLD();
			 * System.out.println(" 正在处理 超范围删除路段一览表..."); getDelLuDuan();
			 * System.out.println(" 正在处理 有更改路段一览表..."); getAlterLuDuan();
			 */
			System.out.println(" 正在处理   有更改路线一览表...");
			getAlterLX();
			// System.out.println(" 正在处理 新增加路线一览表...");
			// getAddLX();
			// System.out.println(" 正在处理 已删除路线一览表...");
			// getDelLX();
			System.out.println("*************** " + shiName
					+ "   数据比较完成!  ********************");
		}
	}

	// 已经删除的路线
	public List getDelRoadS() throws IOException {
		List tempList = new ArrayList();
		FileOperate fo = new FileOperate();
		String outPutFile = "E:\\报部接口文件\\" + this.cityName + "\\已经删除的路段一览表.txt";
		File newFile = fo.createFolder(outPutFile);
		FileWriter resultFile = new FileWriter(newFile);
		PrintWriter myFile = new PrintWriter(resultFile);
		CommClass cc = new CommClass();
		String[] list2 = this.oldLdArray;
		String[] list1 = this.newLdArray;

		String oldLineStr = "";
		String newLineStr = "";
		String oldQiDianName = "";
		String oldZhiDianName = "";
		String oldLiCheng = "";
		String newQiDianName = "";
		String newZhiDianName = "";
		String newLiCheng = "";
		String[] oldLine = null;
		String[] newLine = null;
		double xianCount = 0.0;
		double xiangCount = 0.0;
		double cunCount = 0.0;
		double sumCount = 0.0;
		double xianCFCount = 0.0;
		double xiangCFCount = 0.0;
		double cunCFCount = 0.0;
		String tempStr = "";
		int n = 0;
		int lineInt = 0;
		System.out.println("正在比较数据,请稍后...");
		for (int i = 0; list2 != null && i < list2.length; i++) {
			newLineStr = list2[i];
			newLine = newLineStr.split("\t");
			oldQiDianName = newLine[5];
			oldZhiDianName = newLine[11];
			oldLiCheng = newLine[19];
			n = 0;

			for (int j = 0; list1 != null && j < list1.length; j++) {

				oldLineStr = list1[j];
				oldLine = oldLineStr.split("\t");
				newQiDianName = oldLine[5];
				newZhiDianName = oldLine[11];
				newLiCheng = oldLine[19];

				if (oldQiDianName.equals(newQiDianName)
						&& oldZhiDianName.equals(newZhiDianName)
						&& oldLiCheng.equals(newLiCheng)) {
					n++;

					break;
				}

			}

			if (n == 0) {
				lineInt++;
				System.out
						.println("已删除路段:  " + newLine[0] + "   " + newLine[1]);
				if (newLine[1].trim().substring(0, 1).equals("X")) {
					xianCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);

				}

				if (newLine[1].trim().substring(0, 1).equals("Y")) {
					xiangCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
				}

				if (newLine[1].trim().substring(0, 1).equals("C")) {
					cunCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
				}

				myFile.write(newLineStr + "\r\n");

			}

		}
		sumCount = xianCount + xiangCount + cunCount - xianCFCount
				- xiangCFCount - cunCFCount;

		tempStr = "合计:" + sumCount + "\t" + xianCount + "\t" + xiangCount
				+ "\t" + cunCount + "\t" + xianCFCount + "\t" + xiangCFCount
				+ "\t" + cunCFCount;
		myFile.write(tempStr + "\r\n");

		myFile.close();
		return tempList;

	}

	// 已经保留的路段
	public List getBoliuLD() throws IOException {
		List tempList = new ArrayList();
		FileOperate fo = new FileOperate();
		String outPutFile = "E:\\报部接口文件\\" + this.cityName + "\\已经保留的路段一览表.txt";
		File newFile = fo.createFolder(outPutFile);
		FileWriter resultFile = new FileWriter(newFile);
		PrintWriter myFile = new PrintWriter(resultFile);
		CommClass cc = new CommClass();
		String[] list1 = this.oldLdArray;
		String[] list2 = this.newLdArray;

		String oldLineStr = "";
		String newLineStr = "";
		String oldQiDianName = "";
		String oldZhiDianName = "";
		String oldLiCheng = "";
		String newQiDianName = "";
		String newZhiDianName = "";
		String newLiCheng = "";
		String[] oldLine = null;
		String[] newLine = null;
		double xianCount = 0.0;
		double xiangCount = 0.0;
		double cunCount = 0.0;
		double sumCount = 0.0;
		double xianCFCount = 0.0;
		double xiangCFCount = 0.0;
		double cunCFCount = 0.0;
		String tempStr = "";
		int n = 0;
		int lineInt = 0;
		System.out.println("正在比较数据,请稍后...");
		for (int i = 1; list2 != null && i < list2.length; i++) {
			newLineStr = list2[i];
			newLine = newLineStr.split("\t");
			oldQiDianName = newLine[5];
			oldZhiDianName = newLine[11];
			oldLiCheng = newLine[19];
			n = 0;

			for (int j = 1; list1 != null && j < list1.length; j++) {

				oldLineStr = list1[j];
				oldLine = oldLineStr.split("\t");
				newQiDianName = oldLine[5];
				newZhiDianName = oldLine[11];
				newLiCheng = oldLine[19];

				if (oldQiDianName.equals(newQiDianName)
						&& oldZhiDianName.equals(newZhiDianName)
						&& oldLiCheng.equals(newLiCheng)) {
					n = 1;

					break;
				}

			}

			if (n == 1) {
				lineInt++;
				if (newLine[1].trim().substring(0, 1).equals("X")) {
					xianCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);
				}

				if (newLine[1].trim().substring(0, 1).equals("Y")) {
					xiangCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
				}

				if (newLine[1].trim().substring(0, 1).equals("C")) {
					cunCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
				}
				System.out
						.println("已保留路段:  " + newLine[0] + "   " + newLine[1]);
				tempStr = oldLine[0] + "\t" + oldLine[1] + "\t" + newLine[0]
						+ "\t" + newLine[1] + "\t" + oldQiDianName + "\t"
						+ oldZhiDianName + "\t" + oldLiCheng;
				myFile.write(tempStr + "\r\n");

			}

		}

		sumCount = xianCount + xiangCount + cunCount - xianCFCount
				- xiangCFCount - cunCFCount;

		tempStr = "合计:" + sumCount + "\t" + xianCount + "\t" + xiangCount
				+ "\t" + cunCount + "\t" + xianCFCount + "\t" + xiangCFCount
				+ "\t" + cunCFCount;
		myFile.write(tempStr + "\r\n");

		myFile.close();
		return tempList;

	}

	// 新增加的路段
	public List getAddLD() throws IOException {
		List tempList = new ArrayList();
		FileOperate fo = new FileOperate();
		String outPutFile = "E:\\报部接口文件\\" + this.cityName + "\\新增加的路段一览表.txt";
		File newFile = fo.createFolder(outPutFile);
		FileWriter resultFile = new FileWriter(newFile);
		PrintWriter myFile = new PrintWriter(resultFile);
		CommClass cc = new CommClass();

		String[] list1 = this.oldLdArray;
		String[] list2 = this.newLdArray;
		String tempStr = "";
		String oldLineStr = "";
		String newLineStr = "";
		String oldQiDianName = "";
		String oldZhiDianName = "";
		String oldLiCheng = "";
		String newQiDianName = "";
		String newZhiDianName = "";
		String newLiCheng = "";
		String[] oldLine = null;
		String[] newLine = null;
		double xianCount = 0.0;
		double xiangCount = 0.0;
		double cunCount = 0.0;
		double sumCount = 0.0;
		double xianCFCount = 0.0;
		double xiangCFCount = 0.0;
		double cunCFCount = 0.0;
		int n = 0;
		int lineInt = 0;
		System.out.println("正在比较数据,请稍后...");
		for (int i = 1; list2 != null && i < list2.length; i++) {
			newLineStr = list2[i];
			newLine = newLineStr.split("\t");
			oldQiDianName = newLine[7];
			oldZhiDianName = newLine[13];
			oldLiCheng = newLine[19];
			n = 0;

			// sumCount = 0.0;
			for (int j = 1; list1 != null && j < list1.length; j++) {

				oldLineStr = list1[j];
				oldLine = oldLineStr.split("\t");
				newQiDianName = oldLine[7];
				newZhiDianName = oldLine[13];
				newLiCheng = oldLine[19];

				if ((oldQiDianName.equals(newQiDianName)
						&& oldZhiDianName.equals(newZhiDianName) && oldLiCheng
						.equals(newLiCheng))
						|| ((oldQiDianName.equals(newQiDianName) && oldZhiDianName
								.equals(newZhiDianName)) || oldLiCheng
								.equals(newLiCheng))
						|| (oldQiDianName.equals(newQiDianName)
								|| oldLiCheng.equals(newLiCheng) || oldZhiDianName
								.equals(newZhiDianName))) {
					n++;

					break;
				}

			}

			if (n == 0) {
				lineInt++;
				System.out
						.println("新增加路段:  " + newLine[0] + "   " + newLine[1]);
				if (newLine[1].trim().substring(0, 1).equals("X")) {
					xianCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xianCFCount += Double.parseDouble(oldLiCheng);
				}

				if (newLine[1].trim().substring(0, 1).equals("Y")) {
					xiangCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						xiangCFCount += Double.parseDouble(oldLiCheng);
				}

				if (newLine[1].trim().substring(0, 1).equals("C")) {
					cunCount += Double.parseDouble(oldLiCheng);
					if (newLine[22].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
					if (newLine[26].trim().equals("1"))
						cunCFCount += Double.parseDouble(oldLiCheng);
				}

				tempStr = newLine[0] + "\t" + newLine[1] + "\t" + newLine[2]
						+ "\t" + newLine[19];
				myFile.write(tempStr + "\r\n");

			}

		}

		sumCount = xianCount + xiangCount + cunCount - xianCFCount
				- xiangCFCount - cunCFCount;

		tempStr = "合计:" + sumCount + "\t" + xianCount + "\t" + xiangCount
				+ "\t" + cunCount + "\t" + xianCFCount + "\t" + xiangCFCount
				+ "\t" + cunCFCount;
		myFile.write(tempStr + "\r\n");

		myFile.close();
		return tempList;

	}

	// 新增加的路线(处理县乡道)
	public List getAddLX() throws IOException {
		// List list1 = new ArrayList();
		// List list2 = new ArrayList();
		List tempList = new ArrayList();
		FileOperate fo = new FileOperate();
		String outPutFile = "E:\\报部接口文件\\" + this.cityName + "\\新增加的路线一览表.txt";
		File newFile = fo.createFolder(outPutFile);
		FileWriter resultFile = new FileWriter(newFile);
		PrintWriter myFile = new PrintWriter(resultFile);
		CommClass cc = new CommClass();
		// String [] newLdList = cc.getNewLd(this.newFilePath);
		String[] list1 = cc.getRoadArray(this.oldFilePath);
		String[] list2 = cc.getRoadArray(this.newFilePath);
		String tempStr = "";
		String oldLineStr = "";
		String newLineStr = "";
		String oldRoadNumber = "";
		String newRoadNumber = "";
		String newRoadName = "";
		String oldRoadName = "";
		String[] oldLine = null;
		String[] newLine = null;
		double[] roadMile = null;
		double sumCount = 0.0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -