1
0
فهرست منبع

新增权利类型sql调整2

chenendian 1 روز پیش
والد
کامیت
507d2067ac

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

@@ -74,7 +74,7 @@ public interface CadastreFileMapper {
     int insertTableData(@Param("tableName") String tableName, @Param("data") Map<String, Object> data, @Param("shpDbSRID") Integer shpDbSRID);
 
 
-    String selectGeoms(String tableName);
+    String selectGeoms(@Param("tableName") String tableName,@Param("landRightType") String landRightType);
 
     /**
      * 增加valid_flag字段

+ 30 - 7
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/impl/CadastreManageServiceImpl.java

@@ -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("\\|"));
         }

+ 9 - 0
siwei-modules/siwei-apply/src/main/resources/mapper/cadastre/CadastreFileMapper.xml

@@ -208,8 +208,17 @@
     <select id="selectGeoms"  resultType="string">
         SELECT array_to_string(array_agg(ST_AsEWKT(gd.geom)), '|') as "geoms"
         from vector.${tableName} gd
+        <where>
+            <if test="tableName=='zdjbxx'">
+                AND  gd.valid_flag = 0 AND   gd.zt IN ('1', '2')
+                <if test="landRightType != null and landRightType != ''">
+                    and  gd.sm= #{landRightType}
+                </if>
+            </if>
+        </where>
     </select>
 
+
     <select id="countByValidFlag" resultType="int">
         SELECT COUNT(*)
         FROM vector.${tableName}