瀏覽代碼

求解路径生成

huangxingxing 1 年之前
父節點
當前提交
3d0574fad4

+ 1 - 1
src/main/java/com/miniframe/bisiness/system/D00008Service.java

@@ -84,6 +84,7 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 		initDNodeVal(aid);
 
 		TemplateGenerator2.createGeometry(aid,jid);
+		TemplateGenerator2.createEscape(aid,jid);
 
 		TemplateGenerator.createMonitor(aid,jid);//生成监测点文件
 		if(accident.getStype().equals("Fire")){
@@ -98,7 +99,6 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 			LogService.addLog(accident,"FireEscape.control配置生成——————————————————成功");
 			exeFire(aid,jid);
 
-
 		}
 		if(accident.getStype().equals("Water")){
 //			TemplateGenerator.createGeometry(aid,jid);//生成几何文件

+ 36 - 0
src/main/java/com/miniframe/template/DEscapeVo.java

@@ -0,0 +1,36 @@
+package com.miniframe.template;
+
+import com.miniframe.model.system.DWay;
+import com.miniframe.model.system.DWaynode;
+
+import java.util.List;
+
+public class DEscapeVo {
+    DWay way;
+    List<DWaynode> nodes;
+    Integer nodenum ;
+
+    public DWay getWay() {
+        return way;
+    }
+
+    public void setWay(DWay way) {
+        this.way = way;
+    }
+
+    public List<DWaynode> getNodes() {
+        return nodes;
+    }
+
+    public void setNodes(List<DWaynode> nodes) {
+        this.nodes = nodes;
+    }
+
+    public Integer getNodenum() {
+        return nodenum;
+    }
+
+    public void setNodenum(Integer nodenum) {
+        this.nodenum = nodenum;
+    }
+}

+ 43 - 0
src/main/java/com/miniframe/template/TemplateGenerator2.java

@@ -42,6 +42,7 @@ public class TemplateGenerator2 {
         dataModel.put("dx", dx);
         dataModel.put("reportstep", reportstep);
         dataModel.put("interactionstep", interactionstep);
+        dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
 
         DSourceMapper dsm = UtilTools.getBean(DSourceMapper.class);
         DSourceSQLBuilder dss = new DSourceSQLBuilder();
@@ -173,6 +174,7 @@ public class TemplateGenerator2 {
         //monitorPath
         dataModel.put("monitorPath", BPATH + "/" + aid + "/" + jid + "/monitor.in");
         dataModel.put("outPath", BPATH + "/" + aid + "/" + jid + "/water" + "/out");
+        dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
@@ -183,6 +185,46 @@ public class TemplateGenerator2 {
     }
 
 
+
+    public static void createEscape(Integer aid, Integer jid) throws IOException, TemplateException, BusinessException {
+        Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+        // 设置模板所在目录
+        cfg.setClassForTemplateLoading(TemplateGenerator2.class, "/templates");
+        // 获取模板对象
+        Template template = cfg.getTemplate("escape.ftl");
+        // 定义数据模型(Map)
+        Map<String, Object> dataModel = new HashMap<>();
+
+        DWayMapper wMapper = UtilTools.getBean(DWayMapper.class);
+        List<DEscapeVo> vos =new ArrayList<>();
+        List<DWay> ways =wMapper.selectAll();
+
+        for (DWay way:ways) {
+            DWaynodeMapper nMapper = UtilTools.getBean(DWaynodeMapper.class);
+            DWaynodeSQLBuilder nsb =new DWaynodeSQLBuilder();
+            DWaynodeSQLBuilder.Criteria nsc = nsb.createCriteria();
+            nsc.andWidEqualTo(way.getId());
+            List<DWaynode> ns = nMapper.selectByExample(nsb);
+            DEscapeVo vo =new DEscapeVo();
+            vo.setWay(way);
+            vo.setNodes(ns);
+            vo.setNodenum(ns.size());
+
+            vos.add(vo);
+        }
+
+        dataModel.put("escapenum", vos.size());
+        dataModel.put("vos", vos);
+
+        // 将数据模型传入模板进行处理
+        StringWriter writer = new StringWriter();
+        template.process(dataModel, writer);
+        mkDirs(aid, jid, "/fire");
+        FileWriter fileWriter = new FileWriter(BPATH + "/" + aid + "/" + jid + "/escpae");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
+    }
+
     /**
      * 生成几何文件
      */
@@ -467,6 +509,7 @@ public class TemplateGenerator2 {
         dataModel.put("geoFilePath", BPATH + "/" + aid + "/" + jid + "/Geometry");
         dataModel.put("midPath", BPATH + "/" + aid + "/" + jid + "/fire" + "/mid");
          dataModel.put("outPath", BPATH + "/" + aid + "/" + jid + "/fire" + "/out");
+        dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);

+ 7 - 0
src/main/resources/templates/escape.ftl

@@ -0,0 +1,7 @@
+EscapeNumber:${escapenum}
+<#list vo as vos>
+EscapeLine: ${vo.way.code},${vo.nodenum},
+<#list node as vo.nodes>
+${node.code}
+</#list>
+</#list>

+ 1 - 1
src/main/resources/templates/fire2EscapeControl.ftl

@@ -1,7 +1,7 @@
 geoFile : ${geoFilePath}
 midPath : ${midPath}
 outPath : ${outPath}
-escapeFile : /home/disaster/zhty/Program/escape
+escapeFile : ${escape}
 personnumber : 1
 person1,pipes22,0.1,500,1
 #end

+ 1 - 1
src/main/resources/templates/water2Control.ftl

@@ -13,7 +13,7 @@ dx : ${dx}
 Boundary number : ${boundarynum}
 WaterSource number : ${waterSourcenum}
 interactionstep : ${interactionstep}
-escapeFile : /home/disaster/zhty/Program/escape
+escapeFile : ${escape}
 personnumber : 1
 pipes22,0.1,500
 #end

+ 1 - 1
src/main/resources/templates/water2EscapeControl.ftl

@@ -3,7 +3,7 @@ initFile : ${initFilePath}
 monitorFile : ${monitorPath}
 midPath : ${midPath}
 outPath : ${outPath}
-escapeFile : /home/disaster/zhty/Program/escape
+escapeFile : ${escape}
 personnumber : 1
 person1,pipes22,0.1,500,1
 #end