Browse Source

优化创建任务时间

chenendian 3 weeks ago
parent
commit
5f8dd7b5d4

+ 72 - 76
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ConvergeServiceImpl.java

@@ -175,82 +175,84 @@ public class ConvergeServiceImpl implements ConvergeService {
         log.info("====convergeId=======:"+convergeId);
         fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交任务创建", "info");
         fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "汇交数据执行开始。。。", "info");
-
         long startTime = System.currentTimeMillis();
-        //todo  1.做一个vo类型的javabean 2.查询所有的表数据,进行判断去除空表数据。3.区分是否矢量。4.把当前文件处理成其它。
-        List<ConvergeRes> convergeTableList = new ArrayList<>();
-        Arrays.stream(ConvergeTableEnum.values()).forEach(e -> {
-            String tableName = e.getTableName();
-            List<Map<String,Object>> tableDataList = cadastreFileMapper.selectTableData("",tableName);
-            if(CollectionUtils.isNotEmpty(tableDataList)){
-                List<Map<String,String>> tableFieldList = cadastreFileMapper.selectTableCollumAndType(tableName);
-                int convergeType = 2;
-                //如果当前表存在geom 字段,视同为矢量
-                if(tableFieldList.stream().anyMatch(s->s.get("column_name").equals("geom"))){
-                    convergeType = 1;
+         //这里进行数据汇交
+        CompletableFuture<Object> future = CompletableFuture.supplyAsync(()-> {
+            //-----------------------------------
+            List<ConvergeRes> convergeTableList = new ArrayList<>();
+            Arrays.stream(ConvergeTableEnum.values()).forEach(e -> {
+                String tableName = e.getTableName();
+                List<Map<String,Object>> tableDataList = cadastreFileMapper.selectTableData("",tableName);
+                if(CollectionUtils.isNotEmpty(tableDataList)){
+                    List<Map<String,String>> tableFieldList = cadastreFileMapper.selectTableCollumAndType(tableName);
+                    int convergeType = 2;
+                    //如果当前表存在geom 字段,视同为矢量
+                    if(tableFieldList.stream().anyMatch(s->s.get("column_name").equals("geom"))){
+                        convergeType = 1;
+                    }
+                    ConvergeRes res = new  ConvergeRes();
+                    res.setTableName(tableName);
+                    res.setType(convergeType);
+                    res.setDataList(tableDataList);
+                    res.setColumnsList(tableFieldList);
+                    convergeTableList.add(res);
                 }
-                ConvergeRes res = new  ConvergeRes();
-                res.setTableName(tableName);
-                res.setType(convergeType);
-                res.setDataList(tableDataList);
-                res.setColumnsList(tableFieldList);
-                convergeTableList.add(res);
-            }
-        });
-
-        fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "数据已完成提取。。。。", "info");
-
-        String basePath =  convergedir + converge.getName()+"/"+"012345赣江新区"+"/";
-        List<ConvergeRes> subConvergeTableList = new ArrayList<>();//衍生出的数据
+            });
 
-        //如果有汇交数据,针对每张表,计算生成路径
-        if(!convergeTableList.isEmpty()){
-            for(ConvergeRes convergeRes : convergeTableList){
-                // 行政区
-                if(convergeRes.getTableName().equals(ConvergeTableEnum.TABLE_0.getTableName())){
-                    convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
-                    convergeRes.setFileName("01"+ConvergeTableEnum.TABLE_0.getTableName());
-                }else if(ConvergeTableEnum.TABLE_1.getTableName().equals(convergeRes.getTableName())){
-                    //地籍区
-                    convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
-                    convergeRes.setFileName("02"+ConvergeTableEnum.TABLE_1.getTableName());
-                } else if(ConvergeTableEnum.TABLE_2.getTableName().equals(convergeRes.getTableName())){
-                    //地籍子区
-                    convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
-                    convergeRes.setFileName("03"+ConvergeTableEnum.TABLE_2.getTableName());
+            fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "数据已完成提取。。。。", "info");
+
+            String basePath =  convergedir + converge.getName()+"/"+"012345赣江新区"+"/";
+            List<ConvergeRes> subConvergeTableList = new ArrayList<>();//衍生出的数据
+
+            //如果有汇交数据,针对每张表,计算生成路径
+            if(!convergeTableList.isEmpty()) {
+                for (ConvergeRes convergeRes : convergeTableList) {
+                    // 行政区
+                    if (convergeRes.getTableName().equals(ConvergeTableEnum.TABLE_0.getTableName())) {
+                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFileName("01" + ConvergeTableEnum.TABLE_0.getTableName());
+                    } else if (ConvergeTableEnum.TABLE_1.getTableName().equals(convergeRes.getTableName())) {
+                        //地籍区
+                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFileName("02" + ConvergeTableEnum.TABLE_1.getTableName());
+                    } else if (ConvergeTableEnum.TABLE_2.getTableName().equals(convergeRes.getTableName())) {
+                        //地籍子区
+                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFileName("03" + ConvergeTableEnum.TABLE_2.getTableName());
+                    } else if (ConvergeTableEnum.TABLE_3.getTableName().equals(convergeRes.getTableName())) {
+                        //宗地
+                        convergeRes.setFilePath(basePath + "矢量空间数据/统一坐标");
+                        convergeRes.setFileName("03" + ConvergeTableEnum.TABLE_3.getTableName());
+                        //todo 这里需要对宗地,根据情况进行拆分,出来一个新的List
+                        convergeRes.setValid(-1);
+                        subConvergeTableList.add(convergeRes);
+                    } 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_3.getTableName().equals(convergeRes.getTableName())){
-                    //宗地
-                    convergeRes.setFilePath(basePath+"矢量空间数据/统一坐标");
-                    convergeRes.setFileName("03"+ConvergeTableEnum.TABLE_3.getTableName());
-                    //todo 这里需要对宗地,根据情况进行拆分,出来一个新的List
-                    convergeRes.setValid(-1);
-                    subConvergeTableList.add(convergeRes);
-                } 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);
                 }
+                fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "数据已完成目录构建。。。。", "info");
+
+                //这里进行数据汇交
+                try {
+                    operationFileStrategy(convergeTableList);
+                } catch (Exception e) {
+                    throw new ServiceException("汇交失败,数据错误"+e);
+                }
+
             }
-            if(!subConvergeTableList.isEmpty()){
-                convergeTableList.addAll(subConvergeTableList);
-            }
+            //-----------------------------------
+           return null;
+        });
 
-            fzssFxrwrzHandleService.insertFxrwrz(convergeId, "地籍库管理", "数据已完成目录构建。。。。", "info");
-            //这里进行数据汇交
-            CompletableFuture<Object> future =
-                    CompletableFuture.supplyAsync(()-> {
-                        try {
-                            operationFileStrategy(convergeTableList);
-                        } catch (Exception e) {
-                            throw new ServiceException("汇交失败,数据错误"+e);
-                        }
-                        return null;
-                    });
-            future.handle((v,e)->{
+        future.handle((v,e)->{
                 log.info("汇交异步方法执行msg:{}",e.getMessage());
                 //更新状态
                 ConvergeUpdateVo updateVo = new ConvergeUpdateVo();
@@ -264,15 +266,9 @@ public class ConvergeServiceImpl implements ConvergeService {
                 log.info("汇交异步方法执行result:{}",v);
                 return v;
             });
+    }
 
-//            try {
-//                operationFileStrategy(convergeTableList);
-//            } catch (Exception e) {
-//                throw new ServiceException("汇交失败,数据错误"+e);
-//            }
 
-        }
-    }
 
 
     /**