Parcourir la source

生成几何文件、监测点文件

huangxingxing il y a 1 an
Parent
commit
4969d2f2df

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

@@ -71,6 +71,7 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 			job.setCocodes("Height");
 		}
 		dJobDao.insertSelective(job);
+
 		//获取最新JOB
 		DJob newJob = getNewJob(aid, dJobDao);
 		Integer jid =newJob.getId();
@@ -82,8 +83,8 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 		//TODO:  需要从第三方获取
 		initDNodeVal(aid);
 
-
-
+		TemplateGenerator.createGeometry(aid,jid);//生成几何文件
+		TemplateGenerator.createMonitor(aid,jid);//生成监测点文件
 		if(accident.getStype().equals("Fire")){
 			TemplateGenerator.createFireControl(aid,jid,totaltime,dt,dx,reportstep,interactionstep,cocodes);
 			LogService.addLog(accident,"fireControl.ftl配置生成——————————————————成功");

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

@@ -78,7 +78,7 @@ public class D10014Service extends D10014BaseModel implements ExecProcessFlow {
 		sc.andCodeEqualTo(code);
 		int count = conMapper.selectCountByExample(sb);
 		if(count>0){
-			throw  new BusinessException("3100010");
+			throw  new BusinessException("EB3100010");
 		}
 	}
 

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

@@ -31,14 +31,14 @@ public class TemplateGenerator {
         // 定义数据模型(Map)
         Map<String, Object> dataModel = new HashMap<>();
         //几何文件路径
-        dataModel.put("geoFilePath", "/home/disaster/Water/Geometry");
+        dataModel.put("geoFilePath", BPATH+"/"+aid+"/"+jid+"/Geometry");
         //initFile 文件路径
         dataModel.put("initFilePath", BPATH+"/"+aid+"/"+jid+"/water"+"/"+"water.init");
 
         //midPath
         dataModel.put("midPath", BPATH+"/"+aid+"/"+jid+"/water"+"/mid");
         //monitorPath
-        dataModel.put("monitorPath", "/home/disaster/Water/monitor.in");
+        dataModel.put("monitorPath",BPATH+"/"+aid+"/"+jid+"/monitor.in");
         //outPath
         dataModel.put("outPath", BPATH+"/"+aid+"/"+jid+"/water"+"/out");
         dataModel.put("totaltime",totaltime);
@@ -68,12 +68,7 @@ public class TemplateGenerator {
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
-        XIFileUtils.mkdir(BPATH);
-        XIFileUtils.mkdir(BPATH+"/"+aid);
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid);
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/water");
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/water"+"/mid");
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/water"+"/out");
+        mkDirs(aid, jid, "/water");
 
         FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+jid+"/"+"/water"+"/water.control");
         fileWriter.write(writer.toString());
@@ -162,7 +157,78 @@ public class TemplateGenerator {
         fileWriter.close();
     }
 
+    /**
+     * 生成几何文件
+     */
+    public static void createGeometry(Integer aid,Integer jid) throws IOException, TemplateException {
+        Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+        // 设置模板所在目录
+        cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+        // 获取模板对象
+        Template template = cfg.getTemplate("geometry.ftl");
+        // 定义数据模型(Map)
+        Map<String, Object> dataModel = new HashMap<>();
+
+        DNodeMapper nodeMapper =UtilTools.getBean(DNodeMapper.class);
+        List<DNode> nodes = nodeMapper.selectAll();
+
+        //节点数量
+        dataModel.put("nodenum", nodes.size());
+        //节点
+        dataModel.put("nodes", nodes);
+
+        DPipeMapper pipeMapper =UtilTools.getBean(DPipeMapper.class);
+        List<DPipe> pipes =pipeMapper.selectAll();
+        //管道数量
+        dataModel.put("pipenum", pipes.size());
+        //管道
+        dataModel.put("pipes", pipes);
+
+        // 将数据模型传入模板进行处理
+        StringWriter writer = new StringWriter();
+        template.process(dataModel, writer);
+        mkDirs(aid, jid, "/fire");
+        FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+jid+"/Geometry");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
+    }
+
+    private static void mkDirs(Integer aid, Integer jid, String s) {
+        XIFileUtils.mkdir(BPATH);
+        XIFileUtils.mkdir(BPATH + "/" + aid);
+        XIFileUtils.mkdir(BPATH + "/" + aid + "/" + jid);
+        XIFileUtils.mkdir(BPATH + "/" + aid + "/" + jid + s);
+        XIFileUtils.mkdir(BPATH + "/" + aid + "/" + jid + s + "/mid");
+        XIFileUtils.mkdir(BPATH + "/" + aid + "/" + jid + s + "/out");
+    }
+
+    /**
+     * 生成监测点文件
+     */
+    public static void createMonitor(Integer aid,Integer jid) throws IOException, TemplateException {
+        Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+        // 设置模板所在目录
+        cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+        // 获取模板对象
+        Template template = cfg.getTemplate("monitor.ftl");
+        // 定义数据模型(Map)
+        Map<String, Object> dataModel = new HashMap<>();
 
+        DChecknodeMapper checknodeMapper = UtilTools.getBean(DChecknodeMapper.class);
+        List<DChecknode> monitors=checknodeMapper.selectAll();
+
+        dataModel.put("monnum", monitors.size());
+        //管道
+        dataModel.put("monitors", monitors);
+
+        // 将数据模型传入模板进行处理
+        StringWriter writer = new StringWriter();
+        template.process(dataModel, writer);
+        mkDirs(aid, jid, "/fire");
+        FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+jid+"/monitor.in");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
+    }
     public static void createFireControl(Integer aid,Integer jid,String totaltime,
                                          String dt,String dx,String reportstep,String interactionstep,
     String cocodes) throws IOException, TemplateException {
@@ -174,13 +240,13 @@ public class TemplateGenerator {
         // 定义数据模型(Map)
         Map<String, Object> dataModel = new HashMap<>();
         //几何文件路径
-        dataModel.put("geoFilePath", "/home/disaster/fire/Geometry");
+        dataModel.put("geoFilePath", BPATH+"/"+aid+"/"+jid+"/Geometry");
         //fireinit 文件路径
         dataModel.put("initFilePath", BPATH+"/"+aid+"/"+jid+"/fire"+"/"+"Fire.init");
         //fireInteractionPath 阀门文件路径
         dataModel.put("fireInteractionPath", "/home/disaster/fire/Fire.interaction");
         //midPath
-        dataModel.put("monitorPath", "/home/disaster/fire/monitor.in");
+        dataModel.put("monitorPath", BPATH+"/"+aid+"/"+jid+"/monitor.in");
         //midPath
         dataModel.put("midPath", BPATH+"/"+aid+"/"+jid+"/fire"+"/mid");
         //outPath
@@ -228,12 +294,7 @@ public class TemplateGenerator {
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
-        XIFileUtils.mkdir(BPATH);
-        XIFileUtils.mkdir(BPATH+"/"+aid);
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid);
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/fire");
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/fire"+"/mid");
-        XIFileUtils.mkdir(BPATH+"/"+aid+"/"+jid+"/fire"+"/out");
+        mkDirs(aid, jid, "/fire");
 
         FileWriter fileWriter =new FileWriter(BPATH+"/"+aid+"/"+jid+"/"+"/fire"+"/Fire.control");
         fileWriter.write(writer.toString());

+ 8 - 0
src/main/resources/templates/geometry.ftl

@@ -0,0 +1,8 @@
+nodes number:${nodenum}
+<#list nodes as node>
+${node.name},${node.x},${node.y},${node.z}
+</#list>
+pipes number:${pipenum}
+<#list pipes as p>
+${p.name},${p.snid},${p.enid},${p.roughCoe},${p.sectionType},${p.sectionPara1},${p.sectionPara2},${p.sectionPara3},${p.sectionPara4},${p.sectionPara5}
+</#list>

+ 5 - 0
src/main/resources/templates/monitor.ftl

@@ -0,0 +1,5 @@
+#monitor number:${monnum}
+<#list monitors as m>
+${m.name},${m.pname},${m.site}
+</#list>
+#end