Jelajahi Sumber

cgns 解析

huangxingxing 5 bulan lalu
induk
melakukan
266cef75ef
30 mengubah file dengan 898 tambahan dan 2 penghapusan
  1. 2 0
      dbscript/init/generate/03-functionInit.sql
  2. 112 0
      generated/com/miniframe/generate/business/mdo/model/MDO0061BaseModel.java
  3. 112 0
      generated/com/miniframe/generate/business/mdo/model/MDO0062BaseModel.java
  4. 99 0
      generated/com/miniframe/generate/comm/httpmdoapater/MDO0061Client.java
  5. 99 0
      generated/com/miniframe/generate/comm/httpmdoapater/MDO0062Client.java
  6. 25 0
      generated/com/miniframe/generate/comm/mdo/A_MDO0061.java
  7. 25 0
      generated/com/miniframe/generate/comm/mdo/A_MDO0062.java
  8. 12 0
      generated/com/miniframe/generate/comm/mdo/D_MDO0061.java
  9. 12 0
      generated/com/miniframe/generate/comm/mdo/D_MDO0062.java
  10. 12 0
      generated/validateform/a_mdo0061Form.xml
  11. 12 0
      generated/validateform/a_mdo0062Form.xml
  12. 2 0
      generated/validator/resources_a_mdo0061Form_validator.properties
  13. 2 0
      generated/validator/resources_a_mdo0061Form_validator_zh_CN.properties
  14. 2 0
      generated/validator/resources_a_mdo0062Form_validator.properties
  15. 2 0
      generated/validator/resources_a_mdo0062Form_validator_zh_CN.properties
  16. 1 0
      generated/validator/resources_d_mdo0061Form_validator.properties
  17. 1 0
      generated/validator/resources_d_mdo0061Form_validator_zh_CN.properties
  18. 1 0
      generated/validator/resources_d_mdo0062Form_validator.properties
  19. 1 0
      generated/validator/resources_d_mdo0062Form_validator_zh_CN.properties
  20. 132 0
      src/main/java/com/miniframe/bisiness/mdo/MDO0061Service.java
  21. 78 0
      src/main/java/com/miniframe/bisiness/mdo/MDO0062Service.java
  22. 5 2
      src/main/java/com/miniframe/tools/XIFileUtils.java
  23. 52 0
      src/main/java/com/miniframe/tools/docker/DockerExe.java
  24. 44 0
      src/test/java/com/miniframe/comm/httpmdoapater/MDO0061Test.java
  25. 44 0
      src/test/java/com/miniframe/comm/httpmdoapater/MDO0062Test.java
  26. 3 0
      系统设计/系统模块/MDO(西工大系统).csv
  27. 2 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0061_A(cgns文件解析).csv
  28. 1 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0061_D(cgns文件解析).csv
  29. 2 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0062_A(cgns文件解析结果获取).csv
  30. 1 0
      系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0062_D(cgns文件解析结果获取).csv

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

@@ -57,6 +57,8 @@ INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MD
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0058', '西工大系统','流程添加修改',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0059', '西工大系统','流程删除',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0060', '西工大系统','hdf5获取',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0061', '西工大系统','cgns文件解析',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('MDO0062', '西工大系统','cgns文件解析结果获取',true);
 -- 基础系统
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('A00000', '基础系统','获取图片验证码',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('A00001', '基础系统','获取短信验证码',true);

+ 112 - 0
generated/com/miniframe/generate/business/mdo/model/MDO0061BaseModel.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_MDO0061;
+import com.miniframe.generate.comm.mdo.D_MDO0061;
+
+/**
+ * 系统服务,“cgns文件解析”模型类(不要维护,重新生成将覆盖)。
+ */
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class MDO0061BaseModel extends BaseMapModel {
+
+	private static final long serialVersionUID = -1326184831746814093L;
+
+	A_MDOHEAD a_mdohead;//上行头
+	D_MDOHEAD d_mdohead;//下行头
+	A_MDO0061 a_mdo0061;//上行体
+	D_MDO0061 d_mdo0061;//下行体
+
+	public MDO0061BaseModel(){
+		a_mdohead=new A_MDOHEAD();
+		d_mdohead=new D_MDOHEAD();
+		a_mdo0061=new A_MDO0061();
+		d_mdo0061=new D_MDO0061();
+	}
+
+	public void validater() throws Exception {
+		this.a_mdohead.validater();
+		this.a_mdo0061.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_MDO0061.class);
+		this.a_mdo0061 = UtilTools.map2Obj(bodyMap, A_MDO0061.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_mdo0061));
+
+		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_MDO0061 getA_mdo0061() {
+		return a_mdo0061;
+	}
+
+	public void setA_mdo0061(A_MDO0061 a_mdo0061) {
+		this.a_mdo0061=a_mdo0061;
+	}
+
+	public D_MDO0061 getD_mdo0061() {
+		return this.d_mdo0061;
+	}
+
+	public void setD_mdo0061(D_MDO0061 d_mdo0061) {
+		this.d_mdo0061=d_mdo0061;
+	}
+
+	@Override
+	public String toString() {
+		try {
+			return UtilTools.obj2Json(this,true);
+		} catch (IOException e) {
+			return "";
+		}
+	}
+}

