huangxingxing 1 рік тому
батько
коміт
4eca7d77ec

+ 2 - 0
definitionsrc/returncode/returncode-business.properties

@@ -59,3 +59,5 @@ EB2000008 = \u6587\u4EF6\u4E0D\u5B58\u5728\uFF01
 EB3000001 = \u8282\u70B9\u6570\u636E\u4E0D\u5B58\u5728\uFF01
 EB3000002 = \u4E8B\u6545\u6570\u636E\u4E0D\u5B58\u5728\uFF01
 EB3000003 = \u4E8B\u6545\u5DF2\u5B58\u5728\u8BE5\u8282\u70B9\u6570\u636E\uFF01
+EB3000004 = \u707E\u6E90\u6570\u636E\u4E0D\u5B58\u5728\uFF01
+EB3000005 = \u5DF2\u5B58\u5728\u540C\u6E90\u7684\u6570\u636E\uFF01

+ 2 - 0
definitionsrc/returncode/returncode-business_zh_CN.properties

@@ -59,3 +59,5 @@ EB2000008 = \u6587\u4EF6\u4E0D\u5B58\u5728\uFF01
 EB3000001 = \u8282\u70B9\u6570\u636E\u4E0D\u5B58\u5728\uFF01
 EB3000002 = \u4E8B\u6545\u6570\u636E\u4E0D\u5B58\u5728\uFF01
 EB3000003 = \u4E8B\u6545\u5DF2\u5B58\u5728\u8BE5\u8282\u70B9\u6570\u636E\uFF01
+EB3000004 = \u707E\u6E90\u6570\u636E\u4E0D\u5B58\u5728\uFF01
+EB3000005 = \u5DF2\u5B58\u5728\u540C\u6E90\u7684\u6570\u636E\uFF01

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

@@ -1,12 +1,18 @@
 package com.miniframe.bisiness.system;
 
+import java.util.List;
 import java.util.Map;
 import com.miniframe.core.ExecProcessFlow;
+import com.miniframe.core.exception.BusinessException;
 import com.miniframe.core.ext.UtilTools;
 import com.miniframe.generate.business.system.model.D00002BaseModel;
 import com.miniframe.model.system.DAccident;
+import com.miniframe.model.system.DAccidentSQLBuilder;
+import com.miniframe.model.system.DNode;
+import com.miniframe.model.system.DNodeVal;
 import com.miniframe.model.system.dao.DAccidentMapper;
 import com.miniframe.model.system.dao.DNodeMapper;
