huangxingxing преди 3 месеца
родител
ревизия
8d4f4bbb60
променени са 24 файла, в които са добавени 646 реда и са изтрити 6 реда
  1. 1 0
      dbscript/init/generate/03-functionInit.sql
  2. 1 0
      definitionsrc/returncode/returncode-business.properties
  3. 1 0
      definitionsrc/returncode/returncode-business_zh_CN.properties
  4. 112 0
      generated/com/miniframe/generate/business/mdo/model/MDO0082BaseModel.java
  5. 99 0
      generated/com/miniframe/generate/comm/httpmdoapater/MDO0082Client.java
  6. 38 0
      generated/com/miniframe/generate/comm/mdo/A_MDO0082.java
  7. 25 0
      generated/com/miniframe/generate/comm/mdo/D_MDO0082.java
  8. 25 0
      generated/validateform/a_mdo0082Form.xml
  9. 22 0
      generated/validateform/d_mdo0082Form.xml
  10. 3 0
      generated/validator/resources_a_mdo0082Form_validator.properties
  11. 3 0
      generated/validator/resources_a_mdo0082Form_validator_zh_CN.properties
  12. 2 0
      generated/validator/resources_d_mdo0082Form_validator.properties
  13. 2 0
      generated/validator/resources_d_mdo0082Form_validator_zh_CN.properties
  14. 14 0
      pom.xml
  15. 126 0
      src/main/java/com/miniframe/bisiness/mdo/MDO0082Service.java
  16. 4 4
      src/main/java/com/miniframe/tools/docker/DockerExe.java
  17. 70 0
      src/main/resources/templates/report.html
  18. 2 0
      src/main/resources/templates/report.xml
  19. 42 0
      src/test/java/com/miniframe/PdfTest.java
  20. 44 0
      src/test/java/com/miniframe/comm/httpmdoapater/MDO0082Test.java
  21. 2 1
      系统设计/数据定义/返 回 码/business(业务系统).csv
  22. 3 1
      系统设计/系统模块/MDO(西工大系统).csv
  23. 3 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0082_A(报告导出).csv
  24. 2 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0082_D(报告导出).csv

+ 1 - 0
dbscript/init/generate/03-functionInit.sql

