diff --git a/deployment.yaml b/deployment.yaml
index b6f14499..f2e31e3e 100644
--- a/deployment.yaml
+++ b/deployment.yaml
@@ -1,35 +1,57 @@
-# zt-gateway
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
- name: zt-gateway
- labels:
- app: zt-gateway
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: zt-gateway
- template:
- metadata:
- labels:
- app: zt-gateway
- spec:
- containers:
- - name: zt-gateway
- image: 172.16.46.66:10043/zt/zt-gateway:VERSION_PLACEHOLDER
- imagePullPolicy: Always
- env:
- - name: TZ
- value: Asia/Shanghai
- ports:
- - containerPort: 48080
----
+## zt-gateway
+#apiVersion: apps/v1
+#kind: Deployment
+#metadata:
+# namespace: ns-d6a0e78ebd674c279614498e4c57b133
+# name: zt-gateway
+# labels:
+# app: zt-gateway
+#spec:
+# replicas: 1
+# selector:
+# matchLabels:
+# app: zt-gateway
+# template:
+# metadata:
+# labels:
+# app: zt-gateway
+# spec:
+# containers:
+# - name: zt-gateway
+# image: 172.16.46.66:10043/zt/zt-gateway:VERSION_PLACEHOLDER
+# imagePullPolicy: Always
+# env:
+# - name: TZ
+# value: Asia/Shanghai
+# ports:
+# - containerPort: 48080
+# readinessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48080
+# initialDelaySeconds: 50
+# periodSeconds: 5
+# failureThreshold: 3
+# livenessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48080
+# initialDelaySeconds: 50
+# periodSeconds: 10
+# failureThreshold: 5
+# resources:
+# requests:
+# cpu: "500m"
+# memory: "1024Mi"
+# limits:
+# cpu: "1024m"
+# memory: "2048Mi"
+# terminationGracePeriodSeconds: 30
+#---
apiVersion: v1
kind: Service
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-gateway
spec:
type: NodePort
@@ -45,7 +67,7 @@ spec:
apiVersion: apps/v1
kind: Deployment
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-infra
labels:
app: zt-module-infra
@@ -54,7 +76,7 @@ metadata:
description: DESC_PLACEHOLDER
rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
spec:
- replicas: 1
+ replicas: 2
selector:
matchLabels:
app: zt-module-infra
@@ -63,6 +85,11 @@ spec:
labels:
app: zt-module-infra
spec:
+ dnsPolicy: None
+ dnsConfig:
+ nameservers:
+ - "172.16.36.16"
+ - "172.16.36.220"
containers:
- name: zt-module-infra
image: 172.16.46.66:10043/zt/zt-module-infra:VERSION_PLACEHOLDER
@@ -74,16 +101,23 @@ spec:
httpGet:
path: /actuator/health
port: 48082
- initialDelaySeconds: 10
+ initialDelaySeconds: 50
periodSeconds: 5
failureThreshold: 3
livenessProbe:
httpGet:
path: /actuator/health
port: 48082
- initialDelaySeconds: 30
+ initialDelaySeconds: 50
periodSeconds: 10
failureThreshold: 5
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "1024Mi"
+ limits:
+ cpu: "1024m"
+ memory: "2048Mi"
terminationGracePeriodSeconds: 30
strategy:
type: RollingUpdate
@@ -94,22 +128,23 @@ spec:
apiVersion: v1
kind: Service
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-infra
spec:
- type: ClusterIP
+ type: NodePort
selector:
app: zt-module-infra
ports:
- protocol: TCP
port: 48082
targetPort: 48082
+ nodePort: 30092
---
# zt-module-system
apiVersion: apps/v1
kind: Deployment
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-system
labels:
app: zt-module-system
@@ -127,6 +162,20 @@ spec:
labels:
app: zt-module-system
spec:
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - node-3
+ dnsPolicy: None
+ dnsConfig:
+ nameservers:
+ - "172.16.36.16"
+ - "172.16.36.220"
containers:
- name: zt-module-system
image: 172.16.46.66:10043/zt/zt-module-system:VERSION_PLACEHOLDER
@@ -138,16 +187,23 @@ spec:
httpGet:
path: /actuator/health
port: 48081
- initialDelaySeconds: 10
+ initialDelaySeconds: 50
periodSeconds: 5
failureThreshold: 3
livenessProbe:
httpGet:
path: /actuator/health
port: 48081
- initialDelaySeconds: 30
+ initialDelaySeconds: 50
periodSeconds: 10
failureThreshold: 5
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "1024Mi"
+ limits:
+ cpu: "1024m"
+ memory: "2048Mi"
terminationGracePeriodSeconds: 30
strategy:
type: RollingUpdate
@@ -158,150 +214,167 @@ spec:
apiVersion: v1
kind: Service
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-system
spec:
- type: ClusterIP
+ type: NodePort
selector:
app: zt-module-system
ports:
- protocol: TCP
port: 48081
targetPort: 48081
+ nodePort: 30091
---
# zt-module-bpm
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
- name: zt-module-bpm
- labels:
- app: zt-module-bpm
- annotations:
- version: "VERSION_PLACEHOLDER"
- description: DESC_PLACEHOLDER
- rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: zt-module-bpm
- template:
- metadata:
- labels:
- app: zt-module-bpm
- spec:
- containers:
- - name: zt-module-bpm
- image: 172.16.46.66:10043/zt/zt-module-bpm:VERSION_PLACEHOLDER
- imagePullPolicy: Always
- env:
- - name: TZ
- value: Asia/Shanghai
- readinessProbe:
- httpGet:
- path: /actuator/health
- port: 48083
- initialDelaySeconds: 10
- periodSeconds: 5
- failureThreshold: 3
- livenessProbe:
- httpGet:
- path: /actuator/health
- port: 48083
- initialDelaySeconds: 30
- periodSeconds: 10
- failureThreshold: 5
- terminationGracePeriodSeconds: 30
- strategy:
- type: RollingUpdate
- rollingUpdate:
- maxSurge: 1
- maxUnavailable: 0
----
-apiVersion: v1
-kind: Service
-metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
- name: zt-module-bpm
-spec:
- type: ClusterIP
- selector:
- app: zt-module-bpm
- ports:
- - protocol: TCP
- port: 48083
- targetPort: 48083
+#apiVersion: apps/v1
+#kind: Deployment
+#metadata:
+# namespace: ns-d6a0e78ebd674c279614498e4c57b133
+# name: zt-module-bpm
+# labels:
+# app: zt-module-bpm
+# annotations:
+# version: "VERSION_PLACEHOLDER"
+# description: DESC_PLACEHOLDER
+# rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
+#spec:
+# replicas: 1
+# selector:
+# matchLabels:
+# app: zt-module-bpm
+# template:
+# metadata:
+# labels:
+# app: zt-module-bpm
+# spec:
+# containers:
+# - name: zt-module-bpm
+# image: 172.16.46.66:10043/zt/zt-module-bpm:VERSION_PLACEHOLDER
+# imagePullPolicy: Always
+# env:
+# - name: TZ
+# value: Asia/Shanghai
+# readinessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48083
+# initialDelaySeconds: 50
+# periodSeconds: 5
+# failureThreshold: 3
+# livenessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48083
+# initialDelaySeconds: 50
+# periodSeconds: 10
+# failureThreshold: 5
+# resources:
+# requests:
+# cpu: "500m"
+# memory: "1024Mi"
+# limits:
+# cpu: "2048m"
+# memory: "2048Mi"
+# terminationGracePeriodSeconds: 30
+# strategy:
+# type: RollingUpdate
+# rollingUpdate:
+# maxSurge: 1
+# maxUnavailable: 0
+#---
+#apiVersion: v1
+#kind: Service
+#metadata:
+# namespace: ns-d6a0e78ebd674c279614498e4c57b133
+# name: zt-module-bpm
+#spec:
+# type: NodePort
+# selector:
+# app: zt-module-bpm
+# ports:
+# - protocol: TCP
+# port: 48083
+# targetPort: 48083
+# nodePort: 30093
---
# zt-module-report
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
- name: zt-module-report
- labels:
- app: zt-module-report
- annotations:
- version: "VERSION_PLACEHOLDER"
- description: DESC_PLACEHOLDER
- rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: zt-module-report
- template:
- metadata:
- labels:
- app: zt-module-report
- spec:
- containers:
- - name: zt-module-report
- image: 172.16.46.66:10043/zt/zt-module-report:VERSION_PLACEHOLDER
- imagePullPolicy: Always
- env:
- - name: TZ
- value: Asia/Shanghai
- readinessProbe:
- httpGet:
- path: /actuator/health
- port: 48084
- initialDelaySeconds: 10
- periodSeconds: 5
- failureThreshold: 3
- livenessProbe:
- httpGet:
- path: /actuator/health
- port: 48084
- initialDelaySeconds: 30
- periodSeconds: 10
- failureThreshold: 5
- terminationGracePeriodSeconds: 30
- strategy:
- type: RollingUpdate
- rollingUpdate:
- maxSurge: 1
- maxUnavailable: 0
----
-apiVersion: v1
-kind: Service
-metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
- name: zt-module-report
-spec:
- type: ClusterIP
- selector:
- app: zt-module-report
- ports:
- - protocol: TCP
- port: 48084
- targetPort: 48084
+#apiVersion: apps/v1
+#kind: Deployment
+#metadata:
+# namespace: ns-d6a0e78ebd674c279614498e4c57b133
+# name: zt-module-report
+# labels:
+# app: zt-module-report
+# annotations:
+# version: "VERSION_PLACEHOLDER"
+# description: DESC_PLACEHOLDER
+# rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
+#spec:
+# replicas: 1
+# selector:
+# matchLabels:
+# app: zt-module-report
+# template:
+# metadata:
+# labels:
+# app: zt-module-report
+# spec:
+# containers:
+# - name: zt-module-report
+# image: 172.16.46.66:10043/zt/zt-module-report:VERSION_PLACEHOLDER
+# imagePullPolicy: Always
+# env:
+# - name: TZ
+# value: Asia/Shanghai
+# readinessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48084
+# initialDelaySeconds: 50
+# periodSeconds: 5
+# failureThreshold: 3
+# livenessProbe:
+# httpGet:
+# path: /actuator/health
+# port: 48084
+# initialDelaySeconds: 50
+# periodSeconds: 10
+# failureThreshold: 5
+# resources:
+# requests:
+# cpu: "500m"
+# memory: "1024Mi"
+# limits:
+# cpu: "2048m"
+# memory: "2048Mi"
+# terminationGracePeriodSeconds: 30
+# strategy:
+# type: RollingUpdate
+# rollingUpdate:
+# maxSurge: 1
+# maxUnavailable: 0
+#---
+#apiVersion: v1
+#kind: Service
+#metadata:
+# namespace: ns-d6a0e78ebd674c279614498e4c57b133
+# name: zt-module-report
+#spec:
+# type: NodePort
+# selector:
+# app: zt-module-report
+# ports:
+# - protocol: TCP
+# port: 48084
+# targetPort: 48084
+# nodePort: 30094
---
# zt-module-databus
apiVersion: apps/v1
kind: Deployment
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-databus
labels:
app: zt-module-databus
@@ -319,6 +392,20 @@ spec:
labels:
app: zt-module-databus
spec:
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - node-3
+ dnsPolicy: None
+ dnsConfig:
+ nameservers:
+ - "172.16.36.16"
+ - "172.16.36.220"
containers:
- name: zt-module-databus
image: 172.16.46.66:10043/zt/zt-module-databus:VERSION_PLACEHOLDER
@@ -330,16 +417,23 @@ spec:
httpGet:
path: /actuator/health
port: 48100
- initialDelaySeconds: 10
+ initialDelaySeconds: 50
periodSeconds: 5
failureThreshold: 3
livenessProbe:
httpGet:
path: /actuator/health
port: 48100
- initialDelaySeconds: 30
+ initialDelaySeconds: 50
periodSeconds: 10
failureThreshold: 5
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "1024Mi"
+ limits:
+ cpu: "700m"
+ memory: "2048Mi"
terminationGracePeriodSeconds: 30
strategy:
type: RollingUpdate
@@ -350,13 +444,93 @@ spec:
apiVersion: v1
kind: Service
metadata:
- namespace: ns-f16a3067ca7b434aad127d15eac82503
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
name: zt-module-databus
spec:
- type: ClusterIP
+ type: NodePort
selector:
app: zt-module-databus
ports:
- protocol: TCP
port: 48100
targetPort: 48100
+ nodePort: 30090
+
+
+---
+# zt-module-template
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
+ name: zt-module-template
+ labels:
+ app: zt-module-template
+ annotations:
+ version: "VERSION_PLACEHOLDER"
+ description: DESC_PLACEHOLDER
+ rollout.kubernetes.io/change-cause: "DESC_PLACEHOLDER:VERSION_PLACEHOLDER"
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: zt-module-template
+ template:
+ metadata:
+ labels:
+ app: zt-module-template
+ spec:
+ dnsPolicy: None
+ dnsConfig:
+ nameservers:
+ - "172.16.36.16"
+ - "172.16.36.220"
+ containers:
+ - name: zt-module-template
+ image: 172.16.46.66:10043/zt/zt-module-template:VERSION_PLACEHOLDER
+ imagePullPolicy: Always
+ env:
+ - name: TZ
+ value: Asia/Shanghai
+ readinessProbe:
+ httpGet:
+ path: /actuator/health
+ port: 49100
+ initialDelaySeconds: 50
+ periodSeconds: 5
+ failureThreshold: 3
+ livenessProbe:
+ httpGet:
+ path: /actuator/health
+ port: 49100
+ initialDelaySeconds: 50
+ periodSeconds: 10
+ failureThreshold: 5
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "1024Mi"
+ limits:
+ cpu: "700m"
+ memory: "1024Mi"
+ terminationGracePeriodSeconds: 30
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxSurge: 1
+ maxUnavailable: 0
+---
+apiVersion: v1
+kind: Service
+metadata:
+ namespace: ns-d6a0e78ebd674c279614498e4c57b133
+ name: zt-module-template
+spec:
+ type: NodePort
+ selector:
+ app: zt-module-template
+ ports:
+ - protocol: TCP
+ port: 49100
+ targetPort: 49100
+ nodePort: 30889
diff --git a/pom.xml b/pom.xml
index 16bfa99f..e4f07311 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,9 +16,9 @@
zt-module-system
zt-module-infra
- zt-module-bpm
+
zt-module-report
-
+
zt-module-template
@@ -295,6 +295,19 @@
1.0.0
+
+ qsj
+
+ dev
+
+ 172.16.46.63:30848
+ qsj
+ DEFAULT_GROUP
+ nacos
+ P@ssword25
+ 1.0.0
+
+
diff --git a/sql/dm/doc_management.sql b/sql/dm/doc_management.sql
new file mode 100644
index 00000000..3d76be13
--- /dev/null
+++ b/sql/dm/doc_management.sql
@@ -0,0 +1,144 @@
+/*
+ Zt Database Transfer Tool
+
+ Source Server Type : MySQL
+
+ Target Server Type : DM8
+
+ Date: 2025-08-29 10:32:27
+*/
+
+
+-- ----------------------------
+-- Table structure for infra_doc_file
+-- ----------------------------
+CREATE TABLE infra_doc_file (
+ id bigint NOT NULL PRIMARY KEY,
+ title varchar(255) NOT NULL,
+ file_id bigint DEFAULT NULL NULL,
+ file_type varchar(10) NOT NULL,
+ space_type smallint DEFAULT '1' NOT NULL,
+ description varchar(500) DEFAULT NULL NULL,
+ latest_version_id bigint DEFAULT NULL NULL,
+ owner_user_id bigint NOT NULL,
+ status smallint DEFAULT '1' NOT NULL,
+ creator varchar(64) DEFAULT '' NULL,
+ create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ updater varchar(64) DEFAULT '' NULL,
+ update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ deleted bit DEFAULT '0' NOT NULL,
+ tenant_id bigint DEFAULT '0' NOT NULL
+);
+
+CREATE INDEX idx_infra_doc_file_01 ON infra_doc_file (owner_user_id);
+CREATE INDEX idx_infra_doc_file_02 ON infra_doc_file (space_type);
+CREATE INDEX idx_infra_doc_file_03 ON infra_doc_file (file_type);
+
+COMMENT ON COLUMN infra_doc_file.id IS '文档编号';
+COMMENT ON COLUMN infra_doc_file.title IS '文档标题';
+COMMENT ON COLUMN infra_doc_file.file_id IS '文件编号';
+COMMENT ON COLUMN infra_doc_file.file_type IS '文件类型(docx/xlsx/pptx/pdf)';
+COMMENT ON COLUMN infra_doc_file.space_type IS '空间类型(1-个人空间 2-团队空间)';
+COMMENT ON COLUMN infra_doc_file.description IS '文档描述';
+COMMENT ON COLUMN infra_doc_file.latest_version_id IS '最新版本编号';
+COMMENT ON COLUMN infra_doc_file.owner_user_id IS '所有者用户编号';
+COMMENT ON COLUMN infra_doc_file.status IS '状态(0-禁用 1-启用)';
+COMMENT ON COLUMN infra_doc_file.creator IS '创建者';
+COMMENT ON COLUMN infra_doc_file.create_time IS '创建时间';
+COMMENT ON COLUMN infra_doc_file.updater IS '更新者';
+COMMENT ON COLUMN infra_doc_file.update_time IS '更新时间';
+COMMENT ON COLUMN infra_doc_file.deleted IS '是否删除';
+COMMENT ON COLUMN infra_doc_file.tenant_id IS '租户编号';
+COMMENT ON TABLE infra_doc_file IS '在线文档表';
+
+-- ----------------------------
+-- Table structure for infra_doc_file_version
+-- ----------------------------
+CREATE TABLE infra_doc_file_version (
+ id bigint NOT NULL PRIMARY KEY,
+ doc_file_id bigint NOT NULL,
+ version_no varchar(50) NOT NULL,
+ file_id bigint NOT NULL,
+ change_description varchar(500) DEFAULT NULL NULL,
+ creator varchar(64) DEFAULT '' NULL,
+ create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ updater varchar(64) DEFAULT '' NULL,
+ update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ deleted bit DEFAULT '0' NOT NULL,
+ tenant_id bigint DEFAULT '0' NOT NULL
+);
+
+CREATE INDEX idx_infra_doc_file_version_01 ON infra_doc_file_version (doc_file_id);
+CREATE INDEX idx_infra_doc_file_version_02 ON infra_doc_file_version (version_no);
+
+COMMENT ON COLUMN infra_doc_file_version.id IS '版本编号';
+COMMENT ON COLUMN infra_doc_file_version.doc_file_id IS '文档编号';
+COMMENT ON COLUMN infra_doc_file_version.version_no IS '版本号';
+COMMENT ON COLUMN infra_doc_file_version.file_id IS '文件编号';
+COMMENT ON COLUMN infra_doc_file_version.change_description IS '变更说明';
+COMMENT ON COLUMN infra_doc_file_version.creator IS '创建者';
+COMMENT ON COLUMN infra_doc_file_version.create_time IS '创建时间';
+COMMENT ON COLUMN infra_doc_file_version.updater IS '更新者';
+COMMENT ON COLUMN infra_doc_file_version.update_time IS '更新时间';
+COMMENT ON COLUMN infra_doc_file_version.deleted IS '是否删除';
+COMMENT ON COLUMN infra_doc_file_version.tenant_id IS '租户编号';
+COMMENT ON TABLE infra_doc_file_version IS '文档版本表';
+
+-- ----------------------------
+-- Table structure for infra_doc_file_permission
+-- ----------------------------
+CREATE TABLE infra_doc_file_permission (
+ id bigint NOT NULL PRIMARY KEY,
+ doc_file_id bigint NOT NULL,
+ role_id bigint NOT NULL,
+ permission_type smallint DEFAULT '1' NOT NULL,
+ expire_time datetime DEFAULT NULL NULL,
+ creator varchar(64) DEFAULT '' NULL,
+ create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ updater varchar(64) DEFAULT '' NULL,
+ update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ deleted bit DEFAULT '0' NOT NULL,
+ tenant_id bigint DEFAULT '0' NOT NULL
+);
+
+CREATE INDEX idx_infra_doc_file_permission_01 ON infra_doc_file_permission (role_id);
+
+COMMENT ON COLUMN infra_doc_file_permission.id IS '权限编号';
+COMMENT ON COLUMN infra_doc_file_permission.doc_file_id IS '文档编号';
+COMMENT ON COLUMN infra_doc_file_permission.role_id IS '角色编号';
+COMMENT ON COLUMN infra_doc_file_permission.permission_type IS '权限类型(1-只读 2-编辑 3-管理)';
+COMMENT ON COLUMN infra_doc_file_permission.expire_time IS '过期时间';
+COMMENT ON COLUMN infra_doc_file_permission.creator IS '创建者';
+COMMENT ON COLUMN infra_doc_file_permission.create_time IS '创建时间';
+COMMENT ON COLUMN infra_doc_file_permission.updater IS '更新者';
+COMMENT ON COLUMN infra_doc_file_permission.update_time IS '更新时间';
+COMMENT ON COLUMN infra_doc_file_permission.deleted IS '是否删除';
+COMMENT ON COLUMN infra_doc_file_permission.tenant_id IS '租户编号';
+COMMENT ON TABLE infra_doc_file_permission IS '文档权限表';
+
+-- ----------------------------
+-- Table structure for infra_doc_edit_history
+-- ----------------------------
+CREATE TABLE infra_doc_edit_history (
+ id bigint NOT NULL PRIMARY KEY,
+ doc_file_id bigint NOT NULL,
+ user_id bigint NOT NULL,
+ user_name varchar(100) NOT NULL,
+ edit_type smallint DEFAULT '1' NOT NULL,
+ description varchar(500) DEFAULT NULL NULL,
+ create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ tenant_id bigint DEFAULT '0' NOT NULL
+);
+
+CREATE INDEX idx_infra_doc_edit_history_01 ON infra_doc_edit_history (doc_file_id);
+CREATE INDEX idx_infra_doc_edit_history_02 ON infra_doc_edit_history (user_id);
+
+COMMENT ON COLUMN infra_doc_edit_history.id IS '历史编号';
+COMMENT ON COLUMN infra_doc_edit_history.doc_file_id IS '文档编号';
+COMMENT ON COLUMN infra_doc_edit_history.user_id IS '编辑用户编号';
+COMMENT ON COLUMN infra_doc_edit_history.user_name IS '编辑用户名称';
+COMMENT ON COLUMN infra_doc_edit_history.edit_type IS '编辑类型(1-创建 2-编辑 3-删除 4-重命名)';
+COMMENT ON COLUMN infra_doc_edit_history.description IS '操作描述';
+COMMENT ON COLUMN infra_doc_edit_history.create_time IS '创建时间';
+COMMENT ON COLUMN infra_doc_edit_history.tenant_id IS '租户编号';
+COMMENT ON TABLE infra_doc_edit_history IS '文档编辑历史表';
diff --git a/sql/dm/doc_management_menu.sql b/sql/dm/doc_management_menu.sql
new file mode 100644
index 00000000..ec698c8b
--- /dev/null
+++ b/sql/dm/doc_management_menu.sql
@@ -0,0 +1,39 @@
+-- 在线文档管理功能菜单数据(DM 格式)
+-- 说明:达梦脚本使用与 patch.sql 相同的精简列形式,省略布尔列与时间列,使用默认值。
+
+-- 清理旧数据,保持可重复执行
+DELETE FROM system_menu WHERE id IN (6000,6001,6002,600101,600102,600103,600104,600105,600106,600107,600108,600109,600110);
+
+-- 顶级目录(父级假定已存在 id=2 的“基础设施/Infra”或同级目录)
+INSERT INTO system_menu (
+ id, name, permission, type, sort, parent_id,
+ path, icon, component, status, component_name
+) VALUES (
+ 6000, '在线文档', '', 1, 15, 2,
+ 'doc', 'fa:file-text-o', '', 0, NULL
+);
+
+-- 文档管理主页面
+INSERT INTO system_menu (
+ id, name, permission, type, sort, parent_id,
+ path, icon, component, status, component_name
+) VALUES (
+ 6001, '文档管理', 'infra:doc:query', 2, 1, 6000,
+ 'doc-file', 'fa:file-text', 'infra/doc/index', 0, 'DocFile'
+);
+
+-- 按钮权限(操作项)
+INSERT INTO system_menu (
+ id, name, permission, type, sort, parent_id,
+ path, icon, component, status
+) VALUES
+ (600101,'文档查询','infra:doc:query',3,1,6001,'','','',0),
+ (600102,'文档创建','infra:doc:create',3,2,6001,'','','',0),
+ (600103,'文档更新','infra:doc:update',3,3,6001,'','','',0),
+ (600104,'文档删除','infra:doc:delete',3,4,6001,'','','',0),
+ (600105,'文档导出','infra:doc:export',3,5,6001,'','','',0),
+ (600106,'文档上传','infra:doc:upload',3,6,6001,'','','',0),
+ (600107,'文档编辑','infra:doc:edit',3,7,6001,'','','',0),
+ (600108,'文档预览','infra:doc:preview',3,8,6001,'','','',0),
+ (600109,'文档下载','infra:doc:download',3,9,6001,'','','',0),
+ (600110,'权限管理','infra:doc:permission',3,10,6001,'','','',0);
diff --git a/sql/dm/system_sync_log.sql b/sql/dm/system_sync_log.sql
new file mode 100644
index 00000000..5dca9785
--- /dev/null
+++ b/sql/dm/system_sync_log.sql
@@ -0,0 +1,83 @@
+/*
+ Zt Database Transfer Tool
+
+ Source Server Type : MySQL
+
+ Target Server Type : DM8
+
+ Date: 2025-08-28 14:12:23
+*/
+
+
+-- ----------------------------
+-- Table structure for system_sync_log
+-- ----------------------------
+CREATE TABLE system_sync_log (
+ id bigint NOT NULL PRIMARY KEY,
+ bim_request_id varchar(64) DEFAULT '' NULL,
+ service_name varchar(100) NOT NULL,
+ request_method varchar(16) DEFAULT 'POST' NOT NULL,
+ request_url varchar(500) NOT NULL,
+ client_ip varchar(50) NOT NULL,
+ user_agent varchar(512) DEFAULT NULL NULL,
+ request_time datetime NOT NULL,
+ response_time datetime DEFAULT NULL NULL,
+ duration bigint DEFAULT NULL NULL,
+ encrypted_request text NOT NULL,
+ decrypted_request text NULL,
+ status smallint DEFAULT 0 NOT NULL,
+ error_code varchar(100) DEFAULT NULL NULL,
+ error_message varchar(1000) DEFAULT NULL NULL,
+ exception_stack text NULL,
+ response_data text NULL,
+ encrypted_response text NULL,
+ auth_user varchar(100) DEFAULT NULL NULL,
+ decrypt_status smallint DEFAULT 0 NOT NULL,
+ signature_verify_status smallint DEFAULT 0 NOT NULL,
+ auth_status smallint DEFAULT 0 NOT NULL,
+ business_result varchar(100) DEFAULT NULL NULL,
+ extra text NULL,
+ creator varchar(64) DEFAULT '' NULL,
+ create_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ updater varchar(64) DEFAULT '' NULL,
+ update_time datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
+ deleted bit DEFAULT '0' NOT NULL
+);
+
+CREATE INDEX idx_system_sync_log_01 ON system_sync_log (bim_request_id);
+CREATE INDEX idx_system_sync_log_02 ON system_sync_log (service_name);
+CREATE INDEX idx_system_sync_log_03 ON system_sync_log (request_time);
+CREATE INDEX idx_system_sync_log_04 ON system_sync_log (status);
+CREATE INDEX idx_system_sync_log_05 ON system_sync_log (client_ip);
+CREATE INDEX idx_system_sync_log_06 ON system_sync_log (auth_user);
+
+COMMENT ON COLUMN system_sync_log.id IS '日志主键';
+COMMENT ON COLUMN system_sync_log.bim_request_id IS '外部请求ID';
+COMMENT ON COLUMN system_sync_log.service_name IS '接口名称/服务名称';
+COMMENT ON COLUMN system_sync_log.request_method IS '请求方法';
+COMMENT ON COLUMN system_sync_log.request_url IS '请求URL';
+COMMENT ON COLUMN system_sync_log.client_ip IS '客户端IP地址';
+COMMENT ON COLUMN system_sync_log.user_agent IS '用户代理字符串';
+COMMENT ON COLUMN system_sync_log.request_time IS '请求开始时间';
+COMMENT ON COLUMN system_sync_log.response_time IS '请求结束时间';
+COMMENT ON COLUMN system_sync_log.duration IS '请求处理耗时(毫秒)';
+COMMENT ON COLUMN system_sync_log.encrypted_request IS '原始加密请求体';
+COMMENT ON COLUMN system_sync_log.decrypted_request IS '解密后的请求体';
+COMMENT ON COLUMN system_sync_log.status IS '响应状态 0-成功 1-解密失败 2-签名验证失败 3-认证失败 4-业务处理失败 5-系统异常';
+COMMENT ON COLUMN system_sync_log.error_code IS '错误码';
+COMMENT ON COLUMN system_sync_log.error_message IS '错误信息';
+COMMENT ON COLUMN system_sync_log.exception_stack IS '异常堆栈';
+COMMENT ON COLUMN system_sync_log.response_data IS '响应数据(加密前)';
+COMMENT ON COLUMN system_sync_log.encrypted_response IS '加密后的响应数据';
+COMMENT ON COLUMN system_sync_log.auth_user IS '认证用户';
+COMMENT ON COLUMN system_sync_log.decrypt_status IS '解密状态 0-成功 1-失败';
+COMMENT ON COLUMN system_sync_log.signature_verify_status IS '签名验证状态 0-成功 1-失败';
+COMMENT ON COLUMN system_sync_log.auth_status IS '认证状态 0-成功 1-失败';
+COMMENT ON COLUMN system_sync_log.business_result IS '业务处理结果';
+COMMENT ON COLUMN system_sync_log.extra IS '额外信息';
+COMMENT ON COLUMN system_sync_log.creator IS '创建者';
+COMMENT ON COLUMN system_sync_log.create_time IS '创建时间';
+COMMENT ON COLUMN system_sync_log.updater IS '更新者';
+COMMENT ON COLUMN system_sync_log.update_time IS '更新时间';
+COMMENT ON COLUMN system_sync_log.deleted IS '是否删除';
+COMMENT ON TABLE system_sync_log IS '同步接口调用日志表';
diff --git a/sql/dm/工艺工序页面菜单权限_20251030.sql b/sql/dm/工艺工序页面菜单权限_20251030.sql
new file mode 100644
index 00000000..aafa5cb2
--- /dev/null
+++ b/sql/dm/工艺工序页面菜单权限_20251030.sql
@@ -0,0 +1,44 @@
+-- 工艺工序页面菜单与权限初始化脚本(DM8)
+-- 默认挂载在基础数据目录(parent_id = 6200),如需调整请修改 parent_id。
+
+DELETE FROM system_menu
+ WHERE id IN (6207, 620701, 620702, 620703, 620704, 620705);
+
+INSERT INTO system_menu (
+ id, name, permission, type, sort, parent_id,
+ path, icon, component, component_name,
+ status, visible, keep_alive, always_show,
+ creator, create_time, updater, update_time, deleted
+) VALUES (
+ 6207, '工艺工序', 'base:processing-infomation-operation:query', 2, 70, 6200,
+ 'processing-infomation-operation', 'ep:operation', 'base/processinginfomationoperation/index', 'ProcessingInfomationOperation',
+ 0, '1', '0', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0'
+);
+
+INSERT INTO system_menu (
+ id, name, permission, type, sort, parent_id,
+ path, icon, component, component_name,
+ status, visible, keep_alive, always_show,
+ creator, create_time, updater, update_time, deleted
+) VALUES
+ (620701, '工艺工序查询', 'base:processing-infomation-operation:query', 3, 1, 6207,
+ '', '', '', '',
+ 0, '1', '1', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0'),
+ (620702, '工艺工序创建', 'base:processing-infomation-operation:create', 3, 2, 6207,
+ '', '', '', '',
+ 0, '1', '1', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0'),
+ (620703, '工艺工序更新', 'base:processing-infomation-operation:update', 3, 3, 6207,
+ '', '', '', '',
+ 0, '1', '1', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0'),
+ (620704, '工艺工序删除', 'base:processing-infomation-operation:delete', 3, 4, 6207,
+ '', '', '', '',
+ 0, '1', '1', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0'),
+ (620705, '工艺工序导出', 'base:processing-infomation-operation:export', 3, 5, 6207,
+ '', '', '', '',
+ 0, '1', '1', '1',
+ 'admin', CURRENT_TIMESTAMP, 'admin', CURRENT_TIMESTAMP, '0');
diff --git a/sql/dm/组织物料状态字段补充_20251105.sql b/sql/dm/组织物料状态字段补充_20251105.sql
new file mode 100644
index 00000000..2df4460f
--- /dev/null
+++ b/sql/dm/组织物料状态字段补充_20251105.sql
@@ -0,0 +1,8 @@
+-- ---------------------------------------------------------------------------
+-- 脚本名称 : 组织物料状态字段补充_20251105.sql
+-- 适用数据库 : DM8
+-- 变更目的 : 为 bse_dept_mtrl 表补充状态字段 STS,解决查询时列不存在的问题
+-- 影响说明 : 仅新增并初始化 STS 字段,默认值为 '1'(有效)
+-- 执行前请先确认已备份相关数据
+-- ---------------------------------------------------------------------------
+ALTER TABLE BSE_DEPT_MTRL ADD STS VARCHAR2(5) DEFAULT '0';
diff --git a/sql/mysql/ruoyi-vue-pro.sql b/sql/mysql/ruoyi-vue-pro.sql
index c53fcb8f..7acc2d54 100644
--- a/sql/mysql/ruoyi-vue-pro.sql
+++ b/sql/mysql/ruoyi-vue-pro.sql
@@ -282,15 +282,15 @@ CREATE TABLE `infra_file_config` (
-- Records of infra_file_config
-- ----------------------------
BEGIN;
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '数据库(示例)', 1, '我是数据库', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:56:24', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (22, '七牛存储器(示例)', 20, '请换成你自己的密钥!!!', b'1', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3.cn-south-1.qiniucs.com\",\"domain\":\"http://test.yudao.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"3TvrJ70gl2Gt6IBe7_IZT1F6i_k0iMuRtyEv4EyS\",\"accessSecret\":\"wd0tbVBYlp0S-ihA8Qg2hPLncoP83wyrIq24OZuY\",\"enablePathStyleAccess\":false}', '1', '2024-01-13 22:11:12', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (24, '腾讯云存储(示例)', 20, '请换成你的密钥!!!', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"https://cos.ap-shanghai.myqcloud.com\",\"domain\":\"http://tengxun-oss.iocoder.cn\",\"bucket\":\"aoteman-1255880240\",\"accessKey\":\"AKIDAF6WSh1uiIjwqtrOsGSN3WryqTM6cTMt\",\"accessSecret\":\"X\"}', '1', '2024-11-09 16:03:22', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (25, '阿里云存储(示例)', 20, '', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"oss-cn-beijing.aliyuncs.com\",\"domain\":\"http://ali-oss.iocoder.cn\",\"bucket\":\"yunai-aoteman\",\"accessKey\":\"LTAI5tEQLgnDyjh3WpNcdMKA\",\"accessSecret\":\"X\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 16:47:08', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (26, '火山云存储(示例)', 20, '', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"tos-s3-cn-beijing.volces.com\",\"domain\":null,\"bucket\":\"yunai\",\"accessKey\":\"AKLTZjc3Zjc4MzZmMjU3NDk0ZTgxYmIyMmFkNTIwMDI1ZGE\",\"accessSecret\":\"X==\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 16:56:42', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (27, '华为云存储(示例)', 20, '', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"obs.cn-east-3.myhuaweicloud.com\",\"domain\":\"\",\"bucket\":\"yudao\",\"accessKey\":\"PVDONDEIOTW88LF8DC4U\",\"accessSecret\":\"X\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 17:18:41', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (28, 'MinIO 存储(示例)', 20, '', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"http://127.0.0.1:9000\",\"domain\":\"http://127.0.0.1:9000/yudao\",\"bucket\":\"yudao\",\"accessKey\":\"admin\",\"accessSecret\":\"password\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 17:43:10', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (29, '本地存储(示例)', 10, '仅适合 mac 或 windows', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yunai/tmp/file\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2025-05-02 11:25:45', '1', '2025-05-02 18:30:28', b'0');
-INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (30, 'SFTP 存储(示例)', 12, '', b'0', '{\"@class\":\"cn.iocoder.yudao.module.infra.framework.file.core.client.sftp.SftpFileClientConfig\",\"basePath\":\"/upload\",\"domain\":\"http://127.0.0.1:48080\",\"host\":\"127.0.0.1\",\"port\":2222,\"username\":\"foo\",\"password\":\"pass\"}', '1', '2025-05-02 16:34:10', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (4, '数据库(示例)', 1, '我是数据库', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.db.DBFileClientConfig\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2022-03-15 23:56:24', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (22, '七牛存储器(示例)', 20, '请换成你自己的密钥!!!', b'1', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"s3.cn-south-1.qiniucs.com\",\"domain\":\"http://test.zt.iocoder.cn\",\"bucket\":\"ruoyi-vue-pro\",\"accessKey\":\"3TvrJ70gl2Gt6IBe7_IZT1F6i_k0iMuRtyEv4EyS\",\"accessSecret\":\"wd0tbVBYlp0S-ihA8Qg2hPLncoP83wyrIq24OZuY\",\"enablePathStyleAccess\":false}', '1', '2024-01-13 22:11:12', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (24, '腾讯云存储(示例)', 20, '请换成你的密钥!!!', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"https://cos.ap-shanghai.myqcloud.com\",\"domain\":\"http://tengxun-oss.iocoder.cn\",\"bucket\":\"aoteman-1255880240\",\"accessKey\":\"AKIDAF6WSh1uiIjwqtrOsGSN3WryqTM6cTMt\",\"accessSecret\":\"X\"}', '1', '2024-11-09 16:03:22', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (25, '阿里云存储(示例)', 20, '', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"oss-cn-beijing.aliyuncs.com\",\"domain\":\"http://ali-oss.iocoder.cn\",\"bucket\":\"yunai-aoteman\",\"accessKey\":\"LTAI5tEQLgnDyjh3WpNcdMKA\",\"accessSecret\":\"X\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 16:47:08', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (26, '火山云存储(示例)', 20, '', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"tos-s3-cn-beijing.volces.com\",\"domain\":null,\"bucket\":\"yunai\",\"accessKey\":\"AKLTZjc3Zjc4MzZmMjU3NDk0ZTgxYmIyMmFkNTIwMDI1ZGE\",\"accessSecret\":\"X==\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 16:56:42', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (27, '华为云存储(示例)', 20, '', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"obs.cn-east-3.myhuaweicloud.com\",\"domain\":\"\",\"bucket\":\"zt\",\"accessKey\":\"PVDONDEIOTW88LF8DC4U\",\"accessSecret\":\"X\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 17:18:41', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (28, 'MinIO 存储(示例)', 20, '', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.s3.S3FileClientConfig\",\"endpoint\":\"http://127.0.0.1:9000\",\"domain\":\"http://127.0.0.1:9000/zt\",\"bucket\":\"zt\",\"accessKey\":\"admin\",\"accessSecret\":\"password\",\"enablePathStyleAccess\":false}', '1', '2024-11-09 17:43:10', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (29, '本地存储(示例)', 10, '仅适合 mac 或 windows', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.local.LocalFileClientConfig\",\"basePath\":\"/Users/yunai/tmp/file\",\"domain\":\"http://127.0.0.1:48080\"}', '1', '2025-05-02 11:25:45', '1', '2025-05-02 18:30:28', b'0');
+INSERT INTO `infra_file_config` (`id`, `name`, `storage`, `remark`, `master`, `config`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (30, 'SFTP 存储(示例)', 12, '', b'0', '{\"@class\":\"com.zt.plat.module.infra.framework.file.core.client.sftp.SftpFileClientConfig\",\"basePath\":\"/upload\",\"domain\":\"http://127.0.0.1:48080\",\"host\":\"127.0.0.1\",\"port\":2222,\"username\":\"foo\",\"password\":\"pass\"}', '1', '2025-05-02 16:34:10', '1', '2025-05-02 18:30:28', b'0');
COMMIT;
-- ----------------------------
@@ -2290,7 +2290,7 @@ CREATE TABLE `system_notice` (
-- ----------------------------
BEGIN;
INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'ZT的公众', '
新版本内容133
', 1, 0, 'admin', '2021-01-05 17:03:48', '1', '2022-05-04 21:00:20', b'0', 1);
-INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '维护通知:2018-07-01 系统凌晨维护', '
11112222
3333
', 2, 1, 'admin', '2021-01-05 17:03:48', '1', '2025-04-18 23:56:40', b'0', 1);
+INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '维护通知:2018-07-01 系统凌晨维护', '
11112222
3333
', 2, 1, 'admin', '2021-01-05 17:03:48', '1', '2025-04-18 23:56:40', b'0', 1);
INSERT INTO `system_notice` (`id`, `title`, `content`, `type`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '我是测试标题', '哈哈哈哈123
', 1, 0, '110', '2022-02-22 01:01:25', '110', '2022-02-22 01:01:46', b'0', 121);
COMMIT;
@@ -2453,10 +2453,10 @@ CREATE TABLE `system_oauth2_client` (
-- Records of system_oauth2_client
-- ----------------------------
BEGIN;
-INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 'default', 'admin123', '后台管理', 'http://test.yudao.iocoder.cn/20250502/sort2_1746189740718.png', '我是描述', 0, 1800, 2592000, '[\"https://www.iocoder.cn\",\"http://172.16.46.63:30888\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2025-05-02 20:42:22', b'0');
-INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 'test', 'test2', 'biubiu', 'http://test.yudao.iocoder.cn/xx/20250502/ed07110a37464b5299f8bd7c67ad65c7_1746187077009.jpg', '啦啦啦啦', 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2025-05-02 19:58:08', b'0');
-INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (41, 'yudao-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/it/20250502/sign_1746181948685.png', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"authorization_code\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-09-29 13:28:31', '1', '2025-05-02 18:32:30', b'0');
-INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (42, 'yudao-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.yudao.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"password\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-10-04 17:40:16', '1', '2025-05-04 16:00:46', b'0');
+INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1, 'default', 'admin123', '后台管理', 'http://test.zt.iocoder.cn/20250502/sort2_1746189740718.png', '我是描述', 0, 1800, 2592000, '[\"https://www.iocoder.cn\",\"http://172.16.46.63:30888\"]', '[\"password\",\"authorization_code\",\"implicit\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[\"user.read\",\"user.write\"]', '[]', '{}', '1', '2022-05-11 21:47:12', '1', '2025-05-02 20:42:22', b'0');
+INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (40, 'test', 'test2', 'biubiu', 'http://test.zt.iocoder.cn/xx/20250502/ed07110a37464b5299f8bd7c67ad65c7_1746187077009.jpg', '啦啦啦啦', 0, 1800, 43200, '[\"https://www.iocoder.cn\"]', '[\"password\",\"authorization_code\",\"implicit\"]', '[\"user_info\",\"projects\"]', '[\"user_info\"]', '[]', '[]', '{}', '1', '2022-05-12 00:28:20', '1', '2025-05-02 19:58:08', b'0');
+INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (41, 'zt-sso-demo-by-code', 'test', '基于授权码模式,如何实现 SSO 单点登录?', 'http://test.zt.iocoder.cn/it/20250502/sign_1746181948685.png', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"authorization_code\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-09-29 13:28:31', '1', '2025-05-02 18:32:30', b'0');
+INSERT INTO `system_oauth2_client` (`id`, `client_id`, `secret`, `name`, `logo`, `description`, `status`, `access_token_validity_seconds`, `refresh_token_validity_seconds`, `redirect_uris`, `authorized_grant_types`, `scopes`, `auto_approve_scopes`, `authorities`, `resource_ids`, `additional_information`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (42, 'zt-sso-demo-by-password', 'test', '基于密码模式,如何实现 SSO 单点登录?', 'http://test.zt.iocoder.cn/604bdc695e13b3b22745be704d1f2aa8ee05c5f26f9fead6d1ca49005afbc857.jpeg', NULL, 0, 1800, 43200, '[\"http://127.0.0.1:18080\"]', '[\"password\",\"refresh_token\"]', '[\"user.read\",\"user.write\"]', '[]', '[]', '[]', NULL, '1', '2022-10-04 17:40:16', '1', '2025-05-04 16:00:46', b'0');
COMMIT;
-- ----------------------------
@@ -3899,8 +3899,8 @@ CREATE TABLE `system_users` (
-- Records of system_users
-- ----------------------------
BEGIN;
-INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$04$KljJDa/LK7QfDm0lF5OhuePhlPfjRH3tB2Wu351Uidz.oQGJXevPi', '后台管理', '管理员', '[1,2]', '11aoteman@126.com', '18818260277', 2, 'http://test.yudao.iocoder.cn/test/20250502/avatar_1746154660449.png', 0, '0:0:0:0:0:0:0:1', '2025-05-10 18:03:15', 'admin', '2021-01-05 17:03:47', NULL, '2025-05-10 18:03:15', b'0', 1);
-INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$04$h.aaPKgO.odHepnk5PCsWeEwKdojFWdTItxGKfx1r0e1CSeBzsTJ6', 'ZT', '不要吓我', '[1]', 'yudao@iocoder.cn', '15601691300', 1, NULL, 0, '0:0:0:0:0:0:0:1', '2025-04-08 09:36:40', '', '2021-01-07 09:07:17', NULL, '2025-04-21 14:23:08', b'0', 1);
+INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$04$KljJDa/LK7QfDm0lF5OhuePhlPfjRH3tB2Wu351Uidz.oQGJXevPi', '后台管理', '管理员', '[1,2]', '11aoteman@126.com', '18818260277', 2, 'http://test.zt.iocoder.cn/test/20250502/avatar_1746154660449.png', 0, '0:0:0:0:0:0:0:1', '2025-05-10 18:03:15', 'admin', '2021-01-05 17:03:47', NULL, '2025-05-10 18:03:15', b'0', 1);
+INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'zt', '$2a$04$h.aaPKgO.odHepnk5PCsWeEwKdojFWdTItxGKfx1r0e1CSeBzsTJ6', 'ZT', '不要吓我', '[1]', 'zt@iocoder.cn', '15601691300', 1, NULL, 0, '0:0:0:0:0:0:0:1', '2025-04-08 09:36:40', '', '2021-01-07 09:07:17', NULL, '2025-04-21 14:23:08', b'0', 1);
INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$04$fUBSmjKCPYAUmnMzOb6qE.eZCGPhHi1JmAKclODbfS/O7fHOl2bH6', '源码', NULL, NULL, 'yuanma@iocoder.cn', '15601701300', 0, NULL, 0, '0:0:0:0:0:0:0:1', '2024-08-11 17:48:12', '', '2021-01-13 23:50:35', NULL, '2025-04-21 14:23:08', b'0', 1);
INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$04$BrwaYn303hjA/6TnXqdGoOLhyHOAA0bVrAFu6.1dJKycqKUnIoRz2', '测试号', NULL, '[1,2]', '111@qq.com', '15601691200', 1, NULL, 0, '0:0:0:0:0:0:0:1', '2025-03-28 20:01:16', '', '2021-01-21 02:13:53', NULL, '2025-04-21 14:23:08', b'0', 1);
INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (107, 'admin107', '$2a$10$dYOOBKMO93v/.ReCqzyFg.o67Tqk.bbc2bhrpyBGkIw9aypCtr2pm', 'ZT', NULL, NULL, '', '15601691300', 0, NULL, 0, '', NULL, '1', '2022-02-20 22:59:33', '1', '2025-04-21 14:23:08', b'0', 118);
@@ -3920,10 +3920,10 @@ INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`,
COMMIT;
-- ----------------------------
--- Table structure for yudao_demo01_contact
+-- Table structure for zt_demo01_contact
-- ----------------------------
-DROP TABLE IF EXISTS `yudao_demo01_contact`;
-CREATE TABLE `yudao_demo01_contact` (
+DROP TABLE IF EXISTS `zt_demo01_contact`;
+CREATE TABLE `zt_demo01_contact` (
`id` bigint NOT NULL COMMENT '编号',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
`sex` tinyint(1) NOT NULL COMMENT '性别',
@@ -3940,17 +3940,17 @@ CREATE TABLE `yudao_demo01_contact` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '示例联系人表';
-- ----------------------------
--- Records of yudao_demo01_contact
+-- Records of zt_demo01_contact
-- ----------------------------
BEGIN;
-INSERT INTO `yudao_demo01_contact` (`id`, `name`, `sex`, `birthday`, `description`, `avatar`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '土豆', 2, '2023-11-07 00:00:00', '天蚕土豆!呀
', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/46f8fa1a37db3f3960d8910ff2fe3962ab3b2db87cf2f8ccb4dc8145b8bdf237.jpeg', '1', '2023-11-15 23:34:30', '1', '2023-11-15 23:47:39', b'0', 1);
+INSERT INTO `zt_demo01_contact` (`id`, `name`, `sex`, `birthday`, `description`, `avatar`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '土豆', 2, '2023-11-07 00:00:00', '天蚕土豆!呀
', 'http://127.0.0.1:48080/admin-api/infra/file/4/get/46f8fa1a37db3f3960d8910ff2fe3962ab3b2db87cf2f8ccb4dc8145b8bdf237.jpeg', '1', '2023-11-15 23:34:30', '1', '2023-11-15 23:47:39', b'0', 1);
COMMIT;
-- ----------------------------
--- Table structure for yudao_demo02_category
+-- Table structure for zt_demo02_category
-- ----------------------------
-DROP TABLE IF EXISTS `yudao_demo02_category`;
-CREATE TABLE `yudao_demo02_category` (
+DROP TABLE IF EXISTS `zt_demo02_category`;
+CREATE TABLE `zt_demo02_category` (
`id` bigint NOT NULL COMMENT '编号',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
`parent_id` bigint NOT NULL COMMENT '父级编号',
@@ -3964,22 +3964,22 @@ CREATE TABLE `yudao_demo02_category` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '示例分类表';
-- ----------------------------
--- Records of yudao_demo02_category
+-- Records of zt_demo02_category
-- ----------------------------
BEGIN;
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '土豆', 0, '1', '2023-11-15 23:34:30', '1', '2023-11-16 20:24:23', b'0', 1);
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '番茄', 0, '1', '2023-11-16 20:24:00', '1', '2023-11-16 20:24:15', b'0', 1);
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, '怪怪', 0, '1', '2023-11-16 20:24:32', '1', '2023-11-16 20:24:32', b'0', 1);
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '小番茄', 2, '1', '2023-11-16 20:24:39', '1', '2023-11-16 20:24:39', b'0', 1);
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, '大番茄', 2, '1', '2023-11-16 20:24:46', '1', '2023-11-16 20:24:46', b'0', 1);
-INSERT INTO `yudao_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, '11', 3, '1', '2023-11-24 19:29:34', '1', '2023-11-24 19:29:34', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '土豆', 0, '1', '2023-11-15 23:34:30', '1', '2023-11-16 20:24:23', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '番茄', 0, '1', '2023-11-16 20:24:00', '1', '2023-11-16 20:24:15', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, '怪怪', 0, '1', '2023-11-16 20:24:32', '1', '2023-11-16 20:24:32', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, '小番茄', 2, '1', '2023-11-16 20:24:39', '1', '2023-11-16 20:24:39', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, '大番茄', 2, '1', '2023-11-16 20:24:46', '1', '2023-11-16 20:24:46', b'0', 1);
+INSERT INTO `zt_demo02_category` (`id`, `name`, `parent_id`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, '11', 3, '1', '2023-11-24 19:29:34', '1', '2023-11-24 19:29:34', b'0', 1);
COMMIT;
-- ----------------------------
--- Table structure for yudao_demo03_course
+-- Table structure for zt_demo03_course
-- ----------------------------
-DROP TABLE IF EXISTS `yudao_demo03_course`;
-CREATE TABLE `yudao_demo03_course` (
+DROP TABLE IF EXISTS `zt_demo03_course`;
+CREATE TABLE `zt_demo03_course` (
`id` bigint NOT NULL COMMENT '编号',
`student_id` bigint NOT NULL COMMENT '学生编号',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
@@ -3994,33 +3994,33 @@ CREATE TABLE `yudao_demo03_course` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生课程表';
-- ----------------------------
--- Records of yudao_demo03_course
+-- Records of zt_demo03_course
-- ----------------------------
BEGIN;
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 2, '语文', 66, '1', '2023-11-16 23:21:49', '1', '2024-09-17 10:55:30', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 2, '数学', 22, '1', '2023-11-16 23:21:49', '1', '2024-09-17 10:55:30', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:44:40', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:44:40', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (8, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:47:09', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:47:09', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (10, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2024-09-17 10:55:28', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (11, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2024-09-17 10:55:28', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (12, 2, '电脑', 33, '1', '2023-11-17 00:20:42', '1', '2023-11-16 16:20:45', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (13, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2024-09-17 10:55:26', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (14, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2024-09-17 10:55:49', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (15, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (16, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (17, 2, '语文', 66, '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (18, 2, '数学', 22, '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (19, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2025-04-19 02:49:03', b'1', 1);
-INSERT INTO `yudao_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (20, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2025-04-19 10:49:04', b'0', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 2, '语文', 66, '1', '2023-11-16 23:21:49', '1', '2024-09-17 10:55:30', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 2, '数学', 22, '1', '2023-11-16 23:21:49', '1', '2024-09-17 10:55:30', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:44:40', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:44:40', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (8, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:47:09', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2023-11-16 15:47:09', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (10, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2024-09-17 10:55:28', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (11, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2024-09-17 10:55:28', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (12, 2, '电脑', 33, '1', '2023-11-17 00:20:42', '1', '2023-11-16 16:20:45', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (13, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2024-09-17 10:55:26', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (14, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2024-09-17 10:55:49', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (15, 5, '体育', 23, '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (16, 5, '计算机', 11, '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (17, 2, '语文', 66, '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (18, 2, '数学', 22, '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (19, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2025-04-19 02:49:03', b'1', 1);
+INSERT INTO `zt_demo03_course` (`id`, `student_id`, `name`, `score`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (20, 9, '滑雪', 12, '1', '2023-11-17 13:13:20', '1', '2025-04-19 10:49:04', b'0', 1);
COMMIT;
-- ----------------------------
--- Table structure for yudao_demo03_grade
+-- Table structure for zt_demo03_grade
-- ----------------------------
-DROP TABLE IF EXISTS `yudao_demo03_grade`;
-CREATE TABLE `yudao_demo03_grade` (
+DROP TABLE IF EXISTS `zt_demo03_grade`;
+CREATE TABLE `zt_demo03_grade` (
`id` bigint NOT NULL COMMENT '编号',
`student_id` bigint NOT NULL COMMENT '学生编号',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
@@ -4035,19 +4035,19 @@ CREATE TABLE `yudao_demo03_grade` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生班级表';
-- ----------------------------
--- Records of yudao_demo03_grade
+-- Records of zt_demo03_grade
-- ----------------------------
BEGIN;
-INSERT INTO `yudao_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 2, '三年 2 班', '周杰伦', '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
-INSERT INTO `yudao_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (8, 5, '华为', '遥遥领先', '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
-INSERT INTO `yudao_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, 9, '小图', '小娃111', '1', '2023-11-17 13:10:23', '1', '2025-04-19 10:49:04', b'0', 1);
+INSERT INTO `zt_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 2, '三年 2 班', '周杰伦', '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
+INSERT INTO `zt_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (8, 5, '华为', '遥遥领先', '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
+INSERT INTO `zt_demo03_grade` (`id`, `student_id`, `name`, `teacher`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, 9, '小图', '小娃111', '1', '2023-11-17 13:10:23', '1', '2025-04-19 10:49:04', b'0', 1);
COMMIT;
-- ----------------------------
--- Table structure for yudao_demo03_student
+-- Table structure for zt_demo03_student
-- ----------------------------
-DROP TABLE IF EXISTS `yudao_demo03_student`;
-CREATE TABLE `yudao_demo03_student` (
+DROP TABLE IF EXISTS `zt_demo03_student`;
+CREATE TABLE `zt_demo03_student` (
`id` bigint NOT NULL COMMENT '编号',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '名字',
`sex` tinyint NOT NULL COMMENT '性别',
@@ -4063,12 +4063,12 @@ CREATE TABLE `yudao_demo03_student` (
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生表';
-- ----------------------------
--- Records of yudao_demo03_student
+-- Records of zt_demo03_student
-- ----------------------------
BEGIN;
-INSERT INTO `yudao_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '小白', 1, '2023-11-16 00:00:00', '厉害
', '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
-INSERT INTO `yudao_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, '大黑', 2, '2023-11-13 00:00:00', '你在教我做事?
', '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
-INSERT INTO `yudao_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, '小花', 1, '2023-11-07 00:00:00', '哈哈哈
', '1', '2023-11-17 00:04:47', '1', '2025-04-19 10:49:04', b'0', 1);
+INSERT INTO `zt_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, '小白', 1, '2023-11-16 00:00:00', '厉害
', '1', '2023-11-16 23:21:49', '1', '2024-09-17 18:55:31', b'0', 1);
+INSERT INTO `zt_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, '大黑', 2, '2023-11-13 00:00:00', '你在教我做事?
', '1', '2023-11-16 23:22:46', '1', '2024-09-17 18:55:29', b'0', 1);
+INSERT INTO `zt_demo03_student` (`id`, `name`, `sex`, `birthday`, `description`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (9, '小花', 1, '2023-11-07 00:00:00', '哈哈哈
', '1', '2023-11-17 00:04:47', '1', '2025-04-19 10:49:04', b'0', 1);
COMMIT;
-- ----------------------------
diff --git a/zt-dependencies/pom.xml b/zt-dependencies/pom.xml
index 6d82cd23..e3e5f972 100644
--- a/zt-dependencies/pom.xml
+++ b/zt-dependencies/pom.xml
@@ -64,6 +64,7 @@
8.0.2.RELEASE
1.1.4
5.2.0
+ 4.12.0
7.0.1
@@ -144,6 +145,12 @@
seata-spring-boot-starter
${seata.version}
+
+
+ com.zt.plat
+ zt-spring-boot-starter-seata-dm
+ ${revision}
+
diff --git a/zt-framework/pom.xml b/zt-framework/pom.xml
index 241a211e..5eca3e83 100644
--- a/zt-framework/pom.xml
+++ b/zt-framework/pom.xml
@@ -33,6 +33,7 @@
zt-spring-boot-starter-biz-data-permission
zt-spring-boot-starter-biz-ip
zt-spring-boot-starter-biz-business
+ zt-spring-boot-starter-seata-dm
zt-framework
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java
index 14eb7111..d9936431 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java
@@ -3,9 +3,9 @@ package com.zt.plat.framework.common.biz.system.oauth2.dto;
import com.zt.plat.framework.common.enums.UserTypeEnum;
import com.zt.plat.framework.common.validation.InEnum;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
-import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CommonResult.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CommonResult.java
index be3d14d4..54f38b5e 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CommonResult.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CommonResult.java
@@ -1,11 +1,11 @@
package com.zt.plat.framework.common.pojo;
import cn.hutool.core.lang.Assert;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zt.plat.framework.common.exception.ErrorCode;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.zt.plat.framework.common.exception.util.ServiceExceptionUtil;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/PageParam.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/PageParam.java
index e996a9aa..16af526e 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/PageParam.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/PageParam.java
@@ -1,11 +1,11 @@
package com.zt.plat.framework.common.pojo;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
-import jakarta.validation.constraints.Min;
-import jakarta.validation.constraints.Max;
-import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
@Schema(description="分页参数")
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java
new file mode 100644
index 00000000..30837df7
--- /dev/null
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/asyncTask/AsyncLatchUtils.java
@@ -0,0 +1,137 @@
+package com.zt.plat.framework.common.util.asyncTask;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.concurrent.*;
+
+/**
+ * 异步任务同步处理工具类
+ * 多次提交,一次等待
+ */
+public class AsyncLatchUtils {
+ private static final ThreadLocal> THREADLOCAL = ThreadLocal.withInitial(LinkedList::new);
+
+ /**
+ * 提交一个异步任务
+ * @param executor 指定执行此任务的线程池
+ * @param runnable 需要异步执行的具体业务逻辑
+ */
+ public static void submitTask(Executor executor, Runnable runnable) {
+ THREADLOCAL.get().add(new TaskInfo(executor, runnable));
+ }
+
+ /**
+ * 获取当前线程已提交的任务列表,并自动清理当前线程的已提交任务列表。
+ * @return
+ */
+ private static List popTask() {
+ List taskInfos = THREADLOCAL.get();
+ THREADLOCAL.remove();
+ return taskInfos;
+ }
+
+ /**
+ * 触发所有已提交任务的执行,并同步等待它们全部完成。
+ * @param timeout 最长等待时间
+ * @param timeUnit 等待时间单位
+ * @return true: 如果所有任务在指定时间内成功完成。false: 如果等待超时。
+ * 该方法在执行后会自动清理当前线程提交的任务列表,因此可以重复使用。
+ */
+ public static boolean waitFor(long timeout, TimeUnit timeUnit) {
+ List taskInfos = popTask();
+ if (taskInfos.isEmpty()) {
+ return true;
+ }
+ CountDownLatch latch = new CountDownLatch(taskInfos.size());
+ for (TaskInfo taskInfo : taskInfos) {
+ Executor executor = taskInfo.executor;
+ Runnable runnable = taskInfo.runnable;
+ executor.execute(() -> {
+ try {
+ runnable.run();
+ } finally {
+ latch.countDown();
+ }
+ });
+ }
+ boolean await = false;
+ try {
+ await = latch.await(timeout, timeUnit);
+ } catch (Exception ignored) {}
+ return await;
+ }
+
+ private static final class TaskInfo {
+ private final Executor executor;
+ private final Runnable runnable;
+
+ public TaskInfo(Executor executor, Runnable runnable) {
+ this.executor = executor;
+ this.runnable = runnable;
+ }
+ }
+
+ /**
+ * 调用样例
+ * @param args
+ */
+ public static void main(String[] args) {
+ // 1. 准备一个线程池
+ ExecutorService executorService = Executors.newFixedThreadPool(3);
+
+ System.out.println("主流程开始,准备分发异步任务...");
+
+ System.out.println("主线程id:" + Thread.currentThread().getId());
+ // 2. 提交多个异步任务
+ // 任务一:获取用户信息
+ AsyncLatchUtils.submitTask(executorService, () -> {
+ try {
+ System.out.println("任务一子线程id:" + Thread.currentThread().getId());
+ System.out.println("开始获取用户信息...");
+ Thread.sleep(1000); // 模拟耗时
+ System.out.println("获取用户信息成功!");
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ });
+
+ // 任务二:获取订单信息
+ AsyncLatchUtils.submitTask(executorService, () -> {
+ try {
+ System.out.println("任务二子线程id:" + Thread.currentThread().getId());
+ System.out.println("开始获取订单信息...");
+ Thread.sleep(1500); // 模拟耗时
+ System.out.println("获取订单信息成功!");
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ });
+
+ // 任务三:获取商品信息
+ AsyncLatchUtils.submitTask(executorService, () -> {
+ try {
+ System.out.println("任务三子线程id:" + Thread.currentThread().getId());
+ System.out.println("开始获取商品信息...");
+ Thread.sleep(500); // 模拟耗时
+ System.out.println("获取商品信息成功!");
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ });
+
+ System.out.println("所有异步任务已提交,主线程开始等待...");
+
+ // 3. 等待所有任务完成,最长等待5秒
+ boolean allTasksCompleted = AsyncLatchUtils.waitFor(5, TimeUnit.SECONDS);
+
+ // 4. 根据等待结果继续主流程
+ if (allTasksCompleted) {
+ System.out.println("所有异步任务执行成功,主流程继续...");
+ } else {
+ System.err.println("有任务执行超时,主流程中断!");
+ }
+
+ // 5. 关闭线程池
+ executorService.shutdown();
+ }
+}
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/collection/CollectionUtils.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/collection/CollectionUtils.java
index 030e3f31..4b89aa70 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/collection/CollectionUtils.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/collection/CollectionUtils.java
@@ -3,8 +3,8 @@ package com.zt.plat.framework.common.util.collection;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
-import com.zt.plat.framework.common.pojo.PageResult;
import com.google.common.collect.ImmutableMap;
+import com.zt.plat.framework.common.pojo.PageResult;
import java.util.*;
import java.util.function.*;
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/security/CryptoSignatureUtils.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/security/CryptoSignatureUtils.java
index b0d9be83..af7fa66a 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/security/CryptoSignatureUtils.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/security/CryptoSignatureUtils.java
@@ -2,6 +2,7 @@ package com.zt.plat.framework.common.util.security;
import cn.hutool.crypto.SecureUtil;
import com.zt.plat.framework.common.util.json.JsonUtils;
+import lombok.extern.slf4j.Slf4j;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
@@ -15,6 +16,7 @@ import java.util.*;
/**
* 通用的签名、加解密工具类
*/
+@Slf4j
public final class CryptoSignatureUtils {
public static final String ENCRYPT_TYPE_AES = "AES";
@@ -142,6 +144,7 @@ public final class CryptoSignatureUtils {
return false;
}
String computed;
+ log.info("原始签名串:{}", sb);
if (SIGNATURE_TYPE_MD5.equalsIgnoreCase(type)) {
computed = SecureUtil.md5(sb.toString());
} else if (SIGNATURE_TYPE_SHA256.equalsIgnoreCase(type)) {
@@ -149,6 +152,8 @@ public final class CryptoSignatureUtils {
} else {
throw new IllegalArgumentException("Unsupported signature type: " + type);
}
+ log.info("原始签名:{}", computed);
+ log.info("请求签名:{}", provided);
return provided.equalsIgnoreCase(computed);
}
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/tree/TreeUtil.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/tree/TreeUtil.java
new file mode 100644
index 00000000..97a7ac73
--- /dev/null
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/tree/TreeUtil.java
@@ -0,0 +1,216 @@
+package com.zt.plat.framework.common.util.tree;
+
+import com.alibaba.fastjson.JSON;
+import com.zt.plat.framework.common.util.object.ObjectUtils;
+import lombok.Data;
+
+import java.util.*;
+import java.util.function.*;
+import java.util.stream.Collectors;
+
+/**
+ * 树操作方法工具类
+ */
+public class TreeUtil {
+ /**
+ * 将list合成树
+ *@param list 需要合成树的List
+ *@param rootCheck 判断E中为根节点的条件,如:x->x.getPId()==-1L,x->x.getParentId()==null,x->x.getParentMenuId()==0
+ *@param parentCheck 判断E中为父节点条件,如:(x,y)->x.getId().equals(y.getPId())
+ *@param setSubChildren E中设置下级数据方法,如:Menu::setSubMenus
+ *@param 泛型实体对象
+ *@return 合成好的树
+ */
+ public static List makeTree(List list, Predicate rootCheck, BiFunction parentCheck, BiConsumer> setSubChildren){
+ return list.stream().filter(rootCheck).peek(x->setSubChildren.accept(x,makeChildren(x,list,parentCheck,setSubChildren))).collect(Collectors.toList());
+ }
+
+ /**
+ *将树打平成tree
+ *@paramtree需要打平的树
+ *@paramgetSubChildren设置下级数据方法,如:Menu::getSubMenus,x->x.setSubMenus(null)
+ *@paramsetSubChildren将下级数据置空方法,如:x->x.setSubMenus(null)
+ *@return打平后的数据
+ *@param泛型实体对象
+ */
+ public static List flat(List tree, Function> getSubChildren, Consumer setSubChildren){
+ List res = new ArrayList<>();
+ forPostOrder(tree,item->{
+ setSubChildren.accept(item);
+ res.add(item);
+ },getSubChildren);
+ return res;
+ }
+
+
+ /**
+ *前序遍历
+ *
+ *@paramtree需要遍历的树
+ *@paramconsumer遍历后对单个元素的处理方法,如:x->System.out.println(x)、System.out::println打印元素
+ *@paramsetSubChildren设置下级数据方法,如:Menu::getSubMenus,x->x.setSubMenus(null)
+ *@param泛型实体对象
+ */
+ public static void forPreOrder(List tree,Consumer consumer,Function> setSubChildren){
+ for(E l : tree){
+ consumer.accept(l);
+ List es = setSubChildren.apply(l);
+ if(es != null && es.size() > 0){
+ forPreOrder(es,consumer,setSubChildren);
+ }
+ }
+ }
+
+
+ /**
+ *层序遍历
+ *
+ *@paramtree需要遍历的树
+ *@paramconsumer遍历后对单个元素的处理方法,如:x->System.out.println(x)、System.out::println打印元素
+ *@paramsetSubChildren设置下级数据方法,如:Menu::getSubMenus,x->x.setSubMenus(null)
+ *@param泛型实体对象
+ */
+ public static void forLevelOrder(List tree,Consumer consumer,Function> setSubChildren){
+ Queue queue=new LinkedList<>(tree);
+ while(!queue.isEmpty()){
+ E item = queue.poll();
+ consumer.accept(item);
+ List childList = setSubChildren.apply(item);
+ if(childList !=null && !childList.isEmpty()){
+ queue.addAll(childList);
+ }
+ }
+ }
+
+
+ /**
+ *后序遍历
+ *
+ *@paramtree需要遍历的树
+ *@paramconsumer遍历后对单个元素的处理方法,如:x->System.out.println(x)、System.out::println打印元素
+ *@paramsetSubChildren设置下级数据方法,如:Menu::getSubMenus,x->x.setSubMenus(null)
+ *@param泛型实体对象
+ */
+ public static void forPostOrder(List tree,Consumer consumer,Function> setSubChildren){
+ for(E item : tree) {
+ List childList = setSubChildren.apply(item);
+ if(childList != null && !childList.isEmpty()){
+ forPostOrder(childList,consumer,setSubChildren);
+ }
+ consumer.accept(item);
+ }
+ }
+
+ /**
+ *对树所有子节点按comparator排序
+ *
+ *@paramtree需要排序的树
+ *@paramcomparator排序规则Comparator,如:Comparator.comparing(MenuVo::getRank)按Rank正序,(x,y)->y.getRank().compareTo(x.getRank()),按Rank倒序
+ *@paramgetChildren获取下级数据方法,如:MenuVo::getSubMenus
+ *@return排序好的树
+ *@param泛型实体对象
+ */
+ public static List sort(List tree, Comparator super E> comparator, Function> getChildren){
+ for(E item : tree){
+ List childList = getChildren.apply(item);
+ if(childList != null &&! childList.isEmpty()){
+ sort(childList,comparator,getChildren);
+ }
+ }
+ tree.sort(comparator);
+ return tree;
+ }
+
+ private static List makeChildren(E parent,List allData,BiFunction parentCheck,BiConsumer> children){
+ return allData.stream().filter(x->parentCheck.apply(parent,x)).peek(x->children.accept(x,makeChildren(x,allData,parentCheck,children))).collect(Collectors.toList());
+ }
+
+ /**
+ * 使用样例
+ * @param args
+ */
+ public static void main(String[] args) {
+ MenuVo menu0 = new MenuVo(0L, -1L, "一级菜单", 0);
+ MenuVo menu1 = new MenuVo(1L, 0L, "二级菜单", 1);
+ MenuVo menu2 = new MenuVo(2L, 0L, "三级菜单", 2);
+ MenuVo menu3 = new MenuVo(3L, 1L, "四级菜单", 3);
+ MenuVo menu4 = new MenuVo(4L, 1L, "五级菜单", 4);
+ MenuVo menu5 = new MenuVo(5L, 2L, "六级菜单", 5);
+ MenuVo menu6 = new MenuVo(6L, 2L, "七级菜单", 6);
+ MenuVo menu7 = new MenuVo(7L, 3L, "八级菜单", 7);
+ MenuVo menu8 = new MenuVo(8L, 3L, "九级菜单", 8);
+ MenuVo menu9 = new MenuVo(9L, 4L, "十级菜单", 9);
+ //基本数据
+ List menuList = Arrays.asList(menu0,menu1, menu2,menu3,menu4,menu5,menu6,menu7,menu8,menu9);
+ //合成树
+ /**
+ * 第1个参数List list,为我们需要合成树的List,如上面Demo中的menuList
+ * 第2个参数Predicate rootCheck,判断为根节点的条件,如上面Demo中pId==-1就是根节点
+ * 第3个参数parentCheck 判断为父节点条件,如上面Demo中 id==pId
+ * 第4个参数setSubChildren,设置下级数据方法如上面Demo中:Menu::setSubMenus
+ */
+ List tree= TreeUtil.makeTree(menuList, x->x.getPId()==-1L,(x, y)->x.getId().equals(y.getPId()), MenuVo::setSubMenus);
+ System.out.println(JSON.toJSONString(tree));
+
+ //先序
+ /**
+ * 遍历数参数解释:
+ * tree 需要遍历的树,就是makeTree()合
+ * 成的对象Consumer consumer 遍历后对单个元素的处理方法,如:x-> System.out.println(x)、 postOrder.append(x.getId().toString())
+ * Function getSubChildren,获取下级数据方法,如Menu::getSubMenus
+ */
+ StringBuffer preStr = new StringBuffer();
+ TreeUtil.forPreOrder(tree,x-> preStr.append(x.getId().toString()),MenuVo::getSubMenus);
+ ObjectUtils.equalsAny("0123456789",preStr.toString());
+
+ //层序
+ StringBuffer levelStr=new StringBuffer();
+ TreeUtil.forLevelOrder(tree,x-> levelStr.append(x.getId().toString()),MenuVo::getSubMenus);
+ ObjectUtils.equalsAny("0123456789",levelStr.toString());
+
+ //后序
+ StringBuffer postOrder=new StringBuffer();
+ TreeUtil.forPostOrder(tree,x-> postOrder.append(x.getId().toString()),MenuVo::getSubMenus);
+ ObjectUtils.equalsAny("7839415620",postOrder.toString());
+
+ // 树平铺
+ /**
+ * flat()参数解释:
+ * tree 需要打平的树,就是makeTree()合成的对象Function getSubChildren,
+ * 获取下级数据方法,如Menu::getSubMenusConsumer setSubChildren,
+ * 设置下级数据方法,如:x->x.setSubMenus(null)
+ */
+ List flat = TreeUtil.flat(tree, MenuVo::getSubMenus,x->x.setSubMenus(null));
+ ObjectUtils.equalsAny(flat.size(),menuList.size());
+ flat.forEach(x -> {
+ if (x.getSubMenus() != null) {
+ throw new RuntimeException("树平铺失败");
+ }
+ });
+
+ // 按rank正序
+ /**
+ * sort参数解释:
+ * tree 需要排序的树,就是makeTree()合成的对象Comparator super E> comparator
+ * 排序规则Comparator,如:Comparator.comparing(MenuVo::getRank) 按Rank正序 ,(x,y)->y.getRank().compareTo(x.getRank()),按Rank倒序Function getChildren
+ * 获取下级数据方法,如:MenuVo::getSubMenus
+ */
+ List sortTree= TreeUtil.sort(tree, Comparator.comparing(MenuVo::getRank), MenuVo::getSubMenus);
+ // 按rank倒序
+ List sortTreeReverse = TreeUtil.sort(tree, (x,y)->y.getRank().compareTo(x.getRank()), MenuVo::getSubMenus);
+ }
+ @Data
+ static class MenuVo {
+ private Long id; // 主键id
+ private Long pId; // 父级id
+ private String name; // 菜单名称
+ private Integer rank = 0; // 排序
+ private List subMenus = new ArrayList<>(); // 子菜单
+ public MenuVo(Long id, Long pId, String name, Integer rank) {
+ this.id = id;
+ this.pId = pId;
+ this.name = name;
+ this.rank = rank;
+ }
+ }
+}
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/validation/ValidationUtils.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/validation/ValidationUtils.java
index b0ab2609..4f828c0b 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/validation/ValidationUtils.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/util/validation/ValidationUtils.java
@@ -2,12 +2,12 @@ package com.zt.plat.framework.common.util.validation;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
-import org.springframework.util.StringUtils;
-
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
+import org.springframework.util.StringUtils;
+
import java.util.Set;
import java.util.regex.Pattern;
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Mobile.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Mobile.java
index d47d92d0..f7db4729 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Mobile.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Mobile.java
@@ -2,6 +2,7 @@ package com.zt.plat.framework.common.validation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
+
import java.lang.annotation.*;
@Target({
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Telephone.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Telephone.java
index 2409fd88..93ccf25d 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Telephone.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/Telephone.java
@@ -2,6 +2,7 @@ package com.zt.plat.framework.common.validation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
+
import java.lang.annotation.*;
@Target({
diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/TelephoneValidator.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/TelephoneValidator.java
index 7e7b2232..6ea5c31b 100644
--- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/TelephoneValidator.java
+++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/validation/TelephoneValidator.java
@@ -2,7 +2,6 @@ package com.zt.plat.framework.common.validation;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.PhoneUtil;
-
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptor.java b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptor.java
index cf8dc86f..ee6b215e 100644
--- a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptor.java
+++ b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptor.java
@@ -1,9 +1,9 @@
package com.zt.plat.framework.business.interceptor;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.CommonResultCodeEnum;
import com.zt.plat.framework.common.pojo.CompanyDeptInfo;
-import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
diff --git a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/aop/DataPermissionContextHolder.java b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/aop/DataPermissionContextHolder.java
index 36e391a1..8db86b52 100644
--- a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/aop/DataPermissionContextHolder.java
+++ b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/aop/DataPermissionContextHolder.java
@@ -1,7 +1,7 @@
package com.zt.plat.framework.datapermission.core.aop;
-import com.zt.plat.framework.datapermission.core.annotation.DataPermission;
import com.alibaba.ttl.TransmittableThreadLocal;
+import com.zt.plat.framework.datapermission.core.annotation.DataPermission;
import java.util.LinkedList;
import java.util.List;
diff --git a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandler.java b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandler.java
index d23e9ac8..6f1e3f48 100644
--- a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandler.java
+++ b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandler.java
@@ -1,10 +1,10 @@
package com.zt.plat.framework.datapermission.core.db;
import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.extension.plugins.handler.MultiDataPermissionHandler;
import com.zt.plat.framework.datapermission.core.rule.DataPermissionRule;
import com.zt.plat.framework.datapermission.core.rule.DataPermissionRuleFactory;
import com.zt.plat.framework.mybatis.core.util.MyBatisUtils;
-import com.baomidou.mybatisplus.extension.plugins.handler.MultiDataPermissionHandler;
import lombok.RequiredArgsConstructor;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
diff --git a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/rule/company/CompanyDataPermissionRule.java b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/rule/company/CompanyDataPermissionRule.java
index c02348c6..25909d05 100644
--- a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/rule/company/CompanyDataPermissionRule.java
+++ b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/main/java/com/zt/plat/framework/datapermission/core/rule/company/CompanyDataPermissionRule.java
@@ -8,7 +8,10 @@ import com.zt.plat.framework.mybatis.core.util.MyBatisUtils;
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import net.sf.jsqlparser.expression.*;
+import net.sf.jsqlparser.expression.Alias;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.LongValue;
+import net.sf.jsqlparser.expression.NullValue;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.expression.operators.relational.InExpression;
import net.sf.jsqlparser.expression.operators.relational.ParenthesedExpressionList;
diff --git a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandlerTest.java b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandlerTest.java
index cba67058..ead76c2d 100644
--- a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandlerTest.java
+++ b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/db/DataPermissionRuleHandlerTest.java
@@ -1,10 +1,10 @@
package com.zt.plat.framework.datapermission.core.db;
+import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;
import com.zt.plat.framework.datapermission.core.rule.DataPermissionRule;
import com.zt.plat.framework.datapermission.core.rule.DataPermissionRuleFactory;
import com.zt.plat.framework.mybatis.core.util.MyBatisUtils;
import com.zt.plat.framework.test.core.ut.BaseMockitoUnitTest;
-import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor;
import net.sf.jsqlparser.expression.Alias;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
diff --git a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/util/DataPermissionUtilsTest.java b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/util/DataPermissionUtilsTest.java
index 64b6554f..5c39b9a6 100644
--- a/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/util/DataPermissionUtilsTest.java
+++ b/zt-framework/zt-spring-boot-starter-biz-data-permission/src/test/java/com/zt/plat/framework/datapermission/core/util/DataPermissionUtilsTest.java
@@ -3,7 +3,7 @@ package com.zt.plat.framework.datapermission.core.util;
import com.zt.plat.framework.datapermission.core.aop.DataPermissionContextHolder;
import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertFalse;
public class DataPermissionUtilsTest {
diff --git a/zt-framework/zt-spring-boot-starter-biz-ip/src/main/java/com/zt/plat/framework/ip/core/Area.java b/zt-framework/zt-spring-boot-starter-biz-ip/src/main/java/com/zt/plat/framework/ip/core/Area.java
index 76e2bd2b..39b5dafb 100644
--- a/zt-framework/zt-spring-boot-starter-biz-ip/src/main/java/com/zt/plat/framework/ip/core/Area.java
+++ b/zt-framework/zt-spring-boot-starter-biz-ip/src/main/java/com/zt/plat/framework/ip/core/Area.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.ip.core;
-import com.zt.plat.framework.ip.core.enums.AreaTypeEnum;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
+import com.zt.plat.framework.ip.core.enums.AreaTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
diff --git a/zt-framework/zt-spring-boot-starter-biz-ip/src/test/java/com/zt/plat/framework/ip/core/utils/IPUtilsTest.java b/zt-framework/zt-spring-boot-starter-biz-ip/src/test/java/com/zt/plat/framework/ip/core/utils/IPUtilsTest.java
index fe545577..1403cf9c 100644
--- a/zt-framework/zt-spring-boot-starter-biz-ip/src/test/java/com/zt/plat/framework/ip/core/utils/IPUtilsTest.java
+++ b/zt-framework/zt-spring-boot-starter-biz-ip/src/test/java/com/zt/plat/framework/ip/core/utils/IPUtilsTest.java
@@ -4,7 +4,6 @@ import com.zt.plat.framework.ip.core.Area;
import org.junit.jupiter.api.Test;
import org.lionsoul.ip2region.xdb.Searcher;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
diff --git a/zt-framework/zt-spring-boot-starter-env/src/main/java/com/zt/plat/framework/env/core/util/EnvUtils.java b/zt-framework/zt-spring-boot-starter-env/src/main/java/com/zt/plat/framework/env/core/util/EnvUtils.java
index 67d0f097..eb1fb615 100644
--- a/zt-framework/zt-spring-boot-starter-env/src/main/java/com/zt/plat/framework/env/core/util/EnvUtils.java
+++ b/zt-framework/zt-spring-boot-starter-env/src/main/java/com/zt/plat/framework/env/core/util/EnvUtils.java
@@ -2,11 +2,11 @@ package com.zt.plat.framework.env.core.util;
import com.zt.plat.framework.env.config.EnvProperties;
import feign.RequestTemplate;
+import jakarta.servlet.http.HttpServletRequest;
import lombok.SneakyThrows;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.core.env.Environment;
-import jakarta.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.util.Objects;
diff --git a/zt-framework/zt-spring-boot-starter-excel/pom.xml b/zt-framework/zt-spring-boot-starter-excel/pom.xml
index e0686e56..21a80db5 100644
--- a/zt-framework/zt-spring-boot-starter-excel/pom.xml
+++ b/zt-framework/zt-spring-boot-starter-excel/pom.xml
@@ -66,7 +66,7 @@
com.zt.plat
zt-spring-boot-starter-biz-ip
- true
+
diff --git a/zt-framework/zt-spring-boot-starter-excel/src/main/java/com/zt/plat/framework/excel/core/convert/AreaConvert.java b/zt-framework/zt-spring-boot-starter-excel/src/main/java/com/zt/plat/framework/excel/core/convert/AreaConvert.java
index 9ad88e05..85c7c505 100644
--- a/zt-framework/zt-spring-boot-starter-excel/src/main/java/com/zt/plat/framework/excel/core/convert/AreaConvert.java
+++ b/zt-framework/zt-spring-boot-starter-excel/src/main/java/com/zt/plat/framework/excel/core/convert/AreaConvert.java
@@ -1,13 +1,13 @@
package com.zt.plat.framework.excel.core.convert;
import cn.hutool.core.convert.Convert;
-import com.zt.plat.framework.ip.core.Area;
-import com.zt.plat.framework.ip.core.utils.AreaUtils;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.zt.plat.framework.ip.core.Area;
+import com.zt.plat.framework.ip.core.utils.AreaUtils;
import lombok.extern.slf4j.Slf4j;
/**
diff --git a/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtAsyncAutoConfiguration.java b/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtAsyncAutoConfiguration.java
index 108ac209..5ec56f71 100644
--- a/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtAsyncAutoConfiguration.java
+++ b/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtAsyncAutoConfiguration.java
@@ -5,7 +5,6 @@ import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
diff --git a/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtXxlJobAutoConfiguration.java b/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtXxlJobAutoConfiguration.java
index ef5e66d5..0e6b4bb0 100644
--- a/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtXxlJobAutoConfiguration.java
+++ b/zt-framework/zt-spring-boot-starter-job/src/main/java/com/zt/plat/framework/quartz/config/ZtXxlJobAutoConfiguration.java
@@ -48,13 +48,13 @@ public class ZtXxlJobAutoConfiguration {
/**
* 配置 XXL-Job 系统认证切面
- *
+ *
* 为 @XxlJob 注解的方法提供系统用户认证上下文
*/
@Bean
@ConditionalOnMissingBean
public XxlJobSystemAuthenticationAspect xxlJobSystemAuthenticationAspect(XxlJobProperties properties) {
- log.info("[ZtXxlJobAutoConfiguration][注册 XXL-Job 系统认证切面] systemUserId=[{}], systemTenantId=[{}]",
+ log.info("[ZtXxlJobAutoConfiguration][注册 XXL-Job 系统认证切面] systemUserId=[{}], systemTenantId=[{}]",
properties.getSystemUser().getUserId(), properties.getSystemUser().getTenantId());
return new XxlJobSystemAuthenticationAspect(properties.getSystemUser());
}
diff --git a/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/config/ZtMetricsAutoConfiguration.java b/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/config/ZtMetricsAutoConfiguration.java
index 8c07dd06..a33a1025 100644
--- a/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/config/ZtMetricsAutoConfiguration.java
+++ b/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/config/ZtMetricsAutoConfiguration.java
@@ -7,7 +7,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
/**
* Metrics 配置类
diff --git a/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/core/aop/BizTraceAspect.java b/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/core/aop/BizTraceAspect.java
index 308a0348..90af2e67 100644
--- a/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/core/aop/BizTraceAspect.java
+++ b/zt-framework/zt-spring-boot-starter-monitor/src/main/java/com/zt/plat/framework/tracer/core/aop/BizTraceAspect.java
@@ -2,8 +2,8 @@ package com.zt.plat.framework.tracer.core.aop;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
-import com.zt.plat.framework.tracer.core.annotation.BizTrace;
import com.zt.plat.framework.common.util.spring.SpringExpressionUtils;
+import com.zt.plat.framework.tracer.core.annotation.BizTrace;
import com.zt.plat.framework.tracer.core.util.TracerFrameworkUtils;
import io.opentracing.Span;
import io.opentracing.Tracer;
diff --git a/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java b/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java
index ba1851db..9bcd3faa 100644
--- a/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java
+++ b/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/pubsub/AbstractRedisChannelMessage.java
@@ -1,7 +1,7 @@
package com.zt.plat.framework.mq.redis.core.pubsub;
-import com.zt.plat.framework.mq.redis.core.message.AbstractRedisMessage;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.zt.plat.framework.mq.redis.core.message.AbstractRedisMessage;
/**
* Redis Channel Message 抽象类
diff --git a/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java b/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java
index 39d0f4ca..9e70b1c6 100644
--- a/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java
+++ b/zt-framework/zt-spring-boot-starter-mq/src/main/java/com/zt/plat/framework/mq/redis/core/stream/AbstractRedisStreamMessage.java
@@ -1,7 +1,7 @@
package com.zt.plat.framework.mq.redis.core.stream;
-import com.zt.plat.framework.mq.redis.core.message.AbstractRedisMessage;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.zt.plat.framework.mq.redis.core.message.AbstractRedisMessage;
/**
* Redis Stream Message 抽象类
diff --git a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/datasource/core/filter/DruidAdRemoveFilter.java b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/datasource/core/filter/DruidAdRemoveFilter.java
index 9e616c98..4341ce1d 100644
--- a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/datasource/core/filter/DruidAdRemoveFilter.java
+++ b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/datasource/core/filter/DruidAdRemoveFilter.java
@@ -1,12 +1,12 @@
package com.zt.plat.framework.datasource.core.filter;
import com.alibaba.druid.util.Utils;
-import org.springframework.web.filter.OncePerRequestFilter;
-
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.filter.OncePerRequestFilter;
+
import java.io.IOException;
/**
diff --git a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/mapper/BaseMapperX.java b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/mapper/BaseMapperX.java
index 701d322e..3de8aa7b 100644
--- a/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/mapper/BaseMapperX.java
+++ b/zt-framework/zt-spring-boot-starter-mybatis/src/main/java/com/zt/plat/framework/mybatis/core/mapper/BaseMapperX.java
@@ -19,6 +19,12 @@ import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.zt.plat.framework.common.pojo.PageParam;
+import com.zt.plat.framework.common.pojo.PageResult;
+import com.zt.plat.framework.common.pojo.SortablePageParam;
+import com.zt.plat.framework.common.pojo.SortingField;
+import com.zt.plat.framework.mybatis.core.util.JdbcUtils;
+import com.zt.plat.framework.mybatis.core.util.MyBatisUtils;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
diff --git a/zt-framework/zt-spring-boot-starter-protection/src/main/java/com/zt/plat/framework/lock4j/core/DefaultLockFailureStrategy.java b/zt-framework/zt-spring-boot-starter-protection/src/main/java/com/zt/plat/framework/lock4j/core/DefaultLockFailureStrategy.java
index a16bcd2a..f143e6ad 100644
--- a/zt-framework/zt-spring-boot-starter-protection/src/main/java/com/zt/plat/framework/lock4j/core/DefaultLockFailureStrategy.java
+++ b/zt-framework/zt-spring-boot-starter-protection/src/main/java/com/zt/plat/framework/lock4j/core/DefaultLockFailureStrategy.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.lock4j.core;
+import com.baomidou.lock.LockFailureStrategy;
import com.zt.plat.framework.common.exception.ServiceException;
import com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants;
-import com.baomidou.lock.LockFailureStrategy;
import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Method;
diff --git a/zt-framework/zt-spring-boot-starter-seata-dm/pom.xml b/zt-framework/zt-spring-boot-starter-seata-dm/pom.xml
new file mode 100644
index 00000000..49d7b1e2
--- /dev/null
+++ b/zt-framework/zt-spring-boot-starter-seata-dm/pom.xml
@@ -0,0 +1,32 @@
+
+
+
+ zt-framework
+ com.zt.plat
+ ${revision}
+
+ 4.0.0
+ jar
+
+ zt-spring-boot-starter-seata-dm
+
+ ${project.artifactId}
+
+ Seata 达梦数据库补丁模块
+ 解决 DmdbTimestamp 时区格式不一致导致的 dirty undo log 回滚失败问题
+ 补丁来源: https://github.com/apache/incubator-seata/pull/7538
+ Seata 2.6.0 发布后可移除此模块
+
+
+
+
+
+ org.apache.seata
+ seata-spring-boot-starter
+ provided
+
+
+
+
diff --git a/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java b/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java
new file mode 100644
index 00000000..24c15d5a
--- /dev/null
+++ b/zt-framework/zt-spring-boot-starter-seata-dm/src/main/java/org/apache/seata/rm/datasource/DataCompareUtils.java
@@ -0,0 +1,326 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.seata.rm.datasource;
+
+import org.apache.seata.common.util.CollectionUtils;
+import org.apache.seata.common.util.StringUtils;
+import org.apache.seata.core.model.Result;
+import org.apache.seata.rm.datasource.sql.struct.Field;
+import org.apache.seata.rm.datasource.sql.struct.Row;
+import org.apache.seata.rm.datasource.sql.struct.TableRecords;
+import org.apache.seata.rm.datasource.undo.AbstractUndoLogManager;
+import org.apache.seata.rm.datasource.undo.parser.FastjsonUndoLogParser;
+import org.apache.seata.rm.datasource.undo.parser.JacksonUndoLogParser;
+import org.apache.seata.sqlparser.struct.TableMeta;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.sql.Types;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * DataCompareUtils - 包含达梦数据库 DmdbTimestamp 时区问题的补丁
+ *
+ * 此类覆盖 Seata 原有的 DataCompareUtils,添加了对达梦数据库 DmdbTimestamp 类型的特殊处理。
+ * 通过将 DmdbTimestamp 转换为 UTC Instant 进行比较,解决时区格式不一致导致的 dirty undo log 问题。
+ *
+ * 问题背景:
+ * - 达梦数据库的 DmdbTimestamp 类型在序列化/反序列化后时区格式不一致
+ * - 例如:beforeImage 为 "2025-12-25 09:38:54.077811 +08:00"
+ * afterImage 为 "2025-12-25 09:38:54.077811"
+ * - 导致 Seata AT 模式回滚时 dirty undo log 检查失败
+ *
+ * 解决方案:
+ * - 当检测到 DmdbTimestamp 类型时,将两个值都转换为 UTC Instant 进行比较
+ * - 这样可以忽略时区格式差异,只比较实际的时间点
+ *
+ * 补丁来源: https://github.com/apache/incubator-seata/pull/7538
+ * 相关 Issue: https://github.com/apache/incubator-seata/issues/7453
+ * 该修复已合并到 Seata 2.x 分支,将在 Seata 2.6.0 正式发布,届时可删除此模块。
+ *
+ * @author Seata Community (PR #7538)
+ */
+public class DataCompareUtils {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(DataCompareUtils.class);
+
+ /**
+ * 标识补丁类是否已加载
+ */
+ private static final boolean PATCHED;
+
+ static {
+ PATCHED = true;
+ LOGGER.info("[zt-spring-boot-starter-seata-dm] DataCompareUtils 补丁类已加载,用于解决达梦数据库 DmdbTimestamp 时区问题");
+ }
+
+ private DataCompareUtils() {}
+
+ /**
+ * Is field equals result.
+ *
+ * @param f0 the f 0
+ * @param f1 the f 1
+ * @return the result
+ */
+ public static Result isFieldEquals(Field f0, Field f1) {
+ if (f0 == null) {
+ return Result.build(f1 == null);
+ } else {
+ if (f1 == null) {
+ return Result.build(false);
+ } else {
+ if (StringUtils.equalsIgnoreCase(f0.getName(), f1.getName()) && f0.getType() == f1.getType()) {
+ if (f0.getValue() == null) {
+ return Result.build(f1.getValue() == null);
+ } else {
+ if (f1.getValue() == null) {
+ return Result.buildWithParams(
+ false, "Field not equals, name {}, new value is null", f0.getName());
+ } else {
+ String currentSerializer = AbstractUndoLogManager.getCurrentSerializer();
+ if (StringUtils.equals(currentSerializer, FastjsonUndoLogParser.NAME)) {
+ convertType(f0, f1);
+ }
+ // 达梦数据库 DmdbTimestamp 时区补丁 (PR #7538)
+ if (StringUtils.equals(currentSerializer, JacksonUndoLogParser.NAME)) {
+ Object v0 = f0.getValue();
+ Object v1 = f1.getValue();
+ if (isDmdbTimestamp(v0) && isDmdbTimestamp(v1)) {
+ Instant i0 = toInstant(v0);
+ Instant i1 = toInstant(v1);
+ boolean equals = Objects.equals(i0, i1);
+ LOGGER.info("[zt-seata-dm-patch] DmdbTimestamp 字段比较: field={}, equals={}", f0.getName(), equals);
+ return equals
+ ? Result.ok()
+ : Result.buildWithParams(
+ false,
+ "Field not equals (DmdbTimestamp), name {}, old value {}, new value {}",
+ f0.getName(),
+ v0,
+ v1);
+ }
+ }
+ boolean result = Objects.deepEquals(f0.getValue(), f1.getValue());
+ if (result) {
+ return Result.ok();
+ } else {
+ return Result.buildWithParams(
+ false,
+ "Field not equals, name {}, old value {}, new value {}",
+ f0.getName(),
+ f0.getValue(),
+ f1.getValue());
+ }
+ }
+ }
+ } else {
+ return Result.buildWithParams(
+ false,
+ "Field not equals, old name {} type {}, new name {} type {}",
+ f0.getName(),
+ f0.getType(),
+ f1.getName(),
+ f1.getType());
+ }
+ }
+ }
+ }
+
+ private static void convertType(Field f0, Field f1) {
+ int f0Type = f0.getType();
+ int f1Type = f1.getType();
+ if (f0Type == Types.DATE && f0.getValue().getClass().equals(String.class)) {
+ String[] strings = f0.getValue().toString().split(" ");
+ f0.setValue(Date.valueOf(strings[0]));
+ }
+ if (f1Type == Types.DATE && f1.getValue().getClass().equals(String.class)) {
+ String[] strings = f1.getValue().toString().split(" ");
+ f1.setValue(Date.valueOf(strings[0]));
+ }
+ if (f0Type == Types.TIME && f0.getValue().getClass().equals(String.class)) {
+ f0.setValue(Time.valueOf(f0.getValue().toString()));
+ }
+ if (f1Type == Types.TIME && f1.getValue().getClass().equals(String.class)) {
+ f1.setValue(Time.valueOf(f1.getValue().toString()));
+ }
+ if (f0Type == Types.TIMESTAMP && f0.getValue().getClass().equals(String.class)) {
+ if (f1.getValue().getClass().equals(LocalDateTime.class)) {
+ f0.setValue(LocalDateTime.parse(f0.getValue().toString()));
+ } else {
+ f0.setValue(Timestamp.valueOf(f0.getValue().toString()));
+ }
+ }
+ if (f1Type == Types.TIMESTAMP && f1.getValue().getClass().equals(String.class)) {
+ f1.setValue(Timestamp.valueOf(f1.getValue().toString()));
+ }
+ if (f0Type == Types.DECIMAL && f0.getValue().getClass().equals(Integer.class)) {
+ f0.setValue(new BigDecimal(f0.getValue().toString()));
+ }
+ if (f1Type == Types.DECIMAL && f1.getValue().getClass().equals(Integer.class)) {
+ f1.setValue(new BigDecimal(f1.getValue().toString()));
+ }
+ if (f0Type == Types.BIGINT && f0.getValue().getClass().equals(Integer.class)) {
+ f0.setValue(Long.parseLong(f0.getValue().toString()));
+ }
+ if (f1Type == Types.BIGINT && f1.getValue().getClass().equals(Integer.class)) {
+ f1.setValue(Long.parseLong(f1.getValue().toString()));
+ }
+ }
+
+ /**
+ * Is records equals result.
+ *
+ * @param beforeImage the before image
+ * @param afterImage the after image
+ * @return the result
+ */
+ public static Result isRecordsEquals(TableRecords beforeImage, TableRecords afterImage) {
+ if (beforeImage == null) {
+ return Result.build(afterImage == null, null);
+ } else {
+ if (afterImage == null) {
+ return Result.build(false, null);
+ }
+ if (beforeImage.getTableName().equalsIgnoreCase(afterImage.getTableName())
+ && CollectionUtils.isSizeEquals(beforeImage.getRows(), afterImage.getRows())) {
+ // when image is EmptyTableRecords, getTableMeta will throw an exception
+ if (CollectionUtils.isEmpty(beforeImage.getRows())) {
+ return Result.ok();
+ }
+ return compareRows(beforeImage.getTableMeta(), beforeImage.getRows(), afterImage.getRows());
+ } else {
+ return Result.build(false, null);
+ }
+ }
+ }
+
+ /**
+ * Is rows equals result.
+ *
+ * @param tableMetaData the table meta data
+ * @param oldRows the old rows
+ * @param newRows the new rows
+ * @return the result
+ */
+ public static Result isRowsEquals(TableMeta tableMetaData, List oldRows, List newRows) {
+ if (!CollectionUtils.isSizeEquals(oldRows, newRows)) {
+ return Result.build(false, null);
+ }
+ return compareRows(tableMetaData, oldRows, newRows);
+ }
+
+ private static Result compareRows(TableMeta tableMetaData, List oldRows, List newRows) {
+ // old row to map
+ Map> oldRowsMap = rowListToMap(oldRows, tableMetaData.getPrimaryKeyOnlyName());
+ // new row to map
+ Map> newRowsMap = rowListToMap(newRows, tableMetaData.getPrimaryKeyOnlyName());
+ // compare data
+ for (Map.Entry> oldEntry : oldRowsMap.entrySet()) {
+ String key = oldEntry.getKey();
+ Map oldRow = oldEntry.getValue();
+ Map newRow = newRowsMap.get(key);
+ if (newRow == null) {
+ return Result.buildWithParams(false, "compare row failed, rowKey {}, reason [newRow is null]", key);
+ }
+ for (Map.Entry oldRowEntry : oldRow.entrySet()) {
+ String fieldName = oldRowEntry.getKey();
+ Field oldField = oldRowEntry.getValue();
+ Field newField = newRow.get(fieldName);
+ if (newField == null) {
+ return Result.buildWithParams(
+ false,
+ "compare row failed, rowKey {}, fieldName {}, reason [newField is null]",
+ key,
+ fieldName);
+ }
+ Result oldEqualsNewFieldResult = isFieldEquals(oldField, newField);
+ if (!oldEqualsNewFieldResult.getResult()) {
+ return oldEqualsNewFieldResult;
+ }
+ }
+ }
+ return Result.ok();
+ }
+
+ /**
+ * Row list to map map.
+ *
+ * @param rowList the row list
+ * @param primaryKeyList the primary key list
+ * @return the map
+ */
+ public static Map> rowListToMap(List rowList, List primaryKeyList) {
+ // {value of primaryKey, value of all columns}
+ Map> rowMap = new HashMap<>();
+ for (Row row : rowList) {
+ // ensure the order of column
+ List rowFieldList = row.getFields().stream()
+ .sorted(Comparator.comparing(Field::getName))
+ .collect(Collectors.toList());
+ // {uppercase fieldName : field}
+ Map colsMap = new HashMap<>();
+ StringBuilder rowKey = new StringBuilder();
+ boolean firstUnderline = false;
+ for (int j = 0; j < rowFieldList.size(); j++) {
+ Field field = rowFieldList.get(j);
+ if (primaryKeyList.stream().anyMatch(e -> field.getName().equals(e))) {
+ if (firstUnderline && j > 0) {
+ rowKey.append("_");
+ }
+ rowKey.append(String.valueOf(field.getValue()));
+ firstUnderline = true;
+ }
+ colsMap.put(field.getName().trim().toUpperCase(), field);
+ }
+ rowMap.put(rowKey.toString(), colsMap);
+ }
+ return rowMap;
+ }
+
+ /**
+ * 判断是否为达梦数据库的 DmdbTimestamp 类型
+ */
+ private static boolean isDmdbTimestamp(Object obj) {
+ return obj != null
+ && "dm.jdbc.driver.DmdbTimestamp".equals(obj.getClass().getName());
+ }
+
+ /**
+ * 将 DmdbTimestamp 转换为 Instant
+ */
+ private static Instant toInstant(Object dmdbTimestamp) {
+ try {
+ Method toInstantMethod = dmdbTimestamp.getClass().getMethod("toInstant");
+ return (Instant) toInstantMethod.invoke(dmdbTimestamp);
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to convert DmdbTimestamp to Instant", e);
+ }
+ }
+}
diff --git a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/config/SecurityProperties.java b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/config/SecurityProperties.java
index 73e4a71d..1183d298 100644
--- a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/config/SecurityProperties.java
+++ b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/config/SecurityProperties.java
@@ -1,11 +1,11 @@
package com.zt.plat.framework.security.config;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
import java.util.Collections;
import java.util.List;
diff --git a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AccessDeniedHandlerImpl.java b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AccessDeniedHandlerImpl.java
index b05de3dc..a67d5931 100644
--- a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AccessDeniedHandlerImpl.java
+++ b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AccessDeniedHandlerImpl.java
@@ -2,17 +2,17 @@ package com.zt.plat.framework.security.core.handler;
import com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.zt.plat.framework.common.pojo.CommonResult;
-import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.framework.common.util.servlet.ServletUtils;
+import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
import org.springframework.security.web.access.ExceptionTranslationFilter;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import static com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants.FORBIDDEN;
diff --git a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AuthenticationEntryPointImpl.java b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AuthenticationEntryPointImpl.java
index 6f1cd13d..d56221df 100644
--- a/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AuthenticationEntryPointImpl.java
+++ b/zt-framework/zt-spring-boot-starter-security/src/main/java/com/zt/plat/framework/security/core/handler/AuthenticationEntryPointImpl.java
@@ -3,15 +3,14 @@ package com.zt.plat.framework.security.core.handler;
import com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.servlet.ServletUtils;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.security.web.access.ExceptionTranslationFilter;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
import static com.zt.plat.framework.common.exception.enums.GlobalErrorCodeConstants.UNAUTHORIZED;
/**
diff --git a/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbAndRedisUnitTest.java b/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbAndRedisUnitTest.java
index 615ff231..5f1d3bbe 100644
--- a/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbAndRedisUnitTest.java
+++ b/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbAndRedisUnitTest.java
@@ -1,14 +1,14 @@
package com.zt.plat.framework.test.core.ut;
import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
+import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
import com.zt.plat.framework.common.biz.system.sequence.SequenceCommonApi;
import com.zt.plat.framework.datasource.config.ZtDataSourceAutoConfiguration;
import com.zt.plat.framework.mybatis.config.ZtMybatisAutoConfiguration;
import com.zt.plat.framework.redis.config.ZtRedisAutoConfiguration;
import com.zt.plat.framework.test.config.RedisTestConfiguration;
import com.zt.plat.framework.test.config.SqlInitializationTestConfiguration;
-import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
-import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
import org.redisson.spring.starter.RedissonAutoConfiguration;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
diff --git a/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java b/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java
index 7e2535c5..f4579777 100644
--- a/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java
+++ b/zt-framework/zt-spring-boot-starter-test/src/main/java/com/zt/plat/framework/test/core/ut/BaseDbUnitTest.java
@@ -1,6 +1,9 @@
package com.zt.plat.framework.test.core.ut;
import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure;
+import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
+import com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration;
import com.zt.plat.framework.common.biz.system.sequence.SequenceCommonApi;
import com.zt.plat.framework.datasource.config.ZtDataSourceAutoConfiguration;
import com.zt.plat.framework.mybatis.config.ZtMybatisAutoConfiguration;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/apilog/core/filter/ApiAccessLogFilter.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/apilog/core/filter/ApiAccessLogFilter.java
index 8f5f4355..8b686dbb 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/apilog/core/filter/ApiAccessLogFilter.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/apilog/core/filter/ApiAccessLogFilter.java
@@ -7,6 +7,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.databind.JsonNode;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import com.zt.plat.framework.apilog.core.enums.OperateTypeEnum;
import com.zt.plat.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
@@ -19,7 +20,6 @@ import com.zt.plat.framework.common.util.servlet.ServletUtils;
import com.zt.plat.framework.web.config.WebProperties;
import com.zt.plat.framework.web.core.filter.ApiRequestFilter;
import com.zt.plat.framework.web.core.util.WebFrameworkUtils;
-import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.FilterChain;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/BankCardDesensitize.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/BankCardDesensitize.java
index 34608d8e..efabe53c 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/BankCardDesensitize.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/BankCardDesensitize.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.desensitize.core.slider.annotation;
+import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.zt.plat.framework.desensitize.core.base.annotation.DesensitizeBy;
import com.zt.plat.framework.desensitize.core.slider.handler.BankCardDesensitization;
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import java.lang.annotation.*;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java
index a17ca3e1..998eaf16 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/CarLicenseDesensitize.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.desensitize.core.slider.annotation;
+import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.zt.plat.framework.desensitize.core.base.annotation.DesensitizeBy;
import com.zt.plat.framework.desensitize.core.slider.handler.CarLicenseDesensitization;
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import java.lang.annotation.*;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java
index 44151233..b1a95ea5 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/desensitize/core/slider/annotation/ChineseNameDesensitize.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.desensitize.core.slider.annotation;
+import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.zt.plat.framework.desensitize.core.base.annotation.DesensitizeBy;
import com.zt.plat.framework.desensitize.core.slider.handler.ChineseNameDesensitization;
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import java.lang.annotation.*;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyFilter.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyFilter.java
index d4b7b532..45451c8e 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyFilter.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyFilter.java
@@ -1,12 +1,12 @@
package com.zt.plat.framework.web.core.filter;
import com.zt.plat.framework.common.util.servlet.ServletUtils;
-import org.springframework.web.filter.OncePerRequestFilter;
-
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.web.filter.OncePerRequestFilter;
+
import java.io.IOException;
/**
diff --git a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyWrapper.java b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyWrapper.java
index fb5cc11d..82a35e52 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyWrapper.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/main/java/com/zt/plat/framework/web/core/filter/CacheRequestBodyWrapper.java
@@ -1,11 +1,11 @@
package com.zt.plat.framework.web.core.filter;
import com.zt.plat.framework.common.util.servlet.ServletUtils;
-
import jakarta.servlet.ReadListener;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
+
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
diff --git a/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/annotation/Address.java b/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/annotation/Address.java
index b5fbc80c..b5b544a1 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/annotation/Address.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/annotation/Address.java
@@ -1,15 +1,11 @@
package com.zt.plat.framework.desensitize.core.annotation;
+import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
import com.zt.plat.framework.desensitize.core.DesensitizeTest;
import com.zt.plat.framework.desensitize.core.base.annotation.DesensitizeBy;
import com.zt.plat.framework.desensitize.core.handler.AddressHandler;
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
/**
* 地址
diff --git a/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/handler/AddressHandler.java b/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/handler/AddressHandler.java
index 0232ec66..abf07d4a 100644
--- a/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/handler/AddressHandler.java
+++ b/zt-framework/zt-spring-boot-starter-web/src/test/java/com/zt/plat/framework/desensitize/core/handler/AddressHandler.java
@@ -1,8 +1,8 @@
package com.zt.plat.framework.desensitize.core.handler;
import com.zt.plat.framework.desensitize.core.DesensitizeTest;
-import com.zt.plat.framework.desensitize.core.base.handler.DesensitizationHandler;
import com.zt.plat.framework.desensitize.core.annotation.Address;
+import com.zt.plat.framework.desensitize.core.base.handler.DesensitizationHandler;
/**
* {@link Address} 的脱敏处理器
diff --git a/zt-gateway/src/main/java/com/zt/plat/gateway/filter/logging/AccessLogFilter.java b/zt-gateway/src/main/java/com/zt/plat/gateway/filter/logging/AccessLogFilter.java
index 782fdd00..f1826352 100644
--- a/zt-gateway/src/main/java/com/zt/plat/gateway/filter/logging/AccessLogFilter.java
+++ b/zt-gateway/src/main/java/com/zt/plat/gateway/filter/logging/AccessLogFilter.java
@@ -3,10 +3,11 @@ package com.zt.plat.gateway.filter.logging;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONUtil;
+import com.alibaba.nacos.common.utils.StringUtils;
import com.zt.plat.framework.common.util.json.JsonUtils;
import com.zt.plat.gateway.util.SecurityFrameworkUtils;
import com.zt.plat.gateway.util.WebFrameworkUtils;
-import com.alibaba.nacos.common.utils.StringUtils;
+import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.reactivestreams.Publisher;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
@@ -37,7 +38,6 @@ import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-import jakarta.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.List;
diff --git a/zt-gateway/src/main/resources/application.yaml b/zt-gateway/src/main/resources/application.yaml
index fd361a2e..3426a39a 100644
--- a/zt-gateway/src/main/resources/application.yaml
+++ b/zt-gateway/src/main/resources/application.yaml
@@ -30,6 +30,8 @@ spring:
username: ${config.username} # Nacos 账号
password: ${config.password} # Nacos 密码
discovery: # 【配置中心】配置项
+ ip: 172.16.46.62
+ port: 30092
namespace: ${config.namespace} # 命名空间。这里使用 maven Profile 资源过滤进行动态替换
group: ${config.group} # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
metadata:
@@ -70,7 +72,7 @@ spring:
- id: infra-spring-boot-admin # 路由的编号(Spring Boot Admin)
uri: grayLb://infra-server
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
- - Path=/admin/**
+ - Path=/admin/
- id: infra-websocket # 路由的编号(WebSocket)
uri: grayLb://infra-server
predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
@@ -186,13 +188,6 @@ spring:
- Path=/admin-api/crm/**
filters:
- RewritePath=/admin-api/crm/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
- ## rule-server 服务
- - id: rule-admin-api # 路由的编号
- uri: grayLb://rule-server
- predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
- - Path=/admin-api/rule/**
- filters:
- - RewritePath=/admin-api/rule/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
## ai-server 服务
- id: ai-admin-api # 路由的编号
uri: grayLb://ai-server
@@ -214,6 +209,64 @@ spring:
- Path=/admin-api/template/**
filters:
- RewritePath=/admin-api/template/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## logistics-server 服务
+ - id: logistics-api # 路由的编号
+ uri: grayLb://logistics-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/lgst/**
+ - id: logistics-admin-api # 路由的编号
+ uri: grayLb://logistics-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/lgst/**
+ filters:
+ - RewritePath=/admin-api/lgst/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## supply-server 服务
+ - id: supply-admin-api # 路由的编号
+ uri: grayLb://supply-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/supply/**
+ filters:
+ - RewritePath=/admin-api/supply/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ - id: supply-sply-admin-api # 路由的编号(supply-server的sply路径)
+ uri: grayLb://supply-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/sply/**
+ filters:
+ - RewritePath=/admin-api/sply/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## qms-server 服务
+ - id: qms-admin-api # 路由的编号
+ uri: grayLb://qms-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/qms/**
+ filters:
+ - RewritePath=/admin-api/qms/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## mes-server 服务
+ - id: mes-admin-api # 路由的编号
+ uri: grayLb://mes-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/mes/**
+ filters:
+ - RewritePath=/admin-api/mes/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## manage-server 服务
+ - id: manage-admin-api # 路由的编号
+ uri: grayLb://manage-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/manage/**
+ filters:
+ - RewritePath=/admin-api/manage/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ ## base-server 服务
+ - id: base-admin-api # 路由的编号
+ uri: grayLb://base-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/base/**
+ filters:
+ - RewritePath=/admin-api/base/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
+ - id: base-bse-admin-api # 路由的编号(base-server的bse路径)
+ uri: grayLb://base-server
+ predicates: # 断言,作为路由的匹配条件,对应 RouteDefinition 数组
+ - Path=/admin-api/bse/**
+ filters:
+ - RewritePath=/admin-api/bse/v3/api-docs, /v3/api-docs # 配置,保证转发到 /v3/api-docs
## databus-server 服务
- id: databus-admin-api # 路由的编号
uri: grayLb://databus-server
@@ -249,48 +302,66 @@ knife4j:
- name: infra-server
service-name: infra-server
url: /admin-api/infra/v3/api-docs
- - name: member-server
- service-name: member-server
- url: /admin-api/member/v3/api-docs
+# - name: member-server
+# service-name: member-server
+# url: /admin-api/member/v3/api-docs
- name: bpm-server
service-name: bpm-server
url: /admin-api/bpm/v3/api-docs
- - name: pay-server
- service-name: pay-server
- url: /admin-api/pay/v3/api-docs
- - name: mp-server
- service-name: mp-server
- url: /admin-api/mp/v3/api-docs
- - name: product-server
- service-name: product-server
- url: /admin-api/product/v3/api-docs
- - name: promotion-server
- service-name: promotion-server
- url: /admin-api/promotion/v3/api-docs
- - name: trade-server
- service-name: trade-server
- url: /admin-api/trade/v3/api-docs
- - name: statistics-server
- service-name: statistics-server
- url: /admin-api/statistics/v3/api-docs
- - name: erp-server
- service-name: erp-server
- url: /admin-api/erp/v3/api-docs
- - name: crm-server
- service-name: crm-server
- url: /admin-api/crm/v3/api-docs
- - name: rule-server
- service-name: rule-server
- url: /admin-api/rule/v3/api-docs
- - name: ai-server
- service-name: ai-server
- url: /admin-api/ai/v3/api-docs
- - name: iot-server
- service-name: iot-server
- url: /admin-api/iot/v3/api-docs
- - name: template-server
- service-name: template-server
- url: /admin-api/template/v3/api-docs
+# - name: pay-server
+# service-name: pay-server
+# url: /admin-api/pay/v3/api-docs
+# - name: mp-server
+# service-name: mp-server
+# url: /admin-api/mp/v3/api-docs
+# - name: product-server
+# service-name: product-server
+# url: /admin-api/product/v3/api-docs
+# - name: promotion-server
+# service-name: promotion-server
+# url: /admin-api/promotion/v3/api-docs
+# - name: trade-server
+# service-name: trade-server
+# url: /admin-api/trade/v3/api-docs
+# - name: statistics-server
+# service-name: statistics-server
+# url: /admin-api/statistics/v3/api-docs
+# - name: erp-server
+# service-name: erp-server
+# url: /admin-api/erp/v3/api-docs
+# - name: crm-server
+# service-name: crm-server
+# url: /admin-api/crm/v3/api-docs
+# - name: ai-server
+# service-name: ai-server
+# url: /admin-api/ai/v3/api-docs
+# - name: iot-server
+# service-name: iot-server
+# url: /admin-api/iot/v3/api-docs
+ - name: logistics-server
+ service-name: logistics-server
+ url: /admin-api/lgst/v3/api-docs
+ - name: supply-server
+ service-name: supply-server
+ url: /admin-api/supply/v3/api-docs
+ - name: supply-sply-server
+ service-name: supply-server
+ url: /admin-api/sply/v3/api-docs
+ - name: qms-server
+ service-name: qms-server
+ url: /admin-api/qms/v3/api-docs
+ - name: mes-server
+ service-name: mes-server
+ url: /admin-api/mes/v3/api-docs
+ - name: manage-server
+ service-name: manage-server
+ url: /admin-api/manage/v3/api-docs
+ - name: base-server
+ service-name: base-server
+ url: /admin-api/base/v3/api-docs
+ - name: base-bse-server
+ service-name: base-server
+ url: /admin-api/bse/v3/api-docs
- name: databus-server
service-name: databus-server
url: /admin-api/databus/v3/api-docs
diff --git a/zt-gateway/src/main/resources/logback-spring.xml b/zt-gateway/src/main/resources/logback-spring.xml
index 0e551414..cd4992fa 100644
--- a/zt-gateway/src/main/resources/logback-spring.xml
+++ b/zt-gateway/src/main/resources/logback-spring.xml
@@ -5,6 +5,10 @@
+
+
+
+
@@ -31,7 +35,7 @@
${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}
- ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}
+ ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-50MB}
${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}
@@ -56,18 +60,39 @@
+
+
+ ${LOG_DIR}-error.log
+
+ ERROR
+ ACCEPT
+ DENY
+
+
+ ${LOG_DIR}-error.%d{yyyy-MM-dd}.log
+ 30
+
+
+ %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
-
-
+
+
+
+
+
diff --git a/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java b/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java
index efecfdab..24b08a4c 100644
--- a/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java
+++ b/zt-module-bpm/zt-module-bpm-api/src/main/java/com/zt/plat/module/bpm/api/task/dto/BpmProcessInstanceCreateReqDTO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.bpm.api.task.dto;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
import java.util.List;
import java.util.Map;
diff --git a/zt-module-bpm/zt-module-bpm-server/pom.xml b/zt-module-bpm/zt-module-bpm-server/pom.xml
index 4b151c35..a8972633 100644
--- a/zt-module-bpm/zt-module-bpm-server/pom.xml
+++ b/zt-module-bpm/zt-module-bpm-server/pom.xml
@@ -33,6 +33,11 @@
zt-module-system-api
${revision}
+
+ com.zt.plat
+ zt-module-capital-api
+ ${revision}
+
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java
index 1c86d9e7..fe4cc836 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/alibaba/druid/pool/DruidPooledStatement.java
@@ -11,12 +11,9 @@ import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
import com.alibaba.druid.util.JdbcUtils;
import com.alibaba.druid.util.MySqlUtils;
+
import java.net.SocketTimeoutException;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.SQLWarning;
-import java.sql.Statement;
+import java.sql.*;
import java.util.ArrayList;
import java.util.List;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java
index b3d1e79f..e0cb9bc5 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/api/task/BpmProcessInstanceApiImpl.java
@@ -24,6 +24,7 @@ import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.repository.ProcessDefinition;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -40,7 +41,7 @@ import static com.zt.plat.framework.web.core.util.WebFrameworkUtils.getLoginUser
* @author jason
*/
@RestController
-@Valid
+@Validated
public class BpmProcessInstanceApiImpl implements BpmProcessInstanceApi {
@Resource
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
index cd5177a9..f7e79287 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
@@ -1,11 +1,11 @@
package com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.zt.plat.framework.common.core.KeyValue;
import com.zt.plat.framework.common.validation.InEnum;
import com.zt.plat.module.bpm.enums.definition.*;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java
index a23c8688..4e444f4e 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmApprovalDetailRespVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.bpm.controller.admin.task.vo.instance;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
index 14cc77a3..ae1abafa 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceRespVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.bpm.controller.admin.task.vo.instance;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zt.plat.framework.common.core.KeyValue;
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
import com.zt.plat.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
index fb86f574..0cafdb4b 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
@@ -1,8 +1,8 @@
package com.zt.plat.module.bpm.controller.admin.task.vo.task;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zt.plat.framework.common.core.KeyValue;
import com.zt.plat.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
-import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java
index 193ffb4c..a8251dad 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmCategoryDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java
index 649d1913..22c69b3e 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmFormDO.java
@@ -1,8 +1,8 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java
index 349f4049..43a879b4 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java
@@ -1,5 +1,7 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
+import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.zt.plat.framework.mybatis.core.type.LongListTypeHandler;
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
@@ -7,8 +9,6 @@ import com.zt.plat.module.bpm.enums.definition.BpmAutoApproveTypeEnum;
import com.zt.plat.module.bpm.enums.definition.BpmModelFormTypeEnum;
import com.zt.plat.module.bpm.enums.definition.BpmModelTypeEnum;
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
-import com.baomidou.mybatisplus.annotation.*;
-import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java
index 29afb73d..441f3cb7 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
/**
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java
index ed36d7ba..9c0f05c7 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java
@@ -1,11 +1,11 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
-import com.zt.plat.module.bpm.enums.definition.BpmProcessListenerTypeEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+import com.zt.plat.module.bpm.enums.definition.BpmProcessListenerTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java
index bbe42d2b..5b5692fa 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.bpm.dal.dataobject.definition;
-import com.zt.plat.framework.common.enums.CommonStatusEnum;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.zt.plat.framework.common.enums.CommonStatusEnum;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
index 76dabd22..fa177355 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
@@ -1,11 +1,11 @@
package com.zt.plat.module.bpm.dal.dataobject.oa;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
-import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java
index ef06a3eb..779d11d6 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.bpm.dal.dataobject.task;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java
index b6b0f69a..77e3a307 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/dal/redis/BpmProcessIdRedisDAO.java
@@ -10,7 +10,8 @@ import org.springframework.stereotype.Repository;
import java.time.Duration;
import java.time.LocalDateTime;
-import static cn.hutool.core.date.DatePattern.*;
+import static cn.hutool.core.date.DatePattern.PURE_DATETIME_PATTERN;
+import static cn.hutool.core.date.DatePattern.PURE_DATE_PATTERN;
/**
* BPM 流程 Id 编码的 Redis DAO
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java
index 54310efa..cdfee97b 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/BpmTaskCandidateInvoker.java
@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
+import com.google.common.annotations.VisibleForTesting;
import com.zt.plat.framework.common.enums.CommonStatusEnum;
import com.zt.plat.framework.common.util.object.ObjectUtils;
import com.zt.plat.framework.datapermission.core.annotation.DataPermission;
@@ -16,7 +17,6 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import com.zt.plat.module.system.api.user.AdminUserApi;
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
-import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.CallActivity;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java
index bfd429c9..e56d6b98 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateApproveUserSelectStrategy.java
@@ -2,11 +2,11 @@ package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.dept;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
+import com.google.common.collect.Sets;
import com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.user.BpmTaskCandidateUserStrategy;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
-import com.google.common.collect.Sets;
import jakarta.annotation.Resource;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.engine.delegate.DelegateExecution;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java
index 189e5db2..6aab05cb 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/dept/BpmTaskCandidateStartUserSelectStrategy.java
@@ -2,11 +2,11 @@ package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.dept;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
+import com.google.common.collect.Sets;
import com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.user.BpmTaskCandidateUserStrategy;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
-import com.google.common.collect.Sets;
import jakarta.annotation.Resource;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.engine.delegate.DelegateExecution;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java
index 8350a8a7..aeae390a 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/candidate/strategy/other/BpmTaskCandidateExpressionStrategy.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.bpm.framework.flowable.core.candidate.strategy.other;
+import com.google.common.collect.Sets;
import com.zt.plat.framework.common.util.collection.CollectionUtils;
import com.zt.plat.module.bpm.framework.flowable.core.candidate.BpmTaskCandidateStrategy;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum;
import com.zt.plat.module.bpm.framework.flowable.core.util.FlowableUtils;
-import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.common.engine.api.FlowableException;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java
index 7c4c0e9a..cc56501a 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmProcessInstanceEventListener.java
@@ -1,7 +1,7 @@
package com.zt.plat.module.bpm.framework.flowable.core.listener;
-import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import com.google.common.collect.ImmutableSet;
+import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import jakarta.annotation.Resource;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java
index eda52442..b26585b8 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java
@@ -3,13 +3,13 @@ package com.zt.plat.module.bpm.framework.flowable.core.listener;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import com.google.common.collect.ImmutableSet;
import com.zt.plat.framework.common.util.number.NumberUtils;
import com.zt.plat.module.bpm.enums.definition.BpmBoundaryEventTypeEnum;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils;
import com.zt.plat.module.bpm.service.definition.BpmModelService;
import com.zt.plat.module.bpm.service.task.BpmTaskService;
-import com.google.common.collect.ImmutableSet;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.BoundaryEvent;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java
index de5b2a46..583e8043 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmHttpRequestUtils.java
@@ -2,6 +2,7 @@ package com.zt.plat.module.bpm.framework.flowable.core.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.zt.plat.framework.common.core.KeyValue;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.json.JsonUtils;
@@ -9,7 +10,6 @@ import com.zt.plat.framework.common.util.spring.SpringUtils;
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
import com.zt.plat.module.bpm.enums.definition.BpmHttpRequestParamTypeEnum;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
-import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.http.HttpEntity;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
index b53a819c..d9bf32e3 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
@@ -7,6 +7,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
+import com.google.common.collect.Maps;
import com.zt.plat.framework.common.util.collection.CollectionUtils;
import com.zt.plat.framework.common.util.json.JsonUtils;
import com.zt.plat.framework.common.util.number.NumberUtils;
@@ -15,11 +16,10 @@ import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSim
import com.zt.plat.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
import com.zt.plat.module.bpm.enums.definition.*;
import com.zt.plat.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
-import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.converter.BpmnXMLConverter;
-import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
+import org.flowable.bpmn.model.Process;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.impl.util.io.BytesStreamSource;
import org.flowable.engine.impl.el.FixedValue;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
index cb03e01c..562310ab 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
@@ -17,8 +17,8 @@ import com.zt.plat.module.bpm.service.task.listener.BpmCallActivityListener;
import com.zt.plat.module.bpm.service.task.listener.BpmUserTaskListener;
import org.flowable.bpmn.BpmnAutoLayout;
import org.flowable.bpmn.constants.BpmnXMLConstants;
-import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
+import org.flowable.bpmn.model.Process;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.engine.delegate.TaskListener;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java
index 0be19c0b..0ab98bc8 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/rpc/config/RpcConfiguration.java
@@ -1,5 +1,6 @@
package com.zt.plat.module.bpm.framework.rpc.config;
+import com.zt.plat.module.capital.api.AmountCreditApplyApi;
import com.zt.plat.module.system.api.dept.DeptApi;
import com.zt.plat.module.system.api.dept.PostApi;
import com.zt.plat.module.system.api.dict.DictDataApi;
@@ -12,6 +13,6 @@ import org.springframework.context.annotation.Configuration;
@Configuration(value = "bpmRpcConfiguration", proxyBeanMethods = false)
@EnableFeignClients(clients = {RoleApi.class, DeptApi.class, PostApi.class, AdminUserApi.class, SmsSendApi.class, DictDataApi.class,
- PermissionApi.class})
+ PermissionApi.class, AmountCreditApplyApi.class})
public class RpcConfiguration {
}
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java
index fed2cc5a..ad4c2c0a 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/framework/web/config/BpmWebConfiguration.java
@@ -1,9 +1,7 @@
package com.zt.plat.module.bpm.framework.web.config;
import com.zt.plat.framework.common.enums.WebFilterOrderEnum;
-import com.zt.plat.framework.swagger.config.ZtSwaggerAutoConfiguration;
import com.zt.plat.module.bpm.framework.web.core.FlowableWebFilter;
-import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java
index f4815c21..d65084c5 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/definition/BpmModelServiceImpl.java
@@ -24,7 +24,9 @@ import com.zt.plat.module.bpm.service.task.BpmProcessInstanceCopyService;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
-import org.flowable.bpmn.model.*;
+import org.flowable.bpmn.model.BpmnModel;
+import org.flowable.bpmn.model.StartEvent;
+import org.flowable.bpmn.model.UserTask;
import org.flowable.common.engine.impl.db.SuspensionState;
import org.flowable.engine.HistoryService;
import org.flowable.engine.RepositoryService;
@@ -40,7 +42,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertMap;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java
new file mode 100644
index 00000000..83fed4c6
--- /dev/null
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/supply/capital/listener/BpmCreditLetterApprovalStatusListener.java
@@ -0,0 +1,42 @@
+package com.zt.plat.module.bpm.service.supply.capital.listener;
+
+import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEvent;
+import com.zt.plat.module.bpm.api.event.BpmProcessInstanceStatusEventListener;
+import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
+import com.zt.plat.module.capital.api.AmountCreditApplyApi;
+import com.zt.plat.module.capital.enums.AmountCreditApplyApiStatusEnum;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * credit_letter_approval_process - 授信单的状态的监听器实现类
+ *
+ * @author qianshijiang
+ */
+@Component
+public class BpmCreditLetterApprovalStatusListener extends BpmProcessInstanceStatusEventListener {
+
+ @Resource
+ private AmountCreditApplyApi amountCreditApplyApi;
+
+ @Override
+ protected List getProcessDefinitionKey() {
+ return List.of(amountCreditApplyApi.PROCESS_KEY);
+ }
+
+ @Override
+ protected void onEvent(BpmProcessInstanceStatusEvent event) {
+ // 将流程中的状态转换为业务的状态
+ Integer status = event.getStatus();
+ String approvalStatus = null;
+ if (BpmProcessInstanceStatusEnum.APPROVE.getStatus() == status) {
+ approvalStatus = AmountCreditApplyApiStatusEnum.ACAS_PASS.getCode();
+ } else if (BpmProcessInstanceStatusEnum.REJECT.getStatus() == status) {
+ approvalStatus = AmountCreditApplyApiStatusEnum.ACAS_REJECT.getCode();
+ }
+ amountCreditApplyApi.updateAmountCreditApplyStatus(Long.parseLong(event.getBusinessKey()),approvalStatus);
+ }
+
+}
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java
index 46ed559e..60d30733 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormDeleteTrigger.java
@@ -1,6 +1,7 @@
package com.zt.plat.module.bpm.service.task.trigger.form;
import cn.hutool.core.collection.CollUtil;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.zt.plat.framework.common.util.json.JsonUtils;
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
@@ -8,7 +9,6 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils;
import com.zt.plat.module.bpm.framework.flowable.core.util.SimpleModelUtils;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
-import com.fasterxml.jackson.core.type.TypeReference;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java
index c8427b27..79a48d97 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/form/BpmFormUpdateTrigger.java
@@ -1,6 +1,7 @@
package com.zt.plat.module.bpm.service.task.trigger.form;
import cn.hutool.core.collection.CollUtil;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.zt.plat.framework.common.util.json.JsonUtils;
import com.zt.plat.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.TriggerSetting.FormTriggerSetting;
import com.zt.plat.module.bpm.enums.definition.BpmTriggerTypeEnum;
@@ -8,7 +9,6 @@ import com.zt.plat.module.bpm.framework.flowable.core.util.BpmnModelUtils;
import com.zt.plat.module.bpm.framework.flowable.core.util.SimpleModelUtils;
import com.zt.plat.module.bpm.service.task.BpmProcessInstanceService;
import com.zt.plat.module.bpm.service.task.trigger.BpmTrigger;
-import com.fasterxml.jackson.core.type.TypeReference;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java
index 3fe0606b..76292d8b 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmHttpCallbackTrigger.java
@@ -10,7 +10,6 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
/**
* BPM HTTP 回调触发器
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java
index 617bf7a7..f6126600 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/com/zt/plat/module/bpm/service/task/trigger/http/BpmSyncHttpRequestTrigger.java
@@ -9,7 +9,6 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
/**
* BPM 发送同步 HTTP 请求触发器
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java
index 6f574106..b2c55f08 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/liquibase/datatype/core/BooleanType.java
@@ -11,7 +11,6 @@ import liquibase.statement.DatabaseFunction;
import liquibase.util.StringUtil;
import java.util.Locale;
-import java.util.regex.Pattern;
@DataTypeInfo(name = "boolean", aliases = {"java.sql.Types.BOOLEAN", "java.lang.Boolean", "bit", "bool"}, minParameters = 0, maxParameters = 0, priority = LiquibaseDataType.PRIORITY_DEFAULT)
public class BooleanType extends LiquibaseDataType {
diff --git a/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java b/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
index 2ac83d58..790e65ec 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/main/java/org/flowable/common/engine/impl/AbstractEngineConfiguration.java
@@ -12,29 +12,8 @@
*/
package org.flowable.common.engine.impl;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.ServiceLoader;
-import java.util.Set;
-
-import javax.naming.InitialContext;
-import javax.sql.DataSource;
-
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
import org.apache.ibatis.builder.xml.XMLMapperBuilder;
@@ -47,27 +26,7 @@ import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.apache.ibatis.transaction.managed.ManagedTransactionFactory;
-import org.apache.ibatis.type.ArrayTypeHandler;
-import org.apache.ibatis.type.BigDecimalTypeHandler;
-import org.apache.ibatis.type.BlobInputStreamTypeHandler;
-import org.apache.ibatis.type.BlobTypeHandler;
-import org.apache.ibatis.type.BooleanTypeHandler;
-import org.apache.ibatis.type.ByteTypeHandler;
-import org.apache.ibatis.type.ClobTypeHandler;
-import org.apache.ibatis.type.DateOnlyTypeHandler;
-import org.apache.ibatis.type.DateTypeHandler;
-import org.apache.ibatis.type.DoubleTypeHandler;
-import org.apache.ibatis.type.FloatTypeHandler;
-import org.apache.ibatis.type.IntegerTypeHandler;
-import org.apache.ibatis.type.JdbcType;
-import org.apache.ibatis.type.LongTypeHandler;
-import org.apache.ibatis.type.NClobTypeHandler;
-import org.apache.ibatis.type.NStringTypeHandler;
-import org.apache.ibatis.type.ShortTypeHandler;
-import org.apache.ibatis.type.SqlxmlTypeHandler;
-import org.apache.ibatis.type.StringTypeHandler;
-import org.apache.ibatis.type.TimeOnlyTypeHandler;
-import org.apache.ibatis.type.TypeHandlerRegistry;
+import org.apache.ibatis.type.*;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.delegate.event.FlowableEngineEventType;
import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher;
@@ -79,25 +38,10 @@ import org.flowable.common.engine.impl.cfg.CommandExecutorImpl;
import org.flowable.common.engine.impl.cfg.IdGenerator;
import org.flowable.common.engine.impl.cfg.TransactionContextFactory;
import org.flowable.common.engine.impl.cfg.standalone.StandaloneMybatisTransactionContextFactory;
-import org.flowable.common.engine.impl.db.CommonDbSchemaManager;
-import org.flowable.common.engine.impl.db.DbSqlSessionFactory;
-import org.flowable.common.engine.impl.db.LogSqlExecutionTimePlugin;
-import org.flowable.common.engine.impl.db.MybatisTypeAliasConfigurator;
-import org.flowable.common.engine.impl.db.MybatisTypeHandlerConfigurator;
-import org.flowable.common.engine.impl.db.SchemaManager;
+import org.flowable.common.engine.impl.db.*;
import org.flowable.common.engine.impl.event.EventDispatchAction;
import org.flowable.common.engine.impl.event.FlowableEventDispatcherImpl;
-import org.flowable.common.engine.impl.interceptor.Command;
-import org.flowable.common.engine.impl.interceptor.CommandConfig;
-import org.flowable.common.engine.impl.interceptor.CommandContextFactory;
-import org.flowable.common.engine.impl.interceptor.CommandContextInterceptor;
-import org.flowable.common.engine.impl.interceptor.CommandExecutor;
-import org.flowable.common.engine.impl.interceptor.CommandInterceptor;
-import org.flowable.common.engine.impl.interceptor.CrDbRetryInterceptor;
-import org.flowable.common.engine.impl.interceptor.DefaultCommandInvoker;
-import org.flowable.common.engine.impl.interceptor.LogInterceptor;
-import org.flowable.common.engine.impl.interceptor.SessionFactory;
-import org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor;
+import org.flowable.common.engine.impl.interceptor.*;
import org.flowable.common.engine.impl.lock.LockManager;
import org.flowable.common.engine.impl.lock.LockManagerImpl;
import org.flowable.common.engine.impl.logging.LoggingListener;
@@ -107,13 +51,7 @@ import org.flowable.common.engine.impl.persistence.GenericManagerFactory;
import org.flowable.common.engine.impl.persistence.StrongUuidGenerator;
import org.flowable.common.engine.impl.persistence.cache.EntityCache;
import org.flowable.common.engine.impl.persistence.cache.EntityCacheImpl;
-import org.flowable.common.engine.impl.persistence.entity.ByteArrayEntityManager;
-import org.flowable.common.engine.impl.persistence.entity.ByteArrayEntityManagerImpl;
-import org.flowable.common.engine.impl.persistence.entity.Entity;
-import org.flowable.common.engine.impl.persistence.entity.PropertyEntityManager;
-import org.flowable.common.engine.impl.persistence.entity.PropertyEntityManagerImpl;
-import org.flowable.common.engine.impl.persistence.entity.TableDataManager;
-import org.flowable.common.engine.impl.persistence.entity.TableDataManagerImpl;
+import org.flowable.common.engine.impl.persistence.entity.*;
import org.flowable.common.engine.impl.persistence.entity.data.ByteArrayDataManager;
import org.flowable.common.engine.impl.persistence.entity.data.PropertyDataManager;
import org.flowable.common.engine.impl.persistence.entity.data.impl.MybatisByteArrayDataManager;
@@ -127,8 +65,14 @@ import org.flowable.eventregistry.api.EventRegistryEventConsumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
+import javax.naming.InitialContext;
+import javax.sql.DataSource;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.sql.*;
+import java.time.Duration;
+import java.util.*;
public abstract class AbstractEngineConfiguration {
diff --git a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java
index 2bb6fbad..8742afe2 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmFormServiceTest.java
@@ -4,15 +4,15 @@ import cn.hutool.core.util.RandomUtil;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.json.JsonUtils;
import com.zt.plat.framework.test.core.ut.BaseDbUnitTest;
-import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormSaveReqVO;
import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO;
+import com.zt.plat.module.bpm.controller.admin.definition.vo.form.BpmFormSaveReqVO;
import com.zt.plat.module.bpm.dal.dataobject.definition.BpmFormDO;
import com.zt.plat.module.bpm.dal.mysql.definition.BpmFormMapper;
import com.zt.plat.module.bpm.service.definition.dto.BpmFormFieldRespDTO;
+import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
-import jakarta.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
diff --git a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java
index a74e9d38..b2b04bc4 100644
--- a/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java
+++ b/zt-module-bpm/zt-module-bpm-server/src/test/java/com/zt/plat/module/bpm/service/definition/BpmUserGroupServiceTest.java
@@ -5,16 +5,15 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.test.core.ut.BaseDbUnitTest;
import com.zt.plat.framework.test.core.util.AssertUtils;
import com.zt.plat.framework.test.core.util.RandomUtils;
-import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupSaveReqVO;
import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO;
+import com.zt.plat.module.bpm.controller.admin.definition.vo.group.BpmUserGroupSaveReqVO;
import com.zt.plat.module.bpm.dal.dataobject.definition.BpmUserGroupDO;
import com.zt.plat.module.bpm.dal.mysql.definition.BpmUserGroupMapper;
+import jakarta.annotation.Resource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
-import jakarta.annotation.Resource;
-
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.LocalDateTimeUtils.buildTime;
diff --git a/zt-module-databus/zt-module-databus-server/Dockerfile b/zt-module-databus/zt-module-databus-server/Dockerfile
new file mode 100644
index 00000000..6c1fd56f
--- /dev/null
+++ b/zt-module-databus/zt-module-databus-server/Dockerfile
@@ -0,0 +1,19 @@
+## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性
+
+FROM 172.16.46.66:10043/base-service/eclipse-temurin:21-jre
+
+## 创建目录,并使用它作为工作目录
+RUN mkdir -p /zt-module-databus-server
+WORKDIR /zt-module-databus-server
+## 将后端项目的 Jar 文件,复制到镜像中
+COPY ./target/zt-module-databus-server.jar app.jar
+
+## 设置 TZ 时区
+## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
+ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m"
+
+## 暴露后端项目的 48080 端口
+EXPOSE 48082
+
+## 启动后端项目
+CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar
diff --git a/zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml b/zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
index 87dad43b..f7189ad3 100644
--- a/zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
+++ b/zt-module-databus/zt-module-databus-server/src/main/resources/application-dev.yml
@@ -37,14 +37,20 @@ spring:
primary: master
datasource:
master:
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
lazy: true # 开启懒加载,保证启动速度
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data:
@@ -52,9 +58,8 @@ spring:
host: 172.16.46.63 # 地址
port: 30379 # 端口
database: 0 # 数据库索引
- username: zt-redis
+ username: zt-redis # 密码,建议生产环境开启
password: P@ssword25
-# password: 123456 # 密码,建议生产环境开启
xxl:
job:
diff --git a/zt-module-databus/zt-module-databus-server/src/main/resources/application-local.yml b/zt-module-databus/zt-module-databus-server/src/main/resources/application-local.yml
index cd47ac91..524347bd 100644
--- a/zt-module-databus/zt-module-databus-server/src/main/resources/application-local.yml
+++ b/zt-module-databus/zt-module-databus-server/src/main/resources/application-local.yml
@@ -39,14 +39,20 @@ spring:
primary: master
datasource:
master:
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
lazy: true # 开启懒加载,保证启动速度
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data:
@@ -54,7 +60,8 @@ spring:
host: 172.16.46.63 # 地址
port: 30379 # 端口
database: 0 # 数据库索引
-# password: 123456 # 密码,建议生产环境开启
+ username: zt-redis # 密码,建议生产环境开启
+ password: P@ssword25
xxl:
job:
diff --git a/zt-module-databus/zt-module-databus-server/src/main/resources/application.yml b/zt-module-databus/zt-module-databus-server/src/main/resources/application.yml
index 93b7aa62..3153c24a 100644
--- a/zt-module-databus/zt-module-databus-server/src/main/resources/application.yml
+++ b/zt-module-databus/zt-module-databus-server/src/main/resources/application.yml
@@ -50,7 +50,7 @@ spring:
time-to-live: 1h # 设置过期时间为 1 小时
server:
- port: 48100
+ port: 48108
logging:
file:
diff --git a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileCreateReqDTO.java b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileCreateReqDTO.java
index c4290020..4260da92 100644
--- a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileCreateReqDTO.java
+++ b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/file/dto/FileCreateReqDTO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.infra.api.file.dto;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
@Schema(description = "RPC 服务 - 文件创建 Request DTO")
@Data
diff --git a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java
index 957ee956..0da33d99 100644
--- a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java
+++ b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/WebSocketSenderApi.java
@@ -6,12 +6,11 @@ import com.zt.plat.module.infra.api.websocket.dto.WebSocketSendReqDTO;
import com.zt.plat.module.infra.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
-import jakarta.validation.Valid;
-
@FeignClient(name = ApiConstants.NAME) // TODO ZT:fallbackFactory =
@Tag(name = "RPC 服务 - WebSocket 发送器的") // 对 WebSocketMessageSender 进行封装,提供给其它模块使用
public interface WebSocketSenderApi {
diff --git a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/dto/WebSocketSendReqDTO.java b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/dto/WebSocketSendReqDTO.java
index 9f28ddf5..a3919657 100644
--- a/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/dto/WebSocketSendReqDTO.java
+++ b/zt-module-infra/zt-module-infra-api/src/main/java/com/zt/plat/module/infra/api/websocket/dto/WebSocketSendReqDTO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.infra.api.websocket.dto;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
@Schema(description = "RPC 服务 - WebSocket 消息发送 Request DTO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/logger/ApiAccessLogApiImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/logger/ApiAccessLogApiImpl.java
index f368774b..6c7f7625 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/logger/ApiAccessLogApiImpl.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/api/logger/ApiAccessLogApiImpl.java
@@ -4,11 +4,10 @@ import com.zt.plat.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
import com.zt.plat.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.infra.service.logger.ApiAccessLogService;
+import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
-import jakarta.annotation.Resource;
-
import static com.zt.plat.framework.common.pojo.CommonResult.success;
@RestController // 提供 RESTful API 接口,给 Feign 调用
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/BusinessFileController.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/BusinessFileController.java
index 2d143fb8..8ba4765b 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/BusinessFileController.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/BusinessFileController.java
@@ -101,7 +101,7 @@ public class BusinessFileController {
@GetMapping("/page")
@Operation(summary = "获得业务附件关联分页")
- @PreAuthorize("@ss.hasPermission('infra:business-file:query')")
+ @PreAuthorize("@ss.hasAnyPermissions({'infra:business-file:query','supply:purchase-credit-granting-form-template:query-list','supply:purchase-amount-request-form-template:query-list'})")
public CommonResult> getBusinessFilePage(@Valid BusinessFilePageReqVO pageReqVO) {
PageResult pageResult = businessFileService.getBusinessFilePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessFileRespVO.class));
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFilePageReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFilePageReqVO.java
index 34d1c44e..176dd0b4 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFilePageReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFilePageReqVO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.controller.admin.businessfile.vo;
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
+
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFileWithUrlRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFileWithUrlRespVO.java
index 95717360..2edbcd5e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFileWithUrlRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/businessfile/vo/BusinessFileWithUrlRespVO.java
@@ -12,7 +12,6 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.nio.charset.StandardCharsets;
-import java.time.LocalDateTime;
import java.util.Base64;
import java.util.Date;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java
index 8f8b0774..87447521 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/CodegenUpdateReqVO.java
@@ -3,10 +3,10 @@ package com.zt.plat.module.infra.controller.admin.codegen.vo;
import com.zt.plat.module.infra.controller.admin.codegen.vo.column.CodegenColumnSaveReqVO;
import com.zt.plat.module.infra.controller.admin.codegen.vo.table.CodegenTableSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
import java.util.List;
@Schema(description = "管理后台 - 代码生成表和字段的修改 Request VO")
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java
index 142b4bd6..19eaee0e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/codegen/vo/column/CodegenColumnSaveReqVO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.infra.controller.admin.codegen.vo.column;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Schema(description = "管理后台 - 代码生成字段定义创建/修改 Request VO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigRespVO.java
index 316b23c5..942e9f55 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigRespVO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.controller.admin.config.vo;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.framework.excel.core.annotations.DictFormat;
import com.zt.plat.framework.excel.core.convert.DictConvert;
import com.zt.plat.module.infra.enums.DictTypeConstants;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java
index 3b5aa57f..4bf21630 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/config/vo/ConfigSaveReqVO.java
@@ -1,12 +1,11 @@
package com.zt.plat.module.infra.controller.admin.config.vo;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
+import lombok.Data;
@Schema(description = "管理后台 - 参数配置创建/修改 Request VO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/DataSourceConfigController.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/DataSourceConfigController.java
index f0f135cf..0324f16e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/DataSourceConfigController.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/DataSourceConfigController.java
@@ -9,12 +9,12 @@ import com.zt.plat.module.infra.service.db.DataSourceConfigService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import jakarta.annotation.Resource;
-import jakarta.validation.Valid;
import java.util.List;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java
index 02d3b632..5353a51a 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/db/vo/DataSourceConfigSaveReqVO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.infra.controller.admin.db.vo;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Schema(description = "管理后台 - 数据源配置创建/修改 Request VO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java
index cb1ab23f..55a269f8 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo01/vo/Demo01ContactRespVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.controller.admin.demo.demo01.vo;
-import com.zt.plat.framework.excel.core.annotations.DictFormat;
-import com.zt.plat.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.zt.plat.framework.excel.core.annotations.DictFormat;
+import com.zt.plat.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/erp/vo/Demo03StudentErpRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/erp/vo/Demo03StudentErpRespVO.java
index 048eaede..45173e8a 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/erp/vo/Demo03StudentErpRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/erp/vo/Demo03StudentErpRespVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.controller.admin.demo.demo03.erp.vo;
-import com.zt.plat.framework.excel.core.annotations.DictFormat;
-import com.zt.plat.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.zt.plat.framework.excel.core.annotations.DictFormat;
+import com.zt.plat.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/inner/vo/Demo03StudentInnerRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/inner/vo/Demo03StudentInnerRespVO.java
index 66aa7832..f188e452 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/inner/vo/Demo03StudentInnerRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/demo/demo03/inner/vo/Demo03StudentInnerRespVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.controller.admin.demo.demo03.inner.vo;
-import com.zt.plat.framework.excel.core.annotations.DictFormat;
-import com.zt.plat.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.zt.plat.framework.excel.core.annotations.DictFormat;
+import com.zt.plat.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileCreateReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileCreateReqVO.java
index d6d1adb4..7e993583 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileCreateReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileCreateReqVO.java
@@ -1,10 +1,9 @@
package com.zt.plat.module.infra.controller.admin.doc.vo;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Schema(description = "管理后台 - 在线文档创建 Request VO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFilePermissionReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFilePermissionReqVO.java
index 0c437978..e2170fad 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFilePermissionReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFilePermissionReqVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.controller.admin.doc.vo;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
-import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 文档权限 Request VO")
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileUpdateReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileUpdateReqVO.java
index da79d927..2228628f 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileUpdateReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/doc/vo/DocFileUpdateReqVO.java
@@ -1,9 +1,8 @@
package com.zt.plat.module.infra.controller.admin.doc.vo;
import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
import jakarta.validation.constraints.NotNull;
+import lombok.Data;
@Schema(description = "管理后台 - 在线文档更新 Request VO")
@Data
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java
index d235d45c..a2f56e29 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.controller.admin.file.vo.config;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
-import jakarta.validation.constraints.NotNull;
import java.util.Map;
@Schema(description = "管理后台 - 文件配置创建/修改 Request VO")
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java
index b1e70950..fe72d35e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.controller.admin.logger.vo.apiaccesslog;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.framework.excel.core.annotations.DictFormat;
import com.zt.plat.framework.excel.core.convert.DictConvert;
import com.zt.plat.module.infra.enums.DictTypeConstants;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/redis/RedisController.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/redis/RedisController.java
index aade67c0..a5a2b5bf 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/redis/RedisController.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/controller/admin/redis/RedisController.java
@@ -5,6 +5,7 @@ import com.zt.plat.module.infra.controller.admin.redis.vo.RedisMonitorRespVO;
import com.zt.plat.module.infra.convert.redis.RedisConvert;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
import org.springframework.data.redis.connection.RedisServerCommands;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.StringRedisTemplate;
@@ -13,7 +14,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import jakarta.annotation.Resource;
import java.util.Properties;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/convert/codegen/CodegenConvert.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/convert/codegen/CodegenConvert.java
index 015de2e8..dfa4906e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/convert/codegen/CodegenConvert.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/convert/codegen/CodegenConvert.java
@@ -1,5 +1,7 @@
package com.zt.plat.module.infra.convert.codegen;
+import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.zt.plat.framework.common.util.collection.CollectionUtils;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.infra.controller.admin.codegen.vo.CodegenDetailRespVO;
@@ -8,8 +10,6 @@ import com.zt.plat.module.infra.controller.admin.codegen.vo.column.CodegenColumn
import com.zt.plat.module.infra.controller.admin.codegen.vo.table.CodegenTableRespVO;
import com.zt.plat.module.infra.dal.dataobject.codegen.CodegenColumnDO;
import com.zt.plat.module.infra.dal.dataobject.codegen.CodegenTableDO;
-import com.baomidou.mybatisplus.generator.config.po.TableField;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import org.apache.ibatis.type.JdbcType;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/businessfile/BusinessFileDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/businessfile/BusinessFileDO.java
index 4c067913..4944f034 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/businessfile/BusinessFileDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/businessfile/BusinessFileDO.java
@@ -1,7 +1,7 @@
package com.zt.plat.module.infra.dal.dataobject.businessfile;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
/**
* 业务附件关联 DO
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/codegen/CodegenColumnDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
index add3c4c6..3bc8b2cb 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
@@ -1,14 +1,14 @@
package com.zt.plat.module.infra.dal.dataobject.codegen;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
-import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
-import com.zt.plat.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
-import com.zt.plat.module.infra.enums.codegen.CodegenColumnListConditionEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
+import com.zt.plat.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
+import com.zt.plat.module.infra.enums.codegen.CodegenColumnListConditionEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/config/ConfigDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/config/ConfigDO.java
index c6a51ef3..6b43b335 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/config/ConfigDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/config/ConfigDO.java
@@ -1,12 +1,12 @@
package com.zt.plat.module.infra.dal.dataobject.config;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
-import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
-import com.zt.plat.module.infra.enums.config.ConfigTypeEnum;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
+import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
+import com.zt.plat.module.infra.enums.config.ConfigTypeEnum;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/db/DataSourceConfigDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/db/DataSourceConfigDO.java
index f114035e..8f5c8ddf 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/db/DataSourceConfigDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/db/DataSourceConfigDO.java
@@ -1,9 +1,9 @@
package com.zt.plat.module.infra.dal.dataobject.db;
+import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.zt.plat.framework.mybatis.core.type.EncryptTypeHandler;
import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java
index 6d570574..6999f682 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.dal.dataobject.demo.demo01;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.time.LocalDateTime;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java
index eb314b57..ec96603a 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.dal.dataobject.demo.demo02;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java
index 3a1bd44e..a11b387c 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.dal.dataobject.demo.demo03;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java
index 04a78fbc..d6638076 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.dal.dataobject.demo.demo03;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java
index f78c95f3..c7e35622 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java
@@ -1,10 +1,10 @@
package com.zt.plat.module.infra.dal.dataobject.demo.demo03;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.time.LocalDateTime;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/logger/ApiAccessLogDO.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
index 116639ed..b36c7436 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
@@ -1,13 +1,13 @@
package com.zt.plat.module.infra.dal.dataobject.logger;
-import com.zt.plat.framework.apilog.core.enums.OperateTypeEnum;
-import com.zt.plat.framework.common.enums.UserTypeEnum;
-import com.zt.plat.framework.common.pojo.CommonResult;
-import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.plat.framework.apilog.core.enums.OperateTypeEnum;
+import com.zt.plat.framework.common.enums.UserTypeEnum;
+import com.zt.plat.framework.common.pojo.CommonResult;
+import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.time.LocalDateTime;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/mysql/businessfile/BusinessFileMapper.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/mysql/businessfile/BusinessFileMapper.java
index 5e886088..ef9196a5 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/mysql/businessfile/BusinessFileMapper.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/dal/mysql/businessfile/BusinessFileMapper.java
@@ -1,13 +1,11 @@
package com.zt.plat.module.infra.dal.mysql.businessfile;
-import java.util.*;
-
import com.zt.plat.framework.common.pojo.PageResult;
-import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
+import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.zt.plat.module.infra.controller.admin.businessfile.vo.BusinessFilePageReqVO;
import com.zt.plat.module.infra.dal.dataobject.businessfile.BusinessFileDO;
import org.apache.ibatis.annotations.Mapper;
-import com.zt.plat.module.infra.controller.admin.businessfile.vo.*;
/**
* 业务附件关联 Mapper
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/framework/codegen/config/CodegenProperties.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/framework/codegen/config/CodegenProperties.java
index 83e496e5..15ea18c7 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/framework/codegen/config/CodegenProperties.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/framework/codegen/config/CodegenProperties.java
@@ -2,12 +2,12 @@ package com.zt.plat.module.infra.framework.codegen.config;
import com.zt.plat.module.infra.enums.codegen.CodegenFrontTypeEnum;
import com.zt.plat.module.infra.enums.codegen.CodegenVOTypeEnum;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;
-import jakarta.validation.constraints.NotEmpty;
-import jakarta.validation.constraints.NotNull;
import java.util.Collection;
@ConfigurationProperties(prefix = "zt.codegen")
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/job/logger/AccessLogCleanJob.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/job/logger/AccessLogCleanJob.java
index ba42f2b3..1954762f 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/job/logger/AccessLogCleanJob.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/job/logger/AccessLogCleanJob.java
@@ -1,13 +1,12 @@
package com.zt.plat.module.infra.job.logger;
+import com.xxl.job.core.handler.annotation.XxlJob;
import com.zt.plat.framework.tenant.core.aop.TenantIgnore;
import com.zt.plat.module.infra.service.logger.ApiAccessLogService;
-import com.xxl.job.core.handler.annotation.XxlJob;
+import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
-import jakarta.annotation.Resource;
-
/**
* 物理删除 N 天前的访问日志的 Job
*
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java
index 766ed84b..181ea370 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/CodegenServiceImpl.java
@@ -2,6 +2,9 @@ package com.zt.plat.module.infra.service.codegen;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.google.common.annotations.VisibleForTesting;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.infra.controller.admin.codegen.vo.CodegenCreateListReqVO;
@@ -18,9 +21,6 @@ import com.zt.plat.module.infra.framework.codegen.config.CodegenProperties;
import com.zt.plat.module.infra.service.codegen.inner.CodegenBuilder;
import com.zt.plat.module.infra.service.codegen.inner.CodegenEngine;
import com.zt.plat.module.infra.service.db.DatabaseTableService;
-import com.baomidou.mybatisplus.generator.config.po.TableField;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
-import com.google.common.annotations.VisibleForTesting;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenBuilder.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenBuilder.java
index 8db0f801..d64f0fd8 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenBuilder.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenBuilder.java
@@ -3,6 +3,9 @@ package com.zt.plat.module.infra.service.codegen.inner;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.generator.config.po.TableField;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.google.common.collect.Sets;
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
import com.zt.plat.module.infra.convert.codegen.CodegenConvert;
@@ -11,9 +14,6 @@ import com.zt.plat.module.infra.dal.dataobject.codegen.CodegenTableDO;
import com.zt.plat.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
import com.zt.plat.module.infra.enums.codegen.CodegenColumnListConditionEnum;
import com.zt.plat.module.infra.enums.codegen.CodegenTemplateTypeEnum;
-import com.baomidou.mybatisplus.generator.config.po.TableField;
-import com.baomidou.mybatisplus.generator.config.po.TableInfo;
-import com.google.common.collect.Sets;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenEngine.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenEngine.java
index 950e873a..91ea1fa3 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenEngine.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/codegen/inner/CodegenEngine.java
@@ -8,6 +8,11 @@ import cn.hutool.extra.template.TemplateConfig;
import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.engine.velocity.VelocityEngine;
import cn.hutool.system.SystemUtil;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableTable;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Table;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import com.zt.plat.framework.apilog.core.enums.OperateTypeEnum;
import com.zt.plat.framework.common.exception.util.ServiceExceptionUtil;
@@ -35,11 +40,6 @@ import com.zt.plat.module.infra.enums.codegen.CodegenTemplateTypeEnum;
import com.zt.plat.module.infra.enums.codegen.CodegenVOTypeEnum;
import com.zt.plat.module.infra.framework.codegen.config.CodegenProperties;
import com.zt.plat.module.infra.service.standardname.StandardNameService;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableTable;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Table;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.Setter;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigService.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigService.java
index 3fc81bab..21d59e43 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigService.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigService.java
@@ -4,7 +4,6 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.infra.controller.admin.config.vo.ConfigPageReqVO;
import com.zt.plat.module.infra.controller.admin.config.vo.ConfigSaveReqVO;
import com.zt.plat.module.infra.dal.dataobject.config.ConfigDO;
-
import jakarta.validation.Valid;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigServiceImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigServiceImpl.java
index caeaa2d1..1deb8b2c 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigServiceImpl.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/config/ConfigServiceImpl.java
@@ -1,5 +1,6 @@
package com.zt.plat.module.infra.service.config;
+import com.google.common.annotations.VisibleForTesting;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.infra.controller.admin.config.vo.ConfigPageReqVO;
import com.zt.plat.module.infra.controller.admin.config.vo.ConfigSaveReqVO;
@@ -7,13 +8,11 @@ import com.zt.plat.module.infra.convert.config.ConfigConvert;
import com.zt.plat.module.infra.dal.dataobject.config.ConfigDO;
import com.zt.plat.module.infra.dal.mysql.config.ConfigMapper;
import com.zt.plat.module.infra.enums.config.ConfigTypeEnum;
-import com.google.common.annotations.VisibleForTesting;
+import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
-import jakarta.annotation.Resource;
-
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.infra.enums.ErrorCodeConstants.*;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigService.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigService.java
index 065bfd17..b96a5cd4 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigService.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigService.java
@@ -2,8 +2,8 @@ package com.zt.plat.module.infra.service.db;
import com.zt.plat.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO;
import com.zt.plat.module.infra.dal.dataobject.db.DataSourceConfigDO;
-
import jakarta.validation.Valid;
+
import java.util.List;
/**
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigServiceImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigServiceImpl.java
index df4cd925..d8734dcd 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigServiceImpl.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DataSourceConfigServiceImpl.java
@@ -1,16 +1,16 @@
package com.zt.plat.module.infra.service.db;
+import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
+import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.mybatis.core.util.JdbcUtils;
import com.zt.plat.module.infra.controller.admin.db.vo.DataSourceConfigSaveReqVO;
import com.zt.plat.module.infra.dal.dataobject.db.DataSourceConfigDO;
import com.zt.plat.module.infra.dal.mysql.db.DataSourceConfigMapper;
-import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
-import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
+import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
-import jakarta.annotation.Resource;
import java.util.List;
import java.util.Objects;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DatabaseTableServiceImpl.java b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DatabaseTableServiceImpl.java
index 374fa1a9..e5797ed1 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DatabaseTableServiceImpl.java
+++ b/zt-module-infra/zt-module-infra-server/src/main/java/com/zt/plat/module/infra/service/db/DatabaseTableServiceImpl.java
@@ -3,11 +3,6 @@ package com.zt.plat.module.infra.service.db;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
-import com.zt.plat.framework.mybatis.core.util.JdbcUtils;
-import com.zt.plat.module.infra.dal.dataobject.db.DataSourceConfigDO;
-import com.zt.plat.module.infra.dal.dataobject.standardname.StandardNameDO;
-import com.zt.plat.module.infra.service.codegen.inner.CodegenBuilder;
-import com.zt.plat.module.infra.service.standardname.StandardNameService;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
@@ -16,6 +11,11 @@ import com.baomidou.mybatisplus.generator.config.po.TableField;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.query.SQLQuery;
+import com.zt.plat.framework.mybatis.core.util.JdbcUtils;
+import com.zt.plat.module.infra.dal.dataobject.db.DataSourceConfigDO;
+import com.zt.plat.module.infra.dal.dataobject.standardname.StandardNameDO;
+import com.zt.plat.module.infra.service.codegen.inner.CodegenBuilder;
+import com.zt.plat.module.infra.service.standardname.StandardNameService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
diff --git a/zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml b/zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml
index 9a4b7a79..94b2049e 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml
+++ b/zt-module-infra/zt-module-infra-server/src/main/resources/application-dev.yaml
@@ -38,14 +38,20 @@ spring:
primary: master
datasource:
master:
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
lazy: true # 开启懒加载,保证启动速度
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data:
@@ -98,5 +104,9 @@ spring:
context-path: /admin # 配置 Spring
--- #################### ZT相关配置 ####################
+# 芋道配置项,设置当前项目所有自定义的配置
+zt:
+ file:
+ download-expire-seconds: 43200
diff --git a/zt-module-infra/zt-module-infra-server/src/main/resources/application-local.yaml b/zt-module-infra/zt-module-infra-server/src/main/resources/application-local.yaml
index f9631d68..0f9f698b 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/resources/application-local.yaml
+++ b/zt-module-infra/zt-module-infra-server/src/main/resources/application-local.yaml
@@ -43,14 +43,20 @@ spring:
primary: master
datasource:
master:
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改
lazy: true # 开启懒加载,保证启动速度
- url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #url: jdbc:dm://172.16.46.247:1050?schema=RUOYI-VUE-PRO
+ #username: SYSDBA
+ #password: pgbsci6ddJ6Sqj@e
+ url: jdbc:dm://172.17.11.98:20870?schema=JYGK_TEST
username: SYSDBA
- password: pgbsci6ddJ6Sqj@e
+ password: P@ssword25
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
data:
diff --git a/zt-module-infra/zt-module-infra-server/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm b/zt-module-infra/zt-module-infra-server/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm
index 99aa91af..225fd86d 100644
--- a/zt-module-infra/zt-module-infra-server/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm
+++ b/zt-module-infra/zt-module-infra-server/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm
@@ -89,15 +89,17 @@