Bläddra i källkod

根据地籍标准调整一

chenendian 1 månad sedan
förälder
incheckning
3a2d7229eb

+ 24 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/common/Constant.java

@@ -0,0 +1,24 @@
+package com.siwei.apply.common;
+
+import java.util.List;
+
+public class Constant {
+    public static String UserId = "123456789"; // 用户ID
+
+    //汇交矢量表
+    public static final List<String> ZD_GEOM_TABLE_LIST = List.of(
+            "jzx",
+            "jzd",
+            "zrz"
+    );
+
+    //汇交属性表
+    public static final List<String> ZD_PROPERTY_TABLE_LIST = List.of(
+            "zdbhqk", //宗地变化情况
+            "h",  // 户
+            "jsydsyq", //建设用地使用权
+            "zrz" //自然幢
+    );
+
+
+}

+ 8 - 8
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/enums/ConvergeTableEnum.java

@@ -4,17 +4,17 @@ package com.siwei.apply.enums;
  *  汇交表名枚举
  */
 public enum ConvergeTableEnum {
-
     TABLE_0("0", "行政区","gj_xzqh_shp"),
     TABLE_1("1", "地籍区","djq"),
     TABLE_2("2", "地籍子区","djzq"),
-    TABLE_3("3", "宗地数据","zd_shp"),
-    TABLE_4("4", "房屋","fw"),
-    TABLE_5("5", "界址点","jzd"),
-    TABLE_6("6", "界址线","jzx"),
-    TABLE_7("7", "房地产权(项目属性) --只是mdb数据","fdcqxm"),
-    TABLE_8("8", "建筑物区分所有权业主共有部分属性结构mdb","fdcq3"),
-    TABLE_9("9", "房地产权(项目内多幢房屋-有数据)属性结构描述mdb","fdcq1");
+    //TABLE_3("3", "宗地数据","zd_shp"),
+    TABLE_3("3", "宗地数据","zdjbxx");
+    //TABLE_4("4", "房屋","fw"),
+//    TABLE_5("5", "界址点","jzd"),
+//    TABLE_6("6", "界址线","jzx"),
+//    TABLE_7("7", "房地产权(项目属性) --只是mdb数据","fdcqxm"),
+//    TABLE_8("8", "建筑物区分所有权业主共有部分属性结构mdb","fdcq3"),
+//    TABLE_9("9", "房地产权(项目内多幢房屋-有数据)属性结构描述mdb","fdcq1");
 
     private final String index;
     private final String name;

+ 3 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/CadastreFileMapper.java

@@ -99,6 +99,9 @@ public interface CadastreFileMapper {
 
     List<Map<String,Object>> selectTableDataByCondition(@Param("validFlag") String validFlag, @Param("tableName") String tableName,@Param("bsm") String bsm,@Param("ywh") String ywh);
 
+
+    List<Map<String,Object>> selectTableDataByZDDMorBDCDYH(@Param("validFlag") String validFlag, @Param("tableName") String tableName,@Param("zdIdList") List<String> zdIdList,@Param("zddmKey") String zddmKey,@Param("bdcIdList") List<String> bdcIdList) ;
+
     //获取相交的数据
     List<Map<String,Object>> intersectsTableWkt(@Param("tableName") String tableName, @Param("validFlag") String validFlag, @Param("ewkt") String ewkt);
 

+ 207 - 78
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ConvergeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.siwei.apply.service.impl;
 
+import com.siwei.apply.common.Constant;
 import com.siwei.apply.domain.Converge;
 import com.siwei.apply.domain.res.ConvergeRes;
 import com.siwei.apply.domain.vo.ConvergeFilterVo;
@@ -64,6 +65,8 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
+import static com.siwei.apply.common.Constant.ZD_PROPERTY_TABLE_LIST;
+
 /**
  * 汇交服务实现
  */
@@ -158,8 +161,23 @@ public class ConvergeServiceImpl implements ConvergeService {
         }
     }
 
-
-
+    /**
+     *
+     *
+     * 1.表名
+     * 2.调查登记标识。
+     * 3.宗地id list
+     * 4.当前目录路径即可。(通过状态计算)
+     * 5.最终返回一个List<Map<String, Object>>
+     * 6.批量传递,分2次查询。一次一张表。
+     * 7.采用各自判断,多查一次。
+     * 二次if()else
+     *
+     *
+     *
+     * @param batch
+     * @param type
+     */
     @Transactional
     @Override
     public void operationConverge(String batch,String type) {
@@ -190,8 +208,8 @@ 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 -> {
                 String tableName = e.getTableName();
@@ -222,96 +240,165 @@ public class ConvergeServiceImpl implements ConvergeService {
                 for (ConvergeRes convergeRes : convergeTableList) {
                     // 行政区
                     if (convergeRes.getTableName().equals(ConvergeTableEnum.TABLE_0.getTableName())) {
-                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFilePath(basePath + "1行政区");
                         convergeRes.setFileName("01" + ConvergeTableEnum.TABLE_0.getTableName());
                     } else if (ConvergeTableEnum.TABLE_1.getTableName().equals(convergeRes.getTableName())) {
                         //地籍区
-                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFilePath(basePath + "2地籍区");
                         convergeRes.setFileName("02" + ConvergeTableEnum.TABLE_1.getTableName());
                     } else if (ConvergeTableEnum.TABLE_2.getTableName().equals(convergeRes.getTableName())) {
                         //地籍子区
-                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFilePath(basePath + "3地籍子区");
                         convergeRes.setFileName("03" + ConvergeTableEnum.TABLE_2.getTableName());
                     } else if (ConvergeTableEnum.TABLE_3.getTableName().equals(convergeRes.getTableName())) {
                         //宗地
-                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFilePath(basePath + "");
                         convergeRes.setFileName("03" + ConvergeTableEnum.TABLE_3.getTableName());
                         //todo 这里需要对宗地,根据情况进行拆分,出来一个新的List
 
                         List<Map<String, Object>> zdList = convergeRes.getDataList();
 
-                        //建设用地使用权宗地
-                        List<Map<String, Object>> shyqzd_db_list = zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("3","4","7","8","24","26"),s.get("qllx"))).collect(Collectors.toList());
-
-                        //宅基地使用权宗地
-                        List<Map<String, Object>> zjd_list =  zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("5","6","25"),s.get("qllx"))).collect(Collectors.toList());
-
-                        //国有农用地的使用权
-                        List<Map<String, Object>> gynydsyqzd_list =zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("23"),s.get("qllx"))).collect(Collectors.toList());
-
-                        //集体农用地的使用权
-                        List<Map<String, Object>> jtnydsyqzd_list =zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("30"),s.get("qllx"))).collect(Collectors.toList());
-
-                        //其它使用权
-                        List<Map<String, Object>> qtsyqzd_list = zdList.stream().filter(s-> !ArrayUtils.contains(ArrayUtils.toArray("3","4","7","8","24","26","5","6","25","23","30"),s.get("qllx"))).collect(Collectors.toList());
-
-                        if(CollectionUtils.isNotEmpty(shyqzd_db_list)){
-                            ConvergeRes convergeResTmp = new ConvergeRes();
-                            BeanUtils.copyProperties(convergeRes, convergeResTmp);
-                            convergeResTmp.setDataList(shyqzd_db_list);
-                            convergeResTmp.setFilePath(basePath + "矢量空间数据/统一坐标");
-                            convergeResTmp.setFileName("031" + "shyqzd_db");
-                            subConvergeTableList.add(convergeResTmp);
-                        }
-
-                        if(CollectionUtils.isNotEmpty(zjd_list)){
-                            ConvergeRes convergeResTmp = new ConvergeRes();
-                            BeanUtils.copyProperties(convergeRes, convergeResTmp);
-                            convergeResTmp.setDataList(zjd_list);
-                            convergeResTmp.setFilePath(basePath + "矢量空间数据/统一坐标");
-                            convergeResTmp.setFileName("032" + "zjd");
-                            subConvergeTableList.add(convergeResTmp);
-                        }
-
-
-                        if(CollectionUtils.isNotEmpty(gynydsyqzd_list)){
-                            ConvergeRes convergeResTmp = new ConvergeRes();
-                            BeanUtils.copyProperties(convergeRes, convergeResTmp);
-                            convergeResTmp.setDataList(gynydsyqzd_list);
-                            convergeResTmp.setFilePath(basePath + "矢量空间数据/统一坐标");
-                            convergeResTmp.setFileName("033" + "gynydsyqzd");
-                            subConvergeTableList.add(convergeResTmp);
+                        //宅基地使用权宗地  宅基地使用权/房屋所有权
+                        List<Map<String, Object>> zd_zjdsyq_list =  zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("5","6"),s.get("qllx"))).collect(Collectors.toList());
+
+                        // 集体建设用地使用权	7  集体建设用地使用权/房屋所有权	8
+                        List<Map<String, Object>> zd_jtjsydsyq_list =zdList.stream().filter(s-> ArrayUtils.contains(ArrayUtils.toArray("7","8"),s.get("qllx"))).collect(Collectors.toList());
+
+                        // 国有建设用地使用权 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<>();//衍生出的数据
+                            //已调查已经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcydj_list = zd_zjdsyq_list.stream().filter(s->"1".equals(s.get("djzt"))).collect(Collectors.toList());
+                            //已调查未经登记
+                            List<Map<String, Object>> zd_zjdsyq_ydcwdj_list = zd_zjdsyq_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 + "4宅基地使用权和房屋所有权/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("----------------宅基地使用权和房屋所有权/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 + "4宅基地使用权和房屋所有权/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 + "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(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 已调查已经登记
                         }