@@ -78,6 +78,7 @@ INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MD
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0079', '西工大系统','项目后处理文件删除',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0080', '西工大系统','设计变量模版导出',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0081', '西工大系统','设计变量模版导入',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0082', '西工大系统','报告导出',true);
 -- 基础系统
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('A00000', '基础系统','获取图片验证码',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('A00001', '基础系统','获取短信验证码',true);

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

@@ -71,3 +71,4 @@ MDO000011 = \u6C42\u89E3\u5668\u7C7B\u578B\u7F3A\u5931\uFF01
 MDO000012 = Cst\u6570\u636E\u9519\u8BEF\uFF01
 MDO000013 = \u8BBE\u8BA1\u53D8\u91CF{0}\u4E0D\u5B58\u5728\uFF01
 MDO000014 = \u5BFC\u5165xlsx\u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4E0B\u8F7D\u6A21\u7248\u7F16\u8F91\uFF01
+MDO000015 = \u672A\u751F\u6210\u7ED3\u679C\uFF01

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

@@ -71,3 +71,4 @@ MDO000011 = \u6C42\u89E3\u5668\u7C7B\u578B\u7F3A\u5931\uFF01
 MDO000012 = Cst\u6570\u636E\u9519\u8BEF\uFF01
 MDO000013 = \u8BBE\u8BA1\u53D8\u91CF{0}\u4E0D\u5B58\u5728\uFF01
 MDO000014 = \u5BFC\u5165xlsx\u683C\u5F0F\u9519\u8BEF\uFF0C\u8BF7\u4E0B\u8F7D\u6A21\u7248\u7F16\u8F91\uFF01
+MDO000015 = \u672A\u751F\u6210\u7ED3\u679C\uFF01

+ 112 - 0
generated/com/miniframe/generate/business/mdo/model/MDO0082BaseModel.java

@@ -0,0 +1,112 @@
+package com.miniframe.generate.business.mdo.model;
+
+import java.util.Map;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import com.miniframe.core.BaseMapModel;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.core.ext.HttpMapFormater;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import com.miniframe.generate.global.AppGlobalVariableSysconfig;
+
+import com.miniframe.generate.comm.mdo.A_MDOHEAD;
+import com.miniframe.generate.comm.mdo.D_MDOHEAD;
+import com.miniframe.generate.comm.mdo.A_MDO0082;
+import com.miniframe.generate.comm.mdo.D_MDO0082;
+
+/**
+ * 系统服务,“报告导出”模型类(不要维护,重新生成将覆盖)。
+ */
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class MDO0082BaseModel extends BaseMapModel {
+
+	private static final long serialVersionUID = -1326184831746814093L;
+
+	A_MDOHEAD a_mdohead;//上行头
+	D_MDOHEAD d_mdohead;//下行头
+	A_MDO0082 a_mdo0082;//上行体
+	D_MDO0082 d_mdo0082;//下行体
+
+	public MDO0082BaseModel(){
+		a_mdohead=new A_MDOHEAD();
+		d_mdohead=new D_MDOHEAD();
+		a_mdo0082=new A_MDO0082();
+		d_mdo0082=new D_MDO0082();
+	}
+
+	public void validater() throws Exception {
+		this.a_mdohead.validater();
+		this.a_mdo0082.validater();
+	}
+
+	public void setTransMap(Map map) throws Exception {
+		Map headMap = HttpMapFormater.format(map, A_MDOHEAD.class);
+		this.a_mdohead = UtilTools.map2Obj(headMap, A_MDOHEAD.class);
+		Map bodyMap = HttpMapFormater.format(map, A_MDO0082.class);
+		this.a_mdo0082 = UtilTools.map2Obj(bodyMap, A_MDO0082.class);
+	}
+
+	public Map getTransMap() throws Exception {
+		Map reMap = new LinkedHashMap();
+
+		if(UtilTools.isNullOrBlank((this.d_mdohead).getTransCode())){
+			(this.d_mdohead).setTransCode((this.a_mdohead).getTransCode());
+		}
+		if(UtilTools.isNullOrBlank((this.d_mdohead).getChannelNo())){
+			(this.d_mdohead).setChannelNo((this.a_mdohead).getChannelNo());
+		}
+		if(UtilTools.isNullOrBlank((this.d_mdohead).getUserId())){
+			(this.d_mdohead).setUserId((this.a_mdohead).getUserId());
+		}
+        if(UtilTools.isNullOrBlank((this.d_mdohead).getTransTime())){
+            (this.d_mdohead).setTransTime(DateTimeFormatter.ofPattern(AppGlobalVariableSysconfig.DATETIMEFORMAT).format(ZonedDateTime.now()));
+        }
+
+		reMap.putAll(UtilTools.obj2Map(this.d_mdohead));
+		reMap.putAll(UtilTools.obj2Map(this.d_mdo0082));
+
+		return reMap;
+	}
+
+	public A_MDOHEAD getA_mdohead() {
+		return this.a_mdohead;
+	}
+
+	public void setA_mdohead(A_MDOHEAD a_mdohead) {
+		this.a_mdohead=a_mdohead;
+	}
+
+	public D_MDOHEAD getD_mdohead() {
+		return d_mdohead;
+	}
+
+	public void setD_mdohead(D_MDOHEAD d_mdohead) {
+		this.d_mdohead=d_mdohead;
+	}
+
+	public A_MDO0082 getA_mdo0082() {
+		return a_mdo0082;
+	}
+
+	public void setA_mdo0082(A_MDO0082 a_mdo0082) {
+		this.a_mdo0082=a_mdo0082;
+	}
+
+	public D_MDO0082 getD_mdo0082() {
+		return this.d_mdo0082;
+	}
+
+	public void setD_mdo0082(D_MDO0082 d_mdo0082) {
+		this.d_mdo0082=d_mdo0082;
+	}
+
+	@Override
+	public String toString() {
+		try {
+			return UtilTools.obj2Json(this,true);
+		} catch (IOException e) {
+			return "";
+		}
+	}
+}

+ 99 - 0
generated/com/miniframe/generate/comm/httpmdoapater/MDO0082Client.java

@@ -0,0 +1,99 @@
+package com.miniframe.generate.comm.httpmdoapater;
+
+import com.miniframe.spring.httpclient.MFHttpRespInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import com.miniframe.core.Transmitter;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.generate.comm.mdo.D_MDO0082;
+import com.miniframe.generate.comm.mdo.D_MDOHEAD;
+
+import com.miniframe.generate.business.mdo.model.MDO0082BaseModel;
+
+public class MDO0082Client {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0082Client.class);
+	private MFHttpRespInfo respInfo;
+
+	public MFHttpRespInfo getRespInfo(){
+		return respInfo;
+	}
+
+	/**
+	 * 调用 [系统服务->报告导出((MDO0082)]的通讯接口
+	 * @param model 接口模型
+	 * @param extMap 扩展输入
+	 * @param url 请求地址
+	 * @return model 接口模型
+	 * @throws Exception
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0082BaseModel execute(MDO0082BaseModel model,final Map extMap,final String url) throws Exception {
+		this.executeToRespInfo(model,extMap,url);
+		return model;
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0082BaseModel execute(MDO0082BaseModel model,final Map extMap) throws Exception {
+		this.executeToRespInfo(model,extMap,null);
+		return model;
+	}
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MFHttpRespInfo executeToRespInfo(MDO0082BaseModel model,final Map extMap,final String url) throws Exception {
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0082BaseModel) - start");
+		}
+
+		if(UtilTools.isNullOrBlank(model.getA_mdohead().getTransCode())){
+			model.getA_mdohead().setTransCode("MDO0082");
+		}
+
+		Map inMap = new LinkedHashMap();
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdohead()));
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdo0082()));
+		if(extMap!=null && extMap.size()>0){
+			inMap.putAll(extMap);
+		}
+
+		Transmitter httpmdoApater = (Transmitter) UtilTools.getBean("httpmdoApater");
+		MFHttpRespInfo respInfo;
+		if(UtilTools.isNotNullAndBlank(url)){
+			respInfo = httpmdoApater.doPostDataToRespInfo(inMap,url);
+		}else{
+			respInfo = httpmdoApater.doPostDataToRespInfo(inMap);
+		}
+
+		if(respInfo!=null) {
+			Map outMap=respInfo.getParamMap();
+			D_MDOHEAD d_mdohead =  UtilTools.map2Obj(outMap, D_MDOHEAD.class);
+			D_MDO0082 d_mdo0082 =  UtilTools.map2Obj(outMap, D_MDO0082.class);
+			model.setD_mdohead(d_mdohead);
+			model.setD_mdo0082(d_mdo0082);
+
+
+		}
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0082BaseModel) - end");
+		}
+
+        this.respInfo=respInfo;
+
+		return respInfo;
+	}
+
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0082BaseModel execute(MDO0082BaseModel model) throws Exception {
+		return this.execute(model,null,null);
+	}
+
+
+}

+ 38 - 0
generated/com/miniframe/generate/comm/mdo/A_MDO0082.java

@@ -0,0 +1,38 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * 报告导出
+ */
+public class A_MDO0082 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String pid;//项目id
+	/**
+	 *项目id
+	 */
+	public void setPid(String pid) {
+		this.pid=pid;
+	}
+	/**
+	 *项目id
+	 */
+	public String getPid() {
+		return this.pid;
+	}
+	int type;//1 pdf 2 word 3 html
+	/**
+	 *1 pdf 2 word 3 html
+	 */
+	public void setType(int type) {
+		this.type=type;
+	}
+	/**
+	 *1 pdf 2 word 3 html
+	 */
+	public int getType() {
+		return this.type;
+	}
+}

