|
@@ -62,14 +62,381 @@ public class ImportKnowledgeForEdit {
|
|
// initCityLocation(classes,"cityLocation","省市区编号");
|
|
// initCityLocation(classes,"cityLocation","省市区编号");
|
|
// writeFuncSqlToFile(classes, "cityLocation");
|
|
// writeFuncSqlToFile(classes, "cityLocation");
|
|
// classes.clear();
|
|
// classes.clear();
|
|
- // 气候分区
|
|
|
|
- initCityLocation(classes,"cityLocation","气候分区");
|
|
|
|
- writeFuncSqlToFile(classes, "cityLocation");
|
|
|
|
|
|
+// // 气候分区
|
|
|
|
+// initClimaticDivision(classes,"climaticDivision","气候分区");
|
|
|
|
+// writeFuncSqlToFile(classes, "climaticDivision");
|
|
|
|
+// classes.clear();
|
|
|
|
+// // 信息点编码词汇
|
|
|
|
+// initFuncidCodeVocabulary(classes,"funcidCodeVocabulary","Sheet1");
|
|
|
|
+// writeFuncSqlToFile(classes, "funcidCodeVocabulary");
|
|
|
|
+// classes.clear();
|
|
|
|
+// // 地理分区
|
|
|
|
+// initGeographicalDivision(classes,"geographicalDivision","地理分区");
|
|
|
|
+// writeFuncSqlToFile(classes, "geographicalDivision");
|
|
|
|
+// classes.clear();
|
|
|
|
+ // 城市发展水平
|
|
|
|
+ initCityDevelopmentLevel(classes,"cityDevelopmentLevel","城市发展水平");
|
|
|
|
+ writeFuncSqlToFile(classes, "cityDevelopmentLevel");
|
|
classes.clear();
|
|
classes.clear();
|
|
|
|
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void initCityDevelopmentLevel(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws IOException {
|
|
|
|
+ String file = basepath + "/附表14-地域性信息表.xlsx";
|
|
|
|
+
|
|
|
|
+ FileInputStream inputStream = new FileInputStream(file);
|
|
|
|
+ Workbook workbook = new XSSFWorkbook(inputStream);
|
|
|
|
+ Sheet sheet = workbook.getSheet(sheetName);
|
|
|
|
+
|
|
|
|
+ // 行号从0开始, 从第2行开始读数据
|
|
|
|
+ int startRowNum = 3;
|
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
|
+ Set<String> systemCodes = new HashSet<>();
|
|
|
|
+ Set<String> majorCodes = new HashSet<>();
|
|
|
|
+ Set<String> equipCodes = new HashSet<>();
|
|
|
|
+ Set<String> componentCodes = new HashSet<>();
|
|
|
|
+ CacheModel cache = new CacheModel();
|
|
|
|
+ for (int rowIndex = startRowNum; rowIndex <= lastRowNum; rowIndex++) {
|
|
|
|
+ Row row = sheet.getRow(rowIndex);
|
|
|
|
+ if (row == null) {
|
|
|
|
+ log.info("row[{}] is null", rowIndex);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ // 0专业, 3系统编码, 5系统名称, 6设备编码, 8设备名称
|
|
|
|
+ CacheModel target = new CacheModel();
|
|
|
|
+ target.majorName = (String) ExcelUtils.parseCell(row.getCell(1), "string");// 一级名称
|
|
|
|
+ target.majorCode = (String) ExcelUtils.parseCell(row.getCell(2), "string");// 一级编码
|
|
|
|
+ target.systemName = (String) ExcelUtils.parseCell(row.getCell(3), "string");//二级名称
|
|
|
|
+ target.systemCode = (String) ExcelUtils.parseCell(row.getCell(4), "string");//二级编码
|
|
|
|
+ target.equipName = (String) ExcelUtils.parseCell(row.getCell(5), "string");//三级名称
|
|
|
|
+ target.equipCode = (String) ExcelUtils.parseCell(row.getCell(6), "string");//三级编码
|
|
|
|
+ target.componentName = (String) ExcelUtils.parseCell(row.getCell(7), "string");//二级名称
|
|
|
|
+ target.componentCode = (String) ExcelUtils.parseCell(row.getCell(8), "string");//二级编码
|
|
|
|
+ String commentsOnForm = (String) ExcelUtils.parseCell(row.getCell(9), "string");//备注
|
|
|
|
+
|
|
|
|
+ // 专业不为空
|
|
|
|
+ if (target.majorCode != null) {
|
|
|
|
+ cache.majorCode = target.majorCode;
|
|
|
|
+ cache.majorName = target.majorName;
|
|
|
|
+ cache.systemCode = null;
|
|
|
|
+ cache.systemName = null;
|
|
|
|
+ cache.equipCode = null;
|
|
|
|
+ cache.equipName = null;
|
|
|
|
+ cache.componentCode = null;
|
|
|
|
+ cache.componentName = null;
|
|
|
|
+ } else {
|
|
|
|
+ target.majorCode = cache.majorCode;
|
|
|
|
+ target.majorName = cache.majorName;
|
|
|
|
+ }
|
|
|
|
+ // 系统不为空
|
|
|
|
+ if (target.systemCode != null) {
|
|
|
|
+ cache.systemCode = target.systemCode;
|
|
|
|
+ cache.systemName = target.systemName;
|
|
|
|
+ cache.equipCode = null;
|
|
|
|
+ cache.equipName = null;
|
|
|
|
+ cache.componentCode = null;
|
|
|
|
+ cache.componentName = null;
|
|
|
|
+ } else {
|
|
|
|
+ target.systemCode = cache.systemCode;
|
|
|
|
+ target.systemName = cache.systemName;
|
|
|
|
+ }
|
|
|
|
+ // 三级不为空
|
|
|
|
+ if (target.equipCode != null) {
|
|
|
|
+ cache.equipCode = target.equipCode;
|
|
|
|
+ cache.equipName = target.equipName;
|
|
|
|
+ cache.componentCode = null;
|
|
|
|
+ cache.componentName = null;
|
|
|
|
+ } else {
|
|
|
|
+ target.equipCode = cache.equipCode;
|
|
|
|
+ target.equipName = cache.equipName;
|
|
|
|
+ }
|
|
|
|
+ // 四级
|
|
|
|
+ if (target.componentCode != null) {}
|
|
|
|
+
|
|
|
|
+ // 判断专业是否存在
|
|
|
|
+ if (!majorCodes.contains(target.majorCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.majorCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.majorName)) {
|
|
|
|
+ RwdeditRefTypeInfosModel major = new RwdeditRefTypeInfosModel();
|
|
|
|
+ major.setRefKey(refKey);
|
|
|
|
+ major.setCode(target.majorCode);
|
|
|
|
+ major.setName(target.majorName);
|
|
|
|
+ major.setParentCode("-9999");
|
|
|
|
+ major.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ major.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ if (StringUtils.isBlank(target.systemCode)
|
|
|
|
+ && StringUtils.isBlank(target.equipCode)
|
|
|
|
+ && StringUtils.isBlank(target.componentCode)
|
|
|
|
+ && StringUtils.isNotBlank(commentsOnForm)){
|
|
|
|
+ major.setDataSource(objectMapper.createObjectNode().put("commentsOnForm",commentsOnForm));
|
|
|
|
+ }
|
|
|
|
+ models.add(major);
|
|
|
|
+ majorCodes.add(target.majorCode);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 判断系统是否存在
|
|
|
|
+ if (!systemCodes.contains(target.systemCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.systemCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.systemName)) {
|
|
|
|
+ RwdeditRefTypeInfosModel system = new RwdeditRefTypeInfosModel();
|
|
|
|
+ system.setRefKey(refKey);
|
|
|
|
+ system.setCode(target.systemCode);
|
|
|
|
+ system.setName(target.systemName);
|
|
|
|
+ system.setParentCode(target.majorCode);
|
|
|
|
+ if (StringUtils.isBlank(target.equipCode)
|
|
|
|
+ && StringUtils.isBlank(target.componentCode)
|
|
|
|
+ && StringUtils.isNotBlank(commentsOnForm)){
|
|
|
|
+ system.setDataSource(objectMapper.createObjectNode().put("commentsOnForm",commentsOnForm));
|
|
|
|
+ }
|
|
|
|
+ system.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ system.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ models.add(system);
|
|
|
|
+ systemCodes.add(target.systemCode);
|
|
|
|
+ }
|
|
|
|
+ // 判断系统是否存在
|
|
|
|
+ if (!equipCodes.contains(target.equipCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.equipCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.equipName)) {
|
|
|
|
+ RwdeditRefTypeInfosModel system = new RwdeditRefTypeInfosModel();
|
|
|
|
+ system.setRefKey(refKey);
|
|
|
|
+ system.setCode(target.equipCode);
|
|
|
|
+ system.setName(target.equipName);
|
|
|
|
+ system.setParentCode(target.systemCode);
|
|
|
|
+ if (StringUtils.isBlank(target.componentCode)
|
|
|
|
+ && StringUtils.isNotBlank(commentsOnForm)){
|
|
|
|
+ system.setDataSource(objectMapper.createObjectNode().put("commentsOnForm",commentsOnForm));
|
|
|
|
+ }
|
|
|
|
+ system.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ system.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ models.add(system);
|
|
|
|
+ equipCodes.add(target.equipCode);
|
|
|
|
+ }
|
|
|
|
+ // 判断系统是否存在
|
|
|
|
+ if (!componentCodes.contains(target.componentCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.componentCode)
|
|
|
|
+ && StringUtils.isNotBlank(target.componentName)) {
|
|
|
|
+ RwdeditRefTypeInfosModel system = new RwdeditRefTypeInfosModel();
|
|
|
|
+ system.setRefKey(refKey);
|
|
|
|
+ system.setCode(target.componentCode);
|
|
|
|
+ system.setName(target.componentName);
|
|
|
|
+ system.setParentCode(target.equipCode);
|
|
|
|
+ if (StringUtils.isNotBlank(commentsOnForm)){
|
|
|
|
+ system.setDataSource(objectMapper.createObjectNode().put("commentsOnForm",commentsOnForm));
|
|
|
|
+ }
|
|
|
|
+ system.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ system.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ models.add(system);
|
|
|
|
+ componentCodes.add(target.componentCode);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void initGeographicalDivision(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws IOException {
|
|
|
|
+ String file = basepath + "/附表14-地域性信息表.xlsx";
|
|
|
|
+
|
|
|
|
+ FileInputStream inputStream = new FileInputStream(file);
|
|
|
|
+ Workbook workbook = new XSSFWorkbook(inputStream);
|
|
|
|
+ Sheet sheet = workbook.getSheet(sheetName);
|
|
|
|
+
|
|
|
|
+ // 行号从0开始, 从第2行开始读数据
|
|
|
|
+ int startRowNum = 2;
|
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
|
+ Set<String> systemCodes = new HashSet<>();
|
|
|
|
+ Set<String> majorCodes = new HashSet<>();
|
|
|
|
+ CacheModel cache = new CacheModel();
|
|
|
|
+ for (int rowIndex = startRowNum; rowIndex <= lastRowNum; rowIndex++) {
|
|
|
|
+ Row row = sheet.getRow(rowIndex);
|
|
|
|
+ if (row == null) {
|
|
|
|
+ log.info("row[{}] is null", rowIndex);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ // 0专业, 3系统编码, 5系统名称, 6设备编码, 8设备名称
|
|
|
|
+ CacheModel target = new CacheModel();
|
|
|
|
+ target.majorName = (String) ExcelUtils.parseCell(row.getCell(2), "string");// 名称
|
|
|
|
+ target.majorCode = (String) ExcelUtils.parseCell(row.getCell(1), "string");// 编码
|
|
|
|
+ target.systemName = (String) ExcelUtils.parseCell(row.getCell(4), "string");//名称
|
|
|
|
+ target.systemCode = (String) ExcelUtils.parseCell(row.getCell(3), "string");//编码
|
|
|
|
+ String inclusion = (String) ExcelUtils.parseCell(row.getCell(5), "string");//包含
|
|
|
|
+
|
|
|
|
+ // 专业不为空
|
|
|
|
+ if (target.majorCode != null) {
|
|
|
|
+ cache.majorCode = target.majorCode;
|
|
|
|
+ cache.majorName = target.majorName;
|
|
|
|
+ cache.systemCode = null;
|
|
|
|
+ cache.systemName = null;
|
|
|
|
+ cache.equipCode = null;
|
|
|
|
+ cache.equipName = null;
|
|
|
|
+ cache.componentCode = null;
|
|
|
|
+ cache.componentName = null;
|
|
|
|
+ } else {
|
|
|
|
+ target.majorCode = cache.majorCode;
|
|
|
|
+ target.majorName = cache.majorName;
|
|
|
|
+ }
|
|
|
|
+ // 系统不为空
|
|
|
|
+ if (target.systemCode != null) {}
|
|
|
|
+
|
|
|
|
+ // 判断专业是否存在
|
|
|
|
+ if (!majorCodes.contains(target.majorCode)) {
|
|
|
|
+ RwdeditRefTypeInfosModel major = new RwdeditRefTypeInfosModel();
|
|
|
|
+ major.setRefKey(refKey);
|
|
|
|
+ major.setCode(target.majorCode);
|
|
|
|
+ major.setName(target.majorName);
|
|
|
|
+ major.setParentCode("-9999");
|
|
|
|
+ major.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ major.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ if (StringUtils.isBlank(target.systemCode) && StringUtils.isNotBlank(inclusion)){
|
|
|
|
+ major.setDataSource(objectMapper.createObjectNode().put("inclusion",inclusion));
|
|
|
|
+ }
|
|
|
|
+ models.add(major);
|
|
|
|
+ majorCodes.add(target.majorCode);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 判断系统是否存在
|
|
|
|
+ if (!systemCodes.contains(target.systemCode) && StringUtils.isNotBlank(target.systemCode)) {
|
|
|
|
+ RwdeditRefTypeInfosModel system = new RwdeditRefTypeInfosModel();
|
|
|
|
+ system.setRefKey(refKey);
|
|
|
|
+ system.setCode(target.systemCode);
|
|
|
|
+ system.setName(target.systemName);
|
|
|
|
+ system.setParentCode(target.majorCode);
|
|
|
|
+ system.setDataSource(objectMapper.createObjectNode().put("inclusion",inclusion));
|
|
|
|
+ system.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ system.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ models.add(system);
|
|
|
|
+ systemCodes.add(target.systemCode);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ private void initFuncidCodeVocabulary(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws IOException {
|
|
|
|
+ String file = basepath + "/附表4-信息点编码词汇表.xlsx";
|
|
|
|
+
|
|
|
|
+ FileInputStream inputStream = new FileInputStream(file);
|
|
|
|
+ Workbook workbook = new XSSFWorkbook(inputStream);
|
|
|
|
+ Sheet sheet = workbook.getSheet(sheetName);
|
|
|
|
+
|
|
|
|
+ // 行号从0开始, 从第2行开始读数据
|
|
|
|
+ int startRowNum = 2;
|
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
|
+ Set<String> codes = new HashSet<>();
|
|
|
|
+ for (int rowIndex = startRowNum; rowIndex <= lastRowNum; rowIndex++) {
|
|
|
|
+ Row row = sheet.getRow(rowIndex);
|
|
|
|
+ if (row == null) {
|
|
|
|
+ log.info("row[{}] is null", rowIndex);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ String chineseWord = (String) ExcelUtils.parseCell(row.getCell(0), "string");//中文词汇
|
|
|
|
+ String code = (String) ExcelUtils.parseCell(row.getCell(1), "string");// 名称原文
|
|
|
|
+ String name = (String) ExcelUtils.parseCell(row.getCell(2), "string");// 名称缩写
|
|
|
|
+ if (codes.contains(code)){
|
|
|
|
+ log.info("code[{}] is exist", code);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isBlank(code) || StringUtils.isBlank(name)){
|
|
|
|
+ log.info("code[{}] or name[{}] is null", code,name);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ codes.add(code);
|
|
|
|
+ RwdeditRefTypeInfosModel major = new RwdeditRefTypeInfosModel();
|
|
|
|
+ major.setRefKey(refKey);
|
|
|
|
+ major.setCode(code);
|
|
|
|
+ major.setName(name);
|
|
|
|
+ major.setParentCode("-9999");
|
|
|
|
+ major.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ major.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ if (StringUtils.isNotBlank(chineseWord)){
|
|
|
|
+ major.setDataSource(objectMapper.createObjectNode().put("chineseWord",chineseWord));
|
|
|
|
+ }
|
|
|
|
+ models.add(major);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void initClimaticDivision(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws IOException {
|
|
|
|
+ String file = basepath + "/附表14-地域性信息表.xlsx";
|
|
|
|
+
|
|
|
|
+ FileInputStream inputStream = new FileInputStream(file);
|
|
|
|
+ Workbook workbook = new XSSFWorkbook(inputStream);
|
|
|
|
+ Sheet sheet = workbook.getSheet(sheetName);
|
|
|
|
+
|
|
|
|
+ // 行号从0开始, 从第2行开始读数据
|
|
|
|
+ int startRowNum = 3;
|
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
|
+ Set<String> systemCodes = new HashSet<>();
|
|
|
|
+ Set<String> majorCodes = new HashSet<>();
|
|
|
|
+ Set<String> equipmentCodes = new HashSet<>();
|
|
|
|
+ CacheModel cache = new CacheModel();
|
|
|
|
+ for (int rowIndex = startRowNum; rowIndex <= lastRowNum; rowIndex++) {
|
|
|
|
+ Row row = sheet.getRow(rowIndex);
|
|
|
|
+ if (row == null) {
|
|
|
|
+ log.info("row[{}] is null", rowIndex);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ // 0专业, 3系统编码, 5系统名称, 6设备编码, 8设备名称
|
|
|
|
+ CacheModel target = new CacheModel();
|
|
|
|
+ target.majorName = (String) ExcelUtils.parseCell(row.getCell(1), "string");// 名称
|
|
|
|
+ target.majorCode = (String) ExcelUtils.parseCell(row.getCell(2), "string");// 编码
|
|
|
|
+ target.systemName = (String) ExcelUtils.parseCell(row.getCell(3), "string");//名称
|
|
|
|
+ target.systemCode = (String) ExcelUtils.parseCell(row.getCell(4), "string");//编码
|
|
|
|
+ String describe = (String) ExcelUtils.parseCell(row.getCell(5), "string");//分区依据(说明)
|
|
|
|
+
|
|
|
|
+ // 专业不为空
|
|
|
|
+ if (target.majorCode != null) {
|
|
|
|
+ cache.majorCode = target.majorCode;
|
|
|
|
+ cache.majorName = target.majorName;
|
|
|
|
+ cache.systemCode = null;
|
|
|
|
+ cache.systemName = null;
|
|
|
|
+ cache.equipCode = null;
|
|
|
|
+ cache.equipName = null;
|
|
|
|
+ cache.componentCode = null;
|
|
|
|
+ cache.componentName = null;
|
|
|
|
+ } else {
|
|
|
|
+ target.majorCode = cache.majorCode;
|
|
|
|
+ target.majorName = cache.majorName;
|
|
|
|
+ }
|
|
|
|
+ // 系统不为空
|
|
|
|
+ if (target.systemCode != null) {}
|
|
|
|
+
|
|
|
|
+ // 判断专业是否存在
|
|
|
|
+ if (!majorCodes.contains(target.majorCode)) {
|
|
|
|
+ RwdeditRefTypeInfosModel major = new RwdeditRefTypeInfosModel();
|
|
|
|
+ major.setRefKey(refKey);
|
|
|
|
+ major.setCode(target.majorCode);
|
|
|
|
+ major.setName(target.majorName);
|
|
|
|
+ major.setParentCode("-9999");
|
|
|
|
+ major.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ major.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ if (StringUtils.isBlank(target.systemCode) && StringUtils.isNotBlank(describe)){
|
|
|
|
+ major.setDataSource(objectMapper.createObjectNode().put("zoningBasis",describe));
|
|
|
|
+ }
|
|
|
|
+ models.add(major);
|
|
|
|
+ majorCodes.add(target.majorCode);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 判断系统是否存在
|
|
|
|
+ if (!systemCodes.contains(target.systemCode) && StringUtils.isNotBlank(target.systemCode)) {
|
|
|
|
+ RwdeditRefTypeInfosModel system = new RwdeditRefTypeInfosModel();
|
|
|
|
+ system.setRefKey(refKey);
|
|
|
|
+ system.setCode(target.systemCode);
|
|
|
|
+ system.setName(target.systemName);
|
|
|
|
+ system.setParentCode(target.majorCode);
|
|
|
|
+ system.setDataSource(objectMapper.createObjectNode().put("zoningBasis",describe));
|
|
|
|
+ system.setCreateUser(CREATE_USER_ID);
|
|
|
|
+ system.setUpdateUser(UPDATE_USER_ID);
|
|
|
|
+ models.add(system);
|
|
|
|
+ systemCodes.add(target.systemCode);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
public void initCityLocation(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws Exception {
|
|
public void initCityLocation(List<RwdeditRefTypeInfosModel> models, String refKey, String sheetName) throws Exception {
|
|
String file = basepath + "/附表14-地域性信息表.xlsx";
|
|
String file = basepath + "/附表14-地域性信息表.xlsx";
|