Kaynağa Gözat

人员位置数据

huangxingxing 7 ay önce
ebeveyn
işleme
df73c12e74

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

@@ -105,14 +105,11 @@ public class D00008Service extends D00008BaseModel implements ExecProcessFlow {
 			LogService.addLog(accident,"Fire.init配置生成——————————————————成功");
 			TemplateGenerator2.createFireEsccapeControl(aid,jid);
 			LogService.addLog(accident,"FireEscape.control配置生成——————————————————成功");
-
-			TemplateGenerator2.createFireEsccapeControl(aid,jid);
-
 			exeFire2(aid,jid);
 
 		}
 		if(accident.getStype().equals("Water")){
-//			TemplateGenerator.createGeometry(aid,jid);//生成几何文件\
+//			TemplateGenerator.createGeometry(aid,jid);//生成几何文件
 			TemplateGenerator2.createGeometry(aid,jid);
 			TemplateGenerator2.createEscape(aid,jid);
 			TemplateGenerator2.createWaterControl(aid,jid,totaltime,dt,dx,reportstep,interactionstep);

+ 22 - 0
src/main/java/com/miniframe/template/DPersonVo.java

@@ -0,0 +1,22 @@
+package com.miniframe.template;
+
+public class DPersonVo {
+    Integer num ;
+    String pcode ;
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getPcode() {
+        return pcode;
+    }
+
+    public void setPcode(String pcode) {
+        this.pcode = pcode;
+    }
+}

+ 107 - 14
src/main/java/com/miniframe/template/TemplateGenerator2.java

@@ -15,6 +15,7 @@ import java.io.FileWriter;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 public class TemplateGenerator2 {
     public static final String BPATH = "/cephfs/disaster";
@@ -178,6 +179,7 @@ public class TemplateGenerator2 {
         dataModel.put("monitorPath", BPATH + "/" + aid + "/" + jid + "/monitor.in");
         dataModel.put("outPath", BPATH + "/" + aid + "/" + jid + "/water" + "/out");
         dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
+        SetTPerson(aid, dataModel);
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
@@ -201,6 +203,7 @@ public class TemplateGenerator2 {
         //outPath
         dataModel.put("outPath", BPATH + "/" + aid + "/" + jid + "/gas" + "/" + "/out");
         dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
+        SetTPerson(aid, dataModel);
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
@@ -215,6 +218,7 @@ 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");
@@ -223,8 +227,61 @@ public class TemplateGenerator2 {
         // 定义数据模型(Map)
         Map<String, Object> dataModel = new HashMap<>();
 
-        DWayMapper wMapper = UtilTools.getBean(DWayMapper.class);
+        DAccidentMapper aDao = UtilTools.getBean(DAccidentMapper.class);
+        DAccident accident = aDao.selectByPrimaryKey(aid);
         List<DEscapeVo> vos =new ArrayList<>();
+        if("平台".equals(accident.getSource())){
+            DMwayMapper mwDao = UtilTools.getBean(DMwayMapper.class);
+            DMwaySQLBuilder mwsb = new DMwaySQLBuilder();
+            DMwaySQLBuilder.Criteria mwsc = mwsb.createCriteria();
+            mwsc.andAidEqualTo(aid);
+            List<DMway> mwList = mwDao.selectByExample(mwsb);
+            if(mwList.isEmpty()){
+                findVos(vos);
+            }else{
+                findPtVos(vos, mwsb, mwList);
+            }
+        }else{
+            findVos(vos);
+        }
+        dataModel.put("escapenum", vos.size());
+        dataModel.put("vos", vos);
+
+        // 将数据模型传入模板进行处理
+        StringWriter writer = new StringWriter();
+        template.process(dataModel, writer);
+        mkDirs(aid, jid, "/gass");
+        FileWriter fileWriter = new FileWriter(BPATH + "/" + aid + "/" + jid + "/escape");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
+    }
+
+    private static void findPtVos(List<DEscapeVo> vos, DMwaySQLBuilder mwsb, List<DMway> mwList) {
+        for (DMway mw: mwList) {
+            DMwaynodeMapper mwnDao = UtilTools.getBean(DMwaynodeMapper.class);
+            DMwaynodeSQLBuilder mwnsb = new DMwaynodeSQLBuilder();
+            DMwaynodeSQLBuilder.Criteria mwnsc = mwnsb.createCriteria();
+            mwnsc.andMwidEqualTo(mw.getId());
+            mwsb.setOrderByClause("seq ASC");
+            List<DMwaynode> mwnList = mwnDao.selectByExample(mwnsb);
+            DEscapeVo vo =new DEscapeVo();
+            DWay way =new DWay();
+            way.setCode("s"+mw.getId().toString());
+            vo.setWay(way);
+            List<DWaynode> ns= new ArrayList<>();
+            for (DMwaynode mwn:mwnList) {
+                DWaynode n = new DWaynode();
+                n.setNcode(mwn.getNcode());
+                ns.add(n);
+            }
+            vo.setNodes(ns);
+            vo.setNodenum(ns.size());
+            vos.add(vo);
+        }
+    }
+
+    private static void findVos(List<DEscapeVo> vos) {
+        DWayMapper wMapper = UtilTools.getBean(DWayMapper.class);
         List<DWay> ways =wMapper.selectAll();
 
         for (DWay way:ways) {
@@ -238,20 +295,8 @@ public class TemplateGenerator2 {
             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, "/gass");
-        FileWriter fileWriter = new FileWriter(BPATH + "/" + aid + "/" + jid + "/escape");
-        fileWriter.write(writer.toString());
-        fileWriter.close();
     }
 
     /**
@@ -560,8 +605,9 @@ 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("outPath", BPATH + "/" + aid + "/" + jid + "/fire" + "/out");
         dataModel.put("escape", BPATH + "/" + aid + "/" + jid + "/escape");
+        SetTPerson(aid, dataModel);
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
@@ -571,6 +617,53 @@ public class TemplateGenerator2 {
         fileWriter.close();
     }
 
+    private static void SetTPerson(Integer aid, Map<String, Object> dataModel) {
+        DAccidentMapper aDao = UtilTools.getBean(DAccidentMapper.class);
+        DAccident accident = aDao.selectByPrimaryKey(aid);
+        List<DEscapeVo> vos =new ArrayList<>();
+        if("平台".equals(accident.getSource())){
+            DMwayMapper mwDao = UtilTools.getBean(DMwayMapper.class);
+            DMwaySQLBuilder mwsb = new DMwaySQLBuilder();
+            DMwaySQLBuilder.Criteria mwsc = mwsb.createCriteria();
+            mwsc.andAidEqualTo(aid);
+            List<DMway> mwList = mwDao.selectByExample(mwsb);
+            List<String> pcodes = new ArrayList<>();
+            if(mwList.isEmpty()){
+                setPersonVo(dataModel);
+            }else{
+                setPtPersonVo(dataModel, mwList, pcodes);
+            }
+        }else{
+            setPersonVo(dataModel);
+        }
+    }
+
+    private static void setPtPersonVo(Map<String, Object> dataModel, List<DMway> mwList, List<String> pcodes) {
+        for (DMway mw: mwList) {
+            pcodes.add(mw.getPersonsites());
+        }
+        pcodes = pcodes.stream().distinct().collect(Collectors.toList());//去重
+        dataModel.put("personnum", pcodes.size());
+        List<DPersonVo> personVos = new ArrayList<>();
+        for (int i = 0; i < pcodes.size() ; i++) {
+            DPersonVo personVo =new DPersonVo();
+            personVo.setNum(i);
+            personVo.setPcode(pcodes.get(i));
+            personVos.add(personVo);
+        }
+        dataModel.put("personvos", personVos);
+    }
+
+    private static void setPersonVo(Map<String, Object> dataModel) {
+        dataModel.put("personnum",1);
+        List<DPersonVo> personVos = new ArrayList<>();
+        DPersonVo personVo =new DPersonVo();
+        personVo.setNum(1);
+        personVo.setPcode("pipes22");
+        personVos.add(personVo);
+        dataModel.put("personvos", personVos);
+    }
+
     /**
      * 设备信息
      * @param aid

+ 4 - 2
src/main/resources/templates/fire2EscapeControl.ftl

@@ -2,6 +2,8 @@ geoFile : ${geoFilePath}
 midPath : ${midPath}
 outPath : ${outPath}
 escapeFile : ${escape}
-personnumber : 1
-person1,pipes22,0.1,500,1
+personnumber : ${personnum}
+<#list personvos as d>
+person${d.num},${d.pcode},0.1,500,1
+</#list>
 #end

+ 4 - 2
src/main/resources/templates/mashGasEscapeControl.ftl

@@ -2,6 +2,8 @@ geoFile : ${geoFilePath}
 midPath : ${midPath}
 outPath : ${outPath}
 escapeFile : ${escape}
-personnumber : 1
-person1,pipes22,0.1,500,1
+personnumber : ${personnum}
+<#list personvos as d>
+person${d.num},${d.pcode},0.1,500,1
+</#list>
 #end

+ 4 - 2
src/main/resources/templates/water2EscapeControl.ftl

@@ -4,6 +4,8 @@ monitorFile : ${monitorPath}
 midPath : ${midPath}
 outPath : ${outPath}
 escapeFile : ${escape}
-personnumber : 1
-person1,pipes22,0.1,500,1
+personnumber : ${personnum}
+<#list personvos as d>
+person${d.num},${d.pcode},0.1,500,1
+</#list>
 #end