diff --git a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java index 03b0b3b..3c93d6f 100644 --- a/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java +++ b/itc-pcitc-dependencies/itc-pcitc-dependencies-service/src/main/java/com/pictc/utils/DataLogTools.java @@ -71,6 +71,8 @@ public class DataLogTools { private static Map,LogTableInfo> annotations = Maps.newHashMap(); + private static Map> entitys = Maps.newHashMap(); + private static Set logTables = null; private static Object lock = new Object(); @@ -720,17 +722,26 @@ public class DataLogTools { } } + /** + * @Description: TODO(这里用一句话描述这个方法的作用) + * @param clazz + * @param dataId + * @return List 返回类型 + */ + public static List findLogsByEntityId(Class clazz,@NonNull Long dataId) { + LogTableInfo tabInfo = getAnnotation(clazz); + String tableName = parseLogTableName(tabInfo); + return findLogsByEntityId(tableName, dataId); + } /** * @Description: 根据数据id获取操作日志 - * @param klass 数据java类型 + * @param tableName 表名 * @param dataId 数据id * @return List 返回类型 */ - public static List findLogsByEntityId(Class klass,@NonNull Long dataId) { - LogTableInfo tabInfo = getAnnotation(klass); - String tableName = parseLogTableName(tabInfo); + public static List findLogsByEntityId(String tableName,@NonNull Long dataId) { if(initTable(tableName)) { return null; } diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/pom.xml b/itc-pcitc-mdm/itc-pcitc-mdm-start/pom.xml new file mode 100644 index 0000000..48b7624 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/pom.xml @@ -0,0 +1,82 @@ + + + 4.0.0 + + + com.geg + itc-pcitc-mdm + ${revision} + + + itc-pcitc-mdm-starter + itc-pcitc-mdm-starter + itc-pcitc-mdm-starter + + + ${java.version} + ${java.version} + pcitc/itc-pcitc-mdm + + + + + + com.geg + itc-ms-system-service + ${revision} + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + + + + + + src/main/java + + **/*.xml + + + + src/main/java + + **/*.yml + **/*.properties + **/*.xml + + false + + + src/main/resources + + **/*.yml + **/*.properties + **/*.xml + **/*.vm + **/*.ftl + **/*.jpg + **/*.png + **/*.xls + **/*.xlsx + + false + + + + \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/agent.config b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/agent.config new file mode 100644 index 0000000..ed3fb29 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/agent.config @@ -0,0 +1,4 @@ +# 应用名称(在 SkyWalking UI 中显示的服务名) +agent.service_name=your-springboot-app +# SkyWalking OAP 服务地址(默认本地) +collector.backend_service=localhost:11800 \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/startApp.sh b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/startApp.sh new file mode 100644 index 0000000..7dff4c5 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/docker/startApp.sh @@ -0,0 +1,50 @@ +#!/bin/sh +#cp /etc/hosts /etc/hosts.temp + +# 初始化环境变量(设置默认值,避免空变量) +APP_NAME=${APP_NAME:-"default-springboot-app"} # 默认服务名 +SKYWALKING_SERVER=${SKYWALKING_SERVER:-"localhost:11800"} # 默认SkyWalking服务地址 +ENV_APP_PRO_FILE=${ENV_APP_PRO_FILE:-"test"} # 默认环境为test + +# 初始化Java启动参数(包含是否使用-server模式) +java_base="java -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=$APP_NAME" +export java_base="$java_base -Dskywalking.collector.backend_service=$SKYWALKING_SERVER" + +java_start="$java_base -jar" + +# 根据环境变量区分开发/生产环境配置 +if [ "$ENV_APP_PRO_FILE" = "prod" ]; then + # 生产环境JVM参数 + export JAVA_OPTS="-Xms1024m -Xmx4096m -Xmn512m -Xss512k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m" + export JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:G1ReservePercent=20" + export JAVA_OPTS="$JAVA_OPTS -XX:MaxGCPauseMillis=500 -XX:G1MixedGCCountTarget=10" + + export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:/var/log/app/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps" + export JAVA_OPTS="$JAVA_OPTS -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M" + + # 生产环境使用-server模式 + java_start="$java_base -jar -server" +else + # 开发环境JVM参数 + export JAVA_OPTS="-Xms512m -Xmx2048m -Xmn256m -Xss512k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m" + export JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC" + export JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSMaxAbortablePrecleanTime=5000" + export JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly" + export JAVA_OPTS="$JAVA_OPTS -verbose:gc -Xloggc:./logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps" + # 开发环境开启远程调试 + export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" +fi + +# 公共配置(编码、时区等) +export JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8" +export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true" +export JAVA_OPTS="$JAVA_OPTS -Duser.language=zh -Duser.country=CN -Duser.timezone=Asia/Shanghai" + +# SpringBoot 环境配置 +export JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=$ENV_APP_PRO_FILE" + +# 输出启动参数 +echo "启动参数:$java_start $JAVA_OPTS $ENV_APP_FILE_PATH" + +# 执行启动命令(用双引号包裹每个变量) +exec $java_start $JAVA_OPTS $ENV_APP_FILE_PATH \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/java/com/xjrsoft/ITCMdmApplication.java b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/java/com/xjrsoft/ITCMdmApplication.java new file mode 100644 index 0000000..4e9a849 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/java/com/xjrsoft/ITCMdmApplication.java @@ -0,0 +1,28 @@ +package com.xjrsoft; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.EnableAspectJAutoProxy; + +import com.pictc.utils.SpringTools; +import com.xjrsoft.common.annotation.UniqueNameGenerator; + +/** + * @author 张福财 + * 主数据服务---开发使用 + * 使用时集成到其它模块使用,不作为单独的服务 + */ +@SpringBootApplication +@EnableAspectJAutoProxy(exposeProxy = true) +@ComponentScan(nameGenerator = UniqueNameGenerator.class) +@EnableFeignClients +@EnableDiscoveryClient +public class ITCMdmApplication { + + public static void main(String[] args) { + SpringTools.logStarter(ITCMdmApplication.class, args); + } + +} \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/banner.txt b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/banner.txt new file mode 100644 index 0000000..f0052df --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/banner.txt @@ -0,0 +1,6 @@ + ██████╗ ███████╗ ██████╗ ██╗████████╗ ██████╗ +██╔════╝ ██╔════╝██╔════╝ ██║╚══██╔══╝██╔════╝ +██║ ███╗█████╗ ██║ ███╗█████╗██║ ██║ ██║ +██║ ██║██╔══╝ ██║ ██║╚════╝██║ ██║ ██║ +╚██████╔╝███████╗╚██████╔╝ ██║ ██║ ╚██████╗ + ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-local.yml b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-local.yml new file mode 100644 index 0000000..f75a2a3 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-local.yml @@ -0,0 +1,49 @@ +spring: + cloud: + nacos: #nacos监控 + config: + server-addr: 127.0.0.1:8848 # nacos 配置中心地址 + namespace: ITC-MS + group: DNE + username: nacos + password: nacos + extension-configs: + - data-id: global-local.yml + refresh: true + group: DNE + + - data-id: discovery-local.yml + refresh: true + group: DNE + + - data-id: datasource-local.yml + refresh: true + group: DNE + + - data-id: seata-local.yml + refresh: true + group: DNE + + - data-id: redis-local.yml + refresh: true + group: DNE + + - data-id: magic-api.yml + refresh: true + group: DNE + + - data-id: sa-token.yml + refresh: true + group: DNE + + - data-id: camunda.yml + refresh: true + group: DNE + + - data-id: sentinel-local.yml + refresh: true + group: DNE + +datalog: + db: + url: jdbc:kingbase8://127.0.0.1:54321/itc?currentSchema=dne_log_sit \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-remote.yml b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-remote.yml new file mode 100644 index 0000000..10a6441 --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap-remote.yml @@ -0,0 +1,45 @@ +spring: + cloud: + nacos: #nacos监控 + config: + server-addr: 47.94.165.164:8848 # nacos 配置中心地址 + namespace: ITC-MS + group: DNE + username: nacos + password: Lng@123 + extension-configs: + - data-id: global-dev.yml + refresh: true + group: DNE + + - data-id: discovery-dev.yml + refresh: true + group: DNE + + - data-id: datasource-dev.yml + refresh: true + group: DNE + + - data-id: seata-dev.yml + refresh: true + group: DNE + + - data-id: redis-dev.yml + refresh: true + group: DNE + + - data-id: magic-api.yml + refresh: true + group: DNE + + - data-id: sa-token.yml + refresh: true + group: DNE + + - data-id: camunda.yml + refresh: true + group: DNE + + - data-id: sentinel-dev.yml + refresh: true + group: DNE \ No newline at end of file diff --git a/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap.yml b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..d2afbfe --- /dev/null +++ b/itc-pcitc-mdm/itc-pcitc-mdm-start/src/main/resources/bootstrap.yml @@ -0,0 +1,56 @@ +server: + port: 8099 + +spring: + application: + name: demo-service + main: + allow-bean-definition-overriding: true + profiles: + active: dev + cloud: + nacos: #nacos监控 + config: + server-addr: 10.0.252.1:8848 # nacos 配置中心地址 + namespace: ITC-MS + group: DNE + username: nacos + password: Yudean@2025 + file-extension: yml # 默认配置 ${spring.application.name}-${spring.profiles.active}.${file-extension} + refresh-enabled: true + extension-configs: + - data-id: global.yml + refresh: true + group: DNE + + - data-id: discovery.yml + refresh: true + group: DNE + + - data-id: datasource.yml + refresh: true + group: DNE + + - data-id: seata.yml + refresh: true + group: DNE + + - data-id: redis.yml + refresh: true + group: DNE + + - data-id: magic-api.yml + refresh: true + group: DNE + + - data-id: sa-token.yml + refresh: true + group: DNE + + - data-id: camunda.yml + refresh: true + group: DNE + + - data-id: sentinel.yml + refresh: true + group: DNE