huangxingxing 17 цаг өмнө
parent
commit
8818d6ba63

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

@@ -31,6 +31,7 @@ INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES0027', '无锡发动机','图片base64编码查询',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES0028', '无锡发动机','项目克隆',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES0029', '无锡发动机','组件复制',true);
+INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES0030', '无锡发动机','导入',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('ES1001', '无锡发动机','组件查询',true);
 INSERT INTO SYS_FUNCTION(FUNCTIONID, CLASSNAME, FUNCTIONNAME ,ENABLE)VALUES ('BES001', '无锡发动机','基础字典查询',true);
 -- 基础系统

+ 112 - 0
generated/com/miniframe/generate/business/es/model/ES0030BaseModel.java

@@ -0,0 +1,112 @@
+package com.miniframe.generate.business.es.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.es.A_ESHEAD;
+import com.miniframe.generate.comm.es.D_ESHEAD;
+import com.miniframe.generate.comm.es.A_ES0030;
+import com.miniframe.generate.comm.es.D_ES0030;
+
+/**
+ * 无锡发动机,“导入”模型类(不要维护,重新生成将覆盖)。
+ */
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class ES0030BaseModel extends BaseMapModel {
+
+	private static final long serialVersionUID = -1326184831746814093L;
+
+	A_ESHEAD a_eshead;//上行头
+	D_ESHEAD d_eshead;//下行头
+	A_ES0030 a_es0030;//上行体
+	D_ES0030 d_es0030;//下行体
+
+	public ES0030BaseModel(){
+		a_eshead=new A_ESHEAD();
+		d_eshead=new D_ESHEAD();
+		a_es0030=new A_ES0030();
+		d_es0030=new D_ES0030();
+	}
+
+	public void validater() throws Exception {
+		this.a_eshead.validater();
+		this.a_es0030.validater();
+	}
+
+	public void setTransMap(Map map) throws Exception {
+		Map headMap = HttpMapFormater.format(map, A_ESHEAD.class);
+		this.a_eshead = UtilTools.map2Obj(headMap, A_ESHEAD.class);
+		Map bodyMap = HttpMapFormater.format(map, A_ES0030.class);
+		this.a_es0030 = UtilTools.map2Obj(bodyMap, A_ES0030.class);
+	}
+
+	public Map getTransMap() throws Exception {
+		Map reMap = new LinkedHashMap();
+
+		if(UtilTools.isNullOrBlank((this.d_eshead).getTransCode())){
+			(this.d_eshead).setTransCode((this.a_eshead).getTransCode());
+		}
+		if(UtilTools.isNullOrBlank((this.d_eshead).getChannelNo())){
+			(this.d_eshead).setChannelNo((this.a_eshead).getChannelNo());
+		}
+		if(UtilTools.isNullOrBlank((this.d_eshead).getUserId())){
+			(this.d_eshead).setUserId((this.a_eshead).getUserId());
+		}
+        if(UtilTools.isNullOrBlank((this.d_eshead).getTransTime())){
+            (this.d_eshead).setTransTime(DateTimeFormatter.ofPattern(AppGlobalVariableSysconfig.DATETIMEFORMAT).format(ZonedDateTime.now()));
+        }
+
+		reMap.putAll(UtilTools.obj2Map(this.d_eshead));
+		reMap.putAll(UtilTools.obj2Map(this.d_es0030));
+
+		return reMap;
+	}
+
+	public A_ESHEAD getA_eshead() {
+		return this.a_eshead;
+	}
+
+	public void setA_eshead(A_ESHEAD a_eshead) {
+		this.a_eshead=a_eshead;
+	}
+
+	public D_ESHEAD getD_eshead() {
+		return d_eshead;
+	}
+
+	public void setD_eshead(D_ESHEAD d_eshead) {
+		this.d_eshead=d_eshead;
+	}
+
+	public A_ES0030 getA_es0030() {
+		return a_es0030;
+	}
+
+	public void setA_es0030(A_ES0030 a_es0030) {
+		this.a_es0030=a_es0030;
+	}
+
+	public D_ES0030 getD_es0030() {
+		return this.d_es0030;
+	}
+
+	public void setD_es0030(D_ES0030 d_es0030) {
+		this.d_es0030=d_es0030;
+	}
+
+	@Override
+	public String toString() {
+		try {
+			return UtilTools.obj2Json(this,true);
+		} catch (IOException e) {
+			return "";
+		}
+	}
+}

