|
@@ -3,8 +3,9 @@ package com.siwei.apply.service.cadastre.impl;
|
|
|
import com.siwei.apply.domain.CadastreFile;
|
|
import com.siwei.apply.domain.CadastreFile;
|
|
|
import com.siwei.apply.domain.vo.CheckInfoResultVo;
|
|
import com.siwei.apply.domain.vo.CheckInfoResultVo;
|
|
|
import com.siwei.apply.domain.vo.CheckInfoVo;
|
|
import com.siwei.apply.domain.vo.CheckInfoVo;
|
|
|
|
|
+import com.siwei.apply.domain.vo.CompareGemoVo;
|
|
|
|
|
+import com.siwei.apply.domain.vo.CompareResultVo;
|
|
|
import com.siwei.apply.mapper.CadastreFileMapper;
|
|
import com.siwei.apply.mapper.CadastreFileMapper;
|
|
|
-import com.siwei.apply.mapper.FzssFxrwrzMapper;
|
|
|
|
|
import com.siwei.apply.service.cadastre.CadastreManageService;
|
|
import com.siwei.apply.service.cadastre.CadastreManageService;
|
|
|
|
|
|
|
|
import com.siwei.apply.utils.FileExtractUtil;
|
|
import com.siwei.apply.utils.FileExtractUtil;
|
|
@@ -16,6 +17,7 @@ import org.gdal.ogr.*;
|
|
|
import org.gdal.osr.SpatialReference;
|
|
import org.gdal.osr.SpatialReference;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
@@ -39,6 +41,110 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private FzssFxrwrzHandleService fzssFxrwrzHandleService;
|
|
private FzssFxrwrzHandleService fzssFxrwrzHandleService;
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ *
|
|
|
|
|
+ * 1.进行解析数据成为list<map></map>
|
|
|
|
|
+ * 2.进行调用方法动态插入到当前表中
|
|
|
|
|
+ * 3.需要修改upload 的表更新状态
|
|
|
|
|
+ * 4.考虑增量入库还是全量入库。()
|
|
|
|
|
+ * 5.校验逻辑复杂()
|
|
|
|
|
+ *
|
|
|
|
|
+ */
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String addBatchGdbData(String uploadId) {
|
|
|
|
|
+ String result = "success";
|
|
|
|
|
+ try {
|
|
|
|
|
+ CadastreFile cadastreFile = cadastreFileMapper.get(uploadId);
|
|
|
|
|
+ //这里判断是否校验通过
|
|
|
|
|
+ if (!cadastreFile.getStatus().equalsIgnoreCase("3")) {
|
|
|
|
|
+ log.info("校验未通过,不能入库");
|
|
|
|
|
+ result = "校验未通过,不能入库";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String gdbPath = cadastreFile.getUnzipPath();
|
|
|
|
|
+ DataSource ds = ogr.Open(gdbPath + "/" + cadastreFile.getName(), 0); // 0 = 只读
|
|
|
|
|
+ if (ds == null) {
|
|
|
|
|
+ log.warn("无法打开 gdb");
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //这里进行遍历每个图层
|
|
|
|
|
+ for (int i = 0; i < ds.GetLayerCount(); i++) {
|
|
|
|
|
+ Layer layer = ds.GetLayer(i);
|
|
|
|
|
+ String layerName = layer.GetName();
|
|
|
|
|
+ //todo 相关代码
|
|
|
|
|
+ if (!layerName.equalsIgnoreCase("T_CGZJ_CWTC_M")) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean haveGeom = false;
|
|
|
|
|
+ //获取字段信息
|
|
|
|
|
+ List<String> dbFieldNameList = cadastreFileMapper.selectTableCollum(layerName.toLowerCase(Locale.ROOT));
|
|
|
|
|
+ if (dbFieldNameList.contains("geom")) {
|
|
|
|
|
+ haveGeom = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Map<String, String>> theValueList = getValueList(layer, haveGeom);
|
|
|
|
|
+ //这里直接数据入库,区分增量或者全量
|
|
|
|
|
+ Boolean addRes = fullDataStorage(layerName,theValueList);
|
|
|
|
|
+ log.error("当前图层{},入库结果 {}", layerName, addRes);
|
|
|
|
|
+ //Boolean checkRes2 = incrementalDataStorage(layer);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("矢量数据入库异常,uploadId: {}", uploadId, e);
|
|
|
|
|
+ throw new ServiceException("矢量数据入库异常," + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取比较数据
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param uploadId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public CompareResultVo getCompareData(String uploadId) {
|
|
|
|
|
+ CompareResultVo compareResultVo = new CompareResultVo();
|
|
|
|
|
+ compareResultVo.setUploadId(uploadId);
|
|
|
|
|
+ compareResultVo.setResultStatus(true);
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<CompareGemoVo> gemos = new ArrayList<>();
|
|
|
|
|
+ CadastreFile cadastreFile = cadastreFileMapper.get(uploadId);
|
|
|
|
|
+ String gdbPath = cadastreFile.getUnzipPath();
|
|
|
|
|
+ DataSource ds = ogr.Open(gdbPath + "/" + cadastreFile.getName(), 0); // 0 = 只读
|
|
|
|
|
+ if (ds == null) {
|
|
|
|
|
+ log.warn("无法打开 gdb");
|
|
|
|
|
+ return compareResultVo;
|
|
|
|
|
+ }
|
|
|
|
|
+ //这里进行遍历每个图层
|
|
|
|
|
+ for (int i = 0; i < ds.GetLayerCount(); i++) {
|
|
|
|
|
+ Layer layer = ds.GetLayer(i);
|
|
|
|
|
+ String layerName = layer.GetName();
|
|
|
|
|
+ //todo 相关代码
|
|
|
|
|
+ if (!layerName.equalsIgnoreCase("T_CGZJ_CWTC_M")) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ CompareGemoVo compareGemoVo = new CompareGemoVo();
|
|
|
|
|
+ compareGemoVo.setLayerName(layerName);
|
|
|
|
|
+ List<String> layerGeom = getLayerGeom(layer);
|
|
|
|
|
+ compareGemoVo.setGeomData(layerGeom);
|
|
|
|
|
+ List<String> dbGeom = getDbGeom(layerName);
|
|
|
|
|
+ compareGemoVo.setOldGeomData(dbGeom);
|
|
|
|
|
+ //加入当前图层对比对象
|
|
|
|
|
+ gemos.add(compareGemoVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ compareResultVo.setGemos(gemos);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("获取对比矢量数据信息异常,uploadId: {}", uploadId, e);
|
|
|
|
|
+ throw new ServiceException("获取对比矢量数据信息异常," + e.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ return compareResultVo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 文件入库
|
|
* 文件入库
|
|
|
*
|
|
*
|
|
@@ -89,15 +195,15 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
return null;
|
|
return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
- * //1.文件进行解压
|
|
|
|
|
- * //1.先获取相关信息,进行入库
|
|
|
|
|
- * //2.日志记录写入
|
|
|
|
|
- * //3.读取文件进行录入
|
|
|
|
|
- * //4.质量进行检查
|
|
|
|
|
- * //日志记录
|
|
|
|
|
- * //fzssFxrwrzHandleService.insertFxrwrz();
|
|
|
|
|
- *
|
|
|
|
|
|
|
+ * //1.文件进行解压
|
|
|
|
|
+ * //1.先获取相关信息,进行入库
|
|
|
|
|
+ * //2.日志记录写入
|
|
|
|
|
+ * //3.读取文件进行录入
|
|
|
|
|
+ * //4.质量进行检查
|
|
|
|
|
+ * //日志记录
|
|
|
|
|
+ * //fzssFxrwrzHandleService.insertFxrwrz();
|
|
|
*
|
|
*
|
|
|
* @param theFileName
|
|
* @param theFileName
|
|
|
* @param theFilePath
|
|
* @param theFilePath
|
|
@@ -114,20 +220,30 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
CadastreFile uploadFile = this.saveUploadFile(theFileName, theFilePath, fromRoute);
|
|
CadastreFile uploadFile = this.saveUploadFile(theFileName, theFilePath, fromRoute);
|
|
|
if (Objects.nonNull(uploadFile)) {
|
|
if (Objects.nonNull(uploadFile)) {
|
|
|
//入库成功
|
|
//入库成功
|
|
|
- fzssFxrwrzHandleService.insertFxrwrz(uploadFile.getId(), "info", "上传文件成功", "地籍库管理");
|
|
|
|
|
|
|
+ fzssFxrwrzHandleService.insertFxrwrz(uploadFile.getId(), "地籍库管理", "上传文件成功", "info");
|
|
|
|
|
+ checkInfoResult.setUploadId(uploadFile.getId());
|
|
|
|
|
+
|
|
|
String gdbPath = uploadFile.getUnzipPath();
|
|
String gdbPath = uploadFile.getUnzipPath();
|
|
|
- DataSource ds = ogr.Open(gdbPath, 0); // 0 = 只读
|
|
|
|
|
|
|
+ DataSource ds = ogr.Open(gdbPath + "/" + theFileName, 0); // 0 = 只读
|
|
|
if (ds == null) {
|
|
if (ds == null) {
|
|
|
log.warn("无法打开 gdb");
|
|
log.warn("无法打开 gdb");
|
|
|
return checkInfoResult;
|
|
return checkInfoResult;
|
|
|
}
|
|
}
|
|
|
log.info("图层数量: {}", ds.GetLayerCount());
|
|
log.info("图层数量: {}", ds.GetLayerCount());
|
|
|
|
|
|
|
|
|
|
+ //获取库中表名
|
|
|
|
|
+ List<String> allTableList = cadastreFileMapper.selectAllTable();
|
|
|
//这里进行遍历每个图层
|
|
//这里进行遍历每个图层
|
|
|
for (int i = 0; i < ds.GetLayerCount(); i++) {
|
|
for (int i = 0; i < ds.GetLayerCount(); i++) {
|
|
|
Layer layer = ds.GetLayer(i);
|
|
Layer layer = ds.GetLayer(i);
|
|
|
|
|
+ //todo 相关代码
|
|
|
|
|
+ if (!layer.GetName().equalsIgnoreCase("T_CGZJ_CWTC_M")) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //todo 测试代码
|
|
|
//这里做质量检查
|
|
//这里做质量检查
|
|
|
- CheckInfoVo checkRes = checkLayerInfo(layer, null);
|
|
|
|
|
|
|
+ CheckInfoVo checkRes = checkLayerInfo(layer, allTableList);
|
|
|
if (checkRes.getCheckStatus().equals(false)) { //检查出错
|
|
if (checkRes.getCheckStatus().equals(false)) { //检查出错
|
|
|
checkInfoFailList.add(checkRes);
|
|
checkInfoFailList.add(checkRes);
|
|
|
checkInfoResult.setResultStatus(false);
|
|
checkInfoResult.setResultStatus(false);
|
|
@@ -160,38 +276,43 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
checkInfoVo.setUploadFileTableName(name);
|
|
checkInfoVo.setUploadFileTableName(name);
|
|
|
|
|
|
|
|
//检查表名对应
|
|
//检查表名对应
|
|
|
- if (!allTableList.contains(name)) {
|
|
|
|
|
|
|
+ if (!allTableList.contains(name.toLowerCase(Locale.ROOT))) {
|
|
|
checkInfoList.add(name + ":图层名称不在地籍库范围内!");
|
|
checkInfoList.add(name + ":图层名称不在地籍库范围内!");
|
|
|
checkInfoVo.setCheckStatus(false);
|
|
checkInfoVo.setCheckStatus(false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//检查坐标系
|
|
//检查坐标系
|
|
|
- if(checkCoordinateSystem(layer).equals(false)){
|
|
|
|
|
|
|
+ if (checkCoordinateSystem(layer).equals(false)) {
|
|
|
checkInfoList.add(name + ":坐标系不正确,确认是否CGCS2000!");
|
|
checkInfoList.add(name + ":坐标系不正确,确认是否CGCS2000!");
|
|
|
checkInfoVo.setCheckStatus(false);
|
|
checkInfoVo.setCheckStatus(false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- //todo 查询库中的当前表字段;
|
|
|
|
|
- List<String> dbFieldNameList = new ArrayList<>();
|
|
|
|
|
- List<String> layerFieldNameList = getFieldName(layer);
|
|
|
|
|
|
|
+ boolean haveGeom = false;
|
|
|
|
|
+ //获取字段信息
|
|
|
|
|
+ List<String> dbFieldNameList = cadastreFileMapper.selectTableCollum(name.toLowerCase(Locale.ROOT));
|
|
|
|
|
+ if (dbFieldNameList.contains("geom")) {
|
|
|
|
|
+ haveGeom = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<String> layerFieldNameList = getFieldName(layer, haveGeom);
|
|
|
// 判断是否包含相同的元素(不考虑顺序)
|
|
// 判断是否包含相同的元素(不考虑顺序)
|
|
|
boolean areCollectionsEqual = CollectionUtils.isEqualCollection(dbFieldNameList, layerFieldNameList);
|
|
boolean areCollectionsEqual = CollectionUtils.isEqualCollection(dbFieldNameList, layerFieldNameList);
|
|
|
- if(!areCollectionsEqual){
|
|
|
|
|
- checkInfoList.add(name + ":字段数据不一致!-"+dbFieldNameList);
|
|
|
|
|
|
|
+ if (!areCollectionsEqual) {
|
|
|
|
|
+ checkInfoList.add(name + ":字段数据不一致!-" + dbFieldNameList);
|
|
|
checkInfoVo.setCheckStatus(false);
|
|
checkInfoVo.setCheckStatus(false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//todo 检查字段数据是否为空
|
|
//todo 检查字段数据是否为空
|
|
|
//仅仅获取图层属性
|
|
//仅仅获取图层属性
|
|
|
- List<Map<String, String>> theValueList = getValueList(layer,false);
|
|
|
|
|
|
|
+ List<Map<String, String>> theValueList = getValueList(layer, false);
|
|
|
//todo 这里根据表名获取相关校验字段信息
|
|
//todo 这里根据表名获取相关校验字段信息
|
|
|
List<String> checkFieldList = new ArrayList<>();
|
|
List<String> checkFieldList = new ArrayList<>();
|
|
|
- checkFieldList.add("111");
|
|
|
|
|
-
|
|
|
|
|
|
|
+ //checkFieldList.add("111");
|
|
|
|
|
+ checkFieldList.add("bz");
|
|
|
for (Map<String, String> theMap : theValueList) {
|
|
for (Map<String, String> theMap : theValueList) {
|
|
|
- for(String fieldName : checkFieldList){
|
|
|
|
|
- if(com.siwei.common.core.utils.StringUtils.isBlank(theMap.get(fieldName))){
|
|
|
|
|
- checkInfoList.add(name + "--"+fieldName+"字段不能为空!");
|
|
|
|
|
|
|
+ for (String fieldName : checkFieldList) {
|
|
|
|
|
+ if (com.siwei.common.core.utils.StringUtils.isBlank(theMap.get(fieldName))) {
|
|
|
|
|
+ checkInfoList.add(name + "--" + fieldName + "字段不能为空!");
|
|
|
checkInfoVo.setCheckStatus(false);
|
|
checkInfoVo.setCheckStatus(false);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -201,21 +322,22 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取当前图层的所有属性字段名
|
|
* 获取当前图层的所有属性字段名
|
|
|
*
|
|
*
|
|
|
* @param layer
|
|
* @param layer
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
- private List<String> getFieldName(Layer layer) {
|
|
|
|
|
|
|
+ private List<String> getFieldName(Layer layer, Boolean haveGeom) {
|
|
|
List<String> nameList = new ArrayList();
|
|
List<String> nameList = new ArrayList();
|
|
|
FeatureDefn defn = layer.GetLayerDefn();
|
|
FeatureDefn defn = layer.GetLayerDefn();
|
|
|
System.out.println("字段数: " + defn.GetFieldCount());
|
|
System.out.println("字段数: " + defn.GetFieldCount());
|
|
|
for (int i = 0; i < defn.GetFieldCount(); i++) {
|
|
for (int i = 0; i < defn.GetFieldCount(); i++) {
|
|
|
FieldDefn field = defn.GetFieldDefn(i);
|
|
FieldDefn field = defn.GetFieldDefn(i);
|
|
|
- nameList.add(field.GetName());
|
|
|
|
|
|
|
+ nameList.add(field.GetName().toLowerCase(Locale.ROOT));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (haveGeom.equals(true)) {
|
|
|
|
|
+ nameList.add("geom");
|
|
|
}
|
|
}
|
|
|
return nameList;
|
|
return nameList;
|
|
|
}
|
|
}
|
|
@@ -237,18 +359,20 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
map.put(feature.GetFieldDefnRef(i).GetName(), feature.GetFieldAsString(i));
|
|
map.put(feature.GetFieldDefnRef(i).GetName(), feature.GetFieldAsString(i));
|
|
|
}
|
|
}
|
|
|
if (haveGeom.equals(true)) {
|
|
if (haveGeom.equals(true)) {
|
|
|
|
|
+ String wkt = null;
|
|
|
Geometry geom = feature.GetGeometryRef();
|
|
Geometry geom = feature.GetGeometryRef();
|
|
|
if (geom != null) {
|
|
if (geom != null) {
|
|
|
// 将几何对象转换为 WKT 格式
|
|
// 将几何对象转换为 WKT 格式
|
|
|
- String wkt = geom.ExportToWkt();
|
|
|
|
|
- map.put("geom", wkt);
|
|
|
|
|
|
|
+ wkt = geom.ExportToWkt();
|
|
|
}
|
|
}
|
|
|
|
|
+ map.put("geom", wkt);
|
|
|
}
|
|
}
|
|
|
list.add(map);
|
|
list.add(map);
|
|
|
}
|
|
}
|
|
|
return list;
|
|
return list;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 校验当前图层坐标系是否为:CGCS2000
|
|
* 校验当前图层坐标系是否为:CGCS2000
|
|
|
*
|
|
*
|
|
@@ -298,4 +422,81 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取对比的矢量图层
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param layer
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private List<String> getLayerGeom(Layer layer) {
|
|
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
|
|
+ // 循环处理每个要素
|
|
|
|
|
+ for (int i = 0; i < layer.GetFeatureCount(0); i++) {
|
|
|
|
|
+ Feature feature = layer.GetFeature(i);
|
|
|
|
|
+ if (feature == null) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ Geometry geometry = feature.GetGeometryRef(); // 获取几何对象
|
|
|
|
|
+ if (geometry != null) {
|
|
|
|
|
+ // 将几何对象转换为 WKT 格式
|
|
|
|
|
+ String wkt = geometry.ExportToWkt();
|
|
|
|
|
+ list.add(wkt);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param tableName
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private List<String> getDbGeom(String tableName) {
|
|
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
|
|
+ String geomsStr = cadastreFileMapper.selectGeoms(tableName);
|
|
|
|
|
+ if (StringUtils.isNotBlank(geomsStr)) {
|
|
|
|
|
+ list = Arrays.asList(geomsStr.split("\\|"));
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 这里需要开启事务
|
|
|
|
|
+ * 数据全量入库
|
|
|
|
|
+ * @param tableName
|
|
|
|
|
+ * @param theValueList
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private Boolean fullDataStorage(String tableName,List<Map<String, String>> theValueList) {
|
|
|
|
|
+ boolean addRes = false;
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(theValueList)) {
|
|
|
|
|
+ for (Map<String, String> map : theValueList) {
|
|
|
|
|
+ Collection<String> values = map.values();
|
|
|
|
|
+ Collection<String> keys = map.keySet();
|
|
|
|
|
+ cadastreFileMapper.insertTableData(tableName,keys,values);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return addRes;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 数据增量入库
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param layer
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private Boolean incrementalDataStorage(Layer layer) {
|
|
|
|
|
+ boolean haveGeom = false;
|
|
|
|
|
+
|
|
|
|
|
+ return haveGeom;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|