|
|
@ -6,6 +6,9 @@ import cn.idev.excel.*;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_CZ;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_CZ;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_GZ;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_GZ;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_XX;
|
|
|
|
import com.dsideal.base.Tools.Excel.Bean.BeanSchool2019_XX;
|
|
|
|
|
|
|
|
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
|
|
|
|
|
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.HashMap;
|
|
|
@ -51,10 +54,48 @@ public class School2019 {
|
|
|
|
// 处理高中数据
|
|
|
|
// 处理高中数据
|
|
|
|
allResults.put("高中", processSheet(filePath, "基教高中", 7, BeanSchool2019_GZ.class));
|
|
|
|
allResults.put("高中", processSheet(filePath, "基教高中", 7, BeanSchool2019_GZ.class));
|
|
|
|
|
|
|
|
|
|
|
|
// 最后统一输出所有结果
|
|
|
|
// 保存统计结果到数据库
|
|
|
|
printAllResults(allResults);
|
|
|
|
LocalMysqlConnectUtil.Init();
|
|
|
|
|
|
|
|
saveToDatabase(allResults, 2019);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 将统计结果保存到数据库
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param allResults 所有处理结果
|
|
|
|
|
|
|
|
* @param year 年份
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private static void saveToDatabase(Map<String, Map<String, Map<String, Integer>>> allResults, int year) {
|
|
|
|
|
|
|
|
// 先删除该年份的旧数据
|
|
|
|
|
|
|
|
Db.delete("DELETE FROM t_yn_school_count WHERE year = ?", year);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历所有结果并保存
|
|
|
|
|
|
|
|
for (Map.Entry<String, Map<String, Map<String, Integer>>> schoolTypeEntry : allResults.entrySet()) {
|
|
|
|
|
|
|
|
String schoolType = schoolTypeEntry.getKey();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Map<String, Integer>> cityEntry : schoolTypeEntry.getValue().entrySet()) {
|
|
|
|
|
|
|
|
String city = cityEntry.getKey();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Integer> districtEntry : cityEntry.getValue().entrySet()) {
|
|
|
|
|
|
|
|
String district = districtEntry.getKey();
|
|
|
|
|
|
|
|
int count = districtEntry.getValue();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建记录
|
|
|
|
|
|
|
|
Record record = new Record();
|
|
|
|
|
|
|
|
record.set("school_type", schoolType)
|
|
|
|
|
|
|
|
.set("city", city)
|
|
|
|
|
|
|
|
.set("district", district)
|
|
|
|
|
|
|
|
.set("school_count", count)
|
|
|
|
|
|
|
|
.set("year", year);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 保存到数据库
|
|
|
|
|
|
|
|
Db.save("t_yn_school_count", record);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("数据已成功保存到数据库");
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 通用方法:处理指定 Sheet 表的数据
|
|
|
|
* 通用方法:处理指定 Sheet 表的数据
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -96,36 +137,4 @@ public class School2019 {
|
|
|
|
|
|
|
|
|
|
|
|
return cityDistrictMap;
|
|
|
|
return cityDistrictMap;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 统一输出所有处理结果
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param allResults 所有处理结果的Map
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private static void printAllResults(Map<String, Map<String, Map<String, Integer>>> allResults) {
|
|
|
|
|
|
|
|
System.out.println("=== 2019年基础教育学校统计结果 ===");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 按学校类型输出
|
|
|
|
|
|
|
|
for (Map.Entry<String, Map<String, Map<String, Integer>>> schoolTypeEntry : allResults.entrySet()) {
|
|
|
|
|
|
|
|
String schoolType = schoolTypeEntry.getKey();
|
|
|
|
|
|
|
|
System.out.println("\n【" + schoolType + "】");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int totalSchools = 0; // 统计该类型学校总数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Map<String, Integer>> cityEntry : schoolTypeEntry.getValue().entrySet()) {
|
|
|
|
|
|
|
|
String city = cityEntry.getKey();
|
|
|
|
|
|
|
|
System.out.println(" " + city + ":");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, Integer> districtEntry : cityEntry.getValue().entrySet()) {
|
|
|
|
|
|
|
|
int count = districtEntry.getValue();
|
|
|
|
|
|
|
|
totalSchools += count;
|
|
|
|
|
|
|
|
System.out.printf(" %s:%d所%n",
|
|
|
|
|
|
|
|
districtEntry.getKey(),
|
|
|
|
|
|
|
|
count);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System.out.printf(" %s总数:%d所%n", schoolType, totalSchools);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|