-
-
-                        if(CollectionUtils.isNotEmpty(jtnydsyqzd_list)){
-                            ConvergeRes convergeResTmp = new ConvergeRes();
-                            BeanUtils.copyProperties(convergeRes, convergeResTmp);
-                            convergeResTmp.setDataList(jtnydsyqzd_list);
-                            convergeResTmp.setFilePath(basePath + "矢量空间数据/统一坐标");
-                            convergeResTmp.setFileName("034" + "jtnydsyqzd");
-                            subConvergeTableList.add(convergeResTmp);
-                        }
-
-                        if(CollectionUtils.isNotEmpty(qtsyqzd_list)){
-                            ConvergeRes convergeResTmp = new ConvergeRes();
-                            BeanUtils.copyProperties(convergeRes, convergeResTmp);
-                            convergeResTmp.setDataList(qtsyqzd_list);
-                            convergeResTmp.setFilePath(basePath + "矢量空间数据/统一坐标");
-                            convergeResTmp.setFileName("035" + "qtsyqzd");
-                            subConvergeTableList.add(convergeResTmp);
-                        }
-
                         convergeRes.setValid(-1);
 
-                    } else if (ConvergeTableEnum.TABLE_4.getTableName().equals(convergeRes.getTableName())) {
-                        //房屋
-                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
-                        convergeRes.setFileName("04" + ConvergeTableEnum.TABLE_4.getTableName());
-                    } else {
-                        convergeRes.setFilePath(basePath + "属性数据");
-                        convergeRes.setFileName("00" + convergeRes.getTableName());
                     }
