huangxingxing 1 år sedan
förälder
incheckning
a47cf1cb9f

+ 27 - 0
src/main/java/com/miniframe/template/DSourceVo.java

@@ -0,0 +1,27 @@
+package com.miniframe.template;
+
+import com.miniframe.model.system.DSource;
+import com.miniframe.model.system.DSourceVal;
+
+import java.util.List;
+
+public class DSourceVo {
+    public DSource  dsource;
+    List<DSourceVal> dsourceVals;
+
+    public DSource getDsource() {
+        return dsource;
+    }
+
+    public void setDsource(DSource dsource) {
+        this.dsource = dsource;
+    }
+
+    public List<DSourceVal> getDsourceVals() {
+        return dsourceVals;
+    }
+
+    public void setDsourceVals(List<DSourceVal> dsourceVals) {
+        this.dsourceVals = dsourceVals;
+    }
+}

+ 5 - 14
src/main/java/com/miniframe/template/FireInitVo.java

@@ -10,8 +10,7 @@ import java.util.Map;
 public class FireInitVo {
 
     public List<DNodeVal> nodeVals;
-    public List<DSource>  dources;
-    public Map<Integer, List<DSourceVal>> dsourceValMap;
+    public List<DSourceVo> dourceVos;
 
     public List<DNodeVal> getNodeVals() {
         return nodeVals;
@@ -21,19 +20,11 @@ public class FireInitVo {
         this.nodeVals = nodeVals;
     }
 
-    public List<DSource> getDources() {
-        return dources;
+    public List<DSourceVo> getDourceVos() {
+        return dourceVos;
     }
 
-    public void setDources(List<DSource> dources) {
-        this.dources = dources;
-    }
-
-    public Map<Integer, List<DSourceVal>> getDsourceValMap() {
-        return dsourceValMap;
-    }
-
-    public void setDsourceValMap(Map<Integer, List<DSourceVal>> dsourceValMap) {
-        this.dsourceValMap = dsourceValMap;
+    public void setDourceVos(List<DSourceVo> dourceVos) {
+        this.dourceVos = dourceVos;
     }
 }

+ 47 - 16
src/main/java/com/miniframe/template/TemplateGenerator.java

@@ -5,19 +5,24 @@ import com.miniframe.model.system.*;
 import com.miniframe.model.system.dao.DNodeValMapper;
 import com.miniframe.model.system.dao.DSourceMapper;
 import com.miniframe.model.system.dao.DSourceValMapper;
+import com.miniframe.tools.XIFileUtils;
+import com.miniframe.tools.XIIniFileUtils;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
 
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 public class TemplateGenerator {
+    public static final String BPATH="/cephfs/disaster";
 
-    public static void createFireControl() throws IOException, TemplateException {
+    public static void createFireControl(Integer aid) throws IOException, TemplateException {
         Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
         // 设置模板所在目录
         cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
@@ -28,22 +33,35 @@ public class TemplateGenerator {
         //几何文件路径
         dataModel.put("geoFilePath", "/home/disaster/fire/Geometry");
         //fireinit 文件路径
-        dataModel.put("initFilePath", "/home/disaster/fire/Fire1.init");
+        dataModel.put("initFilePath", BPATH+"/"+aid+"/"+"Fire.init");
         //fireInteractionPath 阀门文件路径
         dataModel.put("fireInteractionPath", "/home/disaster/fire/Fire.interaction");
         //midPath
-        dataModel.put("midPath", "/home/disaster/fire/mid");
+        dataModel.put("midPath", BPATH+"/"+aid+"/mid");
         //outPath
-        dataModel.put("outPath", "/home/disaster/fire/out");
+        dataModel.put("outPath", BPATH+"/"+aid+"/out");
+
+        DSourceMapper dsm =UtilTools.getBean(DSourceMapper.class);
+        DSourceSQLBuilder dss= new DSourceSQLBuilder();
+        DSourceSQLBuilder.Criteria dssc = dss.createCriteria();
+        dssc.andAidEqualTo(aid);
+        dssc.andSTypeEqualTo("Fire");
+        List<DSource>  dources =dsm.selectByExample(dss);
         //fireSourceNum  灾源数量
-        dataModel.put("fireSourceNum", 2);
+        dataModel.put("fireSourceNum", dources.size());
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
-        // 输出结果到控制台或保存为文件
-        System.out.println(writer.toString());
+        XIFileUtils.mkdir(BPATH);
+        XIFileUtils.mkdir(BPATH+"/"+aid);
+        XIFileUtils.mkdir(BPATH+"/"+aid+"/mid");
+        XIFileUtils.mkdir(BPATH+"/"+aid+"/out");
+
+        FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+"Fire.control");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
     }
-    public static void createFireRunsh() throws IOException, TemplateException {
+    public static void createFireRunsh(Integer aid) throws IOException, TemplateException {
         Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
         // 设置模板所在目录
         cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
@@ -52,12 +70,13 @@ public class TemplateGenerator {
         // 定义数据模型(Map)
         Map<String, Object> dataModel = new HashMap<>();
         //几何文件路径
-        dataModel.put("firecontrolPath", "/home/disaster/fire/Fire.control");
+        dataModel.put("firecontrolPath", BPATH+"/"+aid+"/Fire.control");
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
-        // 输出结果到控制台或保存为文件
-        System.out.println(writer.toString());
+        FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+"runFile.sh");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
     }
 
     public static void createFireInit(Integer aid) throws IOException, TemplateException {
@@ -76,20 +95,24 @@ public class TemplateGenerator {
         dssc.andAidEqualTo(aid);
         dssc.andSTypeEqualTo("Fire");
         List<DSource>  dources =dsm.selectByExample(dss);
-        vo.setDources(dources);
+
 
         DSourceValMapper dsvm =UtilTools.getBean(DSourceValMapper.class);
         DSourceValSQLBuilder dsvs =new DSourceValSQLBuilder();
 
-        Map<Integer, List<DSourceVal>> dsourceValMap =new HashMap<>();
+        List<DSourceVo>  dourceVos = new ArrayList<>();
         for (DSource ds:dources) {
             DSourceValSQLBuilder.Criteria dsvc = dsvs.createCriteria();
             dsvc.andSidEqualTo(ds.getId());
             List<DSourceVal> dSourceVals = dsvm.selectByExample(dsvs);
-            dsourceValMap.put(ds.getId(),dSourceVals);
+
+            DSourceVo dsourcevo =new DSourceVo();
+            dsourcevo.setDsource(ds);
+            dsourcevo.setDsourceVals(dSourceVals);
+            dourceVos.add(dsourcevo);
             dsvs.clear();
         }
-        vo.setDsourceValMap(dsourceValMap);
+       vo.setDourceVos(dourceVos);
 
 
         Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
@@ -106,10 +129,18 @@ public class TemplateGenerator {
         template.process(dataModel, writer);
         // 输出结果到控制台或保存为文件
         System.out.println(writer.toString());
+
+        FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+"Fire.init");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
     }
 
     public static void main(String[] args) throws Exception {
 
-//        TemplateGenerator.createFireRunsh();
+//        TemplateGenerator.createFireControl(5);
+        XIFileUtils.mkdir(BPATH);
+        XIFileUtils.mkdir(BPATH+"/"+5);
+        XIFileUtils.mkdir(BPATH+"/"+5+"/mid");
+        XIFileUtils.mkdir(BPATH+"/"+5+"/out");
     }
 }

+ 4 - 4
src/main/resources/templates/fireInit.ftl

@@ -1,3 +1,4 @@
+<#setting number_format="0.##">
 #nodes
 <#list vo.nodeVals as nval>
 ${nval.nname},${nval.ntype} ,${nval.val1} ,${nval.val2} ,${nval.val3} ,${nval.val4}
@@ -9,11 +10,10 @@ nodes35 ,Pressure ,10,300,0.0,0.0
 nodes36 ,pressure ,10,300,0.0,0.0
 #end
 #Fires
-<#list vo.dources as d>
-Fire ${d.pname} ${d.site} ${vo.dsourceValMap[d.id]?size!''}
-<#list vo.dsourceValMap[d.id] as dv>
+<#list vo.dourceVos as d>
+Fire ${d.dsource.pname} ${d.dsource.site} ${d.dsourceVals?size}
+<#list d.dsourceVals as dv>
 ${dv.timeline}  ${dv.val1}  ${dv.val2}  ${dv.val3}
 </#list>
-</#if>
 </#list>
 #end

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

@@ -1,4 +1,4 @@
-cd /home/disaster
+cd /home/disaster/fire
 export LD_LIBRARY_PATH=./bin:$LD_LIBRARY_PATH
 ./Fire ${firecontrolPath}
 ./Fire ${firecontrolPath} restart

+ 3 - 1
src/test/java/com/miniframe/ApplicationTests.java

@@ -16,8 +16,10 @@ class ApplicationTests {
 
     @Test
     void contextLoads() throws IOException, TemplateException {
-        TemplateGenerator.createFireInit(5);
 
+        TemplateGenerator.createFireControl(5);
+        TemplateGenerator.createFireRunsh(5);
+        TemplateGenerator.createFireInit(5);
     }
 
     @Test