From aed0e43ff4eb2cdb5fa81b6b9b16d8d2b723c02e Mon Sep 17 00:00:00 2001
From: liuyu <yu.liu@cqgbkj.com>
Date: 星期四, 17 九月 2026 10:57:49 +0800
Subject: [PATCH] feat: 新增 jnpf-tms 业务微服务骨架
---
docker-compose.override.yml | 4
jnpf-tms/jnpf-tms-entity/pom.xml | 19 +
dockerfile/tms/Dockerfile | 19 +
start-all.ps1 | 5
jnpf-tms/jnpf-tms-api/src/main/java/jnpf/utils/TmsFeignName.java | 11
pom.xml | 1
jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsService/package-info.java | 4
docker-compose.testenv.yml | 1
config/host-override/discovery.yaml | 2
config/shared/discovery.yaml | 2
jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsMapper/package-info.java | 4
jnpf-tms/jnpf-tms-entity/src/main/java/jnpf/tmsEntity/package-info.java | 4
jnpf-tms/jnpf-tms-server/src/main/resources/logback-spring.xml | 300 +++++++++++++++++++++++
jnpf-tms/jnpf-tms-controller/pom.xml | 26 ++
stop-all.ps1 | 3
jnpf-tms/jnpf-tms-biz/pom.xml | 36 ++
jnpf-tms/jnpf-tms-server/src/main/java/jnpf/JnpfTmsApplication.java | 18 +
start-all.sh | 5
config/shared/router.yaml | 7
jnpf-tms/jnpf-tms-api/pom.xml | 25 +
jnpf-tms/jnpf-tms-controller/src/main/java/jnpf/tmsController/PingController.java | 18 +
README.md | 22
jnpf-tms/jnpf-tms-server/src/main/resources/application.yml | 58 ++++
config/shared/logger.yaml | 1
docker-compose.yml | 9
jnpf-tms/jnpf-tms-server/pom.xml | 97 +++++++
jnpf-tms/pom.xml | 21 +
docker/delivery/assemble-offline-package.sh | 1
28 files changed, 708 insertions(+), 15 deletions(-)
diff --git a/README.md b/README.md
index 1e3d8fa..ce0b5b9 100644
--- a/README.md
+++ b/README.md
@@ -138,15 +138,16 @@
### 鏈嶅姟鎷撴墤
-| 鏈嶅姟 | 绔彛 | 鑱岃矗 |
-|---|---|---|
-| `jnpf-gateway` | 30000 | API 缃戝叧锛岃矾鐢辫浆鍙戙�傚熀浜� WebFlux锛屼笌 servlet 鏍堜笉鑳藉悓杩涚▼锛屽繀椤荤嫭绔嬮儴缃� |
-| **`jnpf-platform`** | **30002** | **骞冲彴鑱氬悎鏈嶅姟**锛氫笅鍒椾節涓钩鍙版ā鍧楀悎骞跺湪涓�涓� JVM 鍐� |
-| `jnpf-scheduletask` | 30009 | 瀹氭椂浠诲姟锛坸xl-job admin锛夛紝鏈苟鍏� platform |
-| `jnpf-eln` | 30013 | ELN 鐢靛瓙瀹為獙璁板綍锛堝綋鍓嶄负楠ㄦ灦锛� |
-| `jnpf-biz-common` | 30015 | 鍏叡涓氬姟鑳藉姏鑱氬悎锛歄nlyOffice銆佸璁$瓑 |
-| `jnpf-dms` | 30016 | 鏂囨。绠$悊 |
-| **`jnpf-lims`** | **30019** | **LIMS 瀹為獙瀹や俊鎭鐞嗭紝涓昏涓氬姟妯″潡** |
+| 鏈嶅姟 | 绔彛 | 鑱岃矗 |
+|---|---|------------------------------------------------------|
+| `jnpf-gateway` | 30000 | API 缃戝叧锛岃矾鐢辫浆鍙戙�傚熀浜� WebFlux锛屼笌 servlet 鏍堜笉鑳藉悓杩涚▼锛屽繀椤荤嫭绔嬮儴缃� |
+| **`jnpf-platform`** | **30002** | **骞冲彴鑱氬悎鏈嶅姟**锛氫笅鍒椾節涓钩鍙版ā鍧楀悎骞跺湪涓�涓� JVM 鍐� |
+| `jnpf-scheduletask` | 30009 | 瀹氭椂浠诲姟锛坸xl-job admin锛夛紝鏈苟鍏� platform |
+| `jnpf-eln` | 30013 | ELN 鐢靛瓙瀹為獙璁板綍锛堝綋鍓嶄负楠ㄦ灦锛� |
+| `jnpf-biz-common` | 30015 | 鍏叡涓氬姟鑳藉姏鑱氬悎锛歄nlyOffice銆佸璁$瓑 |
+| `jnpf-dms` | 30016 | 鏂囨。绠$悊 |
+| `jnpf-tms` | 30017 | TMS 鑰冭瘯鍩硅绠$悊 |
+| **`jnpf-lims`** | **30019** | **LIMS 瀹為獙瀹や俊鎭鐞嗭紝涓昏涓氬姟妯″潡** |
| `jnpf-flow-engine` | 31000 | Flowable 7.0.1 娴佺▼寮曟搸銆�**鐙珛宸ョ▼锛屼笉鍦ㄦ牴 pom**锛岀敤鐙珛鏁版嵁搴� `jnpf_flow` |
`jnpf-platform` 鍐呭惈鐨勪節涓ā鍧楋細
@@ -175,6 +176,7 @@
|---|---|
| `/api/lims/`銆乣/api/extend/`锛堟棫鍓嶇紑锛屽悓鎸囷級 | jnpf-lims |
| `/api/dms/` | jnpf-dms |
+| `/api/tms/` | jnpf-tms |
| `/api/eln/` | jnpf-eln |
| `/api/biz/` | jnpf-biz-common锛堝 `/api/biz/onlyoffice/xxx`锛� |
| `/api/audit/` | jnpf-biz-common锛堝埆鍚嶄繚鐣欙級 |
@@ -184,7 +186,7 @@
### 涓氬姟妯″潡鍒嗗眰
-浠� `jnpf-lims` 涓轰緥锛屽叾浠栦笟鍔℃ā鍧楋紙dms/eln锛夌粨鏋勭浉鍚岋細
+浠� `jnpf-lims` 涓轰緥锛屽叾浠栦笟鍔℃ā鍧楋紙dms/eln/tms锛夌粨鏋勭浉鍚岋細
```
jnpf-lims/
diff --git a/config/host-override/discovery.yaml b/config/host-override/discovery.yaml
index 04da78e..7f24ed2 100644
--- a/config/host-override/discovery.yaml
+++ b/config/host-override/discovery.yaml
@@ -48,5 +48,7 @@
- uri: http://127.0.0.1:30015
jnpf-dms:
- uri: http://127.0.0.1:30016
+ jnpf-tms:
+ - uri: http://127.0.0.1:30017
jnpf-lims:
- uri: http://127.0.0.1:30019
diff --git a/config/shared/discovery.yaml b/config/shared/discovery.yaml
index 25898f2..29ce05d 100644
--- a/config/shared/discovery.yaml
+++ b/config/shared/discovery.yaml
@@ -53,5 +53,7 @@
- uri: http://cx-biz-common:30015
jnpf-dms:
- uri: http://cx-dms:30016
+ jnpf-tms:
+ - uri: http://cx-tms:30017
jnpf-lims:
- uri: http://cx-lims:30019
diff --git a/config/shared/logger.yaml b/config/shared/logger.yaml
index 84df7e3..fa89b0a 100644
--- a/config/shared/logger.yaml
+++ b/config/shared/logger.yaml
@@ -12,6 +12,7 @@
# 鏂板鏈嶅姟鏃跺鏋滃畠鍦� log.level 閲屾病鏈� INFO 鏉$洰锛屽氨寰�杩欓噷琛ヤ竴琛屻��
jnpf.JnpfGatewayApplication: INFO
jnpf.JnpfLimsApplication: INFO
+ jnpf.JnpfTmsApplication: INFO
# 瑙i櫎娉ㄩ噴鍚嶥ruid杩炴帴姹犳墦鍗癝QL璇彞
druid.sql.Statement: debug
# druid.sql.DataSource: debug
diff --git a/config/shared/router.yaml b/config/shared/router.yaml
index 37f956a..ae7af95 100644
--- a/config/shared/router.yaml
+++ b/config/shared/router.yaml
@@ -63,6 +63,13 @@
- Path=/api/dms/**
filters:
- StripPrefix=2
+ # TMS 涓氬姟鏈嶅姟
+ - id: jnpf-tms
+ uri: lb://jnpf-tms
+ predicates:
+ - Path=/api/tms/**
+ filters:
+ - StripPrefix=2
# 鎶ヨ〃鏈嶅姟
- id: jnpf-datareport
uri: lb://jnpf-datareport
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
index 790413e..375c8cb 100644
--- a/docker-compose.override.yml
+++ b/docker-compose.override.yml
@@ -125,6 +125,10 @@
<<: *no-local-data-plane
ports: ["127.0.0.1:30016:30016"]
volumes: *config-shared-volume
+ cx-tms:
+ <<: *no-local-data-plane
+ ports: ["127.0.0.1:30017:30017"]
+ volumes: *config-shared-volume
# cx-visualdata 闅忓钩鍙拌仛鍚堝仠鐢紝淇濈暀浠ヤ究鍥炴粴
# cx-visualdata:
# <<: *no-local-data-plane
diff --git a/docker-compose.testenv.yml b/docker-compose.testenv.yml
index e02f392..bee4569 100644
--- a/docker-compose.testenv.yml
+++ b/docker-compose.testenv.yml
@@ -70,4 +70,5 @@
cx-eln: *no-local-pg
cx-biz-common: *no-local-pg
cx-dms: *no-local-pg
+ cx-tms: *no-local-pg
cx-scheduletask: *no-local-pg
diff --git a/docker-compose.yml b/docker-compose.yml
index a7e1481..058d4e0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -554,6 +554,15 @@
<<: *hc-30000
test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/30016"]
+ cx-tms:
+ <<: *cx
+ container_name: cx-tms
+ image: cx/tms:${CX_VERSION:-1.0.0}
+ build: { context: ., dockerfile: dockerfile/tms/Dockerfile, args: { BASE_IMAGE: "${BASE_IMAGE:-bellsoft/liberica-openjre-rocky:21}" } }
+ healthcheck:
+ <<: *hc-30000
+ test: ["CMD-SHELL", "exec 3<>/dev/tcp/127.0.0.1/30017"]
+
# 鈹�鈹� cx-visualdata 宸插苟鍏� cx-platform锛�2026-08-11锛夛紝鏁存娉ㄩ噴淇濈暀浠ヤ究鍥炴粴 鈹�鈹�
# cx-visualdata:
# <<: *cx
diff --git a/docker/delivery/assemble-offline-package.sh b/docker/delivery/assemble-offline-package.sh
index b5cf240..4941d13 100644
--- a/docker/delivery/assemble-offline-package.sh
+++ b/docker/delivery/assemble-offline-package.sh
@@ -69,6 +69,7 @@
jnpf-biz-common/jnpf-biz-common-server/target
jnpf-lims/jnpf-lims-server/target
jnpf-dms/jnpf-dms-server/target
+ jnpf-tms/jnpf-tms-server/target
)
for d in "${BIZ_JARS[@]}"; do
ls "$d"/*.jar >/dev/null 2>&1 || die "缂轰笟鍔� jar锛�${d}/*.jar 鈥斺�� 鍏� make jars"
diff --git a/dockerfile/tms/Dockerfile b/dockerfile/tms/Dockerfile
new file mode 100644
index 0000000..a8aa772
--- /dev/null
+++ b/dockerfile/tms/Dockerfile
@@ -0,0 +1,19 @@
+# 鍩虹闀滃儚锛氭湰鍦伴粯璁� Docker Hub 澶氭灦鏋勶紙arm64 鍘熺敓锛孡024锛夛紱浜や粯鏋勫缓娉ㄥ叆 SWR amd64 鍗曟灦鏋�
+ARG BASE_IMAGE=bellsoft/liberica-openjre-rocky:21
+FROM ${BASE_IMAGE}
+LABEL maintainer=cx-team
+
+# 璁剧疆鏃跺尯
+ENV TZ=Asia/Shanghai
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+WORKDIR /data/jnpfsoft/javaApi/jnpf-tms
+
+COPY jnpf-tms/jnpf-tms-server/target/*.jar ./jnpf-tms.jar
+
+COPY config/shared /config/shared
+ENV JNPF_CONFIG_DIR=/config
+
+EXPOSE 30017
+
+ENTRYPOINT ["/bin/sh","-c","java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/sun.net.util=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/jdk.internal.module=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar jnpf-tms.jar"]
diff --git a/jnpf-tms/jnpf-tms-api/pom.xml b/jnpf-tms/jnpf-tms-api/pom.xml
new file mode 100644
index 0000000..4f5f7a4
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-api/pom.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-tms</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms-api</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-common-feign</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-tms-entity</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/jnpf-tms/jnpf-tms-api/src/main/java/jnpf/utils/TmsFeignName.java b/jnpf-tms/jnpf-tms-api/src/main/java/jnpf/utils/TmsFeignName.java
new file mode 100644
index 0000000..0f2a70b
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-api/src/main/java/jnpf/utils/TmsFeignName.java
@@ -0,0 +1,11 @@
+package jnpf.utils;
+
+/**
+ * TMS 鏈嶅姟 Feign 鍚嶇О甯搁噺锛屼緵鍏跺畠鏈嶅姟寮曠敤銆�
+ */
+public class TmsFeignName {
+ public static final String TMS_SERVER_NAME = "jnpf-tms";
+
+ private TmsFeignName() {
+ }
+}
diff --git a/jnpf-tms/jnpf-tms-biz/pom.xml b/jnpf-tms/jnpf-tms-biz/pom.xml
new file mode 100644
index 0000000..0b7bb2e
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-biz/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-tms</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms-biz</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-cloud-base</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-common-database</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-tms-entity</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-tms-api</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsMapper/package-info.java b/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsMapper/package-info.java
new file mode 100644
index 0000000..21c3fed
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsMapper/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * TMS MyBatis Mapper 鍖咃紙鐢� {@code @MapperScan("jnpf.tmsMapper")} 鎵弿锛夈��
+ */
+package jnpf.tmsMapper;
diff --git a/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsService/package-info.java b/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsService/package-info.java
new file mode 100644
index 0000000..c23e640
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-biz/src/main/java/jnpf/tmsService/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * TMS 涓氬姟鏈嶅姟鍖呫��
+ */
+package jnpf.tmsService;
diff --git a/jnpf-tms/jnpf-tms-controller/pom.xml b/jnpf-tms/jnpf-tms-controller/pom.xml
new file mode 100644
index 0000000..322bd0b
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-controller/pom.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-tms</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms-controller</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-common-springaop</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-tms-biz</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/jnpf-tms/jnpf-tms-controller/src/main/java/jnpf/tmsController/PingController.java b/jnpf-tms/jnpf-tms-controller/src/main/java/jnpf/tmsController/PingController.java
new file mode 100644
index 0000000..3c88351
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-controller/src/main/java/jnpf/tmsController/PingController.java
@@ -0,0 +1,18 @@
+package jnpf.tmsController;
+
+import jnpf.base.ActionResult;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 閾捐矾楠屾敹鎺㈤拡锛氱綉鍏� /api/tms/ping锛圫tripPrefix=2锛夆啋 鏈湇鍔� /ping銆�
+ * 鏀捐閰嶇疆瑙� application.yml锛坰a-token / 绉熸埛 / 鍐呴儴閴存潈涓夊锛夈��
+ */
+@RestController
+public class PingController {
+
+ @GetMapping("/ping")
+ public ActionResult<String> ping() {
+ return ActionResult.success("pong");
+ }
+}
diff --git a/jnpf-tms/jnpf-tms-entity/pom.xml b/jnpf-tms/jnpf-tms-entity/pom.xml
new file mode 100644
index 0000000..5b09dd9
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-entity/pom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-tms</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms-entity</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-common-core</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/jnpf-tms/jnpf-tms-entity/src/main/java/jnpf/tmsEntity/package-info.java b/jnpf-tms/jnpf-tms-entity/src/main/java/jnpf/tmsEntity/package-info.java
new file mode 100644
index 0000000..e802afe
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-entity/src/main/java/jnpf/tmsEntity/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * TMS 瀹炰綋 / DTO / VO 鍖呫��
+ */
+package jnpf.tmsEntity;
diff --git a/jnpf-tms/jnpf-tms-server/pom.xml b/jnpf-tms/jnpf-tms-server/pom.xml
new file mode 100644
index 0000000..aeba1dc
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-server/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-tms</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms-server</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.jnpf</groupId>
+ <artifactId>jnpf-tms-controller</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>default-package</id>
+ <activation>
+ <jdk>[,]</jdk>
+ </activation>
+ <build>
+ <finalName>jnpf-tms-${project.version}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>jnpf.JnpfTmsApplication</mainClass>
+ <layout>ZIP</layout>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>external-package</id>
+ <build>
+ <finalName>jnpf-tms-${project.version}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${external-lib-out-path}</outputDirectory>
+ <overWriteReleases>true</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>jnpf.JnpfTmsApplication</mainClass>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>${external-lib-start-path}</classpathPrefix>
+ </manifest>
+ <manifestEntries>
+ <Class-Path>.</Class-Path>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/jnpf-tms/jnpf-tms-server/src/main/java/jnpf/JnpfTmsApplication.java b/jnpf-tms/jnpf-tms-server/src/main/java/jnpf/JnpfTmsApplication.java
new file mode 100644
index 0000000..a7dacc9
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-server/src/main/java/jnpf/JnpfTmsApplication.java
@@ -0,0 +1,18 @@
+package jnpf;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@Slf4j
+@SpringBootApplication
+@EnableFeignClients
+@MapperScan(value = "jnpf.tmsMapper")
+public class JnpfTmsApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(JnpfTmsApplication.class, args);
+ JnpfTmsApplication.log.info("TMS鍚姩鎴愬姛");
+ }
+}
diff --git a/jnpf-tms/jnpf-tms-server/src/main/resources/application.yml b/jnpf-tms/jnpf-tms-server/src/main/resources/application.yml
new file mode 100644
index 0000000..5c14594
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-server/src/main/resources/application.yml
@@ -0,0 +1,58 @@
+spring:
+ application:
+ name: jnpf-tms
+ mvc:
+ servlet:
+ load-on-startup: 0
+ main:
+ allow-bean-definition-overriding: true
+ allow-circular-references: true
+ config:
+ # 閰嶇疆鏉ユ簮 = 浠撳簱 config/锛堥暅鍍忓唴 /config锛岀粡 JNPF_CONFIG_DIR 鎸囧悜锛夈��
+ import:
+ - file:${JNPF_CONFIG_DIR:config}/shared/datasource.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/resources.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/system-config.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/frame-config.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/logger.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/mq.yaml
+ - file:${JNPF_CONFIG_DIR:config}/shared/discovery.yaml
+ - optional:file:${JNPF_CONFIG_DIR:config}/host-override/discovery.yaml
+
+# 搴旂敤鏈嶅姟鍣�
+server:
+ tomcat:
+ uri-encoding: UTF-8
+ port: 30017
+
+management:
+ endpoints:
+ web:
+ exposure:
+ include: '*'
+ endpoint:
+ health:
+ show-details: always
+ logfile:
+ access: unrestricted
+
+# ping 鎺㈤拡鏀捐
+jnpf:
+ security:
+ ignore:
+ urls:
+ - /ping
+ - /api/tms/ping
+ - /dev-api/tms/ping
+ tenant:
+ ignore-urls:
+ - /ping
+ - /api/tms/ping
+ - /dev-api/tms/ping
+
+sa-token:
+ filter:
+ exclude-paths:
+ - /ping
+ - /api/tms/ping
+ - /dev-api/tms/ping
diff --git a/jnpf-tms/jnpf-tms-server/src/main/resources/logback-spring.xml b/jnpf-tms/jnpf-tms-server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..7b26ba3
--- /dev/null
+++ b/jnpf-tms/jnpf-tms-server/src/main/resources/logback-spring.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+ <!--鏃ュ織鏍煎紡搴旂敤spring boot榛樿鐨勬牸寮忥紝涔熷彲浠ヨ嚜宸辨洿鏀�-->
+ <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+ <property name="FILE_LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] [%logger{50}] [%M] [%line] - %msg%n" />
+ <springProperty scope="context" name="SERVICE_NAME" source="spring.application.name" defaultValue="jnpf"/>
+
+ <!--瀹氫箟鏃ュ織瀛樻斁鐨勪綅缃紝榛樿瀛樻斁鍦ㄩ」鐩惎鍔ㄧ殑鐩稿璺緞鐨勭洰褰�-->
+ <springProperty scope="context" name="LOG_PATH" source="log.path" defaultValue="log/${SERVICE_NAME}"/>
+ <!-- 鍏ㄥ眬鏃ュ織绛夌骇 -->
+ <springProperty scope="context" name="LOG_LEVEL_ROOT" source="log.level.root" defaultValue="INFO"/>
+ <!-- 鏈嶅姟鑷畾涔夌瓑绾� 濡傞渶鑷畾涔夋湇鍔℃棩蹇楃瓑绾� 淇敼涓嬫柟鐨勩�愯嚜瀹氫箟鏈嶅姟鍚嶃�戜笌nacos涓婄殑log.level.鑷畾涔夋湇鍔″悕=绛夌骇 -->
+ <springProperty scope="context" name="LOG_LEVEL" source="log.level.jnpf-tms" defaultValue="${LOG_LEVEL_ROOT}"/>
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� ERROR 鏃ュ織 -->
+ <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_error.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/error/%d{yyyy-MM-dd,aux}/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+ <maxHistory>7</maxHistory>
+
+ <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+ 鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+
+ <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+ <append>true</append>
+
+ <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+
+ <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍error绾у埆鐨� -->
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>error</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� INFO 鏃ュ織 -->
+ <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_info.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/info/%d{yyyy-MM-dd,aux}/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+ <maxHistory>7</maxHistory>
+
+ <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+ 鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+
+ <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+ <append>true</append>
+
+ <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+
+ <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍info绾у埆鐨� -->
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>info</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� WARN 鏃ュ織 -->
+ <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_warn.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/warn/%d{yyyy-MM-dd,aux}/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+ <maxHistory>7</maxHistory>
+
+ <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+ 鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+
+ <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+ <append>true</append>
+
+ <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+
+ <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍warn绾у埆鐨� -->
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>warn</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� DEBUG 鏃ュ織 -->
+ <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_debug.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/debug/%d{yyyy-MM-dd,aux}/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+ <maxHistory>7</maxHistory>
+
+ <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+ 鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+
+ <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+ <append>true</append>
+
+ <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+
+ <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍debug绾у埆鐨� -->
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>debug</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛屾墍鏈夋棩蹇� -->
+ <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_total.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/total/%d{yyyy-MM-dd,aux}/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+ <maxHistory>7</maxHistory>
+
+ <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+ 鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+
+ <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+ <append>true</append>
+
+ <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <pattern>${FILE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+ </appender>
+
+
+ <!-- 寮傛杈撳嚭 DEBUG -->
+ <appender name="ASYNC_FILE_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="FILE_DEBUG"/>
+ </appender>
+ <!-- 寮傛杈撳嚭 INFO -->
+ <appender name="ASYNC_FILE_INFO" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="FILE_INFO"/>
+ </appender>
+ <!-- 寮傛杈撳嚭 WARN -->
+ <appender name="ASYNC_FILE_WARN" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="FILE_WARN"/>
+ </appender>
+ <!-- 寮傛杈撳嚭 ERROR -->
+ <appender name="ASYNC_FILE_ERROR" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="FILE_ERROR"/>
+ </appender>
+ <!-- 寮傛杈撳嚭 ALL -->
+ <appender name="ASYNC_FILE_ALL" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="FILE_ALL"/>
+ </appender>
+
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+ <charset>utf-8</charset>
+ </encoder>
+ </appender>
+
+
+ <!-- 寮傛杈撳嚭 鎺у埗鍙� -->
+ <appender name="ASYNC_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="STDOUT"/>
+ </appender>
+
+
+ <!--<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+ <!– 蹇呭~锛氱洰鏍囷細LogStash鐨� IP:Port –>
+ <destination>192.168.0.50:50000</destination>
+ <!– 鍙�夛細淇濇寔绋嬪簭瀛樻椿鏃堕棿 –>
+ <keepAliveDuration>5 minutes</keepAliveDuration>
+ <!– 鍙�夛細閲嶈繛寤惰繜鏃堕暱 –>
+ <reconnectionDelay>10 second</reconnectionDelay>
+ <!– 鍙�夛細绛夊緟绛栫暐 –>
+ <waitStrategyType>sleeping</waitStrategyType>
+ <!– ============ encoder蹇呴』閰嶇疆,鏈夊绉嶅彲閫� ============= –>
+ <!– 缂栫爜鍣ㄤ簩锛歀oggingEventCompositeJsonEncoder –>
+ <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+ <providers>
+ <!– 鏃堕棿鎴筹細鏃跺尯 –>
+ <timestamp>
+ <timeZone>UTC</timeZone>
+ </timestamp>
+ <!– 妯″紡 –>
+ <pattern>
+ <pattern>
+ {
+ "severity": "%level",
+ "service": "${SERVICE_NAME:-}",
+ "trace": "%X{X-B3-TraceId:-}",
+ "span": "%X{X-B3-SpanId:-}",
+ "exportable": "%X{X-Span-Export:-}",
+ "pid": "${PID:-}",
+ "thread": "%thread",
+ "class": "%logger{40}",
+ "msg": "%message"
+ <!–"idx_pre": "elk-original-third-access",–>
+ <!–"json": "#asJson{%message}" 杩欎釜asJson鍙互鎶婂搴旂殑瀛楃涓蹭綔涓簀son瀵硅薄鍙栧嚭鏉ワ紝杩欐牱es鍙互瀵筳son閲岄潰鐨勫瓧娈电储寮曚簡–>
+ }
+ </pattern>
+ </pattern>
+ </providers>
+ </encoder>
+ </appender>-->
+ <!--<appender name="skywalking-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
+ <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
+ </layout>
+ </encoder>
+ </appender>-->
+
+
+ <root level="${LOG_LEVEL}">
+ <appender-ref ref="ASYNC_STDOUT"/>
+ <appender-ref ref="ASYNC_FILE_ERROR"/>
+ <appender-ref ref="ASYNC_FILE_INFO"/>
+ <appender-ref ref="ASYNC_FILE_WARN"/>
+ <appender-ref ref="ASYNC_FILE_DEBUG"/>
+ <appender-ref ref="ASYNC_FILE_ALL"/>
+ <!--<appender-ref ref="LOGSTASH"/>-->
+ <!--<appender-ref ref="skywalking-log"/>-->
+ </root>
+
+
+</configuration>
diff --git a/jnpf-tms/pom.xml b/jnpf-tms/pom.xml
new file mode 100644
index 0000000..e20745b
--- /dev/null
+++ b/jnpf-tms/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>jnpf-java-cloud</artifactId>
+ <groupId>com.jnpf</groupId>
+ <version>6.1.0-RELEASE</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>jnpf-tms</artifactId>
+ <packaging>pom</packaging>
+ <modules>
+ <module>jnpf-tms-api</module>
+ <module>jnpf-tms-entity</module>
+ <module>jnpf-tms-biz</module>
+ <module>jnpf-tms-controller</module>
+ <module>jnpf-tms-server</module>
+ </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index e06fd91..cd8e1b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,7 @@
<module>jnpf-lims</module>
<module>jnpf-dms</module>
<module>jnpf-eln</module>
+ <module>jnpf-tms</module>
<!-- jnpf-audit 宸蹭簬 2026-08-11 鏁翠綋鎼叆 jnpf-biz-common锛�6 妯″潡鍘嬪埌 3 涓紝
jnpf-audit-server / cx-audit 閫�褰癸級锛屼笉鍐嶆槸椤跺眰妯″潡 -->
<module>jnpf-biz-common</module>
diff --git a/start-all.ps1 b/start-all.ps1
index 048e6f9..e67b948 100644
--- a/start-all.ps1
+++ b/start-all.ps1
@@ -57,6 +57,7 @@
[PSCustomObject]@{ Name = 'jnpf-eln'; Jar = "jnpf-eln/jnpf-eln-server/target/jnpf-eln-$($Script:Version).jar"; Port = 30013 }
[PSCustomObject]@{ Name = 'jnpf-lims'; Jar = "jnpf-lims/jnpf-lims-server/target/jnpf-lims-$($Script:Version).jar"; Port = 30019 }
[PSCustomObject]@{ Name = 'jnpf-dms'; Jar = "jnpf-dms/jnpf-dms-server/target/jnpf-dms-$($Script:Version).jar"; Port = 30016 }
+ [PSCustomObject]@{ Name = 'jnpf-tms'; Jar = "jnpf-tms/jnpf-tms-server/target/jnpf-tms-$($Script:Version).jar"; Port = 30017 }
)
$Script:TargetServices = @()
@@ -778,7 +779,7 @@
switch ($Name) {
'jnpf-platform' { return 1 }
'jnpf-biz-common' { return 2 }
- { $_ -in 'jnpf-lims', 'jnpf-dms' } { return 3 }
+ { $_ -in 'jnpf-lims', 'jnpf-dms', 'jnpf-tms' } { return 3 }
default { return 4 }
}
}
@@ -883,7 +884,7 @@
--build, -b 鍚姩鍓嶅厛缂栬瘧椤圭洰
鏈嶅姟鍚嶏紙鍙�夛紝鐪佺暐 = 鍏ㄩ儴锛�:
- jnpf-gateway jnpf-platform jnpf-biz-common jnpf-eln jnpf-lims jnpf-dms
+ jnpf-gateway jnpf-platform jnpf-biz-common jnpf-eln jnpf-lims jnpf-dms jnpf-tms
娉細jnpf-biz-common(30015) 鍚璁¤兘鍔涖��
鍙捣 jnpf-lims 鑰屼笉璧峰畠锛屽璁′簨浠朵細鎶曢�掑け璐ュ苟钀� spool銆�
diff --git a/start-all.sh b/start-all.sh
index d4d7432..dfb309e 100644
--- a/start-all.sh
+++ b/start-all.sh
@@ -153,6 +153,7 @@
"jnpf-eln jnpf-eln/jnpf-eln-server/target/jnpf-eln-${VERSION}.jar 30013"
"jnpf-lims jnpf-lims/jnpf-lims-server/target/jnpf-lims-${VERSION}.jar 30019"
"jnpf-dms jnpf-dms/jnpf-dms-server/target/jnpf-dms-${VERSION}.jar 30016"
+ "jnpf-tms jnpf-tms/jnpf-tms-server/target/jnpf-tms-${VERSION}.jar 30017"
)
# 琛ヤ竵 #8锛氬涓绘爤鐩磋繛鍧愭爣锛堣鐩� config/shared 閲岀殑 compose 榛樿鍊硷級
@@ -497,7 +498,7 @@
--build, -b 鍚姩鍓嶅厛缂栬瘧椤圭洰
鏈嶅姟鍚嶏紙鍙�夛紝鐪佺暐 = 鍏ㄩ儴锛�:
- jnpf-gateway jnpf-platform jnpf-biz-common jnpf-lims jnpf-dms
+ jnpf-gateway jnpf-platform jnpf-biz-common jnpf-lims jnpf-dms jnpf-tms
娉細jnpf-biz-common(30015) 鍚璁¤兘鍔涳紙2026-08-11 鐢卞師 jnpf-audit:30014 鎼叆锛夈��
鍙捣 jnpf-lims 鑰屼笉璧峰畠锛屽璁′簨浠朵細鎶曢�掑け璐ュ苟钀� spool銆�
@@ -629,7 +630,7 @@
case "$1" in
jnpf-platform) echo 1 ;;
jnpf-biz-common) echo 2 ;;
- jnpf-lims|jnpf-dms) echo 3 ;;
+ jnpf-lims|jnpf-dms|jnpf-tms) echo 3 ;;
*) echo 4 ;;
esac
}
diff --git a/stop-all.ps1 b/stop-all.ps1
index 86c96bd..c5d496a 100644
--- a/stop-all.ps1
+++ b/stop-all.ps1
@@ -37,6 +37,7 @@
[PSCustomObject]@{ Name = 'jnpf-eln'; Jar = 'jnpf-eln-6.1.0-RELEASE.jar'; Port = 30013 }
[PSCustomObject]@{ Name = 'jnpf-lims'; Jar = 'jnpf-lims-6.1.0-RELEASE.jar'; Port = 30019 }
[PSCustomObject]@{ Name = 'jnpf-dms'; Jar = 'jnpf-dms-6.1.0-RELEASE.jar'; Port = 30016 }
+ [PSCustomObject]@{ Name = 'jnpf-tms'; Jar = 'jnpf-tms-6.1.0-RELEASE.jar'; Port = 30017 }
)
function Write-ColorLine {
@@ -72,7 +73,7 @@
Write-Host ''
Write-Host '鐪佺暐鏈嶅姟鍚嶆椂鍋滄鍏ㄩ儴鏈嶅姟锛涙寚瀹氭湇鍔″悕鏃跺彧鍋滄瀵瑰簲鏈嶅姟锛�'
Write-Host ' jnpf-gateway jnpf-platform jnpf-biz-common'
- Write-Host ' jnpf-eln jnpf-lims jnpf-dms'
+ Write-Host ' jnpf-eln jnpf-lims jnpf-dms jnpf-tms'
Write-Host ''
Write-Host '绀轰緥:'
Write-Host " .\$scriptName"
--
Gitblit v1.8.0