diff --git a/common-entity-generator/pom.xml b/common-entity-generator/pom.xml
index c58beff4d80bad03c29f63aafdfacf4e959fd8cc..06547fbba014cce9f3be87c3c44a0a3b94acf35a 100644
--- a/common-entity-generator/pom.xml
+++ b/common-entity-generator/pom.xml
@@ -32,6 +32,10 @@
com.inspur.edp
business-entity-generator-exception
+
+ com.inspur.edp
+ metadata-service-dev-api
+
com.inspur.edp
caf-generator
diff --git a/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..b1e3a4e96bfc49a4a7d4147ec5c29804b41a2b6e
--- /dev/null
+++ b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/HandleAssemblyNameUtil.java
@@ -0,0 +1,41 @@
+package com.inspur.edp.cef.generator;
+
+import io.iec.edp.caf.commons.utils.StringUtils;
+
+/**
+ * 从business-entity-model拷贝而来
+ * todo 后续可以统一,去除此代码
+ */
+public class HandleAssemblyNameUtil {
+
+ /**
+ * 根据
+ * @param packagePrefix
+ * @param assemblyName
+ * @return
+ */
+ public static String convertToJavaPackageName(String packagePrefix, String assemblyName) {
+ String namespace = assemblyName;
+ if(!StringUtils.isEmpty(packagePrefix))
+ namespace = packagePrefix + "." + assemblyName;
+
+ String[] list = namespace.split("\\.");
+ String result = "";
+
+ for (int i = 0; i < list.length; i++) {
+ String lowerCase = list[i].toLowerCase();
+ if (i == 0) {
+ if (lowerCase.equals("inspur")) {
+ result = result.concat("com.inspur");
+ continue;
+ } else {
+ result = result.concat(lowerCase);
+ continue;
+ }
+ }
+ result = result.concat(".");
+ result = result.concat(lowerCase);
+ }
+ return result;
+ }
+}
diff --git a/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..15ffe10e84bdd76c234242be718b2efd5e060373
--- /dev/null
+++ b/common-entity-generator/src/main/java/com/inspur/edp/cef/generator/MetadataProjectUtil.java
@@ -0,0 +1,51 @@
+package com.inspur.edp.cef.generator;
+
+import com.inspur.edp.caf.db.dbaccess.DataValidator;
+import com.inspur.edp.lcm.metadata.api.entity.GspProject;
+import com.inspur.edp.lcm.metadata.api.service.GspProjectService;
+import com.inspur.edp.lcm.metadata.api.service.MetadataProjectService;
+import io.iec.edp.caf.commons.utils.SpringBeanUtils;
+import io.iec.edp.caf.commons.utils.StringUtils;
+
+import java.io.IOException;
+
+/**
+ * 元数据工程工具类,提供工程namespace、包路径前缀等获取方法
+ * todo 可以与business-entity-model中同名类统一
+ */
+public class MetadataProjectUtil {
+
+ /**
+ * 根据工程relativePath获取Java工程路径下java文件夹路径
+ * 举例:D:\projects\Scm\OrderMrg\SaleOrder\bo-saleorder-back\java\code\comp\src\main\java
+ * @param relativePath
+ * @return
+ */
+ public static String getJavaCompProjectPath(String relativePath) {
+ if(StringUtils.isEmpty(relativePath))
+ return null;
+
+ MetadataProjectService service = SpringBeanUtils.getBean(MetadataProjectService.class);
+ return service.getJavaCompProjectPath(relativePath);
+ }
+
+ /**
+ * 根据工程路径,获取包路径前缀,默认为com
+ * @param relativePath
+ * @return
+ */
+ public static String getPackagePrefix(String relativePath) {
+ DataValidator.checkForEmptyString(relativePath,"relativePath");
+
+ GspProjectService gspProjectService = SpringBeanUtils.getBean(GspProjectService.class);
+ try {
+ GspProject gspProject = gspProjectService.getGspProjectInfo(relativePath);
+ if (gspProject == null) {
+ throw new NullPointerException("GspProject is null");
+ }
+ return gspProject.getPackagePrefix();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java
index c1c70ebd11121a5aa18a1d5fe73a1ee30b900642..03378fc52cf76c959290883b6fbdfdbe10530ce3 100644
--- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java
+++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonDtmGenerator.java
@@ -23,6 +23,7 @@ import com.inspur.edp.bef.component.detailcmpentity.udtdetermination.UDTDtmCompo
import com.inspur.edp.cef.designtime.api.operation.CommonDetermination;
import com.inspur.edp.cef.designtime.api.operation.CommonOperation;
import com.inspur.edp.cef.generator.DotNetToJavaStringHelper;
+import com.inspur.edp.cef.generator.HandleAssemblyNameUtil;
import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames;
public class CommonDtmGenerator extends CommonOperationComponentGenerator
@@ -60,7 +61,7 @@ public class CommonDtmGenerator extends CommonOperationComponentGenerator
component.getUdtDtmMethod().setAssembly (this.assemblyName);
String suffix=String.format("%1$s%2$s%3$s",this.model.getCode(),".", JavaCompCodeNames.DeterminationName);
- String packageName=JavaModuleImportPackage(this.nameSpace);
+ String packageName=JavaModuleImportPackage(this.packagePrefix, this.nameSpace);
packageName=String.format("%1$s%2$s",packageName,suffix.toLowerCase());
if (this.originalComponent!= null)
{
@@ -85,16 +86,8 @@ public class CommonDtmGenerator extends CommonOperationComponentGenerator
return (connections);
}
- protected String JavaModuleImportPackage(String packageName)
+ protected String JavaModuleImportPackage(String packagePrefix, String packageName)
{
- String[] strArray = packageName.split("[.]",-1);
- String str = "com.";
- int i;
-
- for (i = 0; i < strArray.length; i++)
- {
- str += strArray[i].toLowerCase() + ".";
- }
- return str;
+ return HandleAssemblyNameUtil.convertToJavaPackageName(packagePrefix, packageName);
}
}
diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java
index 3b81c8804ba4fa82b7bcf1d850ea8e2959bce225..011b6321c61830ca0c256277f74ab0e4ba608f18 100644
--- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java
+++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/cmpgenerators/CommonOperationComponentGenerator.java
@@ -20,6 +20,8 @@ import com.inspur.edp.bef.component.base.GspComponent;
import com.inspur.edp.cef.designtime.api.operation.CommonOperation;
import com.inspur.edp.cef.generator.DotNetToJavaStringHelper;
import com.inspur.edp.cef.generator.exception.CefGenException;
+import com.inspur.edp.cef.generator.MetadataProjectUtil;
+import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.CompCodeNames;
import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames;
import com.inspur.edp.das.commonmodel.entity.GspCommonModel;
import com.inspur.edp.lcm.metadata.api.entity.GspMetadata;
@@ -51,7 +53,12 @@ public abstract class CommonOperationComponentGenerator
protected GspComponent originalComponent;
protected String bizObjectID;
protected GspCommonModel model;
- /**
+ /**
+ * 包路径前缀,默认值为com
+ */
+ protected String packagePrefix;
+
+ /**
生成构件元数据
@param operation UDT操作
@@ -60,13 +67,14 @@ public abstract class CommonOperationComponentGenerator
@param assemblyName UDT程序集名称
*/
@Deprecated
- public String GenerateComponent(GspCommonModel model,CommonOperation operation, String path, String varEntityCode, String assemblyName, String defaultNamespace, String bizObjectID)
+ public String GenerateComponent(GspCommonModel model,CommonOperation operation, String path, String varEntityCode, String assemblyName, String defaultNamespace, String bizObjectID)
{
this.varEntityCode = varEntityCode;
this.assemblyName = assemblyName;
this.nameSpace = defaultNamespace;
this.bizObjectID = bizObjectID;
this.model=model;
+ this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path);
if (DotNetToJavaStringHelper.isNullOrEmpty(operation.getComponentId())) {
GspMetadata component = createComponent(operation, path);
//4、建立Action与元数据之间的关联关系
@@ -106,6 +114,7 @@ public abstract class CommonOperationComponentGenerator
this.nameSpace = defaultNamespace;
this.bizObjectID = bizObjectID;
this.model=model;
+ this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path);
return createComponent(operation, path);
}
/**
diff --git a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java
index cd221bfdc85947efdb21789dea77d677d21c4915..84636cc364111a50e51aa6cb51235c81da6fb601 100644
--- a/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java
+++ b/common-entity-variable-generator/src/main/java/com/inspur/edp/cef/variable/dtgenerator/vardtmGenerate/javageneratecmpcode/JavaBaseCommonCompCodeGenerator.java
@@ -19,6 +19,8 @@ package com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.javageneratecmpco
import com.inspur.edp.bef.component.base.GspComponent;
import com.inspur.edp.cef.designtime.api.operation.CommonOperation;
import com.inspur.edp.cef.generator.exception.CefGenException;
+import com.inspur.edp.cef.generator.HandleAssemblyNameUtil;
+import com.inspur.edp.cef.generator.MetadataProjectUtil;
import com.inspur.edp.cef.variable.dtgenerator.vardtmGenerate.JavaCompCodeNames;
import com.inspur.edp.das.commonmodel.entity.GspCommonModel;
import com.inspur.edp.lcm.metadata.api.IMetadataContent;
@@ -43,6 +45,8 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo
protected abstract String getBaseClassName();
private String privatePath;
+
+ private String packagePrefix;
public final String getPath()
{
return privatePath;
@@ -71,6 +75,7 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo
this.apiNamespace = gspCommonModel.getVariables().getGeneratedApiAssemblyInfo().getDefaultNamespace();
// 解析型
this.isInterpretation= SpringBeanUtils.getBean(MetadataProjectService.class).isInterpretation(path);
+ this.packagePrefix = MetadataProjectUtil.getPackagePrefix(path);
}
private String GetNameSpace(String baseNameSpace, String beName)
@@ -126,7 +131,7 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo
{
StringBuilder result = new StringBuilder();
///#region package
- nameSpace = ConvertJavaImportPackage(nameSpace);
+ nameSpace = ConvertJavaImportPackage(this.packagePrefix, nameSpace);
result.append(JavaCompCodeNames.KeywordPackage).append(" ").append(nameSpace).append(";").append(getNewline());
///#endregion
@@ -184,18 +189,8 @@ public abstract class JavaBaseCommonCompCodeGenerator implements JavaIBaseCompCo
protected void JavaGenerateField(StringBuilder result)
{
}
- private String ConvertJavaImportPackage(String readPropertyValue_string)
- {
- String[] strArray = readPropertyValue_string.split("[.]", -1);
- String str = "com.";
- int i;
-
- for (i = 0; i < strArray.length - 1; i++)
- {
- str += strArray[i].toLowerCase() + ".";
- }
- str += strArray[i].toLowerCase();
- return str;
+ private String ConvertJavaImportPackage(String packagePrefix, String nameSpace) {
+ return HandleAssemblyNameUtil.convertToJavaPackageName(packagePrefix, nameSpace);
}
private void GenerateImport(StringBuilder result)
diff --git a/pom.xml b/pom.xml
index 55dcd8c6d5b85dc50927252d8f1a940d2c7b35eb..34df7fcfd2fc94e66213775f7cefa75c437bbd7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -89,6 +89,11 @@
lcm-metadata-api
0.1.40
+
+ com.inspur.edp
+ metadata-service-dev-api
+ 0.1.1
+
com.inspur.edp
lcm-metadata-common