+ 25 - 0
generated/com/miniframe/generate/comm/mdo/D_MDO0082.java

@@ -0,0 +1,25 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * 报告导出
+ */
+public class D_MDO0082 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String pid;//项目id
+	/**
+	 *项目id
+	 */
+	public void setPid(String pid) {
+		this.pid=pid;
+	}
+	/**
+	 *项目id
+	 */
+	public String getPid() {
+		return this.pid;
+	}
+}

+ 25 - 0
generated/validateform/a_mdo0082Form.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">
+<!-- 报告导出Form配置文件系统生成请勿修改,否则重新生成将覆盖 -->
+<form-validation>
+<formset>
+<form name="a_mdo0082Form">
+<field property="pid" depends="required,minlength,maxlength">
+    <arg0 key="a_mdo0082.pid"/>
+    <arg1 name="minlength" key="${var:minlength}"/>
+    <var>
+      <var-name>minlength</var-name>
+      <var-value>1</var-value>
+    </var>
+    <arg1 name="maxlength" key="${var:maxlength}"/>
+    <var>
+      <var-name>maxlength</var-name>
+      <var-value>256</var-value>
+    </var>
+</field>
+<field property="type" depends="required">
+    <arg0 key="a_mdo0082.type"/>
+</field>
+</form>
+</formset>
+</form-validation>

