|
@@ -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
|