+import com.miniframe.model.system.dao.DNodeValMapper;
 
 /**
  * 基础系统,“事故数据添加”逻辑处理(重新生成不覆盖)。
@@ -20,15 +26,42 @@ public class D00002Service extends D00002BaseModel implements ExecProcessFlow {
  	 */
 	public void transExecute() throws Exception {
 		DAccidentMapper projectDao  = UtilTools.getBean(DAccidentMapper.class);
+		String sid = this.getA_d00002().getSid();
+		String source =this.getA_d00002().getSource();
+
+		DAccidentSQLBuilder asb = new DAccidentSQLBuilder();
+		DAccidentSQLBuilder.Criteria asbc= asb.createCriteria();
+		asbc.andSourceEqualTo(source);
+		asbc.andSidEqualTo(sid);
+		DAccident accident= projectDao.selectOneByExample(asb);
+		if(accident!=null){
+			throw new BusinessException("EB3000005");
+		}
+
 		DAccident da = new DAccident();
 		da.setName(this.getA_d00002().getName());
 		da.setSid(this.getA_d00002().getSid());
 		da.setSource(this.getA_d00002().getSource());
 		da.setType(this.getA_d00002().getType());
-		projectDao.insertSelective(da);
+		int aid=projectDao.insertSelective(da);
 
+		accident= projectDao.selectOneByExample(asb);
 		//初始化 NodeVal
+		DNodeValMapper dnvm= UtilTools.getBean(DNodeValMapper.class);
 		DNodeMapper dnm = UtilTools.getBean(DNodeMapper.class);
+		List<DNode> nlist = dnm.selectAll();
+		for (DNode dn:nlist) {
+			DNodeVal nv = new DNodeVal();
+			nv.setAid(accident.getId());
+			nv.setNid(dn.getId());
+			nv.setNname(dn.getName());
+			nv.setVal1(0.0f);
+			nv.setVal2(300.0f);
+			nv.setVal3(0.0f);
+			nv.setVal4(0.0f);
+			nv.setNtype(dn.getNtype());
+			dnvm.insertSelective(nv);
+		}
 	}
 	
 	/**

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

@@ -53,6 +53,7 @@ public class D00004Service extends D00004BaseModel implements ExecProcessFlow {
 		ds.setPid(pid);
 		ds.setPname(dp.getName());
 		ds.setsType(this.getA_d00004().getStype());
+		ds.setSite((float)this.getA_d00004().getSite());
 		dsm.insertSelective(ds);
 	}
 	

+ 3 - 3
src/main/java/com/miniframe/template/FireInitVo.java

@@ -11,7 +11,7 @@ public class FireInitVo {
 
     public List<DNodeVal> nodeVals;
     public List<DSource>  dources;
-    public Map<Integer, DSourceVal> dsourceValMap;
+    public Map<Integer, List<DSourceVal>> dsourceValMap;
 
     public List<DNodeVal> getNodeVals() {
         return nodeVals;
@@ -29,11 +29,11 @@ public class FireInitVo {
         this.dources = dources;
     }
 
-    public Map<Integer, DSourceVal> getDsourceValMap() {
+    public Map<Integer, List<DSourceVal>> getDsourceValMap() {
         return dsourceValMap;
     }
 
-    public void setDsourceValMap(Map<Integer, DSourceVal> dsourceValMap) {
+    public void setDsourceValMap(Map<Integer, List<DSourceVal>> dsourceValMap) {
         this.dsourceValMap = dsourceValMap;
     }
 }

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

@@ -1,9 +1,18 @@
 package com.miniframe.template;
-import freemarker.template.*;
+
+import com.miniframe.core.ext.UtilTools;
+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 freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
 
 import java.io.IOException;
 import java.io.StringWriter;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 public class TemplateGenerator {
@@ -51,24 +60,56 @@ public class TemplateGenerator {
         System.out.println(writer.toString());
     }
 
-    public static void createFireInit(String aid) throws IOException, TemplateException {
+    public static void createFireInit(Integer aid) throws IOException, TemplateException {
+        FireInitVo vo =new FireInitVo();
+
+        DNodeValMapper dnvm= UtilTools.getBean(DNodeValMapper.class);
+        DNodeValSQLBuilder dns = new DNodeValSQLBuilder();
+        DNodeValSQLBuilder.Criteria dnsc= dns.createCriteria();
+        dnsc.andAidEqualTo(aid);
+        List<DNodeVal> nodeVals=dnvm.selectByExample(dns);
+        vo.setNodeVals(nodeVals);
+
+        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);
+        vo.setDources(dources);
+
+        DSourceValMapper dsvm =UtilTools.getBean(DSourceValMapper.class);
+        DSourceValSQLBuilder dsvs =new DSourceValSQLBuilder();
+
+        Map<Integer, List<DSourceVal>> dsourceValMap =new HashMap<>();
+        for (DSource ds:dources) {
+            DSourceValSQLBuilder.Criteria dsvc = dsvs.createCriteria();
+            dsvc.andSidEqualTo(ds.getId());
+            List<DSourceVal> dSourceVals = dsvm.selectByExample(dsvs);
+            dsourceValMap.put(ds.getId(),dSourceVals);
+            dsvs.clear();
+        }
+        vo.setDsourceValMap(dsourceValMap);
+
+
         Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
         // 设置模板所在目录
         cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
         // 获取模板对象
-        Template template = cfg.getTemplate("fireRunsh.ftl");
+        Template template = cfg.getTemplate("fireInit.ftl");
         // 定义数据模型(Map)
         Map<String, Object> dataModel = new HashMap<>();
         //几何文件路径
-        dataModel.put("firecontrolPath", "/home/disaster/fire/Fire.control");
+        dataModel.put("vo", vo);
         // 将数据模型传入模板进行处理
         StringWriter writer = new StringWriter();
         template.process(dataModel, writer);
         // 输出结果到控制台或保存为文件
         System.out.println(writer.toString());
     }
+
     public static void main(String[] args) throws Exception {
-        TemplateGenerator.createFireControl();
-        TemplateGenerator.createFireRunsh();
+
+//        TemplateGenerator.createFireRunsh();
     }
 }

+ 10 - 44
src/main/resources/templates/fireInit.ftl

@@ -1,41 +1,7 @@
 #nodes
-<
-nodes1	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes2	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes3	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes4	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes5	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes6	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes7	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes8	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes9	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes10	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes11	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes12	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes13	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes14	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes15	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes16	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes17	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes18	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes19	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes20	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes21	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes22	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes23	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes24	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes25	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes26	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes27	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes28	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes29	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes30	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes31	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes32	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes33	 ,inlet   ,0.0 ,300 ,0.0 ,0.0
-nodes34	 ,mid     ,0.0 ,300 ,0.0 ,0.0
-nodes35	 ,outlet  ,0.0 ,300 ,0.0 ,0.0
-nodes36	 ,outlet  ,0.0 ,300 ,0.0 ,0.0
+<#list vo.nodeVals as nval>
+${nval.nname},${nval.ntype} ,${nval.val1} ,${nval.val2} ,${nval.val3} ,${nval.val4}
+</#list>
 #end
 #boundaries Inlet
 nodes33 ,massflow ,10,300,0.0,0.0
@@ -43,11 +9,11 @@ nodes35 ,Pressure ,10,300,0.0,0.0
 nodes36 ,pressure ,10,300,0.0,0.0
 #end
 #Fires
-Fire pipes22 0.5 2
-0    373 0.1  0.1
-1800 373 0.1  0.1
-Fire pipes15 0.1 3
-0         373 0.1 0.1
-1800      373 0.1 0.1
-2400      373 0.1 0.1
+<#list vo.dources as d>
+Fire ${d.pname} ${d.site} ${vo.dsourceValMap[d.id]?size!''}
+<#list vo.dsourceValMap[d.id] as dv>
+${dv.timeline}  ${dv.val1}  ${dv.val2}  ${dv.val3}
+</#list>
+</#if>
+</#list>
 #end

+ 6 - 2
src/test/java/com/miniframe/ApplicationTests.java

@@ -3,16 +3,20 @@ package com.miniframe;
 import com.miniframe.core.ext.UtilTools;
 import com.miniframe.model.system.AdiSolverConfigImg;
 import com.miniframe.model.system.dao.AdiSolverConfigImgMapper;
+import com.miniframe.template.TemplateGenerator;
 import com.miniframe.utils.MFServiceUtils;
+import freemarker.template.TemplateException;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.io.IOException;
+
 @SpringBootTest
 class ApplicationTests {
 
     @Test
-    void contextLoads() {
-
+    void contextLoads() throws IOException, TemplateException {
+        TemplateGenerator.createFireInit(5);
 
     }
 

+ 1 - 1
系统设计/数据定义/返 回 码/business(业务系统).csv

@@ -65,4 +65,4 @@
 3000002,EB3000002,事故数据不存在!,
 3000003,EB3000003,事故已存在该节点数据!,
 3000004,EB3000004,灾源数据不存在!,
-
+3000005,EB3000005,已存在同源的数据!,

+ 2 - 2
系统设计/通信设计/通讯报文/system(系统服务)/报文体/D00002_A(事故数据添加).csv

@@ -1,5 +1,5 @@
 序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
-1,source,事故来源,string,,,,1,128,,,,,,
+1,source,事故来源,string,,,,1,128,,,,,,
 2,type,事故类型,string,,,是,1,128,,,,,,
 3,name,事故名称,string,,,是,1,128,,,,,,
-4,sid,事故来源ID,string,,,,1,128,,,,,,
+4,sid,事故来源ID,string,,,,1,128,,,,,,