+ 38 - 0
generated/com/miniframe/generate/comm/es/A_ES0030.java

@@ -0,0 +1,38 @@
+/**
+ * 无锡发动机
+ */
+package com.miniframe.generate.comm.es;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * 导入
+ */
+public class A_ES0030 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String pid;//项目编码
+	/**
+	 *项目编码
+	 */
+	public void setPid(String pid) {
+		this.pid=pid;
+	}
+	/**
+	 *项目编码
+	 */
+	public String getPid() {
+		return this.pid;
+	}
+	String npid;//目标项目编码
+	/**
+	 *目标项目编码
+	 */
+	public void setNpid(String npid) {
+		this.npid=npid;
+	}
+	/**
+	 *目标项目编码
+	 */
+	public String getNpid() {
+		return this.npid;
+	}
+}

+ 38 - 0
generated/com/miniframe/generate/comm/es/D_ES0030.java

@@ -0,0 +1,38 @@
+/**
+ * 无锡发动机
+ */
+package com.miniframe.generate.comm.es;
+import com.miniframe.core.BaseMapModel;
+import java.io.Serializable;
+/**
+ * 导入
+ */
+public class D_ES0030 extends BaseMapModel implements Serializable {
+	private static final long serialVersionUID = -1463838678425832212L;
+	String cpjson;//映射结果Json
+	/**
+	 *映射结果Json
+	 */
+	public void setCpjson(String cpjson) {
+		this.cpjson=cpjson;
+	}
+	/**
+	 *映射结果Json
+	 */
+	public String getCpjson() {
+		return this.cpjson;
+	}
+	String oldflow;//被导入的flow
+	/**
+	 *被导入的flow
+	 */
+	public void setOldflow(String oldflow) {
+		this.oldflow=oldflow;
+	}
+	/**
+	 *被导入的flow
+	 */
+	public String getOldflow() {
+		return this.oldflow;
+	}
+}

+ 99 - 0
generated/com/miniframe/generate/comm/httpesapater/ES0030Client.java