+ 112 - 0
generated/com/miniframe/generate/business/mdo/model/MDO0062BaseModel.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_MDO0062;
+import com.miniframe.generate.comm.mdo.D_MDO0062;
+
+/**
+ * 系统服务,“cgns文件解析结果获取”模型类(不要维护,重新生成将覆盖)。
+ */
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class MDO0062BaseModel extends BaseMapModel {
+
+	private static final long serialVersionUID = -1326184831746814093L;
+
+	A_MDOHEAD a_mdohead;//上行头
+	D_MDOHEAD d_mdohead;//下行头
+	A_MDO0062 a_mdo0062;//上行体
+	D_MDO0062 d_mdo0062;//下行体
+
+	public MDO0062BaseModel(){
+		a_mdohead=new A_MDOHEAD();
+		d_mdohead=new D_MDOHEAD();
+		a_mdo0062=new A_MDO0062();
+		d_mdo0062=new D_MDO0062();
+	}
+
+	public void validater() throws Exception {
+		this.a_mdohead.validater();
+		this.a_mdo0062.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_MDO0062.class);
+		this.a_mdo0062 = UtilTools.map2Obj(bodyMap, A_MDO0062.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_mdo0062));
+
+		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_MDO0062 getA_mdo0062() {
+		return a_mdo0062;
+	}
+
+	public void setA_mdo0062(A_MDO0062 a_mdo0062) {
+		this.a_mdo0062=a_mdo0062;
+	}
+
+	public D_MDO0062 getD_mdo0062() {
+		return this.d_mdo0062;
+	}
+
+	public void setD_mdo0062(D_MDO0062 d_mdo0062) {
+		this.d_mdo0062=d_mdo0062;
+	}
+
+	@Override
+	public String toString() {
+		try {
+			return UtilTools.obj2Json(this,true);
+		} catch (IOException e) {
+			return "";
+		}
+	}
+}

