Răsfoiți Sursa

根据测试问题优化(1.过滤二进制,增加集体建设,及国有建设)

chenendian 1 lună în urmă
părinte
comite
00781a66ec

+ 265 - 15
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ConvergeServiceImpl.java

@@ -208,7 +208,7 @@ public class ConvergeServiceImpl implements ConvergeService {
 
          //这里进行数据汇交(异步执行)
         ExecutorService executor = Executors.newSingleThreadExecutor();
-        //CompletableFuture<Object> future = CompletableFuture.supplyAsync(()-> {
+        CompletableFuture<Object> future = CompletableFuture.supplyAsync(()-> {
             //-------------------------------------------------
             List<ConvergeRes> convergeTableList = new ArrayList<>();
             Arrays.stream(ConvergeTableEnum.values()).forEach(e -> {
@@ -267,6 +267,7 @@ public class ConvergeServiceImpl implements ConvergeService {
                         // 国有建设用地使用权 3     国有建设用地使用权/房屋所有权	4
                         List<Map<String, Object>> zd_gyjsydsyq_list = zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("3","4"),s.get("qllx"))).collect(Collectors.toList());
 
+                        //宅基地使用权和房屋所有权
                         if(CollectionUtils.isNotEmpty(zd_zjdsyq_list)){
                             List<ConvergeRes> currentTypeConvergeTableList = new ArrayList<>();//衍生出的数据
                             //已调查已经登记
@@ -364,8 +365,132 @@ public class ConvergeServiceImpl implements ConvergeService {
                                             }).collect(Collectors.toList());
                                     ConvergeRes convergeResTmp = new ConvergeRes();
                                     BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(new_zd_zjdsyq_ydcwdj_list);
+
+                                    convergeResTmp.setFilePath(basePath + "4宅基地使用权和房屋所有权/02已调查未登记/02属性数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq_ydcwdj");
+                                    convergeResTmp.setType(2);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : ZD_PROPERTY_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------宅基地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
+
+                                if (!currentTypeConvergeTableList.isEmpty()) {
+                                    subConvergeTableList.addAll(currentTypeConvergeTableList);
+                                }
+                            }//end if 已调查已经登记
+
+                        } //end 宅基地使用权和房屋所有权
+
+
+                         // -------------======================
+                        //5集体建设用地使用权逻辑
+                        if(CollectionUtils.isNotEmpty(zd_jtjsydsyq_list)){
+                            List<ConvergeRes> currentTypeConvergeTableList = new ArrayList<>();//衍生出的数据
+                            //已调查已经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcydj_list = zd_jtjsydsyq_list.stream().filter(s->"1".equals(s.get("djzt"))).collect(Collectors.toList());
+                            //已调查未经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcwdj_list = zd_jtjsydsyq_list.stream().filter(s->"2".equals(s.get("djzt"))).collect(Collectors.toList());
+                            if(CollectionUtils.isNotEmpty(zd_zjdsyq_ydcydj_list)){
+                                //空间数据
+                                try{
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(zd_zjdsyq_ydcydj_list);
+                                    convergeResTmp.setFilePath(basePath + "5集体建设用地使用权和房屋所有权/01已调查已登记/01空间数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq");
+                                    convergeResTmp.setType(1);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_GEOM_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                    throw new ServiceException("衍生数据查询失败");
+                                }finally {
+                                    log.info("----------------5集体建设用地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
+
+                                //属性数据
+                                try{
+                                    //这进行深copy,去掉geom数据
+                                    List<Map<String, Object>> new_zd_zjdsyq_ydcydj_list = zd_zjdsyq_ydcydj_list.stream()
+                                            .filter(Objects::nonNull)
+                                            .map(oldMap ->{
+                                                Map<String, Object> map = new HashMap<>(oldMap);
+                                                map.remove("geom");
+                                                return map;
+                                            }).collect(Collectors.toList());
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(new_zd_zjdsyq_ydcydj_list);
+
+                                    convergeResTmp.setFilePath(basePath + "5集体建设用地使用权和房屋所有权/01已调查已登记/02属性数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq");
+                                    convergeResTmp.setType(2);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_PROPERTY_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------5集体建设用地使用权和房屋所有权/02已调查已登记 处理end。。。。。");
+                                }
+                            }//end if 已调查已经登记
+                            if(CollectionUtils.isNotEmpty(zd_zjdsyq_ydcwdj_list)){
+                                //空间数据
+                                try{
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
                                     convergeResTmp.setDataList(zd_zjdsyq_ydcwdj_list);
 
+                                    convergeResTmp.setFilePath(basePath + "4宅基地使用权和房屋所有权/02已调查未登记/01空间数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq_ydcwdj");
+                                    convergeResTmp.setType(1);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_GEOM_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------宅基地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
+
+                                //属性数据
+                                try{
+                                    //进行深copy,去掉geom数据
+                                    List<Map<String, Object>> new_zd_zjdsyq_ydcwdj_list = zd_zjdsyq_ydcwdj_list.stream()
+                                            .filter(Objects::nonNull)
+                                            .map(oldMap ->{
+                                                Map<String, Object> map = new HashMap<>(oldMap);
+                                                map.remove("geom");
+                                                return map;
+                                            }).collect(Collectors.toList());
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(new_zd_zjdsyq_ydcwdj_list);
+
                                     convergeResTmp.setFilePath(basePath + "4宅基地使用权和房屋所有权/02已调查未登记/02属性数据");
                                     convergeResTmp.setFileName("0" + "zd_zjdsyq_ydcwdj");
                                     convergeResTmp.setType(2);
@@ -386,9 +511,133 @@ public class ConvergeServiceImpl implements ConvergeService {
                                     subConvergeTableList.addAll(currentTypeConvergeTableList);
                                 }
                             }//end if 已调查已经登记
-                        }
-                        convergeRes.setValid(-1);
+                        } //end 5集体建设用地使用权
+
+                        //----------------======================
+                         // 6国有建设用地使用权和房屋所有权
+                        if(CollectionUtils.isNotEmpty(zd_gyjsydsyq_list)){
+                            List<ConvergeRes> currentTypeConvergeTableList = new ArrayList<>();//衍生出的数据
+                            //已调查已经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcydj_list = zd_gyjsydsyq_list.stream().filter(s->"1".equals(s.get("djzt"))).collect(Collectors.toList());
+                            //已调查未经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcwdj_list = zd_gyjsydsyq_list.stream().filter(s->"2".equals(s.get("djzt"))).collect(Collectors.toList());
+                            if(CollectionUtils.isNotEmpty(zd_zjdsyq_ydcydj_list)){
+                                //空间数据
+                                try{
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(zd_zjdsyq_ydcydj_list);
+                                    convergeResTmp.setFilePath(basePath + "6国有建设用地使用权和房屋所有权/01已调查已登记/01空间数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq");
+                                    convergeResTmp.setType(1);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_GEOM_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                    throw new ServiceException("衍生数据查询失败");
+                                }finally {
+                                    log.info("----------------6国有建设用地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
 
+                                //属性数据
+                                try{
+                                    //这进行深copy,去掉geom数据
+                                    List<Map<String, Object>> new_zd_zjdsyq_ydcydj_list = zd_zjdsyq_ydcydj_list.stream()
+                                            .filter(Objects::nonNull)
+                                            .map(oldMap ->{
+                                                Map<String, Object> map = new HashMap<>(oldMap);
+                                                map.remove("geom");
+                                                return map;
+                                            }).collect(Collectors.toList());
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(new_zd_zjdsyq_ydcydj_list);
+
+                                    convergeResTmp.setFilePath(basePath + "6国有建设用地使用权和房屋所有权/01已调查已登记/02属性数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq");
+                                    convergeResTmp.setType(2);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_PROPERTY_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------宅基地使用权和房屋所有权/02已调查已登记 处理end。。。。。");
+                                }
+                            }//end if 已调查已经登记
+
+                            if(CollectionUtils.isNotEmpty(zd_zjdsyq_ydcwdj_list)){
+                                //空间数据
+                                try{
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(zd_zjdsyq_ydcwdj_list);
+
+                                    convergeResTmp.setFilePath(basePath + "6国有建设用地使用权和房屋所有权/02已调查未登记/01空间数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq_ydcwdj");
+                                    convergeResTmp.setType(1);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : Constant.ZD_GEOM_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------6国有建设用地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
+
+                                //属性数据
+                                try{
+                                    //进行深copy,去掉geom数据
+                                    List<Map<String, Object>> new_zd_zjdsyq_ydcwdj_list = zd_zjdsyq_ydcwdj_list.stream()
+                                            .filter(Objects::nonNull)
+                                            .map(oldMap ->{
+                                                Map<String, Object> map = new HashMap<>(oldMap);
+                                                map.remove("geom");
+                                                return map;
+                                            }).collect(Collectors.toList());
+                                    ConvergeRes convergeResTmp = new ConvergeRes();
+                                    BeanUtils.copyProperties(convergeRes, convergeResTmp);
+                                    convergeResTmp.setDataList(new_zd_zjdsyq_ydcwdj_list);
+
+                                    convergeResTmp.setFilePath(basePath + "6国有建设用地使用权和房屋所有权/02已调查未登记/02属性数据");
+                                    convergeResTmp.setFileName("0" + "zd_zjdsyq_ydcwdj");
+                                    convergeResTmp.setType(2);
+                                    subConvergeTableList.add(convergeResTmp);
+
+                                    for(String tableName : ZD_PROPERTY_TABLE_LIST){
+                                        //这里处理所有属性数据(实现一个方法,把)遍历循环
+                                        ConvergeRes otherTableConvergeResTmp = getOtherTableDataList(tableName, convergeResTmp);
+                                        if(Objects.nonNull(otherTableConvergeResTmp)){
+                                            currentTypeConvergeTableList.add(otherTableConvergeResTmp);
+                                        }
+                                    }
+                                }finally {
+                                    log.info("----------------6国有建设用地使用权和房屋所有权/01已调查已登记处理end。。。。。");
+                                }
+
+                                if (!currentTypeConvergeTableList.isEmpty()) {
+                                    subConvergeTableList.addAll(currentTypeConvergeTableList);
+                                }
+                            }//end if 已调查已经登记
+
+                        } //end 国有建设用地使用权和房屋所有权
+
+                        convergeRes.setValid(-1);
                     }
 
 //                    else if (ConvergeTableEnum.TABLE_4.getTableName().equals(convergeRes.getTableName())) {
@@ -423,14 +672,11 @@ public class ConvergeServiceImpl implements ConvergeService {
                 convergeMapper.update(updateVo);
                 fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交数据文件创建成功。", "info");
             }
-        //   return "success";
-        //},executor);
+           return "success";
+        },executor);
         executor.shutdown();
     }
 
-
-
-
     /**
      * 这里分成两种文件生成
      * @param convergeTableList
@@ -492,6 +738,11 @@ public class ConvergeServiceImpl implements ConvergeService {
         // 添加几何字段 (固定为 the_geom)
         typeBuilder.add("the_geom", MultiPolygon.class);
 
+        //这里过滤掉二进制数据
+        columns = columns.stream()
+                .filter(col -> !"bytea".equals(col.get("data_type")))
+                .collect(Collectors.toList());
+
         for (Map<String, String> col : columns) {
             String colName = (String) col.get("column_name");
             String dataType = (String) col.get("data_type");
@@ -698,18 +949,18 @@ public class ConvergeServiceImpl implements ConvergeService {
             zddmKey = "zdzhdm1";
         }
 
-
         List<Map<String, Object>> dataList = cadastreFileMapper.selectTableDataByZDDMorBDCDYH("",tableName,zddmList,zddmKey,bdcdyhList);
         log.info("查询当前表-》{} 数据结果: {}", tableName, CollectionUtils.isEmpty(dataList) ? "无数据" : dataList.size() + " 条数据");
         if(CollectionUtils.isNotEmpty(dataList)){
+            List<Map<String,String>> tableFieldList = cadastreFileMapper.selectTableCollumAndType(tableName);
             resultConvergeRes = new ConvergeRes();
-            BeanUtils.copyProperties(convergeRes, resultConvergeRes);
+            resultConvergeRes.setType(convergeRes.getType());
+            resultConvergeRes.setFilePath(convergeRes.getFilePath());
+            resultConvergeRes.setValid(convergeRes.getValid());
             resultConvergeRes.setTableName(tableName);
-            if(2==convergeRes.getType()){ //如果是属性数据,删除掉当前表的空间数据,放到衍生数据目录下。
-                dataList.forEach(s-> s.remove("geom"));
-            }
-            resultConvergeRes.setDataList(dataList);
             resultConvergeRes.setFileName("0"+tableName);
+            resultConvergeRes.setColumnsList(tableFieldList);
+            resultConvergeRes.setDataList(dataList);
         }
         log.info("宗地衍生表{},返回成果: {}", tableName,resultConvergeRes);
         return resultConvergeRes;
@@ -717,5 +968,4 @@ public class ConvergeServiceImpl implements ConvergeService {
 
 
 
-
 }

+ 1 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/utils/MdbUtil.java

@@ -15,7 +15,7 @@ import java.util.*;
  */
 public class MdbUtil {
 
-    private static final Logger logger = LoggerFactory.getLogger(FileExtractUtil.class);
+    private static final Logger logger = LoggerFactory.getLogger(MdbUtil.class);
     /**
      * 创建或打开 MDB 文件并写入数据
      *