@@ -0,0 +1,99 @@
+package com.miniframe.generate.comm.httpesapater;
+
+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.es.D_ES0030;
+import com.miniframe.generate.comm.es.D_ESHEAD;
+
+import com.miniframe.generate.business.es.model.ES0030BaseModel;
+
+public class ES0030Client {
+
+	private static final Logger logger = LoggerFactory.getLogger(ES0030Client.class);
+	private MFHttpRespInfo respInfo;
+
+	public MFHttpRespInfo getRespInfo(){
+		return respInfo;
+	}
+
+	/**
+	 * 调用 [无锡发动机->导入((ES0030)]的通讯接口
+	 * @param model 接口模型
+	 * @param extMap 扩展输入
+	 * @param url 请求地址
+	 * @return model 接口模型
+	 * @throws Exception
+	 */
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public ES0030BaseModel execute(ES0030BaseModel model,final Map extMap,final String url) throws Exception {
+		this.executeToRespInfo(model,extMap,url);
+		return model;
+	}
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public ES0030BaseModel execute(ES0030BaseModel model,final Map extMap) throws Exception {
+		this.executeToRespInfo(model,extMap,null);
+		return model;
+	}
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public MFHttpRespInfo executeToRespInfo(ES0030BaseModel model,final Map extMap,final String url) throws Exception {
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(ES0030BaseModel) - start");
+		}
+
+		if(UtilTools.isNullOrBlank(model.getA_eshead().getTransCode())){
+			model.getA_eshead().setTransCode("ES0030");
+		}
+
+		Map inMap = new LinkedHashMap();
+		inMap.putAll(UtilTools.obj2Map(model.getA_eshead()));
+		inMap.putAll(UtilTools.obj2Map(model.getA_es0030()));
+		if(extMap!=null && extMap.size()>0){
+			inMap.putAll(extMap);
+		}
+
+		Transmitter httpesApater = (Transmitter) UtilTools.getBean("httpesApater");
+		MFHttpRespInfo respInfo;
+		if(UtilTools.isNotNullAndBlank(url)){
+			respInfo = httpesApater.doPostDataToRespInfo(inMap,url);
+		}else{
+			respInfo = httpesApater.doPostDataToRespInfo(inMap);
+		}
+
+		if(respInfo!=null) {
+			Map outMap=respInfo.getParamMap();
+			D_ESHEAD d_eshead =  UtilTools.map2Obj(outMap, D_ESHEAD.class);
+			D_ES0030 d_es0030 =  UtilTools.map2Obj(outMap, D_ES0030.class);
+			model.setD_eshead(d_eshead);
+			model.setD_es0030(d_es0030);
+
+
+		}
+
+		if (logger.isDebugEnabled()) {
+			logger.debug("execute(ES0030BaseModel) - end");
+		}
+
+        this.respInfo=respInfo;
+
+		return respInfo;
+	}
+
+
+
+	@SuppressWarnings({ "rawtypes", "unchecked" })
+	public ES0030BaseModel execute(ES0030BaseModel model) throws Exception {
+		return this.execute(model,null,null);
+	}
+
+
+}

+ 15 - 0
generated/validateform/a_es0030Form.xml

@@ -0,0 +1,15 @@
+<?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_es0030Form">
+<field property="pid" depends="required">
+    <arg0 key="a_es0030.pid"/>
+</field>
+<field property="npid" depends="required">
+    <arg0 key="a_es0030.npid"/>
+</field>
+</form>
+</formset>
+</form-validation>

+ 15 - 0
generated/validateform/d_es0030Form.xml

@@ -0,0 +1,15 @@
+<?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_es0030Form">
+<field property="cpjson" depends="required">
+    <arg0 key="d_es0030.cpjson"/>
+</field>
+<field property="oldflow" depends="required">
+    <arg0 key="d_es0030.oldflow"/>
+</field>
+</form>
+</formset>
+</form-validation>

+ 3 - 0
generated/validator/resources_a_es0030Form_validator.properties

@@ -0,0 +1,3 @@
+a_es0030.pid = \u9879\u76EE\u7F16\u7801
+a_es0030.npid = \u76EE\u6807\u9879\u76EE\u7F16\u7801
+a_es0030Form = true

+ 3 - 0
generated/validator/resources_a_es0030Form_validator_zh_CN.properties

@@ -0,0 +1,3 @@
+a_es0030.pid = \u9879\u76EE\u7F16\u7801
+a_es0030.npid = \u76EE\u6807\u9879\u76EE\u7F16\u7801
+a_es0030Form = true

+ 3 - 0
generated/validator/resources_d_es0030Form_validator.properties

@@ -0,0 +1,3 @@
+d_es0030.cpjson = \u6620\u5C04\u7ED3\u679CJson
+d_es0030.oldflow = \u88AB\u5BFC\u5165\u7684flow
+d_es0030Form = true

+ 3 - 0
generated/validator/resources_d_es0030Form_validator_zh_CN.properties

@@ -0,0 +1,3 @@
+d_es0030.cpjson = \u6620\u5C04\u7ED3\u679CJson
+d_es0030.oldflow = \u88AB\u5BFC\u5165\u7684flow
+d_es0030Form = true