+
+//                    else if (ConvergeTableEnum.TABLE_4.getTableName().equals(convergeRes.getTableName())) {
+//                        //房屋
+//                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+//                        convergeRes.setFileName("04" + ConvergeTableEnum.TABLE_4.getTableName());
+//                    } else {
+//                        convergeRes.setFilePath(basePath + "属性数据");
+//                        convergeRes.setFileName("00" + convergeRes.getTableName());
+//                    }
                 }
                 if (!subConvergeTableList.isEmpty()) {
                     convergeTableList.addAll(subConvergeTableList);
@@ -336,8 +423,8 @@ public class ConvergeServiceImpl implements ConvergeService {
                 convergeMapper.update(updateVo);
                 fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交数据文件创建成功。", "info");
             }
-           return "success";
-        },executor);
+        //   return "success";
+        //},executor);
         executor.shutdown();
     }
 
@@ -576,6 +663,12 @@ public class ConvergeServiceImpl implements ConvergeService {
             // 统一路径分隔符,防止 Linux 环境下出现反斜杠导致的路径错误
             mdbPath = mdbPath.replace("\\", File.separator).replace("/", File.separator);
 
+            //这里过滤掉二进制数据
+            columns = columns.stream()
+                    .filter(col -> !"bytea".equals(col.get("data_type")))
+                    .filter(col -> !"geom".equals(col.get("column_name")))
+                    .collect(Collectors.toList());
+
             // 4. 调用工具类生成 MDB 文件并写入数据
             MdbUtil.writeMdbByTable(mdbPath, tableName, columns, dataList);
             
@@ -587,6 +680,42 @@ public class ConvergeServiceImpl implements ConvergeService {
     }
 
 
+    //todo 需要查询当前表结构,根据表字段,确定是否有validFlag字段,还要确定,是通过,bdcdyh 或者 zddm 进行的查询
+    // dataType 1 矢量数据,2属性数据 dataStatus 1 已调查已登记,2 已调查未登记
+    public ConvergeRes getOtherTableDataList(String tableName , ConvergeRes convergeRes)  {
+        ConvergeRes resultConvergeRes = null;
+        List<Map<String, Object>> paramDataList = convergeRes.getDataList();
+        List<String> zddmList = paramDataList.stream().map(s->s.get("zddm")).filter(Objects::nonNull).map(String::valueOf).collect(Collectors.toList());
+        List<String> bdcdyhList = paramDataList.stream().map(s->s.get("bdcdyh")).filter(Objects::nonNull).map(String::valueOf).collect(Collectors.toList());
+        if(CollectionUtils.isNotEmpty(zddmList)) {
+            bdcdyhList = null;
+        }
+        String zddmKey = "zddm";
+        if(List.of("jzd").contains(tableName)){
+            zddmKey = "zdzhdm";
+        }
+        if(List.of("jzx").contains(tableName)){
+            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)){
+            resultConvergeRes = new ConvergeRes();
+            BeanUtils.copyProperties(convergeRes, resultConvergeRes);
+            resultConvergeRes.setTableName(tableName);
+            if(2==convergeRes.getType()){ //如果是属性数据,删除掉当前表的空间数据,放到衍生数据目录下。
+                dataList.forEach(s-> s.remove("geom"));
+            }
+            resultConvergeRes.setDataList(dataList);
+            resultConvergeRes.setFileName("0"+tableName);
+        }
+        log.info("宗地衍生表{},返回成果: {}", tableName,resultConvergeRes);
+        return resultConvergeRes;
+    }
+
+
 
 
 }

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