+ 22 - 0
generated/validateform/d_mdo0082Form.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1.dtd">
+<!-- 报告导出Form配置文件系统生成请勿修改,否则重新生成将覆盖 -->
+<form-validation>
+<formset>
+<form name="d_mdo0082Form">
+<field property="pid" depends="required,minlength,maxlength">
+    <arg0 key="d_mdo0082.pid"/>
+    <arg1 name="minlength" key="${var:minlength}"/>
+    <var>
+      <var-name>minlength</var-name>
+      <var-value>1</var-value>
+    </var>
+    <arg1 name="maxlength" key="${var:maxlength}"/>
+    <var>
+      <var-name>maxlength</var-name>
+      <var-value>256</var-value>
+    </var>
+</field>
+</form>
+</formset>
+</form-validation>

+ 3 - 0
generated/validator/resources_a_mdo0082Form_validator.properties

@@ -0,0 +1,3 @@
+a_mdo0082.pid = \u9879\u76EEid
+a_mdo0082.type = 1pdf2word3html
+a_mdo0082Form = true

+ 3 - 0
generated/validator/resources_a_mdo0082Form_validator_zh_CN.properties

@@ -0,0 +1,3 @@
+a_mdo0082.pid = \u9879\u76EEid
+a_mdo0082.type = 1pdf2word3html
+a_mdo0082Form = true

+ 2 - 0
generated/validator/resources_d_mdo0082Form_validator.properties

@@ -0,0 +1,2 @@
+d_mdo0082.pid = \u9879\u76EEid
+d_mdo0082Form = true

+ 2 - 0
generated/validator/resources_d_mdo0082Form_validator_zh_CN.properties

@@ -0,0 +1,2 @@
+d_mdo0082.pid = \u9879\u76EEid
+d_mdo0082Form = true

+ 14 - 0
pom.xml

@@ -45,6 +45,20 @@
         <!--                </exclusion>-->
         <!--            </exclusions>-->
         <!--        </dependency>-->
+
+
+            <dependency>
+                <groupId>com.itextpdf</groupId>
+                <artifactId>itext7-core</artifactId>
+                <version>7.1.16</version>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>com.itextpdf</groupId>
+                <artifactId>html2pdf</artifactId>
+                <version>3.0.1</version>
+            </dependency>
+
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>

+ 126 - 0
src/main/java/com/miniframe/bisiness/mdo/MDO0082Service.java