+ 134 - 0
src/main/java/com/miniframe/bisiness/es/ES0030Service.java

@@ -0,0 +1,134 @@
+package com.miniframe.bisiness.es;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import com.miniframe.core.ExecProcessFlow;
+import com.miniframe.core.ext.UtilTools;
+import com.miniframe.generate.business.es.model.ES0030BaseModel;
+import com.miniframe.generate.comm.es.A_ES0029_PCCIDS_RECODE;
+import com.miniframe.generate.comm.es.A_ES0029_PCIDS_RECODE;
+import com.miniframe.mappers.es.model.PcCopyVo;
+import com.miniframe.model.es.*;
+import com.miniframe.model.es.dao.*;
+import com.miniframe.tools.XiJsonUtil;
+
+/**
+ * 无锡发动机,“导入”逻辑处理(重新生成不覆盖)。
+ */
+public class ES0030Service extends ES0030BaseModel implements ExecProcessFlow {
+	
+	private static final long serialVersionUID = -7051358269847459502L;
+		
+	/**
+	 * 无锡发动机,“导入”业务核心处理
+ 	 */
+	public void transExecute() throws Exception {
+
+
+		String pid =this.getA_es0030().getPid();
+		String npid = this.getA_es0030().getNpid();
+		EsProMapper pdao = UtilTools.getBean(EsProMapper.class);
+		EsPro pro =pdao.selectByPrimaryKey(pid);
+		if(pro==null){
+			return;
+		}
+		//组件复制
+		List<PcCopyVo> vos =new ArrayList<>();
+		Map<String,String> comIdsMap = new HashMap<>();
+		EsProComMapper comdao = UtilTools.getBean(EsProComMapper.class);
+		EsProComSQLBuilder comsb = new EsProComSQLBuilder();
+		EsProComSQLBuilder.Criteria comsc = comsb.createCriteria();
+		comsc.andPcIdNotEqualTo("-1");//排除模拟参数
+		comsc.andPidEqualTo(pid);
+		List<EsProCom> coms = comdao.selectByExample(comsb);
+		for (EsProCom com :coms) {
+			String npcid = UtilTools.getUUid();
+			String pcid = com.getPcId();
+			EsProComAttMapper comattdao = UtilTools.getBean(EsProComAttMapper.class);
+			EsProComAttSQLBuilder comattsb = new EsProComAttSQLBuilder();
+			EsProComAttSQLBuilder.Criteria comattsc = comattsb.createCriteria();
+			comattsc.andPcIdEqualTo(pcid);
+			List<EsProComAtt> atts = comattdao.selectByExample(comattsb);
+			for (EsProComAtt att:atts) {
+				EsProComAttDataMapper comattdatadao = UtilTools.getBean(EsProComAttDataMapper.class);
+				EsProComAttDataSQLBuilder comattdatasb = new EsProComAttDataSQLBuilder();
+				EsProComAttDataSQLBuilder.Criteria comattdatasc = comattdatasb.createCriteria();
+				comattdatasc.andPcaIdEqualTo(att.getPcaId());
+				List<EsProComAttData> attDatas = comattdatadao.selectByExample(comattdatasb);
+				String nPcaId=UtilTools.getUUid();
+				for (EsProComAttData attd:attDatas) {
+					attd.setPcId(npcid);
+					attd.setPcaId(nPcaId);
+					attd.setPcadId(UtilTools.getUUid());
+					attd.setPid(npid);
+					comattdatadao.insert(attd);
+				}
+				att.setPcId(npcid);
+				att.setPcaId(nPcaId);
+				att.setPid(npid);
+				comattdao.insert(att);
+			}
+			com.setPid(npid);
+			com.setPcId(npcid);
+			comdao.insert(com);
+
+			comIdsMap.put(pcid,npcid);
+			PcCopyVo cp= new PcCopyVo();
+			cp.setType(1);
+			cp.setOldId(pcid);
+			cp.setNewId(npcid);
+			vos.add(cp);
+		}
+		EsProComConMapper condao = UtilTools.getBean(EsProComConMapper.class);
+		EsProComConSQLBuilder consb = new EsProComConSQLBuilder();
+		EsProComConSQLBuilder.Criteria consc =consb.createCriteria();
+		consc.andPidEqualTo(pid);
+		List<EsProComCon> cons = condao.selectByExample(consb);
+		for (EsProComCon con:cons) {
+			String pccid =con.getPccId();
+			String npccid =UtilTools.getUUid();
+			con.setPcId(comIdsMap.get(con.getPcId()));
+			con.setNpcId(comIdsMap.get(con.getNpcId()));
+			con.setPccId(npccid);
+			con.setPid(npid);
+			condao.insert(con);
+			PcCopyVo cp= new PcCopyVo();
+			cp.setType(2);
+			cp.setOldId(pccid);
+			cp.setNewId(npccid);
+			vos.add(cp);
+		}
+		this.getD_es0030().setCpjson(XiJsonUtil.objectToJson(vos));
+		this.getD_es0030().setOldflow(pro.getFlow());
+	}
+	
+	/**
+	 * 无锡发动机,“导入”业务前处理
+ 	 */
+	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();
+	}
+
+}