+ 99 - 0
generated/com/miniframe/generate/comm/httpmdoapater/MDO0061Client.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_MDO0061;
+import com.miniframe.generate.comm.mdo.D_MDOHEAD;
+
+import com.miniframe.generate.business.mdo.model.MDO0061BaseModel;
+
+public class MDO0061Client {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0061Client.class);
+	private MFHttpRespInfo respInfo;
+
+	public MFHttpRespInfo getRespInfo(){
+		return respInfo;
+	}
+
+	/**
+	 * 调用 [系统服务->cgns文件解析((MDO0061)]的通讯接口
+	 * @param model 接口模型
+	 * @param extMap 扩展输入
+	 * @param url 请求地址
+	 * @return model 接口模型
+	 * @throws Exception
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0061BaseModel execute(MDO0061BaseModel model,final Map extMap,final String url) throws Exception {
+		this.executeToRespInfo(model,extMap,url);
+		return model;
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0061BaseModel execute(MDO0061BaseModel model,final Map extMap) throws Exception {
+		this.executeToRespInfo(model,extMap,null);
+		return model;
+	}
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MFHttpRespInfo executeToRespInfo(MDO0061BaseModel model,final Map extMap,final String url) throws Exception {
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0061BaseModel) - start");
+		}
+
+		if(UtilTools.isNullOrBlank(model.getA_mdohead().getTransCode())){
+			model.getA_mdohead().setTransCode("MDO0061");
+		}
+
+		Map inMap = new LinkedHashMap();
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdohead()));
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdo0061()));
+		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_MDO0061 d_mdo0061 =  UtilTools.map2Obj(outMap, D_MDO0061.class);
+			model.setD_mdohead(d_mdohead);
+			model.setD_mdo0061(d_mdo0061);
+
+
+		}
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0061BaseModel) - end");
+		}
+
+        this.respInfo=respInfo;
+
+		return respInfo;
+	}
+
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0061BaseModel execute(MDO0061BaseModel model) throws Exception {
+		return this.execute(model,null,null);
+	}
+
+
+}

+ 99 - 0
generated/com/miniframe/generate/comm/httpmdoapater/MDO0062Client.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_MDO0062;
+import com.miniframe.generate.comm.mdo.D_MDOHEAD;
+
+import com.miniframe.generate.business.mdo.model.MDO0062BaseModel;
+
+public class MDO0062Client {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0062Client.class);
+	private MFHttpRespInfo respInfo;
+
+	public MFHttpRespInfo getRespInfo(){
+		return respInfo;
+	}
+
+	/**
+	 * 调用 [系统服务->cgns文件解析结果获取((MDO0062)]的通讯接口
+	 * @param model 接口模型
+	 * @param extMap 扩展输入
+	 * @param url 请求地址
+	 * @return model 接口模型
+	 * @throws Exception
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0062BaseModel execute(MDO0062BaseModel model,final Map extMap,final String url) throws Exception {
+		this.executeToRespInfo(model,extMap,url);
+		return model;
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0062BaseModel execute(MDO0062BaseModel model,final Map extMap) throws Exception {
+		this.executeToRespInfo(model,extMap,null);
+		return model;
+	}
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MFHttpRespInfo executeToRespInfo(MDO0062BaseModel model,final Map extMap,final String url) throws Exception {
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0062BaseModel) - start");
+		}
+
+		if(UtilTools.isNullOrBlank(model.getA_mdohead().getTransCode())){
+			model.getA_mdohead().setTransCode("MDO0062");
+		}
+
+		Map inMap = new LinkedHashMap();
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdohead()));
+		inMap.putAll(UtilTools.obj2Map(model.getA_mdo0062()));
+		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_MDO0062 d_mdo0062 =  UtilTools.map2Obj(outMap, D_MDO0062.class);
+			model.setD_mdohead(d_mdohead);
+			model.setD_mdo0062(d_mdo0062);
+
+
+		}
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(MDO0062BaseModel) - end");
+		}
+
+        this.respInfo=respInfo;
+
+		return respInfo;
+	}
+
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MDO0062BaseModel execute(MDO0062BaseModel model) throws Exception {
+		return this.execute(model,null,null);
+	}
+
+
+}

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

@@ -0,0 +1,25 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * cgns文件解析
+ */
+public class A_MDO0061 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String fid;//文件id
+	/**
+	 *文件id
+	 */
+	public void setFid(String fid) {
+		this.fid=fid;
+	}
+	/**
+	 *文件id
+	 */
+	public String getFid() {
+		return this.fid;
+	}
+}

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

@@ -0,0 +1,25 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * cgns文件解析结果获取
+ */
+public class A_MDO0062 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String fid;//文件id
+	/**
+	 *文件id
+	 */
+	public void setFid(String fid) {
+		this.fid=fid;
+	}
+	/**
+	 *文件id
+	 */
+	public String getFid() {
+		return this.fid;
+	}
+}

+ 12 - 0
generated/com/miniframe/generate/comm/mdo/D_MDO0061.java

@@ -0,0 +1,12 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * cgns文件解析
+ */
+public class D_MDO0061 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+}

+ 12 - 0
generated/com/miniframe/generate/comm/mdo/D_MDO0062.java

@@ -0,0 +1,12 @@
+/**
+ * 系统服务
+ */
+package com.miniframe.generate.comm.mdo;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * cgns文件解析结果获取
+ */
+public class D_MDO0062 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+}

+ 12 - 0
generated/validateform/a_mdo0061Form.xml

