1
0
chenendian 20 часов назад
Родитель
Сommit
636b1f2c81

+ 4 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ProjectImpl.java

@@ -2016,10 +2016,13 @@ public class ProjectImpl implements ProjectService {
             String plotCode = "";
             String regionCode = "";
             Map<String, String> maxSequenceMap = takeDataService.getThirdMaxSequence(projectId,nodeId);
-            if (MapUtils.isNotEmpty(maxSequenceMap) && maxSequenceMap.containsKey("maxSequence")) {
+            if (MapUtils.isNotEmpty(maxSequenceMap) && maxSequenceMap.get("code").equalsIgnoreCase("200")) {
                 regionCode = maxSequenceMap.get("regionCode");
                 plotCode = maxSequenceMap.get("plotCode");
                 sequenceNumber = maxSequenceMap.get("maxSequence");
+                if(StringUtils.isBlank(sequenceNumber)){ //这里如果异常时候,直接取最大值加一
+                    sequenceNumber = "1";
+                }
                 //这里查询库中最大序列号,两者取其一的最大值
                 ProjectImmobileCode dbMaxSequenceNumberImmobileCode = projectImmobileCodeMapper.selectBySequenceNumber(sequenceNumber);
                 if (Objects.nonNull(dbMaxSequenceNumberImmobileCode)) {

+ 29 - 14
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/third/impl/TakeDataServiceImpl.java

@@ -95,11 +95,9 @@ public class TakeDataServiceImpl implements TakeDataService {
 
     }
 
-
     /**
      * 远程获取第三方最大序号
      * 然后根据规则生成预赋不动产单元号
-     *
      * @param projectId
      * @param nodeId
      * @return
@@ -121,6 +119,7 @@ public class TakeDataServiceImpl implements TakeDataService {
         String regionCode = "";
         //这里查询出来所有的geomId,然后循环查询某个区域的地块,包含第一块,直接获取区域代码
         List<Map<String, String>> geomDetailsList = nodeLandService.selectTGeomDbDetailsByNodeId(nodeId);
+        log.info("查询当前节点的矢量结果:{}", geomDetailsList);
         for (Map<String, String> geomDetailsMap : geomDetailsList) {
             String geomDetailsId = geomDetailsMap.get("id");
             //当前地块所属地籍子区编号
@@ -131,20 +130,36 @@ public class TakeDataServiceImpl implements TakeDataService {
             break;
         }
 
-        String maxSequence = RandomStringUtils.randomNumeric(5);
-        //todo 这里三方接口完成后联调后修改
-        if (StringUtils.isNotBlank(regionCode) && false) {
-            Map<String, Object> paramMap = new LinkedHashMap<>();
-            paramMap.put("regionCode", regionCode);
-            // todo 这里调用 httpClient 进行远程调用
-            String result = HttpClientUtil.doGet("https://www.baidu.com", paramMap);
-            log.info("获取解析数据为:{}", result);
-        }
+        log.info("这里计算地籍子区的代码,区域号:{}", regionCode);
 
-        retMap.put("maxSequence", maxSequence);
-        retMap.put("regionCode", regionCode);
+        //String maxSequence = RandomStringUtils.randomNumeric(5);
+        //todo 这里三方接口入参
+        retMap.put("maxSequence", "");
         retMap.put("plotCode", firstPlotCode + secondPlotCode);
-        retMap.put("code", "200");
+        retMap.put("regionCode", regionCode);
+        retMap.put("code", "201");
+
+        if (StringUtils.isNotBlank(regionCode)) {
+            retMap.put("code", "200");
+            try{
+                Map<String,Object> paramMap = new LinkedHashMap<>();
+                paramMap.put("regionCode",regionCode+firstPlotCode + secondPlotCode);
+                //这里调用 httpClient 进行远程调用
+                String remoteResult = ServiceUtil.getRemoteDataByHttpClient("query.getMaxSeq.datas",paramMap);
+                log.info("远程获取最大序列号解析数据为:{}", remoteResult);
+
+                JSONObject root = JSON.parseObject(remoteResult);
+                JSONObject innerData = root.getJSONObject("data");
+
+                if(innerData.get("code").equals("200") && StringUtils.isNumeric(String.valueOf(innerData.get("maxsequence")))){
+                    retMap.put("maxSequence", innerData.get("maxsequence").toString());
+                }
+            }  catch (Exception e) {
+                log.error("调用矢量保存文件错误,区域号:{}", regionCode,e);
+            }
+        }else {
+            log.error("远程获取最大序列号-计算区域代码为空-项目号:{},", projectId);
+        }
         return retMap;
     }