@@ -0,0 +1,126 @@
+package com.miniframe.bisiness.mdo;
+
+import com.itextpdf.html2pdf.HtmlConverter;
+import com.itextpdf.kernel.pdf.PdfDocument;
+import com.itextpdf.kernel.pdf.PdfWriter;
+import com.miniframe.core.ExecProcessFlow;
+import com.miniframe.core.exception.BusinessException;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.generate.business.mdo.model.MDO0082BaseModel;
+import com.miniframe.httpserver.HttpServerTransFile;
+import com.miniframe.mdo.service.LogService;
+import com.miniframe.modo.temp.TemplateGenerator;
+import com.miniframe.tools.XIFileUtils;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 西工大系统,“报告导出”逻辑处理(重新生成不覆盖)。
+ */
+public class MDO0082Service extends MDO0082BaseModel implements ExecProcessFlow {
+	
+	private static final long serialVersionUID = -7051358269847459502L;
+		
+	/**
+	 * 西工大系统,“报告导出”业务核心处理
+ 	 */
+	public void transExecute() throws Exception {
+		String pid = this.getA_mdo0082().getPid();
+		Integer type =this.getA_mdo0082().getType();
+		String report;
+		ByteArrayOutputStream baos =new ByteArrayOutputStream();
+		try {
+			report=XIFileUtils.readFileAsString(LogService.BPATH+"/"+pid+"/in/outdata/OPTIMUM_RESULT_GOOD.dat");
+		}catch (Exception e){
+			throw  new BusinessException("MDO000015");
+		}
+		if(type==1){//pdf
+			Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+			// 设置模板所在目录
+			cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+			// 获取模板对象
+			Template template = cfg.getTemplate("report.xml");
+			// 定义数据模型(Map)
+			Map<String, Object> dataModel = new HashMap<>();
+			StringWriter writer = new StringWriter();
+			dataModel.put("report",report);
+			template.process(dataModel, writer);
+			HtmlConverter.convertToPdf(writer.toString(), baos);
+			// 关闭文档和写入器以释放资源
+			System.out.println("PDF created successfully.");
+			HttpServerTransFile transFile = new HttpServerTransFile(
+					URLEncoder.encode(pid+".pdf", "UTF-8"),
+					"application/octet-stream", baos);
+			UtilTools.setHttpServerTransFile(transFile);
+		}else if(type ==2){//word
+			Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+			// 设置模板所在目录
+			cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+			// 获取模板对象
+			Template template = cfg.getTemplate("report.xml");
+			// 定义数据模型(Map)
+			Map<String, Object> dataModel = new HashMap<>();
+			dataModel.put("report",report);
+			// 将数据模型传入模板进行处理
+			StringWriter writer = new StringWriter();
+			template.process(dataModel, writer);
+			baos.write(writer.toString().getBytes(StandardCharsets.UTF_8));
+			HttpServerTransFile transFile = new HttpServerTransFile(
+					URLEncoder.encode(pid+".docx", "UTF-8"),
+					"application/octet-stream", baos);
+			UtilTools.setHttpServerTransFile(transFile);
+		}else if(type ==3) {//html
+			Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+			// 设置模板所在目录
+			cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+			// 获取模板对象
+			Template template = cfg.getTemplate("report.html");
+			// 定义数据模型(Map)
+			Map<String, Object> dataModel = new HashMap<>();
+			StringWriter writer = new StringWriter();
+			dataModel.put("report",report);
+			template.process(dataModel, writer);
+			baos.write(writer.toString().getBytes(StandardCharsets.UTF_8));
+			HttpServerTransFile transFile = new HttpServerTransFile(
+					URLEncoder.encode(pid+".html", "UTF-8"),
+					"application/octet-stream", baos);
+			UtilTools.setHttpServerTransFile(transFile);
+		}
+	}
+	
+	/**
+	 * 西工大系统,“报告导出”业务前处理
+ 	 */
+	public void preTransFlow() throws Exception {
+		this.validater();
+	}
+	
+	/**
+	 * 西工大系统,“报告导出”业务后处理
+ 	 */
+	public void afterTransFlow() throws Exception {
+	
+	}
+	
+	/**
+	 * 西工大系统,“报告导出”逻辑入口处理方法
+ 	 */
+ 	@SuppressWarnings("rawtypes")
+	@Override
+	public Map execute(Map vars) throws Exception {
+		this.setTransMap(vars);
+		preTransFlow();// 执行业务开始的规则检查和校验
+		transExecute();// 执行核心业务段
+		afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
+		return this.getTransMap();
+	}
+
+}

+ 4 - 4
src/main/java/com/miniframe/tools/docker/DockerExe.java