@@ -0,0 +1,12 @@
+<?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">
+<!-- cgns文件解析Form配置文件系统生成请勿修改,否则重新生成将覆盖 -->
+<form-validation>
+<formset>
+<form name="a_mdo0061Form">
+<field property="fid" depends="required">
+    <arg0 key="a_mdo0061.fid"/>
+</field>
+</form>
+</formset>
+</form-validation>

+ 12 - 0
generated/validateform/a_mdo0062Form.xml

@@ -0,0 +1,12 @@
+<?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">
+<!-- cgns文件解析结果获取Form配置文件系统生成请勿修改,否则重新生成将覆盖 -->
+<form-validation>
+<formset>
+<form name="a_mdo0062Form">
+<field property="fid" depends="required">
+    <arg0 key="a_mdo0062.fid"/>
+</field>
+</form>
+</formset>
+</form-validation>

+ 2 - 0
generated/validator/resources_a_mdo0061Form_validator.properties

@@ -0,0 +1,2 @@
+a_mdo0061.fid = \u6587\u4EF6id
+a_mdo0061Form = true

+ 2 - 0
generated/validator/resources_a_mdo0061Form_validator_zh_CN.properties

@@ -0,0 +1,2 @@
+a_mdo0061.fid = \u6587\u4EF6id
+a_mdo0061Form = true

+ 2 - 0
generated/validator/resources_a_mdo0062Form_validator.properties

@@ -0,0 +1,2 @@
+a_mdo0062.fid = \u6587\u4EF6id
+a_mdo0062Form = true

+ 2 - 0
generated/validator/resources_a_mdo0062Form_validator_zh_CN.properties

@@ -0,0 +1,2 @@
+a_mdo0062.fid = \u6587\u4EF6id
+a_mdo0062Form = true

+ 1 - 0
generated/validator/resources_d_mdo0061Form_validator.properties

@@ -0,0 +1 @@
+d_mdo0061Form = false

+ 1 - 0
generated/validator/resources_d_mdo0061Form_validator_zh_CN.properties

@@ -0,0 +1 @@
+d_mdo0061Form = false

+ 1 - 0
generated/validator/resources_d_mdo0062Form_validator.properties

@@ -0,0 +1 @@
+d_mdo0062Form = false

+ 1 - 0
generated/validator/resources_d_mdo0062Form_validator_zh_CN.properties

@@ -0,0 +1 @@
+d_mdo0062Form = false

+ 132 - 0
src/main/java/com/miniframe/bisiness/mdo/MDO0061Service.java