+ 44 - 0
src/test/java/com/miniframe/comm/httpesapater/ES0030Test.java

@@ -0,0 +1,44 @@
+package com.miniframe.comm.httpesapater;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.miniframe.comm.httpesapater.HttpesapaterUtil;
+import com.miniframe.generate.comm.es.A_ES0030;
+import com.miniframe.generate.comm.httpesapater.ES0030Client;
+import com.miniframe.generate.business.es.model.ES0030BaseModel;
+
+public class ES0030Test {
+
+	private static final Logger logger = LoggerFactory.getLogger(ES0030Test.class);
+
+	/**
+	 * 导入,获取报文体
+	 * @return
+	 */
+	public static A_ES0030 getA_es0030() {
+		A_ES0030 a_es0030 = new A_ES0030();
+
+		// ----------以下增加【导入】上行体赋值-------------
+
+
+
+		// ---------------------------------------------------
+		return a_es0030;
+	}
+	
+	/**
+	 * 运行客户端测试,导入
+	 * 
+	 * @param args
+	 * @throws Exception
+	 */
+	public static void main(String[] args) throws Exception {
+		ES0030BaseModel model = new ES0030BaseModel();
+		model.setA_eshead(HttpesapaterUtil.getA_eshead("ES0030"));
+		model.setA_es0030(ES0030Test.getA_es0030());
+		ES0030Client client = new ES0030Client();
+		logger.error("客户端发送前总线:\r\n"+model);
+		model = client.execute(model);
+		logger.error("客户端发送后总线:\r\n"+model);
+	}
+}

+ 1 - 0
系统设计/系统模块/ES(无锡发动机).csv

@@ -30,6 +30,7 @@
 100028,ES0028,项目克隆,service
 100029,ES0029,组件复制,service,
 
+100030,ES0030,导入,service,
 
 110001,ES1001,组件查询,service,
 110002,BES001,基础字典查询,service,

+ 3 - 0
系统设计/通信设计/通讯报文/es(无锡发动机)/报文体/ES0030_A(导入).csv

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

+ 3 - 0
系统设计/通信设计/通讯报文/es(无锡发动机)/报文体/ES0030_D(导入).csv

@@ -0,0 +1,3 @@
+"序号","英文名称","中文名称","数据类型","默认值","格式化","非空/引用","最小(长度/值)","最大(长度/值)","验证规则","标准数据ID","XML样式","TAG标签","映射/子标签","CDATA"
+1,cpjson,映射结果Json,string,,,是,,,,,,,,
+2,oldflow,被导入的flow,string,,,是,,,,,,,,