chenendian пре 1 месец
родитељ
комит
7d75d14303

+ 23 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/ThematicController.java

@@ -76,16 +76,37 @@ public class ThematicController extends BaseController {
 
 
 
+    //标准分幅制图
     @PostMapping("/launchStandard")
-    public R<Object> launch(String name, String rwlx, String ztfw, String ztry, String ztdw,String fwlx,String blc,String bh) {
+    public R<Object> launchStandard(String name,String ztfw, String fwlx,String blc,String bh) {
         try {
-            R<Object> res = thematicService.launchStandard(name, rwlx, ztfw, ztry, ztdw,fwlx,blc,bh);
+            R<Object> res = thematicService.launchStandard(name, ztfw,fwlx,blc,bh);
             return res;
         } catch (Exception e) {
             return R.fail(e.getMessage());
         }
     }
 
+    //宗地制图
+    @PostMapping("/launchLand")
+    public R<Object> launchLand(String name, String ztry, String ztdw,String fwlx,String bh) {
+        try {
+            R<Object> res = thematicService.launchLand(name, ztry,ztdw,fwlx,bh);
+            return res;
+        } catch (Exception e) {
+            return R.fail(e.getMessage());
+        }
+    }
+
+
+
+
+
+
+
+
+
+
 
     /**
      * 查询专题图产品列表

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

@@ -34,7 +34,10 @@ public interface ThematicService {
 
     R<Object> drop(String id, String type);
 
-    R<Object> launchStandard(String name, String rwlx, String ztfw, String ztry, String ztdw,String fwlx,String blc,String bh);
+    R<Object> launchStandard(String name, String ztfw, String fwlx,String blc,String bm) ;
+
+    R<Object> launchLand(String name, String ztry, String ztdw,String fwlx,String bm);
+
 
 }
 

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

@@ -1265,7 +1265,7 @@ public class CadastreManageServiceImpl implements CadastreManageService {
     @Override
     public List<Map<String,Object>> selectTableRow(String tableName,String geomFlag,String bsm,String ywh) {
         String validFlag = "0";
-        if(Arrays.asList("tf_5000", "tf_1000", "tf_2000").contains(tableName)){
+        if(Arrays.asList("tf_500", "tf_1000", "tf_2000").contains(tableName)){
             validFlag = "";
         }
         List<Map<String,Object>> res = cadastreFileMapper.selectTableDataByCondition(validFlag,tableName,bsm,ywh);

+ 91 - 18
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ThematicImpl.java

@@ -167,35 +167,39 @@ public class ThematicImpl implements ThematicService {
     }
 
 
+
+
     @Override
-    public R<Object> launchStandard(String name, String rwlx, String ztfw, String ztry, String ztdw,String fwlx,String blc,String bm) {
+    public R<Object> launchStandard(String name, String ztfw, String fwlx,String blc,String bh) {
         String uuid = StringUtils.getUUID();
         // 插入制图任务表
-        thematicMapper.addRw(uuid, name, rwlx, ztfw, ztry, ztdw);
+        thematicMapper.addRw(uuid, name, "1", ztfw, "", "");
         fzssFxrwrzHandleService.insertFxrwrz(uuid, "地籍制图", "任务创建成功", "info");
         //这里根据类型,获取比例尺相关表的图幅号:
         String tfhInfo = ""; //图幅号信息
         String ewkt = "";
 
-        if(fwlx.equals("1")){ //1行政区;2地籍区;3地籍子区;4自定义范围
-            tfhInfo = "11,22,33,44,55";
+        if(fwlx.equals("1")){ //1行政区;2地籍区;3地籍子区;4.单个图幅,5.自定义范围
+            tfhInfo = "3206.0-39385.5,3206.0-39386.0,3206.5-39384.5";
         }else if(fwlx.equals("2")){
             // 根据地籍区的编号获取
-            Map<String,Object> map = cadastreFileMapper.selectTableDataByBsm("djq",bm);
+            Map<String,Object> map = cadastreFileMapper.selectTableDataByBsm("djq",bh);
             if(MapUtils.isNotEmpty(map)){
                 ewkt = (String) map.get("geom2");
             }
         } else if (fwlx.equals("3")) {
             // 根据地籍区的编号获取
-            Map<String,Object> map = cadastreFileMapper.selectTableDataByBsm("djzq",bm);
+            Map<String,Object> map = cadastreFileMapper.selectTableDataByBsm("djzq",bh);
             if(MapUtils.isNotEmpty(map)){
                 ewkt = (String) map.get("geom2");
             }
         } else if (fwlx.equals("4")) {
+            tfhInfo = "3206.0-39385.5,3206.0-39386.0,3206.5-39384.5";
+        }else if (fwlx.equals("5")) {
             ewkt = ztfw;
         }
 
-        if(StringUtils.isNotBlank(blc) && StringUtils.isNotBlank(ewkt)){
+        if(StringUtils.isBlank(tfhInfo) && StringUtils.isNotBlank(blc) && StringUtils.isNotBlank(ewkt)){
             String tableName = "";
             if("500".equals(blc)){
                 tableName = "tf_500";
@@ -218,16 +222,9 @@ public class ThematicImpl implements ThematicService {
         }
 
         // 判断需要执行的python脚本
-        String pyPath = "";
-        String tempPath = temppath+"专题图制作/";
+        String tempPath = temppath+"专题图制作/地籍图/"+name+uuid+"/";
         String tfh = tfhInfo; //图幅号
-
-        if ("1".equals(rwlx)) {
-            pyPath = cadastralmapPy;
-        } else if ("3".equals(rwlx)) {
-            pyPath = parcelmapPy;
-        }
-        String finalPyPath = pyPath;
+        String finalPyPath = cadastralmapPy;
         // 异步线程执行分析
         FixedThreadUtil.FIXED_THREAD_POOL.execute(() -> {
             try {
@@ -240,8 +237,7 @@ public class ThematicImpl implements ThematicService {
                 Process process = null;
                 process = pb.start();
                 fzssFxrwrzHandleService.insertFxrwrz(uuid, "地籍制图", "制图任务启动。。。", "info");
-                BufferedReader reader = new BufferedReader(
-                        new InputStreamReader(process.getInputStream()));
+                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                 String line;
                 ArrayList<String> datas = new ArrayList<>();
                 while ((line = reader.readLine()) != null) {
@@ -276,6 +272,83 @@ public class ThematicImpl implements ThematicService {
         return R.ok("制图任务创建成功!id:"+uuid);
     }
 
+
+
+    @Override
+    public R<Object> launchLand(String name, String ztry, String ztdw,String fwlx,String bh) {
+        String uuid = StringUtils.getUUID();
+        // 插入制图任务表
+        thematicMapper.addRw(uuid, name, "3", fwlx, ztry, ztdw);
+        fzssFxrwrzHandleService.insertFxrwrz(uuid, "宗地制图", "任务创建成功", "info");
+        String tempPath = temppath+"专题图制作/宗地图/"+name+uuid+"/";
+        String finalPyPath = parcelmapPy;
+        String zdh = bh;
+
+        // 异步线程执行分析
+        FixedThreadUtil.FIXED_THREAD_POOL.execute(() -> {
+            try {
+                fzssFxrwrzHandleService.insertFxrwrz(uuid, "宗地制图", "开始制图任务。。。", "info");
+                // 更新状态为运行中
+                thematicMapper.updateRwzt(uuid, "1");
+                //TODO command ProcessBuilder
+                ProcessBuilder pb = new ProcessBuilder(pythonHome,finalPyPath,tempPath,ztdw,ztry,zdh);
+                pb.redirectErrorStream(true);
+                Process process = null;
+                process = pb.start();
+                fzssFxrwrzHandleService.insertFxrwrz(uuid, "宗地制图", "制图任务启动。。。", "info");
+                BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+                String line;
+                ArrayList<String> datas = new ArrayList<>();
+                while ((line = reader.readLine()) != null) {
+                    if (StringUtils.isNotEmpty(line)) {
+                        if (line.contains("||")) {
+                            datas.add(line.split("ERROR")[0]);
+                        }
+                    }
+                }
+                if (datas.size() > 0) {
+                    // 更新状态为成功
+                    thematicMapper.updateRwzt2(uuid, "2");
+                    for (String cur : datas) {
+                        String[] args = cur.split("\\|\\|");
+                        String id = StringUtils.getUUID();
+                        // 处理文件路径
+                        args[1] = StringUtils.replaceEach(args[1], new String[]{"D:","\\"},new String[]{"","/"});
+                        // 插入制图产品表
+                        thematicMapper.addDetails(id, uuid, args[0], args[1], args[2]);
+                    }
+                    fzssFxrwrzHandleService.insertFxrwrz(uuid, "宗地制图", "制图成功", "info");
+                } else {
+                    // 更新状态为失败
+                    thematicMapper.updateRwzt2(uuid, "3");
+                    fzssFxrwrzHandleService.insertFxrwrz(uuid, "宗地制图", "制图失败", "info");
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        });
+        return R.ok("制图任务创建成功!id:"+uuid);
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+