@@ -23,10 +23,10 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class DockerExe {
-//    public static  String DOCKERHOST="tcp://127.0.0.1:2375/";
-//    public static  String APIVERSION="26.1.0";
-    public static final String DOCKERHOST="tcp://192.168.0.132:2375/";
-    public static final String APIVERSION="1.13.1";
+    public static  String DOCKERHOST="tcp://127.0.0.1:2375/";
+    public static  String APIVERSION="26.1.0";
+//    public static final String DOCKERHOST="tcp://192.168.0.132:2375/";
+//    public static final String APIVERSION="1.13.1";
     // 获取容器信息
     public static String getDocker(String pid){
         DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder()

Файловите разлики са ограничени, защото са твърде много
+ 70 - 0
src/main/resources/templates/report.html


Файловите разлики са ограничени, защото са твърде много
+ 2 - 0
src/main/resources/templates/report.xml


+ 42 - 0
src/test/java/com/miniframe/PdfTest.java

@@ -0,0 +1,42 @@
+package com.miniframe;
+
+import com.miniframe.mdo.service.LogService;
+import com.miniframe.modo.temp.TemplateGenerator;
+import com.miniframe.modo.xml.input.Optimizer_GA_Input;
+import com.miniframe.tools.XiJsonUtil;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
+import org.apache.poi.xwpf.usermodel.XWPFRun;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+import java.io.*;
+import java.util.HashMap;
+import java.util.Map;
+
+public class PdfTest {
+
+
+    public static void main(String[] args) throws Exception {
+        Configuration cfg = new Configuration(Configuration.VERSION_2_3_0);
+        // 设置模板所在目录
+        cfg.setClassForTemplateLoading(TemplateGenerator.class, "/templates");
+        // 获取模板对象
+        Template template = cfg.getTemplate("report.xml");
+        // 定义数据模型(Map)
+        Map<String, Object> dataModel = new HashMap<>();
+
+        dataModel.put("report","这是动态添加的内容");
+        //dataModel.put("geoFilePath", BPATH + "/" + aid + "/" + jid + "/Geometry");
+        // 将数据模型传入模板进行处理
+        StringWriter writer = new StringWriter();
+        template.process(dataModel, writer);
+        FileWriter fileWriter = new FileWriter("D://output2.pdf");
+        fileWriter.write(writer.toString());
+        fileWriter.close();
+    }
+
+}

+ 44 - 0
src/test/java/com/miniframe/comm/httpmdoapater/MDO0082Test.java

@@ -0,0 +1,44 @@
+package com.miniframe.comm.httpmdoapater;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.miniframe.comm.httpmdoapater.HttpmdoapaterUtil;
+import com.miniframe.generate.comm.mdo.A_MDO0082;
+import com.miniframe.generate.comm.httpmdoapater.MDO0082Client;
+import com.miniframe.generate.business.mdo.model.MDO0082BaseModel;
+
+public class MDO0082Test {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0082Test.class);
+
+	/**
+	 * 报告导出,获取报文体
+	 * @return
+	 */
+	public static A_MDO0082 getA_mdo0082() {
+		A_MDO0082 a_mdo0082 = new A_MDO0082();
+
+		// ----------以下增加【报告导出】上行体赋值-------------
+
+
+
+		// ---------------------------------------------------
+		return a_mdo0082;
+	}
+	
+	/**
+	 * 运行客户端测试,报告导出
+	 * 
+	 * @param args
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		MDO0082BaseModel model = new MDO0082BaseModel();
+		model.setA_mdohead(HttpmdoapaterUtil.getA_mdohead("MDO0082"));
+		model.setA_mdo0082(MDO0082Test.getA_mdo0082());
+		MDO0082Client client = new MDO0082Client();
+		logger.error("客户端发送前总线:\r\n"+model);
+		model = client.execute(model);
+		logger.error("客户端发送后总线:\r\n"+model);
+	}
+}

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

@@ -78,4 +78,5 @@
 
 3000011,MDO000012,Cst 数据错误!,
 3000013,MDO000013,设计变量 {0} 不存在!,
-3000014,MDO000014,导入xlsx 格式错误,请下载模版编辑!,
+3000014,MDO000014,导入xlsx 格式错误,请下载模版编辑!,
+3000015,MDO000015,未生成结果!,

+ 3 - 1
系统设计/系统模块/MDO(西工大系统).csv

@@ -88,4 +88,6 @@
 100079,MDO0079,项目后处理文件删除,service,
 
 100080,MDO0080,设计变量模版导出,service,
-100081,MDO0081,设计变量模版导入,service,
+100081,MDO0081,设计变量模版导入,service,
+
+100082,MDO0082,报告导出,service,

+ 3 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0082_A(报告导出).csv

@@ -0,0 +1,3 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
+1,pid,项目id,string,,,是,1,256,,,,,,
+2,type,1 pdf 2 word 3 html,int,,,是,,,,,,,,

+ 2 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0082_D(报告导出).csv

@@ -0,0 +1,2 @@
+序号,英文名称,中文名称,数据类型,默认值,格式化,非空/引用,最小(长度/值),最大(长度/值),验证规则,标准数据ID,XML样式,TAG标签,映射/子标签,CDATA
+1,pid,项目id,string,,,是,1,256,,,,,,

Някои файлове не бяха показани, защото твърде много файлове са промени