diff --git a/web-form-metadata/pom.xml b/web-form-metadata/pom.xml
index 188e160527d5d2c6167e4a1359eab4a81482cdaf..93e8256de959af30da0e227c278226bd5a63e471 100644
--- a/web-form-metadata/pom.xml
+++ b/web-form-metadata/pom.xml
@@ -61,6 +61,10 @@
com.inspur.edp
lcm-metadata-spi
+
+ com.inspur.edp
+ web-tsfile-api
+
diff --git a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManager.java b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManager.java
index 1b623939278b13d6287a45710f9b1dfb0e20cb44..dc7cdd519529d183ee0e76958a62608268b804f5 100644
--- a/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManager.java
+++ b/web-form-metadata/src/main/java/com/inspur/edp/web/formmetadata/replication/FormMetadataCmdManager.java
@@ -11,6 +11,7 @@ import com.inspur.edp.web.common.io.FileUtility;
import com.inspur.edp.web.common.metadata.MetadataUtility;
import com.inspur.edp.web.common.serialize.SerializeUtility;
import com.inspur.edp.web.formmetadata.metadata.formdom.FormDOM;
+import com.inspur.edp.web.tsfile.api.service.TsFileService;
import io.iec.edp.caf.commons.utils.SpringBeanUtils;
import com.inspur.edp.lcm.metadata.api.entity.MetadataType;
@@ -160,6 +161,11 @@ public class FormMetadataCmdManager {
String filePath = file.getParent();
String fileName = file.getName();
+ TsFileService tsFileService = SpringBeanUtils.getBean(TsFileService.class);
+ String oldTsClassName = tsFileService.getTsClassNameByPath(absolutePath);
+ String newTsClassName = tsFileService.getTsClassNameByPath(fileName);
+ oldFileContent = oldFileContent.replace(oldTsClassName, newTsClassName);
+
FileUtility.writeFile(filePath, fileName, oldFileContent);
// 更新服务构件
diff --git a/web-tsfile-api/src/main/java/com/inspur/edp/web/tsfile/api/service/TsFileService.java b/web-tsfile-api/src/main/java/com/inspur/edp/web/tsfile/api/service/TsFileService.java
index 591d7ce6325b7fafb82090b884e5388fc0c8633d..8b77485b91e3cc78830ab4830afcdfd6615fff22 100644
--- a/web-tsfile-api/src/main/java/com/inspur/edp/web/tsfile/api/service/TsFileService.java
+++ b/web-tsfile-api/src/main/java/com/inspur/edp/web/tsfile/api/service/TsFileService.java
@@ -31,6 +31,13 @@ public interface TsFileService {
*/
String loadTsFileContentByWebCmp(String formRelativePath, String webCmpId);
+ /**
+ * 依据ts文件路径构造对应的ts 中class名称
+ * @param tsFilePath
+ * @return
+ */
+ String getTsClassNameByPath(String tsFilePath);
+
/**
* 删除指定的TS文件
*
diff --git a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java
index afa5c731152dadcf816f09f3923fcb4dd4738d1a..dd14cca243e02c742d57eb8185cba9b8a2712e5d 100644
--- a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java
+++ b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileService4WebApi.java
@@ -7,6 +7,9 @@ import org.apache.commons.io.FilenameUtils;
import java.util.ArrayList;
+/**
+ * @author guozhiqi
+ */
public class TsFileService4WebApi {
private final TsFileService service = TsFileServiceImpl.getNewInstance();
@@ -44,13 +47,11 @@ public class TsFileService4WebApi {
}
public final void createTypescriptFile(String fullPath) {
- // 抽取文件名
- String fileName = FilenameUtils.getBaseName(fullPath);
- String normalized = NameUtil.getPascal(fileName);
+ String normalized = service.getTsClassNameByPath(fullPath);
String contentSB = "import { Injectable } from '@angular/core';" + "\r\n" +
"\r\n@Injectable()" + "\r\n" +
- "export class " + normalized + "Service {" + "\r\n" +
+ "export class " + normalized + " {" + "\r\n" +
" constructor() {}" + "\r\n" +
"}" + "\r\n";
service.saveTsFile(fullPath, contentSB);
diff --git a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImpl.java b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImpl.java
index 9b3d58e105d20260fcec5cab576153ae942efd14..bbb55bfe2df71eb4682b848dac6314a70bb667cf 100644
--- a/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImpl.java
+++ b/web-tsfile-core/src/main/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImpl.java
@@ -7,7 +7,9 @@ import com.inspur.edp.lcm.metadata.api.service.MetadataService;
import com.inspur.edp.web.common.io.FileUtility;
import com.inspur.edp.web.common.metadata.MetadataUtility;
import com.inspur.edp.web.tsfile.api.service.TsFileService;
+import com.inspur.edp.web.tsfile.core.util.NameUtil;
import io.iec.edp.caf.commons.utils.SpringBeanUtils;
+import org.apache.commons.io.FilenameUtils;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -15,12 +17,14 @@ import java.util.List;
/**
* ts文件服务实现
- * */
+ *
+ * @author guozhiqi
+ */
public class TsFileServiceImpl implements TsFileService {
/**
* 私有构造函数 避免外部私自实例化 提供统一返回实例方法
- * */
+ */
private TsFileServiceImpl() {
}
@@ -75,6 +79,13 @@ public class TsFileServiceImpl implements TsFileService {
return loadTsFileContent(fullPath);
}
+ @Override
+ public String getTsClassNameByPath(String tsFilePath) {
+ String fileName = FilenameUtils.getBaseName(tsFilePath);
+ String normalized = NameUtil.getPascal(fileName);
+ return normalized + "Service";
+ }
+
@Override
public final void renameTsFile(String fullPath, String newName) {
throw new UnsupportedOperationException();
diff --git a/web-tsfile-core/src/test/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImplTest.java b/web-tsfile-core/src/test/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..51999d9d06c14c17a2fbc77688603388c7047418
--- /dev/null
+++ b/web-tsfile-core/src/test/java/com/inspur/edp/web/tsfile/core/service/TsFileServiceImplTest.java
@@ -0,0 +1,28 @@
+package com.inspur.edp.web.tsfile.core.service;
+
+import com.inspur.edp.web.tsfile.api.service.TsFileService;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class TsFileServiceImplTest {
+
+ @Test
+ public void testClassName() {
+ TsFileService tsFileService = TsFileServiceImpl.getNewInstance();
+ String tsClassName = tsFileService.getTsClassNameByPath("ddd.ts");
+ System.out.printf(tsClassName);
+ }
+
+ @Test
+ public void replaceTsClassName() {
+ TsFileService tsFileService = TsFileServiceImpl.getNewInstance();
+ String oldTsClassName = tsFileService.getTsClassNameByPath("ddd.ts");
+ assertEquals(oldTsClassName, "DddService");
+
+ String content = "export class DddService {}";
+ String newTsClassName = tsFileService.getTsClassNameByPath("mmm.ts");
+ content = content.replace(oldTsClassName, newTsClassName);
+ assertEquals(content, "export class MmmService {}");
+ }
+}
\ No newline at end of file