|
|
@@ -41,6 +41,7 @@ import java.nio.file.Paths;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -540,6 +541,8 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
try {
|
|
|
List<CompareGemoVo> gemos = new ArrayList<>();
|
|
|
CadastreFile cadastreFile = cadastreFileMapper.get(uploadId);
|
|
|
+ String landRightType = cadastreFile.getLandRightType();
|
|
|
+
|
|
|
String gdbPath = cadastreFile.getUnzipPath();
|
|
|
DataSource ds = ogr.Open(gdbPath + "/" + cadastreFile.getName(), 0); // 0 = 只读
|
|
|
if (ds == null) {
|
|
|
@@ -555,7 +558,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
compareGemoVo.setLayerName(layerName);
|
|
|
List<String> layerGeom = getLayerGeom(layer);
|
|
|
compareGemoVo.setGeomData(layerGeom);
|
|
|
- List<String> dbGeom = getDbGeom(layerName);
|
|
|
+ List<String> dbGeom = getDbGeom(layerName,landRightType);
|
|
|
compareGemoVo.setOldGeomData(dbGeom);
|
|
|
//加入当前图层对比对象
|
|
|
gemos.add(compareGemoVo);
|
|
|
@@ -717,7 +720,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
Layer layer = ds.GetLayer(i);
|
|
|
//todo 测试代码
|
|
|
//这里做质量检查
|
|
|
- CheckInfoVo checkRes = checkLayerInfo(layer, allTableList, uploadFile.getId());
|
|
|
+ CheckInfoVo checkRes = checkLayerInfo(layer, allTableList, uploadFile.getId(),landRightType);
|
|
|
if (checkRes.getCheckStatus().equals(false)) { //检查出错
|
|
|
checkInfoFailList.add(checkRes);
|
|
|
checkInfoResult.setResultStatus(false);
|
|
|
@@ -739,7 +742,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
String talbleName = String.valueOf(tableMap.get("name"));
|
|
|
Map<String, Object> allMdbTableFieldMap = MdbUtil.MdbTableContent(gdbPath + "/" + theFileName, talbleName, "", "", 1, 1000);
|
|
|
//这里做质量检查
|
|
|
- CheckInfoVo checkRes = checkMdbInfo(talbleName, allTableList, allMdbTableFieldMap, uploadFile.getId());
|
|
|
+ CheckInfoVo checkRes = checkMdbInfo(talbleName, allTableList, allMdbTableFieldMap, uploadFile.getId(),landRightType);
|
|
|
if (checkRes.getCheckStatus().equals(false)) { //检查出错
|
|
|
checkInfoFailList.add(checkRes);
|
|
|
checkInfoResult.setResultStatus(false);
|
|
|
@@ -772,7 +775,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
* @param allTableList
|
|
|
* @return
|
|
|
*/
|
|
|
- private CheckInfoVo checkLayerInfo(Layer layer, List<String> allTableList, String uploadId) {
|
|
|
+ private CheckInfoVo checkLayerInfo(Layer layer, List<String> allTableList, String uploadId,String landRightType) {
|
|
|
//总返回对象
|
|
|
CheckInfoVo checkInfoVo = new CheckInfoVo();
|
|
|
checkInfoVo.setCheckStatus(true);//初始化检查通过
|
|
|
@@ -781,6 +784,15 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
String name = layer.GetName();
|
|
|
checkInfoVo.setUploadFileTableName(name);
|
|
|
|
|
|
+ //宗地图层需要定义使用权或所有权
|
|
|
+ if ("zdjbxx".equalsIgnoreCase(name)) {
|
|
|
+ if(Objects.isNull(landRightType) || Stream.of("1","2").noneMatch(landRightType::equals)){
|
|
|
+ checkInfoList.add(name + ":包含宗地信息图层,需要指定使用权或所有权!");
|
|
|
+ fzssFxrwrzHandleService.insertFxrwrz(uploadId, "地籍库管理", name + ":包含宗地信息图层,需要指定使用权或所有权!", "info");
|
|
|
+ checkInfoVo.setCheckStatus(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//检查表名对应
|
|
|
if (!allTableList.contains(name.toLowerCase(Locale.ROOT))) {
|
|
|
checkInfoList.add(name + ":图层名称不在地籍库范围内!");
|
|
|
@@ -854,7 +866,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
* @param allTableList
|
|
|
* @return
|
|
|
*/
|
|
|
- private CheckInfoVo checkMdbInfo(String mdbTableName, List<String> allTableList, Map<String, Object> mdbTableFieldMap, String uploadId) {
|
|
|
+ private CheckInfoVo checkMdbInfo(String mdbTableName, List<String> allTableList, Map<String, Object> mdbTableFieldMap, String uploadId,String landRightType) {
|
|
|
//总返回对象
|
|
|
CheckInfoVo checkInfoVo = new CheckInfoVo();
|
|
|
checkInfoVo.setCheckStatus(true);//初始化检查通过
|
|
|
@@ -868,6 +880,16 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
//所有条数
|
|
|
List<Map<String, String>> dataList = (List<Map<String, String>>) mdbTableFieldMap.get("rows");
|
|
|
|
|
|
+ //宗地图层需要定义使用权或所有权
|
|
|
+ if ("zdjbxx".equalsIgnoreCase(mdbTableName)) {
|
|
|
+ if(Objects.isNull(landRightType) || Stream.of("1","2").noneMatch(landRightType::equals)){
|
|
|
+ checkInfoList.add(mdbTableName + ":包含宗地信息图层,需要指定使用权或所有权!");
|
|
|
+ fzssFxrwrzHandleService.insertFxrwrz(uploadId, "地籍库管理", mdbTableName + ":包含宗地信息图层,需要指定使用权或所有权!", "info");
|
|
|
+ checkInfoVo.setCheckStatus(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
//检查表名对应
|
|
|
if (!allTableList.contains(mdbTableName.toLowerCase(Locale.ROOT))) {
|
|
|
checkInfoList.add(mdbTableName + ":图层名称不在地籍库范围内!");
|
|
|
@@ -1236,9 +1258,10 @@ public class CadastreManageServiceImpl implements CadastreManageService {
|
|
|
* @param tableName
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<String> getDbGeom(String tableName) {
|
|
|
+
|
|
|
+ private List<String> getDbGeom(String tableName,String landRightType) {
|
|
|
List<String> list = new ArrayList<>();
|
|
|
- String geomsStr = cadastreFileMapper.selectGeoms(tableName);
|
|
|
+ String geomsStr = cadastreFileMapper.selectGeoms(tableName,landRightType);
|
|
|
if (StringUtils.isNotBlank(geomsStr)) {
|
|
|
list = Arrays.asList(geomsStr.split("\\|"));
|
|
|
}
|