@@ -0,0 +1,132 @@
+package com.miniframe.bisiness.mdo;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+import com.github.dockerjava.api.async.ResultCallback;
+import com.github.dockerjava.api.model.Frame;
+import com.miniframe.core.ExecProcessFlow;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.generate.business.mdo.model.MDO0061BaseModel;
+import com.miniframe.mdo.service.LogService;
+import com.miniframe.model.mdo.MdoProComvalSQLBuilder;
+import com.miniframe.model.mdo.dao.MdoProComvalMapper;
+import com.miniframe.model.system.SysFile;
+import com.miniframe.model.system.SysFileSQLBuilder;
+import com.miniframe.model.system.dao.SysFileMapper;
+import com.miniframe.tools.XIFileUtils;
+import com.miniframe.tools.XIUtils;
+import com.miniframe.tools.docker.DockerExe;
+import com.miniframe.tools.file.*;
+import com.miniframe.websocket.WebsocketEndPoint;
+
+/**
+ * 西工大系统,“cgns文件解析”逻辑处理(重新生成不覆盖)。
+ */
+public class MDO0061Service extends MDO0061BaseModel implements ExecProcessFlow {
+	
+	private static final long serialVersionUID = -7051358269847459502L;
+		
+	/**
+	 * 西工大系统,“cgns文件解析”业务核心处理
+ 	 */
+	public void transExecute() throws Exception {
+		String fid = this.getA_mdo0061().getFid();
+		Map<String, Object> result = new HashMap<>();
+		SysFileMapper sysFileDAO = UtilTools.getBean(SysFileMapper.class);
+		SysFile sysFile = sysFileDAO.selectByPrimaryKey(fid);
+
+		//删除上次解析数据
+		SysFileSQLBuilder fsb  =new SysFileSQLBuilder();
+		SysFileSQLBuilder.Criteria fsc = fsb.createCriteria();
+		fsc.andParentidEqualTo(fid);
+		List<SysFile> fList = sysFileDAO.selectByExample(fsb);
+		for (SysFile f:fList) {
+			XIFileUtils.delete(XIFileUtils.getRootPathStr()+"/"+f.getFilepath());
+		}
+		sysFileDAO.deleteByExample(fsb);
+		run(sysFile);
+
+	}
+	private  void sendMsg(String fid,String log){
+		CompletableFuture<Void> cf = CompletableFuture.supplyAsync(()->{
+			WebsocketEndPoint webs =  (WebsocketEndPoint) UtilTools.getBean("websocketEndPoint");
+			webs.sendMessageToUser(fid,log);
+			return null;
+		});
+	}
+
+	private void run(SysFile file) throws Exception {
+		DockerExe.stopDocker(file.getId());
+		DockerExe.cgnsToJson(file);
+		final int[] con = {0};
+		final String[] line = {""};
+		CompletableFuture<Void> cf = CompletableFuture.supplyAsync(()-> {
+			try {
+			DockerExe.getDockerLogs(file.getId(),new ResultCallback.Adapter<Frame>() {
+				@Override
+				public void onNext(Frame frame) {
+					if(con[0] <100){
+						line[0]+=new String(frame.getPayload());
+						con[0]++;
+					}else{
+						sendMsg(file.getId(), line[0]);
+						line[0]="";
+						con[0] =0;
+					}
+					sendMsg(file.getId(), line[0]);
+					System.out.print(new String(frame.getPayload()));
+					super.onNext(frame);
+				}
+
+				@Override
+				public void onError(Throwable throwable) {
+					System.err.println("日志获取失败");
+					throwable.printStackTrace();
+					super.onError(throwable);
+				}
+				@Override
+				public void onComplete() {
+					System.out.println("日志获取完成");
+					super.onComplete();
+				}
+			});
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+			return null;
+		});
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析”业务前处理
+ 	 */
+	public void preTransFlow() throws Exception {
+		this.validater();
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析”业务后处理
+ 	 */
+	public void afterTransFlow() throws Exception {
+	
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析”逻辑入口处理方法
+ 	 */
+ 	@SuppressWarnings("rawtypes")
+	@Override
+	public Map execute(Map vars) throws Exception {
+		this.setTransMap(vars);
+		preTransFlow();// 执行业务开始的规则检查和校验
+		transExecute();// 执行核心业务段
+		afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
+		return this.getTransMap();
+	}
+
+}

+ 78 - 0
src/main/java/com/miniframe/bisiness/mdo/MDO0062Service.java

@@ -0,0 +1,78 @@
+package com.miniframe.bisiness.mdo;
+
+import java.nio.file.Path;
+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.mdo.model.MDO0062BaseModel;
+import com.miniframe.httpserver.HttpServerTransFile;
+import com.miniframe.model.system.SysFile;
+import com.miniframe.model.system.SysFileSQLBuilder;
+import com.miniframe.model.system.dao.SysFileMapper;
+import com.miniframe.tools.XIFileUtils;
+import com.miniframe.utils.MFMimeTypeUtils;
+
+/**
+ * 西工大系统,“cgns文件解析结果获取”逻辑处理(重新生成不覆盖)。
+ */
+public class MDO0062Service extends MDO0062BaseModel implements ExecProcessFlow {
+	
+	private static final long serialVersionUID = -7051358269847459502L;
+		
+	/**
+	 * 西工大系统,“cgns文件解析结果获取”业务核心处理
+ 	 */
+	public void transExecute() throws Exception {
+		String fid =getA_mdo0062().getFid();
+		SysFileMapper fileMapper = UtilTools.getBean(SysFileMapper.class);
+		SysFileSQLBuilder  sb  = new SysFileSQLBuilder();
+		SysFileSQLBuilder.Criteria sc =sb .createCriteria();
+		sc.andParentidEqualTo(fid);
+		sc.andFilemediaEqualTo("json");
+		List<SysFile> flist = fileMapper.selectByExample(sb);
+		if(!flist.isEmpty()){
+			SysFile getFile = flist.get(0);
+			if (null != getFile) {
+				Path path = XIFileUtils.getAbsolutePath(getFile.getFilepath());
+				String fileName = getFile.getFilename();
+				String mimeType = MFMimeTypeUtils.getMimeType(path);
+				HttpServerTransFile transFile = new HttpServerTransFile(fileName, mimeType, path);
+				UtilTools.setHttpServerTransFile(transFile);
+				//此处直接返回二进制文件流
+			}else{
+				throw new BusinessException("EB2000008");
+			}
+		}
+
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析结果获取”业务前处理
+ 	 */
+	public void preTransFlow() throws Exception {
+		this.validater();
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析结果获取”业务后处理
+ 	 */
+	public void afterTransFlow() throws Exception {
+	
+	}
+	
+	/**
+	 * 西工大系统,“cgns文件解析结果获取”逻辑入口处理方法
+ 	 */
+ 	@SuppressWarnings("rawtypes")
+	@Override
+	public Map execute(Map vars) throws Exception {
+		this.setTransMap(vars);
+		preTransFlow();// 执行业务开始的规则检查和校验
+		transExecute();// 执行核心业务段
+		afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
+		return this.getTransMap();
+	}
+
+}

+ 5 - 2
src/main/java/com/miniframe/tools/XIFileUtils.java

@@ -213,8 +213,11 @@ public class XIFileUtils {
     public static String saveUploadFiles(String files, String userid, String fileMedia) throws Exception {
         return saveUploadFiles(files, userid, fileMedia, null, null, null, 1, null,1,1,null);
     }
-
-    public static String saveUploadFiles(String files, String userid, String fileMedia, String fileType, String fileStartTime,
+    public static String saveUploadFiles(String files, String userid, String fileMedia,String bFid) throws Exception {
+        return saveUploadFiles(files, userid, fileMedia, null, null, null, 1, null,1,1,bFid);
+    }
+    public static String saveUploadFiles(String files, String userid, String fileMedia,
+                                         String fileType, String fileStartTime,
                                          String fileInfo, int fileNameType, String needOp,
                                          Integer chunk, Integer chunks, String bFid
                                             ) throws Exception {

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

@@ -12,7 +12,11 @@ import com.github.dockerjava.core.DockerClientBuilder;
 import com.github.dockerjava.core.DockerClientConfig;
 import com.github.dockerjava.httpclient5.ApacheDockerHttpClient;
 import com.github.dockerjava.transport.DockerHttpClient;
+import com.miniframe.model.system.SysFile;
+import com.miniframe.tools.XIFileUtils;
 
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -223,6 +227,54 @@ public class DockerExe {
         System.out.println("容器启动成功,ID: " + container.getId());
     }
 
+
+    public static void cgnsToJson(SysFile file) throws Exception {
+        DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder()
+                .withDockerHost(DOCKERHOST) // 设置 Docker 主机地址
+                .withDockerTlsVerify(false) // 启用 TLS 验证
+                .withApiVersion(APIVERSION) // 设置 API 版本
+                .build();
+        DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder()
+                .dockerHost(config.getDockerHost())
+                .sslConfig(config.getSSLConfig())
+                .build();
+        DockerClient dockerClient = DockerClientBuilder.getInstance(config)
+                .withDockerHttpClient(httpClient)
+                .build();
+
+        Path path = Paths.get(XIFileUtils.getRootPathStr()+"/"+file.getFilepath());
+        // 获取文件夹路径
+        String directory = path.toString();
+        Mount wokerMount = new Mount()
+                .withType(MountType.BIND)
+                .withSource(directory)
+                .withTarget(directory)
+                .withReadOnly(false);
+        List<Mount> am =new ArrayList<>();
+        am.add(wokerMount);
+        String hdfFile =directory+"/"+file.getFilename().replace(".cgns","_hdf5.cgns");
+        String jsonFile =directory+"/"+file.getFilename().replace(".cgns","_data.json");
+        XIFileUtils.saveUploadFiles(hdfFile, "uid","hdf5",file.getId());
+        XIFileUtils.saveUploadFiles(jsonFile, "uid","json",file.getId());
+        //创建容器
+        CreateContainerResponse container = dockerClient
+                .createContainerCmd("cgnsconver:1.0")//镜像名称
+                .withName(file.getId())//容器名称
+                .withHostConfig(
+                        HostConfig.newHostConfig()
+                                .withMounts(am)
+                ).withCmd("bash", "-c", "source /root/miniconda3/etc/profile.d/conda.sh" +
+                        " && conda activate pycgns-env" +
+                        " && cd /home/python/mdo/" +
+                        " && python cgnsConver.py" +
+                        " "+XIFileUtils.getRootPathStr()+"/"+file.getFilepath() +
+                        " " +hdfFile+
+                        " " +jsonFile)
+                .exec();
+        System.out.println("容器启动成功,ID: " + container.getId());
+    }
+
+
     public static void main(String[] args) {
         stopDocker("6cb37eea2845457ca17ba6441804af43");
         runMdo2("6cb37eea2845457ca17ba6441804af43");

+ 44 - 0
src/test/java/com/miniframe/comm/httpmdoapater/MDO0061Test.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_MDO0061;
+import com.miniframe.generate.comm.httpmdoapater.MDO0061Client;
+import com.miniframe.generate.business.mdo.model.MDO0061BaseModel;
+
+public class MDO0061Test {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0061Test.class);
+
+	/**
+	 * CGNS文件解析,获取报文体
+	 * @return
+	 */
+	public static A_MDO0061 getA_mdo0061() {
+		A_MDO0061 a_mdo0061 = new A_MDO0061();
+
+		// ----------以下增加【CGNS文件解析】上行体赋值-------------
+
+
+
+		// ---------------------------------------------------
+		return a_mdo0061;
+	}
+	
+	/**
+	 * 运行客户端测试,CGNS文件解析
+	 * 
+	 * @param args
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		MDO0061BaseModel model = new MDO0061BaseModel();
+		model.setA_mdohead(HttpmdoapaterUtil.getA_mdohead("MDO0061"));
+		model.setA_mdo0061(MDO0061Test.getA_mdo0061());
+		MDO0061Client client = new MDO0061Client();
+		logger.error("客户端发送前总线:\r\n"+model);
+		model = client.execute(model);
+		logger.error("客户端发送后总线:\r\n"+model);
+	}
+}

+ 44 - 0
src/test/java/com/miniframe/comm/httpmdoapater/MDO0062Test.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_MDO0062;
+import com.miniframe.generate.comm.httpmdoapater.MDO0062Client;
+import com.miniframe.generate.business.mdo.model.MDO0062BaseModel;
+
+public class MDO0062Test {
+
+	private static final Logger logger = LoggerFactory.getLogger(MDO0062Test.class);
+
+	/**
+	 * CGNS文件解析结果获取,获取报文体
+	 * @return
+	 */
+	public static A_MDO0062 getA_mdo0062() {
+		A_MDO0062 a_mdo0062 = new A_MDO0062();
+
+		// ----------以下增加【CGNS文件解析结果获取】上行体赋值-------------
+
+
+
+		// ---------------------------------------------------
+		return a_mdo0062;
+	}
+	
+	/**
+	 * 运行客户端测试,CGNS文件解析结果获取
+	 * 
+	 * @param args
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		MDO0062BaseModel model = new MDO0062BaseModel();
+		model.setA_mdohead(HttpmdoapaterUtil.getA_mdohead("MDO0062"));
+		model.setA_mdo0062(MDO0062Test.getA_mdo0062());
+		MDO0062Client client = new MDO0062Client();
+		logger.error("客户端发送前总线:\r\n"+model);
+		model = client.execute(model);
+		logger.error("客户端发送后总线:\r\n"+model);
+	}
+}

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

@@ -64,3 +64,6 @@
 100058,MDO0058,流程添加修改,service,
 100059,MDO0059,流程删除,service,
 100060,MDO0060,hdf5获取,service,
+
+100061,MDO0061,cgns文件解析,service,
+100062,MDO0062,cgns文件解析结果获取,service,

+ 2 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0061_A(cgns文件解析).csv

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

+ 1 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0061_D(cgns文件解析).csv

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

+ 2 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0062_A(cgns文件解析结果获取).csv

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

+ 1 - 0
系统设计/通信设计/通讯报文/mdo(系统服务)/报文体/MDO0062_D(cgns文件解析结果获取).csv

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