@@ -3,6 +3,8 @@ package com.siwei.apply.utils;
 import com.healthmarketscience.jackcess.Database;
 import com.healthmarketscience.jackcess.DatabaseBuilder;
 import com.siwei.common.core.utils.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.sql.*;
@@ -13,7 +15,7 @@ import java.util.*;
  */
 public class MdbUtil {
 
-
+    private static final Logger logger = LoggerFactory.getLogger(FileExtractUtil.class);
     /**
      * 创建或打开 MDB 文件并写入数据
      *
@@ -91,7 +93,7 @@ public class MdbUtil {
                             Object value = row.get(colName);
                             
                             int jdbcType = mapPostgresToJdbcType(pgType);
-
+                            logger.info("aaaa-Setting value for column: {}, PostgreSQL type: {}, JDBC type: {}, value: {}", colName, pgType, jdbcType, value);
                             if (value == null) {
                                 pstmt.setNull(i + 1, jdbcType);
                                 continue;

+ 25 - 2
siwei-modules/siwei-apply/src/main/resources/mapper/cadastre/CadastreFileMapper.xml

@@ -291,9 +291,8 @@
         <if test="validFlag != null and validFlag != ''">
             and valid_flag = #{validFlag}::int2
         </if>
-
         <if test="bsm != null and bsm != ''">
-            and bsm= #{bsm}
+            and bsm= #{bsm}::int4
         </if>
         <if test="ywh != null and ywh != ''">
             and ${ywh}
@@ -302,6 +301,30 @@
     </select>
 
 
+
+
+    <select id="selectTableDataByZDDMorBDCDYH"   resultType="Map">
+        SELECT *
+        FROM vector.${tableName}
+        WHERE 1=1
+        <if test="validFlag != null and validFlag != ''">
+            and valid_flag = #{validFlag}::int2
+        </if>
+        <if test="zdIdList != null and zdIdList.size() > 0">
+            AND ${zddmKey} IN
+            <foreach collection="zdIdList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="bdcIdList != null and bdcIdList.size() > 0">
+            AND bdcdyh IN
+            <foreach collection="bdcIdList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
+
+
     <select id="selectExistsSameData"   resultType="Map">
         SELECT * FROM vector.${tableName}
         WHERE valid_flag = #{validFlag}