From e56802a575f796e20746b7a4272f8434e48e50c9 Mon Sep 17 00:00:00 2001 From: athena-demo <> Date: Wed, 26 Apr 2023 18:53:58 +0800 Subject: [PATCH] Initial commit --- .drone.yml | 105 ++++ .gitignore | 4 + Dockerfile | 24 + Makefile | 56 ++ README.md | 2 + VERSION | 1 + app-code_backend/.gitignore | 9 + .../develop/conf/application.properties | 95 +++ app-code_backend/develop/conf/log4j2.xml | 72 +++ .../develop/conf/platform.properties | 182 ++++++ app-code_backend/develop/conf/readme.md | 22 + .../conf/service-retry-config-platform.json | 23 + .../develop/conf/spring-application.xml | 20 + .../lang/message-application.properties | 0 .../lang/message-application_zh.properties | 0 .../lang/message-application_zh_CN.properties | 0 .../lang/message-application_zh_TW.properties | 0 app-code_backend/develop/lib/readme.md | 1 + .../bin/docker/dap-config-value-replacer.jar | Bin 0 -> 10355 bytes .../develop/platform/bin/docker/dockerEnv.sh | 69 +++ .../platform/bin/docker/dockerEnvReplace.sh | 12 + .../develop/platform/bin/docker/dockerRun.sh | 7 + app-code_backend/develop/platform/bin/run.bat | 8 + app-code_backend/develop/platform/bin/run.sh | 25 + .../develop/platform/bin/runEncrypt.bat | 5 + .../develop/platform/bin/runEncrypt.sh | 22 + .../develop/platform/bin/stop.bat | 4 + app-code_backend/develop/platform/bin/stop.sh | 9 + app-code_backend/develop/pom.xml | 115 ++++ .../athena/app/ApplicationStartBoot.java | 34 ++ .../athena/app/infra/entity/package-info.java | 1 + .../athena/app/infra/mapper/package-info.java | 1 + .../athena/app/infra/package-info.java | 4 + .../app/infra/repository/package-info.java | 1 + .../athena/app/provider/BasicApiService.java | 35 ++ .../athena/app/provider/BasicEAIService.java | 27 + .../provider/impl/BasicApiServiceImpl.java | 50 ++ .../provider/impl/BasicEAIServiceImpl.java | 46 ++ .../athena/app/service/package-info.java | 4 + .../src/main/resources/META-INF/dap.info | 4 + .../digiwin/athena/app/provider/impl/temp.txt | 1 + .../com/digiwin/athena/app/provider/temp.txt | 1 + .../develop/src/test/resources/temp.txt | 1 + app-code_backend/pom.xml | 97 +++ doc/conf_dev/application.properties | 104 ++++ doc/conf_dev/log4j2.xml | 72 +++ doc/conf_dev/platform.properties | 182 ++++++ doc/conf_dev/readme.md | 22 + .../service-retry-config-platform.json | 23 + doc/conf_dev/spring-application.xml | 27 + doc/sql-dap/dap-5.2.0.1002-ddl.sql | 562 ++++++++++++++++++ doc/sql-dap/dap-5.2.0.1002-dml.sql | 221 +++++++ doc/sql/app-yyyyMMdd-ddl.sql | 1 + version_control/APP_VERSION | 1 + version_control/BUILD | 1 + version_control/Makefile | 58 ++ 56 files changed, 2473 insertions(+) create mode 100644 .drone.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 README.md create mode 100644 VERSION create mode 100644 app-code_backend/.gitignore create mode 100644 app-code_backend/develop/conf/application.properties create mode 100644 app-code_backend/develop/conf/log4j2.xml create mode 100644 app-code_backend/develop/conf/platform.properties create mode 100644 app-code_backend/develop/conf/readme.md create mode 100644 app-code_backend/develop/conf/service-retry-config-platform.json create mode 100644 app-code_backend/develop/conf/spring-application.xml create mode 100644 app-code_backend/develop/lang/message-application.properties create mode 100644 app-code_backend/develop/lang/message-application_zh.properties create mode 100644 app-code_backend/develop/lang/message-application_zh_CN.properties create mode 100644 app-code_backend/develop/lang/message-application_zh_TW.properties create mode 100644 app-code_backend/develop/lib/readme.md create mode 100644 app-code_backend/develop/platform/bin/docker/dap-config-value-replacer.jar create mode 100644 app-code_backend/develop/platform/bin/docker/dockerEnv.sh create mode 100644 app-code_backend/develop/platform/bin/docker/dockerEnvReplace.sh create mode 100644 app-code_backend/develop/platform/bin/docker/dockerRun.sh create mode 100644 app-code_backend/develop/platform/bin/run.bat create mode 100644 app-code_backend/develop/platform/bin/run.sh create mode 100644 app-code_backend/develop/platform/bin/runEncrypt.bat create mode 100644 app-code_backend/develop/platform/bin/runEncrypt.sh create mode 100644 app-code_backend/develop/platform/bin/stop.bat create mode 100644 app-code_backend/develop/platform/bin/stop.sh create mode 100644 app-code_backend/develop/pom.xml create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/ApplicationStartBoot.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/entity/package-info.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/mapper/package-info.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/package-info.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/repository/package-info.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicApiService.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicEAIService.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicApiServiceImpl.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicEAIServiceImpl.java create mode 100644 app-code_backend/develop/src/main/java/com/digiwin/athena/app/service/package-info.java create mode 100644 app-code_backend/develop/src/main/resources/META-INF/dap.info create mode 100644 app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/impl/temp.txt create mode 100644 app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/temp.txt create mode 100644 app-code_backend/develop/src/test/resources/temp.txt create mode 100644 app-code_backend/pom.xml create mode 100644 doc/conf_dev/application.properties create mode 100644 doc/conf_dev/log4j2.xml create mode 100644 doc/conf_dev/platform.properties create mode 100644 doc/conf_dev/readme.md create mode 100644 doc/conf_dev/service-retry-config-platform.json create mode 100644 doc/conf_dev/spring-application.xml create mode 100644 doc/sql-dap/dap-5.2.0.1002-ddl.sql create mode 100644 doc/sql-dap/dap-5.2.0.1002-dml.sql create mode 100644 doc/sql/app-yyyyMMdd-ddl.sql create mode 100644 version_control/APP_VERSION create mode 100644 version_control/BUILD create mode 100644 version_control/Makefile diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..83048ab --- /dev/null +++ b/.drone.yml @@ -0,0 +1,105 @@ +kind: pipeline +type: docker +name: CI Process +steps: + ### 打包应用代码和资源 + - name: Maven Package + image: maven:3.5.3-jdk-8 + environment: + # 应用专案名称(需手动修改) + backendName: app-code_backend + # 平台API版本号(需手动修改) + apiVersion: 5.2.0.1005 + commands: + # 在开发根目录下执行 maven package 指令以构建运行包 + - mvn -f $backendName/pom.xml package -Dapi.version=$apiVersion -Dnexus.ip=https://repo.digiwincloud.com.cn/maven + - mkdir -p $backendName/running + # 将构建出来的文件复制到用于放置运行包的 running 目录下 + # 注意:此处将运行包放到 running 目录只是暂存,还需要在 Dockerfile-drone 中再把 running 下的文件复制到 Docker 容器的工作目录下 + - cp -r $backendName/develop/target/$backendName/* $backendName/running + volumes: + - name: cache # The Volume's name + path: /root/.m2 # The path in the container + when: + status: [ success ] + branch: + # - develop + # - master + - release/S1 + event: + - push + ### 应用版本控制:检查版本文件,若不存在则自动创建,并自动递增版本号 + - name: Version Control + image: registry.digiwincloud.com.cn/base/base_vc + environment: + # 应用专案名称(需手动修改) + backendName: app-code_backend + commands: + - sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories + - apk add tree --no-cache + - tree ./$backendName + - make branch=release/S1 vc + # - make branch=master vc + when: + status: [ success ] + branch: + # - develop + # - master + - release/S1 + event: + - push + ### 打包镜像并推送到镜像仓库 + - name: Package Docker Image & Push + image: plugins/docker:20.10.9 + environment: + # 应用专案名称(需手动修改) + backendName: app-code_backend + ## Docker 插件的设置 + settings: + insecure: true + username: + from_secret: dockerUsername + password: + from_secret: dockerPassword + # 注意:此处不支持用取值符号获取参数,需要手动修改。${appId} 表示应用ID,${projectName} 表示仓库项目名称,${platformVersion} 表示平台版本号 + # 例如:registry.digiwincloud.com.cn/sampleapp1/sampleapp1backend-5.0.1 注意APPID和backend中间没有下划线 + # repo: registry.digiwincloud.com.cn/${projectName}/${appId}backend-${platformVersion} + repo: registry.digiwincloud.com.cn/athenaopt/app-codebackend-5.2.0 + registry: registry.digiwincloud.com.cn + experimental: true + # 打包镜像时会用到的 Dockerfile 文件(此处使用自定义 Dockerfile 文件名,避免跟其他 Dockerfile 冲突) + dockerfile: Dockerfile + # 将环境变量传递给 Docker 镜像 + build_args_from_env: backendName + when: + status: [ success ] + branch: + # - develop + # - master + - release/S1 + ### 应用版本控制:提交版本文件的修改记录,并为代码分支创建版本号标签 + - name: Upload Version + image: registry.digiwincloud.com.cn/base/base_vc + commands: + # - make branch=develop to_git + # - make branch=master to_git + - make branch=release/S1 to_git + when: + status: [ success ] + branch: + # - develop + # - master + - release/S1 + event: + - push +trigger: + branch: + # - develop + # - master + - release/S1 + event: + - push +volumes: + - name: cache + host: + path: /data/drone/var/lib/cache/maven \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..514592c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/.idea/ +*.iml +*.pid +/platform/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dc063fc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +# syntax=docker/dockerfile:experimental +# 全局參數 +#ENV WORKSPACE=TheValueWillPassFromJenkinsDockerBuild +# 从 Drone 传递过来即可,不需要手动修改 +# backendName對應到POM中的artifactId +ARG backendName=app-code_backend +ARG runningPath=${backendName}/running +# ***** 打包docker image ***** +FROM registry.digiwincloud.com.cn/dwsidecar/dwsidecar-1.0.0.0:1.0.0.33 +ARG backendName +ARG runningPath +# 把運行文件夾下的所有文件複製到 image 中 +# Drone 已将运行包复制到 running 目录下,此处将 running 目录下的文件复制到 Docker 容器的工作目录下 +COPY ${runningPath} /${backendName} +WORKDIR /${backendName} +RUN pwd +RUN ls +RUN chmod +x ./platform/bin/run.sh \ + && chmod +x ./platform/bin/stop.sh \ + && chmod +x ./platform/bin/docker/dockerEnv.sh \ + && chmod +x ./platform/bin/docker/dockerEnvReplace.sh \ + && chmod +x ./platform/bin/docker/dockerRun.sh +EXPOSE 22620 +ENTRYPOINT ["/app-code_backend/platform/bin/docker/dockerRun.sh"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7a4e7d7 --- /dev/null +++ b/Makefile @@ -0,0 +1,56 @@ +# 需修改的參數 +# registry group 名稱 +GROUP_ID=athenaopt +## app id +APP_ID=app-code +## app 名稱 +APP_NAME=app-code +## 平台版本 +PLATFORM_VERSION=5.2.0 +## dap 平台類別,前端就是 frontend, 後端就是 backend +DAP_TYPE=backend +## registry 位置 +DOCKER_REGISTRY_URL=registry.digiwincloud.com.cn + + +SHELL=/bin/bash + +# make 指令 +MAKE=make +# maven 指令 +MAVEN=mvn +MAVEN_CLEAN=$(MAVEN) clean +MAVEN_PACKAGE=$(MAVEN) -f pom.xml package + +#docker +DOCKER_CMD=docker +DOCKER_BUILD=$(DOCKER_CMD) build +DOCKER_RM_IMAGE=$(DOCKER_CMD) rmi +DOCKER_PUSH=$(DOCKER_CMD) push +DOCKER_IMAGE_REGISTRY=$(DOCKER_REGISTRY_URL)/$(GROUP_ID)/ +DOCKER_IMAGE_NAME=$(APP_NAME)$(DAP_TYPE)-$(PLATFORM_VERSION) +DOCKER_FULL_IMAGE=$(DOCKER_IMAGE_REGISTRY)$(DOCKER_IMAGE_NAME):$(VERSION).$(shell cat $(SUB_VERSION_FILE)) +#打包 +VERSION:=$(shell cat VERSION) +#版本控制 +SUB_VERSION_FILE=./version_control/BUILD + +all: docker_ci +clean: + $(MAVEN_CLEAN) -f pom.xml +package: + $(MAVEN_PACKAGE) -f pom.xml +docker_build: + @echo "開始打包 Docker Image - $(DOCKER_FULL_IMAGE)" + DOCKER_BUILDKIT=1 $(DOCKER_BUILD) -t $(DOCKER_FULL_IMAGE) . +docker_push: + @echo "開始 push docker image - $(DOCKER_FULL_IMAGE)" + $(DOCKER_PUSH) $(DOCKER_FULL_IMAGE) +docker_clean: + $(DOCKER_RM_IMAGE) $(DOCKER_FULL_IMAGE) +docker_ci: vc docker_build docker_push docker_clean to_git +vc: + @make -C version_control branch=$$branch +to_git: + @make -C version_control branch=$$branch commit_record + @make -C version_control branch=$$branch add_tag diff --git a/README.md b/README.md new file mode 100644 index 0000000..4f87ebe --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# app-code + diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..afaf360 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.0.0 \ No newline at end of file diff --git a/app-code_backend/.gitignore b/app-code_backend/.gitignore new file mode 100644 index 0000000..a76f2b4 --- /dev/null +++ b/app-code_backend/.gitignore @@ -0,0 +1,9 @@ +/.idea/ +/develop/jdk/ +/running/ +/tool/ +/develop/conf_dev/ +/develop/conf-dev/ +/develop/target/ +/develop/src/test/reqJson/ +*.iml diff --git a/app-code_backend/develop/conf/application.properties b/app-code_backend/develop/conf/application.properties new file mode 100644 index 0000000..ac0597d --- /dev/null +++ b/app-code_backend/develop/conf/application.properties @@ -0,0 +1,95 @@ +appId=app-code +configCenterUrl=@configCenterUrl@ +configPolicy=@configPolicy@ +isRemoteConfigOn=@isRemoteConfigOn@ +isGroupConfigOn=@isGroupConfigOn@ +configGroup=@configGroup@ +#APPIMAGENAME=@APPIMAGENAME@ +#PLATFORM=@PLATFORM@ +#SMALLVERSION=@SMALLVERSION@ +#springConfigFileNames=xxx.xml,xxx.xml +iamApToken=@iamApToken@ +dmcUserName=@dmcUserName@ +dmcPwd=@dmcPwd@ +dmcBucketName=@dmcBucketName@ +eaiRestfulUrl=@eaiRestfulUrl@ +eaiExceptionHandler=@eaiExceptionHandler@ +eaiUrl=@eaiUrl@ +eaiHostProdIsStandardProduct=@eaiHostProdIsStandardProduct@ +eaiAutoRegistrationEnable=true +eaiHostUid=@eaiHostUid@ +eaiHostProd=@eaiHostProd@ +eaiHostId=@eaiHostId@ +eaiRestfulCustomId=@eaiRestfulCustomId@ +dbUrl=@dbUrl@ +dbUsername=@dbUsername@ +dbPassword=@dbPassword@ +scheduleEmailUsername=@scheduleEmailUsername@ +scheduleEmailPassword=@scheduleEmailPassword@ +scheduleEmailPort=@scheduleEmailPort@ +scheduleEmailSmtpHost=@scheduleEmailSmtpHost@ +scheduleRemoteInvocation=@scheduleRemoteInvocation@ +isScheduleJsonOutput=@isScheduleJsonOutput@ +thisDapUrl=@thisDapUrl@ +serverPort=@serverPort@ +tenantColumnname=@tenantColumnname@ +hybridCloudSaasUrl=@hybridCloudSaasUrl@ +#hybridCloudUrlSaas{apName} +#OtherDapUrl{apName} +#dao setting +dwdaoCalculateMaxSeqFieldName=@dwdaoCalculateMaxSeqFieldName@ +dwdaoCalculateMaxSeqEnabled=@dwdaoCalculateMaxSeqEnabled@ +dwdaoSelectVersionFieldEnabled=@dwdaoSelectVersionFieldEnabled@ +#custom sql filter chain +#example - false:com.digiwin.app.dao.filter.DWSQLManagementFieldFilter, +dwsqlFilterChianCustom=@dwsqlFilterChianCustom@ +#management field enabled +mgmtFieldEnabled=false +#management field resolver class name +#dap default resolver = com.digiwin.app.dao.filter.DWProfileManagementFieldResolver +mgmtFieldResolver=com.digiwin.app.dao.filter.DWProfileManagementFieldResolver +#management fields mappings +#example - DATA_CREATED_BY:userId,DATA_MODIFY_BY:userId +mgmtFieldInsertMappings=create_by:userId,create_date:$DATETIME +mgmtFieldUpdateMappings=modified_by:userId,modified_date:$DATETIME +mgmtFieldIgnoreCustomValue=false +#Log file name id: Ex. Windows:_${env:COMPUTERNAME} Linux:_${env:HOSTNAME} +logFileIdentifier=@logFileIdentifier@ +#\u9810\u8a2d\u503c\u5c07\u5728\u7570\u5e38\u56de\u61c9\u88e1\u8f38\u51faDebugInfo\u5b57\u6bb5\uff0c\u8a2d\u5b9a\u70bafalse\u503c\u8868\u793a\u4e0d\u8f38\u51fa\u8a72\u5b57\u6bb5 +dwExceptionOutputDebugInfo=@dwExceptionOutputDebugInfo@ +#\u662f\u5426\u555f\u7528\u670d\u52d9\u8abf\u7528\u934aSession Id\u8a18\u9304\u529f\u80fd\uff0c\u8a2d\u5b9atrue\u8868\u793a\u555f\u7528 +dwServiceChainEnabled=@dwServiceChainEnabled@ +#\u670d\u52d9\u8abf\u7528\u934a\u81ea\u8a02Id +dwServiceChainCustomId=@dwServiceChainCustomId@ +#\u670d\u52d9\u8abf\u7528\u934a\u63a5\u6536\u4fe1\u606f\u6642\u6253\u5370\u5668\u985e\u578b +dwServiceChainReceivedPrinterType=@dwServiceChainReceivedPrinterType@ +#DWJson enable empty string to null +dwJsonEmptyStrToNullEnabled=@dwJsonEmptyStrToNullEnabled@ +#DWDao underscore-to-camel-case setting +dwDaoUnderScoreToCamelCase=@dwDaoUnderScoreToCamelCase@ +#DWMq +dwMqEnabled=@dwMqEnabled@ +dwMqProtocol=@dwMqProtocol@ +dwMqHost=@dwMqHost@ +dwMqPort=@dwMqPort@ +dap.json.date-time-format=@dapJsonDateTimeFormat@ +dap.json.number-processor-name=default +dap.container.local.matcher.one-param=true +spring.servlet.multipart.max-file-size=5Mb +spring.servlet.multipart.max-request-size=5Mb +#spring.rabbitmq.uri=amqp://athena:athena@192.168.137.10/athena +spring.rabbitmq.uri=@spring.rabbitmq.uri@ +# ESP-SDk +#domain.km=https://knowledgemaps-test.apps.digiwincloud.com.cn +domain.km=@domain.km@ +#domain.esp=https://esp-test.apps.digiwincloud.com.cn +domain.esp=@domain.esp@ +#domain.mdc=https://esp-test.apps.digiwincloud.com.cn +domain.mdc=@domain.mdc@ +#domain.eoc=https://eoc-test.digiwincloud.com.cn +domain.eoc=@domain.eoc@ +#domain.lmc=https://lmc-test.digiwincloud.com.cn +domain.lmc=@lmcUrl@ + +opt.mybatisPlus.enable=true + diff --git a/app-code_backend/develop/conf/log4j2.xml b/app-code_backend/develop/conf/log4j2.xml new file mode 100644 index 0000000..f8454c8 --- /dev/null +++ b/app-code_backend/develop/conf/log4j2.xml @@ -0,0 +1,72 @@ + + + + %d{yyyy/MM/dd HH:mm:ss} %-5p [%X{traceId}] %m%n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app-code_backend/develop/conf/platform.properties b/app-code_backend/develop/conf/platform.properties new file mode 100644 index 0000000..7832d49 --- /dev/null +++ b/app-code_backend/develop/conf/platform.properties @@ -0,0 +1,182 @@ +#Compatible Parameter +appName=${appId} +spring.application.name=${appId} +spring.profiles.active=${httpRequestFilters:} + +#IAM +iamUrl=@iamUrl@ +iamContentType=application/json +iamCharset=UTF-8 +iamSoTimeout=@iamSoTimeout@ +iamHttpConnectionPoolRequestTimeout=@iamHttpConnectionPoolRequestTimeout@ +iamEncode=UTF-8 +iamHttpConnectionTimeout=@iamHttpConnectionTimeout@ +iamUrlUsertokenAnalyze=/api/iam/v2/identity/token/analyze +iamHttpMaxConnections=@iamHttpMaxConnections@ +iamKeepAliveTimeout=@iamKeepAliveTimeout@ +iamUrlLogin=/api/iam/v2/identity/login +iamUrlUser=/api/iam/v2/user +iamUrlPathPermissionRootTarget=drn:iam:app:{appId}:webmodule:menu:{appId} +iamUrlAppRootTarget=drn:iam:app:{appId} +iamUrlUpdateModule=/api/iam/v2/app/module/update +iamUrlUserPermission=/api/iam/v2/permission/user/all +iamUrlUpdateAction=/api/iam/v2/app/action/update +iamUrlGetApp=/api/iam/v2/app +iamUrlUpdateCondition=/api/iam/v2/app/condition/update +iamUrlRemoveCondition=/api/iam/v2/app/condition/remove +iamUrlDisableAction=/api/iam/v2/app/action/disable +iamUrlOrgAspect=/api/iam/v2/org/aspect +iamUrlOrgUserinorg=/api/iam/v2/org/userinorg +iamUrlUserTenantApplication=/api/iam/v2/user/tenant/application +iamUrlUserAllInfo=/api/iam/v2/query/user/allinfo +#CAC +cacUrl=@cacUrl@ + +#LMC +lmcUrl=@lmcUrl@ + +#DMC +dmcUrl=@dmcUrl@ + +#DWMq +dwMqBasic=ZGlnaXdpbjpkaWdpd2lu + +#Queue 1.0 +queueTenantProcessorHost=@queueTenantProcessorHost@ +queueTenantTlsOn=@queueTenantTlsOn@ +#queueSaasRabbitmqIsHttps=@queueSaasRabbitmqIsHttps@ +queueSaasRabbitmqHost=@queueSaasRabbitmqHost@ +queueSaasRabbitmqAmqpPort=@queueSaasRabbitmqAmqpPort@ +queueSaasRabbitmqHttpPort=@queueSaasRabbitmqHttpPort@ +queueSaasRabbitmqUsername=@queueSaasRabbitmqUsername@ +queueSaasRabbitmqPassword=@queueSaasRabbitmqPassword@ +queueSaasTlsOn=@queueSaasTlsOn@ + +#MQTT +mqttSrvHost=@mqttSrvHost@ +mqttSrvUsername=@mqttSrvUsername@ +mqttSrvPassword=@mqttSrvPassword@ +mqttSrvClientId=@mqttSrvClientId@ +mqttSrvCleanSession=@mqttSrvCleanSession@ +mqttSrvReconnect=@mqttSrvReconnect@ +mqttTopicQos=@mqttTopicQos@ +mqttTopicRetained=@mqttTopicRetained@ +mqttSrvConnectTimeout=@mqttSrvConnectTimeout@ +mqttWaitForCompletion=@mqttWaitForCompletion@ + +#EAI +eaiHostRetrytimes=@eaiHostRetrytimes@ +eaiHostVer=@eaiHostVer@ +eaiHostRetryinterval=@eaiHostRetryinterval@ +eaiHostConcurrence=@eaiHostConcurrence@ +eaiUrlRegSrv=/CROSS/RESTful/regSrv + +#database +dbEnabled=@dbEnabled@ +jdbcDriverClassName=@jdbcDriverClassName@ +dbConnectionMaxWaitMillis=@dbConnectionMaxWaitMillis@ +dbConnectionInitialSize=@dbConnectionInitialSize@ +dbConnectionMaxTotal=@dbConnectionMaxTotal@ +dbConnectionMinIdle=@dbConnectionMinIdle@ + +#Servlet container +httpRequestFilters=@httpRequestFilters@ +serverHttpControllerIo=@serverHttpControllerIo@ +serverType=tomcat +serverAsyncTimeout=@serverAsyncTimeout@ +serverTomcatAcceptCount=@serverTomcatAcceptCount@ +serverTomcatMaxConnections=@serverTomcatMaxConnections@ +serverTomcatMinSpareThreads=@serverTomcatMinSpareThreads@ +serverTomcatMaxThreads=@serverTomcatMaxThreads@ +serverHttpTokenmode=@serverHttpTokenmode@ +accessControlAllowOrigin=* +accessControlAllowMethods=POST,PUT,GET,DELETE +accessControlMaxAge=@accessControlMaxAge@ +accessControlAllowHeaders=Content-Type,token,accesstoken,digi-middleware-auth-app,Program-Code,Module-Name,origin-iam-url-key,locale,Accept-Language,routerKey +serverTokenExpiredTime=@serverTokenExpiredTime@ + + +#DAP Spring config +platformSpringConfigFileNames= + + +#Spring boot setting +spring.mvc.throw-exception-if-no-handler-found=true +spring.resources.add-mappings=false + +#Spring boot server +server.tomcat.additional-tld-skip-patterns=*mchange-commons-java*.jar +server.max-http-header-size=@server.max-http-header-size@ + +#Spring boot log +logging.config=classpath:log4j2.xml + +#Spring boot cache +spring.redis.database=@spring.redis.database@ +spring.redis.host=@spring.redis.host@ +spring.redis.port=@spring.redis.port@ +spring.redis.password=@spring.redis.password@ +spring.redis.timeout=@spring.redis.timeout@ + +spring.redis.pool.max-active=@spring.redis.pool.max-active@ +spring.redis.pool.max-wait=@spring.redis.pool.max-wait@ +spring.redis.pool.max-idle=@spring.redis.pool.max-idle@ +spring.redis.pool.min-idle=@spring.redis.pool.min-idle@ + +spring.redis.lettuce.pool.max-active=@spring.redis.lettuce.pool.max-active@ +spring.redis.lettuce.pool.max-wait=@spring.redis.lettuce.pool.max-wait@ +spring.redis.lettuce.pool.max-idle=@spring.redis.lettuce.pool.max-idle@ +spring.redis.lettuce.pool.min-idle=@spring.redis.lettuce.pool.min-idle@ +spring.redis.lettuce.shutdown-timeout=@spring.redis.lettuce.shutdown-timeout@ + +#Cache +keyExpiredTime=@keyExpiredTime@ + +#K8S service proxy +k8sProxyUrl=@k8sProxyUrl@ +k8sProxyContentType=application/json +k8sProxyCharset=UTF-8 +k8sProxyEncode=UTF-8 +k8sProxyHttpConnectionPoolRequestTimeout=@k8sProxyHttpConnectionPoolRequestTimeout@ +k8sProxyHttpMaxConnections=@k8sProxyHttpMaxConnections@ +k8sProxyHttpConnectionTimeout=@k8sProxyHttpConnectionTimeout@ +k8sProxySoTimeout=@k8sProxySoTimeout@ + +#Schedule +scheduleEnabled=@scheduleEnabled@ +scheduleEmailTypeOfConnection=0 + +#Quartz +org.quartz.dataSource.quartzDataSource.connectionProvider.class=com.digiwin.app.schedule.quartz.DWQuartzPoolingConnectionProvider +org.quartz.jobStore.useProperties=false +org.quartz.scheduler.instanceId=AUTO +org.quartz.dataSource.quartzDataSource.testConnectionOnCheckout=true +org.quartz.plugin.DWJobInterruptListener.class=com.digiwin.app.schedule.quartz.listener.DWJobInterruptListener +org.quartz.dataSource.quartzDataSource.testConnectionOnCheckin=false +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.dataSource.quartzDataSource.preferredTestQuery=SELECT 1 +org.quartz.jobStore.dataSource=quartzDataSource +org.quartz.scheduler.instanceName=DigiwinQuartzScheduler +org.quartz.jobStore.isClustered=true +org.quartz.dataSource.quartzDataSource.maxPoolSize=@org.quartz.dataSource.quartzDataSource.maxPoolSize@ +org.quartz.dataSource.quartzDataSource.idleConnectionTestPeriod=@org.quartz.dataSource.quartzDataSource.idleConnectionTestPeriod@ +org.quartz.dataSource.quartzDataSource.maxIdleTimeExcessConnections=@org.quartz.dataSource.quartzDataSource.maxIdleTimeExcessConnections@ +org.quartz.threadPool.threadCount=@org.quartz.threadPool.threadCount@ +org.quartz.dataSource.quartzDataSource.acquireIncrement=@org.quartz.dataSource.quartzDataSource.acquireIncrement@ +org.quartz.threadPool.threadPriority=@org.quartz.threadPool.threadPriority@ +org.quartz.dataSource.quartzDataSource.minPoolSize=@org.quartz.dataSource.quartzDataSource.minPoolSize@ +org.quartz.jobStore.clusterCheckinInterval=@org.quartz.jobStore.clusterCheckinInterval@ + +#Tenant +tenantEnabled=@tenantEnabled@ + +#Fine report +frUrl=@frUrl@ +frUrlKanbanUrlInfo=/digiwin/KanbanUrlInfo +frUrlKanbanUserInfoSyncInit=/digiwin/kanban/view/form?op=fr_base&cmd=evaluate_formula&expression=updateuser10() + +#\u79fb\u52d5\u521d\u59cb\u5316\u793e\u5340 +mobileUrl=@mobileUrl@ +mobileApiInit=@mobileApiInit@ + diff --git a/app-code_backend/develop/conf/readme.md b/app-code_backend/develop/conf/readme.md new file mode 100644 index 0000000..244c204 --- /dev/null +++ b/app-code_backend/develop/conf/readme.md @@ -0,0 +1,22 @@ +[開發工具-簡易式模版-配置資源 有下列文件] +---------------------------------------------------- +A.應用層 + 1.application.properties + 2.spring-application.xml +B.平台層 + 1.platform.properties + 2.log4j2.xml + 3.service-retry-config-platform.json +==================================================== + + +[上述文件在平台打包開發包時, 會從模組化運行包中複製] +---------------------------------------------------- + A.1. 從運行包路徑下 application\conf 複製 + A.2. 從運行包路徑下 application\conf 複製 + B.1. 從運行包路徑下 platform\conf 複製 + B.2. 從運行包路徑下 platform\conf 複製 + B.3. 從運行包路徑下 platform\conf 複製 + service-retry-config.json 更名為 + service-retry-config-platform.json +==================================================== \ No newline at end of file diff --git a/app-code_backend/develop/conf/service-retry-config-platform.json b/app-code_backend/develop/conf/service-retry-config-platform.json new file mode 100644 index 0000000..59785b6 --- /dev/null +++ b/app-code_backend/develop/conf/service-retry-config-platform.json @@ -0,0 +1,23 @@ +[ + { + "appId": "iam", + "enable": true, + "paths": [ + { + "path": "/**/identity/token/analyze", + "enable": true, + "retry": { + "retries": 3, + "statuses": "502", + "methods": "POST", + "backoff": { + "type": "simple", + "firstBackoff": "500", + "maxBackoff": "50000", + "factor": 2 + } + } + } + ] + } +] \ No newline at end of file diff --git a/app-code_backend/develop/conf/spring-application.xml b/app-code_backend/develop/conf/spring-application.xml new file mode 100644 index 0000000..d7992e1 --- /dev/null +++ b/app-code_backend/develop/conf/spring-application.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app-code_backend/develop/lang/message-application.properties b/app-code_backend/develop/lang/message-application.properties new file mode 100644 index 0000000..e69de29 diff --git a/app-code_backend/develop/lang/message-application_zh.properties b/app-code_backend/develop/lang/message-application_zh.properties new file mode 100644 index 0000000..e69de29 diff --git a/app-code_backend/develop/lang/message-application_zh_CN.properties b/app-code_backend/develop/lang/message-application_zh_CN.properties new file mode 100644 index 0000000..e69de29 diff --git a/app-code_backend/develop/lang/message-application_zh_TW.properties b/app-code_backend/develop/lang/message-application_zh_TW.properties new file mode 100644 index 0000000..e69de29 diff --git a/app-code_backend/develop/lib/readme.md b/app-code_backend/develop/lib/readme.md new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/app-code_backend/develop/lib/readme.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app-code_backend/develop/platform/bin/docker/dap-config-value-replacer.jar b/app-code_backend/develop/platform/bin/docker/dap-config-value-replacer.jar new file mode 100644 index 0000000000000000000000000000000000000000..5d4d0ad04ebbced95407b20b7fa839f3af9887bc GIT binary patch literal 10355 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 literal 0 HcmV?d00001 diff --git a/app-code_backend/develop/platform/bin/docker/dockerEnv.sh b/app-code_backend/develop/platform/bin/docker/dockerEnv.sh new file mode 100644 index 0000000..7c688f2 --- /dev/null +++ b/app-code_backend/develop/platform/bin/docker/dockerEnv.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +function log_info() +{ + local date=`date` + local para=$1 + echo "$date $1" + $1 + echo "log info:$date $1" &>> $SYS_LOG +} +SYS_LOG=dockerEnv.log + +if [ "$isSidecarEnable" != "" ]; then + if [ "$isSidecarEnable" != "false" ]; then + + export tsidecarPort=$sidecarPort + export tserverPort=$serverPort + + export sidecarPort=$tserverPort + export serverPort=$tsidecarPort + else + echo "isSidecarEnable=false"> isSidecarEnable.txt + fi +else + echo "isSidecarEnable="> isSidecarEnable.txt +fi + +#程式路徑 +Path=$1 +#檔案類型 +TypeName=$2 +#排除檔案 +removeName=$3 +#排除檔案2 +removeName2=$4 +#排除檔案3 +removeName3=$5 +#排除檔案4 +removeName4=$6 + +#修改方法一 +find $Path/ -name "*.$TypeName" -a ! -name "$removeName1" -a ! -name "$removeName2" -a ! -name "$removeName3" -a ! -name "$removeName4" | xargs grep -r '@' > envSpace.txt + +sed 's/[[:space:]]//g' envSpace.txt > env.txt +envDate=$(cat env.txt) + +#迴圈解析@ +for date in ${envDate}; do + #echo $date + field=2 + env=test + filePath=$(cut -d':' -f1 <<< "$date") + #echo $filePath + while [[ "$env" != "" ]]; do + env=$(cut -d'@' -f$field <<< "$date") + let "field+=2" + if [ "$env" != "" ]; then + #修改方法二 + envReplace=${env//./_} + envReplace=${envReplace//-/DH} + log_info "sed -i s#@"$env"@#"$(eval echo \$$envReplace)"#g $filePath" + fi + done +done + + +rm -f envSpace.txt +rm -f env.txt + diff --git a/app-code_backend/develop/platform/bin/docker/dockerEnvReplace.sh b/app-code_backend/develop/platform/bin/docker/dockerEnvReplace.sh new file mode 100644 index 0000000..806326b --- /dev/null +++ b/app-code_backend/develop/platform/bin/docker/dockerEnvReplace.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# dockerEnv.sh 參數 +## 1. 掃描參數的資料夾 +## 2. 掃描的檔案類型 +## 3. 要排除掃描的檔案名稱 + +jarLocation=./platform/bin/docker/dap-config-value-replacer.jar +java -jar $jarLocation ./platform/bin sh dockerEnvReplace.sh dockerEnv.sh dockerRun.sh +java -jar $jarLocation /jmx properties +java -jar $jarLocation ./conf xml +java -jar $jarLocation ./conf properties +java -jar $jarLocation ./lang properties \ No newline at end of file diff --git a/app-code_backend/develop/platform/bin/docker/dockerRun.sh b/app-code_backend/develop/platform/bin/docker/dockerRun.sh new file mode 100644 index 0000000..3fc4455 --- /dev/null +++ b/app-code_backend/develop/platform/bin/docker/dockerRun.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +bash ./platform/bin/docker/dockerEnvReplace.sh +bash /setup/setup_time.sh +bash /jmx/start_monitor_jmx.sh +cd ./platform/bin/ +sh run.sh diff --git a/app-code_backend/develop/platform/bin/run.bat b/app-code_backend/develop/platform/bin/run.bat new file mode 100644 index 0000000..ad207f0 --- /dev/null +++ b/app-code_backend/develop/platform/bin/run.bat @@ -0,0 +1,8 @@ +cd .. +cd .. +SET CLASSPATH=./*;./lib/*;./conf;./lang +SET PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_131\bin +java -cp %CLASSPATH% com.digiwin.simplified.app.test.DWSimplifiedModeMyApp + +REM java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:18085 sampleapp1_backend-5.0.1.2000.jar +REM java -jar sampleapp1_backend-5.0.1.2000.jar \ No newline at end of file diff --git a/app-code_backend/develop/platform/bin/run.sh b/app-code_backend/develop/platform/bin/run.sh new file mode 100644 index 0000000..d93c7ac --- /dev/null +++ b/app-code_backend/develop/platform/bin/run.sh @@ -0,0 +1,25 @@ +#!/bin/sh +cd .. +cd .. +#Backend/ +WORKDIR=`pwd` +export WORKDIR + +CLASSPATH=.:$WORKDIR:$WORKDIR/lib/*:$WORKDIR/conf:$WORKDIR/lang +export CLASSPATH + +MAINCLASS=@mainClass@ +export MAINCLASS + +sh /dwsidecar/sidecar/bin/docker/dockerRun.sh & + +if test -z "$pinpoint_appname"; +then + java -cp $CLASSPATH @jvmArgs@ $MAINCLASS +else + export AGENT_PATH=/agent_pinpoint/pinpoint-bootstrap.jar + export AGENT_NAME=$pinpoint_appname + export AGENT_ID=$pinpoint_id + export AGENT_OPTS="-javaagent:$AGENT_PATH -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$AGENT_NAME" + java $AGENT_OPTS -cp $CLASSPATH @jvmArgs@ $MAINCLASS +fi diff --git a/app-code_backend/develop/platform/bin/runEncrypt.bat b/app-code_backend/develop/platform/bin/runEncrypt.bat new file mode 100644 index 0000000..579a408 --- /dev/null +++ b/app-code_backend/develop/platform/bin/runEncrypt.bat @@ -0,0 +1,5 @@ +cd .. +cd .. +SET CLASSPATH=./;./platform/lib/*;./platform/conf;./platform/lang +SET PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_131\bin +java -cp %CLASSPATH% com.digiwin.app.common.launcher.DWXClassLauncher --xclass.mainclass=com.digiwin.gateway.DWApiGatewayApplication --xclass.password=@classPassword@ \ No newline at end of file diff --git a/app-code_backend/develop/platform/bin/runEncrypt.sh b/app-code_backend/develop/platform/bin/runEncrypt.sh new file mode 100644 index 0000000..280a427 --- /dev/null +++ b/app-code_backend/develop/platform/bin/runEncrypt.sh @@ -0,0 +1,22 @@ +#!/bin/sh +cd .. +cd .. +#Backend/ +WORKDIR=`pwd` +export WORKDIR +CLASSPATH=.:$WORKDIR:$WORKDIR/application/lib/*:$WORKDIR/application/conf:$WORKDIR/application/lang +export CLASSPATH + +MAINCLASS=@mainClass@ +export MAINCLASS + +if test -z "$pinpoint_appname"; +then + java -cp $CLASSPATH @jvmArgs@ com.digiwin.app.common.launcher.DWXClassLauncher --xclass.mainclass=com.digiwin.gateway.DWApiGatewayApplication --xclass.password=@classPassword@ +else + export AGENT_PATH=/agent_pinpoint/pinpoint-bootstrap.jar + export AGENT_NAME=$pinpoint_appname + export AGENT_ID=$pinpoint_id + export AGENT_OPTS="-javaagent:$AGENT_PATH -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$AGENT_NAME" + java $AGENT_OPTS -cp $CLASSPATH @jvmArgs@ com.digiwin.app.common.launcher.DWXClassLauncher --xclass.mainclass=$MAINCLASS --xclass.password=@classPassword@ +fi diff --git a/app-code_backend/develop/platform/bin/stop.bat b/app-code_backend/develop/platform/bin/stop.bat new file mode 100644 index 0000000..d224f1a --- /dev/null +++ b/app-code_backend/develop/platform/bin/stop.bat @@ -0,0 +1,4 @@ +cd .. +cd .. +set /p G_PID= + + 4.0.0 + + com.digiwin.athena.opt + athena_parent + 1.0.0.1000 + + app-code_backend + + ${project.build.directory}/${project.name} + + + src/main/java + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + maven-jar-plugin + 2.3.1 + + ${backend.output.path}/lib + + + + maven-dependency-plugin + 2.4 + + + copy-dependencies + package + + copy-dependencies + + + ${backend.output.path}/lib + + + + + + maven-resources-plugin + 3.0.2 + + + copy-resource-bin + generate-sources + + copy-resources + + + ${backend.output.path}/platform/bin + + + platform/bin + + + + + + copy-resource-conf + generate-sources + + copy-resources + + + ${backend.output.path}/conf + + + conf + + + + + + copy-resource-lang + generate-sources + + copy-resources + + + ${backend.output.path}/lang + + + lang + + + + + + + + + + + src/main/java + + **/*.xml + + false + + + src/main/resources + + + + diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/ApplicationStartBoot.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/ApplicationStartBoot.java new file mode 100644 index 0000000..68dc508 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/ApplicationStartBoot.java @@ -0,0 +1,34 @@ +/* + * Author: DONGSK + * Datetime: 2023/1/29 16:14 + * Description: + * History: + * 作者姓名 --修改时间 --版本号--描述 + */ +package com.digiwin.athena.app; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; +import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration; +import org.springframework.boot.context.ApplicationPidFileWriter; +import org.springframework.context.annotation.ComponentScan; + +/** + * ApplicationStart + * + * @author DONGSK 2023/1/29 16:14 + * @since 1.0.0 + */ +@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) +@ComponentScan({"com.digiwin.gateway", "com.digiwin.athena"}) +public class ApplicationStartBoot { + public static void main(String[] args) { + SpringApplication springApplication = new SpringApplication(ApplicationStartBoot.class); + springApplication.addListeners(new ApplicationPidFileWriter("DWApiGatewayApplication.pid")); + + springApplication.setMainApplicationClass(ApplicationStartBoot.class); + springApplication.run(args); + } + +} diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/entity/package-info.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/entity/package-info.java new file mode 100644 index 0000000..9f3a8c7 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/entity/package-info.java @@ -0,0 +1 @@ +package com.digiwin.athena.app.infra.entity; \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/mapper/package-info.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/mapper/package-info.java new file mode 100644 index 0000000..cc3fbeb --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/mapper/package-info.java @@ -0,0 +1 @@ +package com.digiwin.athena.app.infra.mapper; \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/package-info.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/package-info.java new file mode 100644 index 0000000..8a323a8 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/package-info.java @@ -0,0 +1,4 @@ +package com.digiwin.athena.app.infra; +/* + *1.基础服务放在此包下:主要是数据持久层,对外面提供基础数据处理 + */ \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/repository/package-info.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/repository/package-info.java new file mode 100644 index 0000000..448908b --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/infra/repository/package-info.java @@ -0,0 +1 @@ +package com.digiwin.athena.app.infra.repository; \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicApiService.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicApiService.java new file mode 100644 index 0000000..e57a962 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicApiService.java @@ -0,0 +1,35 @@ +/* + * Author: DONGSK + * Datetime: 2023/1/29 16:34 + * Description: + * History: + * 作者姓名 --修改时间 --版本号--描述 + */ +package com.digiwin.athena.app.provider; + +import com.digiwin.app.service.AllowAnonymous; +import com.digiwin.app.service.DWService; +import com.digiwin.app.service.restful.DWPathVariable; +import com.digiwin.app.service.restful.DWRequestMapping; +import com.digiwin.app.service.restful.DWRequestMethod; +import com.digiwin.app.service.restful.DWRestfulService; + +import java.util.Map; + +/** + * BasicApiService + * + * @author DONGSK 2023/1/29 16:34 + * @since 1.0.0 + */ +@DWRestfulService +public interface BasicApiService extends DWService { + + @AllowAnonymous + @DWRequestMapping(path = "/api/hello-word") + String helloWord(String name) throws Exception; + + @DWRequestMapping(path = "/EAIService/{serviceName}", method = DWRequestMethod.POST) + Object mockEAIExecutor(@DWPathVariable String serviceName, Map requestParameter) throws Exception; + +} \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicEAIService.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicEAIService.java new file mode 100644 index 0000000..3232661 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/BasicEAIService.java @@ -0,0 +1,27 @@ +/* + * Author: DONGSK + * Datetime: 2023/1/29 16:34 + * Description: + * History: + * 作者姓名 --修改时间 --版本号--描述 + */ +package com.digiwin.athena.app.provider; + +import com.digiwin.app.service.DWEAIResult; +import com.digiwin.app.service.DWService; +import com.digiwin.app.service.eai.EAIService; + +import java.util.Map; + +/** + * BasicEAIApiService + * + * @author DONGSK 2023/1/29 16:34 + * @since 1.0.0 + */ +public interface BasicEAIService extends DWService { + + @EAIService(id = "opt.service.process") + DWEAIResult serviceProcess(Map headers, String messageBody) throws Exception; + +} \ No newline at end of file diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicApiServiceImpl.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicApiServiceImpl.java new file mode 100644 index 0000000..5d2e172 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicApiServiceImpl.java @@ -0,0 +1,50 @@ +/* + * FileName: TestServiceImpl + * Author: DONGSK + * Datetime: 2022/8/24 13:40 + * Description: + * History: + * 作者姓名 --修改时间 --版本号--描述 + */ +package com.digiwin.athena.app.provider.impl; + +import com.alibaba.fastjson.JSON; +import com.digiwin.app.service.DWServiceContext; +import com.digiwin.athena.app.provider.BasicApiService; +import com.digiwin.athena.opt.common.eai.service.EAIServiceContext; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * TestServiceImpl + * + * @author DONGSK 2022/8/24 13:40 + * @since 1.0.0 + */ +public class BasicApiServiceImpl implements BasicApiService { + + @Resource + EAIServiceContext eaiServiceContext; + + @Override + public String helloWord(String name) throws Exception { + return "hello ," + name; + } + + @Override + public Object mockEAIExecutor(String serviceName, Map requestParameter) throws Exception { + Map headers = new HashMap<>(); + DWServiceContext.getContext().getRequestHeader().forEach((k, v) -> { + headers.put(k, String.valueOf(v)); + }); + DWServiceContext.getContext().setStandardResult(false); + /** 直接返回,不再包装,入参可以体现 serviceName + Map eaiResult = new HashMap<>(); + eaiResult.put("service", serviceName); + eaiResult.put("response", eaiServiceContext.execute(serviceName, headers, JSON.toJSONString(requestParameter))); + */ + return eaiServiceContext.execute(serviceName, headers, JSON.toJSONString(requestParameter)); + } +} diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicEAIServiceImpl.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicEAIServiceImpl.java new file mode 100644 index 0000000..4b51458 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/provider/impl/BasicEAIServiceImpl.java @@ -0,0 +1,46 @@ +/* + * Author: DONGSK + * Datetime: 2023/1/30 10:18 + * Description: + * History: + * 作者姓名 --修改时间 --版本号--描述 + */ +package com.digiwin.athena.app.provider.impl; + +import com.digiwin.app.service.DWEAIResult; +import com.digiwin.athena.app.provider.BasicEAIService; +import com.digiwin.athena.opt.common.eai.EAIRequest; +import com.digiwin.athena.opt.common.eai.EAIUtil; +import com.digiwin.athena.opt.common.eai.service.EAIServiceContext; +import org.apache.commons.lang3.StringUtils; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * BasicEAIApiServiceImpl + * + * @author DONGSK 2023/1/30 10:18 + * @since 1.0.0 + */ +public class BasicEAIServiceImpl implements BasicEAIService { + + @Resource + EAIServiceContext eaiServiceContext; + + @Override + public DWEAIResult serviceProcess(Map headers, String messageBody) throws Exception { + + + EAIRequest eaiRequest = EAIRequest.build(messageBody); + + String eaiServiceName = eaiRequest.getString("eai_service_name"); + + if (StringUtils.isBlank(eaiServiceName)) { + + return EAIUtil.buildEAIResultError("EAI service name(eai_service_name) is required!"); + } + + return eaiServiceContext.execute(eaiServiceName, headers, messageBody); + } +} diff --git a/app-code_backend/develop/src/main/java/com/digiwin/athena/app/service/package-info.java b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/service/package-info.java new file mode 100644 index 0000000..7c4e881 --- /dev/null +++ b/app-code_backend/develop/src/main/java/com/digiwin/athena/app/service/package-info.java @@ -0,0 +1,4 @@ +package com.digiwin.athena.app.service; +/** + * 应用核心业务逻辑写在此包下,此包下实现EAI接口服务逻辑及其他业务逻辑 + */ \ No newline at end of file diff --git a/app-code_backend/develop/src/main/resources/META-INF/dap.info b/app-code_backend/develop/src/main/resources/META-INF/dap.info new file mode 100644 index 0000000..e107715 --- /dev/null +++ b/app-code_backend/develop/src/main/resources/META-INF/dap.info @@ -0,0 +1,4 @@ +#save dap.info +#Sun Jan 29 14:54:12 CST 2023 +group.name=cim +business.extension.layer= diff --git a/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/impl/temp.txt b/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/impl/temp.txt new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/impl/temp.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/temp.txt b/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/temp.txt new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/app-code_backend/develop/src/test/java/com/digiwin/athena/app/provider/temp.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app-code_backend/develop/src/test/resources/temp.txt b/app-code_backend/develop/src/test/resources/temp.txt new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/app-code_backend/develop/src/test/resources/temp.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app-code_backend/pom.xml b/app-code_backend/pom.xml new file mode 100644 index 0000000..3c111e3 --- /dev/null +++ b/app-code_backend/pom.xml @@ -0,0 +1,97 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.0.1.RELEASE + + com.digiwin.athena.opt + athena_parent + 1.0.0.1000 + pom + + develop + + + + releases + Nexus Release Repository + ${nexus.ip}/content/repositories/releases/ + + + snapshots + Nexus Snapshots Repository + ${nexus.ip}/content/repositories/snapshots/ + + + + UTF-8 + https://repo.digiwincloud.com.cn/maven + 1.1.0.0 + 5.0.5.RELEASE + 5.2.0.1005 + 2.8.6 + 1.05 + + + + + com.digiwin.athena + athena-opt-common + 1.0.103-SNAPSHOT + + + com.digiwin + dwapiplatform-simplified-starter + + + + + + com.digiwin + dwapiplatform-simplified-starter + ${api.version} + + + + junit + junit + 3.8.1 + test + + + + + athena-releases + Nexus Releases Repository athena + https://athena-devops-nexus.digiwincloud.com.cn/content/repositories/releases/ + + + athena-snapshots + Nexus Release Repository athena + https://athena-devops-nexus.digiwincloud.com.cn/content/repositories/snapshots/ + + + releases + Nexus Releases Repository + ${nexus.ip}/content/repositories/releases/ + + + + + + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + -parameters + -parameters + + + + + diff --git a/doc/conf_dev/application.properties b/doc/conf_dev/application.properties new file mode 100644 index 0000000..9198223 --- /dev/null +++ b/doc/conf_dev/application.properties @@ -0,0 +1,104 @@ +appId=app-code +configCenterUrl=@configCenterUrl@ +configPolicy=@configPolicy@ +isRemoteConfigOn=@isRemoteConfigOn@ +isGroupConfigOn=@isGroupConfigOn@ +configGroup=@configGroup@ +#APPIMAGENAME=@APPIMAGENAME@ +#PLATFORM=@PLATFORM@ +#SMALLVERSION=@SMALLVERSION@ + +#springConfigFileNames=xxx.xml,xxx.xml +iamApToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6ImNhLWNpbS1hcCIsImluc2lkZSI6ZmFsc2UsInNpZCI6NTM2NDIzMDcyMjkzNDQwfQ.nry_ZzZrL1Gj6nZ2m2IGESntnWqyLSZtGzGRn2Z_bSw +dmcUserName=@dmcUserName@ +dmcPwd=@dmcPwd@ +dmcBucketName=@dmcBucketName@ +eaiExceptionHandler= +eaiUrl=https://esp-test.apps.digiwincloud.com.cn +# eaiUrl=http://172.16.2.230:9990 +eaiHostProdIsStandardProduct= +eaiAutoRegistrationEnable=false +eaiHostUid=ca-cim-ap +eaiHostProd=ca-cim-ap +eaiHostId=ca-cim-ap +eaiRestfulCustomId=cim + +dbUrl=jdbc:mariadb://172.16.102.34:3306/app-code?allowMultiQueries=true +dbUsername=root +dbPassword=123456 +scheduleEmailUsername= +scheduleEmailPassword= +scheduleEmailPort= +scheduleEmailSmtpHost= +scheduleRemoteInvocation=@scheduleRemoteInvocation@ +isScheduleJsonOutput=@isScheduleJsonOutput@ +thisDapUrl=@thisDapUrl@ +serverPort=8085 +tenantColumnname=tenantsid +hybridCloudSaasUrl= +#hybridCloudUrlSaas{apName} +#OtherDapUrl{apName} + +#dao setting +dwdaoCalculateMaxSeqFieldName=@dwdaoCalculateMaxSeqFieldName@ +dwdaoCalculateMaxSeqEnabled=@dwdaoCalculateMaxSeqEnabled@ +dwdaoSelectVersionFieldEnabled=@dwdaoSelectVersionFieldEnabled@ + +#custom sql filter chain +#example - false:com.digiwin.app.dao.filter.DWSQLManagementFieldFilter, +dwsqlFilterChianCustom=@dwsqlFilterChianCustom@ +#management field enabled +mgmtFieldEnabled=true +#management field resolver class name +#dap default resolver = com.digiwin.app.dao.filter.DWProfileManagementFieldResolver +mgmtFieldResolver=com.digiwin.app.dao.filter.DWProfileManagementFieldResolver +#management fields mappings +#example - DATA_CREATED_BY:userId,DATA_MODIFY_BY:userId +mgmtFieldInsertMappings=create_by:userId,create_date:$DATETIME +mgmtFieldUpdateMappings=modified_by:userId,modified_date:$DATETIME +mgmtFieldIgnoreCustomValue=false + +# log level +logLevel=DEBUG +logFileReservedDay=7d +#Log file name id: Ex. Windows:_${env:COMPUTERNAME} Linux:_${env:HOSTNAME} +logFileIdentifier= + +#\u9810\u8a2d\u503c\u5c07\u5728\u7570\u5e38\u56de\u61c9\u88e1\u8f38\u51faDebugInfo\u5b57\u6bb5\uff0c\u8a2d\u5b9a\u70bafalse\u503c\u8868\u793a\u4e0d\u8f38\u51fa\u8a72\u5b57\u6bb5 +dwExceptionOutputDebugInfo=@dwExceptionOutputDebugInfo@ + +#\u662f\u5426\u555f\u7528\u670d\u52d9\u8abf\u7528\u934aSession Id\u8a18\u9304\u529f\u80fd\uff0c\u8a2d\u5b9atrue\u8868\u793a\u555f\u7528 +dwServiceChainEnabled=@dwServiceChainEnabled@ +#\u670d\u52d9\u8abf\u7528\u934a\u81ea\u8a02Id +dwServiceChainCustomId=@dwServiceChainCustomId@ +#\u670d\u52d9\u8abf\u7528\u934a\u63a5\u6536\u4fe1\u606f\u6642\u6253\u5370\u5668\u985e\u578b +dwServiceChainReceivedPrinterType=@dwServiceChainReceivedPrinterType@ + +#DWJson enable empty string to null +dwJsonEmptyStrToNullEnabled=@dwJsonEmptyStrToNullEnabled@ + +#DWDao underscore-to-camel-case setting +dwDaoUnderScoreToCamelCase=true + +#DWMq +dwMqEnabled=@dwMqEnabled@ +dwMqProtocol=@dwMqProtocol@ +dwMqHost=@dwMqHost@ +dwMqPort=@dwMqPort@ + +dap.json.date-time-format=yyyy/MM/dd HH:mm:ss +dap.json.number-processor-name=default +dap.json.standard-result-null-to-empty-str=false +dap.container.local.matcher.one-param=true +spring.servlet.multipart.max-file-size=5Mb +spring.servlet.multipart.max-request-size=5Mb + +spring.rabbitmq.uri=amqp://athena:athena@192.168.137.10/athena +domain.km=https://knowledgemaps-test.apps.digiwincloud.com.cn +domain.esp=https://esp-test.apps.digiwincloud.com.cn +domain.mdc=https://esp-test.apps.digiwincloud.com.cn +domain.eoc=https://eoc-test.digiwincloud.com.cn +domain.lmc=https://lmc-test.digiwincloud.com.cn + +opt.mybatisPlus.enable=true +opt.mybatisPlus.configuration.log=true diff --git a/doc/conf_dev/log4j2.xml b/doc/conf_dev/log4j2.xml new file mode 100644 index 0000000..f8454c8 --- /dev/null +++ b/doc/conf_dev/log4j2.xml @@ -0,0 +1,72 @@ + + + + %d{yyyy/MM/dd HH:mm:ss} %-5p [%X{traceId}] %m%n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/conf_dev/platform.properties b/doc/conf_dev/platform.properties new file mode 100644 index 0000000..d69f8ce --- /dev/null +++ b/doc/conf_dev/platform.properties @@ -0,0 +1,182 @@ +#Compatible Parameter +appName=${appId} +spring.application.name=${appId} +spring.profiles.active=${httpRequestFilters:} + +#IAM +iamUrl=https://iam-test.digiwincloud.com.cn +iamContentType=application/json +iamCharset=UTF-8 +iamSoTimeout=30000 +iamHttpConnectionPoolRequestTimeout=20000 +iamEncode=UTF-8 +iamHttpConnectionTimeout=60000 +iamUrlUsertokenAnalyze=/api/iam/v2/identity/token/analyze +iamHttpMaxConnections=200 +iamKeepAliveTimeout=-1 +iamUrlLogin=/api/iam/v2/identity/login +iamUrlUser=/api/iam/v2/user +iamUrlPathPermissionRootTarget=drn:iam:app:{appId}:webmodule:menu:{appId} +iamUrlAppRootTarget=drn:iam:app:{appId} +iamUrlUpdateModule=/api/iam/v2/app/module/update +iamUrlUserPermission=/api/iam/v2/permission/user/all +iamUrlUpdateAction=/api/iam/v2/app/action/update +iamUrlGetApp=/api/iam/v2/app +iamUrlUpdateCondition=/api/iam/v2/app/condition/update +iamUrlRemoveCondition=/api/iam/v2/app/condition/remove +iamUrlDisableAction=/api/iam/v2/app/action/disable +iamUrlOrgAspect=/api/iam/v2/org/aspect +iamUrlOrgUserinorg=/api/iam/v2/org/userinorg +iamUrlUserTenantApplication=/api/iam/v2/user/tenant/application +iamUrlUserAllInfo=/api/iam/v2/query/user/allinfo +#CAC +cacUrl= + +#LMC +lmcUrl=@lmcUrl@ + +#DMC +dmcUrl= + +#DWMq +dwMqBasic=ZGlnaXdpbjpkaWdpd2lu + +#Queue 1.0 +queueTenantProcessorHost=@queueTenantProcessorHost@ +queueTenantTlsOn=@queueTenantTlsOn@ +#queueSaasRabbitmqIsHttps=@queueSaasRabbitmqIsHttps@ +queueSaasRabbitmqHost=@queueSaasRabbitmqHost@ +queueSaasRabbitmqAmqpPort=@queueSaasRabbitmqAmqpPort@ +queueSaasRabbitmqHttpPort=@queueSaasRabbitmqHttpPort@ +queueSaasRabbitmqUsername=@queueSaasRabbitmqUsername@ +queueSaasRabbitmqPassword=@queueSaasRabbitmqPassword@ +queueSaasTlsOn=@queueSaasTlsOn@ + +#MQTT +mqttSrvHost= +mqttSrvUsername= +mqttSrvPassword= +mqttSrvClientId=superman999 +mqttSrvCleanSession=false +mqttSrvReconnect=false +mqttTopicQos=1 +mqttTopicRetained=true +mqttSrvConnectTimeout=5000 +mqttWaitForCompletion=10000 + +#EAI +eaiHostRetrytimes=3 +eaiHostVer=1.0.0 +eaiHostRetryinterval=3000 +eaiHostConcurrence=50 +eaiUrlRegSrv=/CROSS/RESTful/regSrv + +#database +dbEnabled=true +jdbcDriverClassName=org.mariadb.jdbc.Driver +dbConnectionMaxWaitMillis=60000 +dbConnectionInitialSize=3 +dbConnectionMaxTotal=20 +dbConnectionMinIdle=3 + +#Servlet container +httpRequestFilters=RestfulService,RestfulStandard,EAI +serverHttpControllerIo=bio +serverType=tomcat +serverAsyncTimeout=120000 +serverTomcatAcceptCount=1500 +serverTomcatMaxConnections=10000 +serverTomcatMinSpareThreads=64 +serverTomcatMaxThreads=1500 +serverHttpTokenmode=IAM +accessControlAllowOrigin=* +accessControlAllowMethods=POST,PUT,GET,DELETE +accessControlMaxAge=86400 +accessControlAllowHeaders=Content-Type,token,accesstoken,digi-middleware-auth-app,Program-Code,Module-Name,origin-iam-url-key,locale,Accept-Language,routerKey +serverTokenExpiredTime=60000 + + +#DAP Spring config +platformSpringConfigFileNames= + + +#Spring boot setting +spring.mvc.throw-exception-if-no-handler-found=true +spring.resources.add-mappings=false + +#Spring boot server +server.tomcat.additional-tld-skip-patterns=*mchange-commons-java*.jar +server.max-http-header-size=10000 + +#Spring boot log +logging.config=classpath:log4j2.xml + +#Spring boot cache +spring.redis.database=1 +spring.redis.host=172.16.102.34 +spring.redis.port=6379 +spring.redis.password=123456 +spring.redis.timeout=30000 + +spring.redis.pool.max-active=1024 +spring.redis.pool.max-wait=10 +spring.redis.pool.max-idle=20 +spring.redis.pool.min-idle=10 + +spring.redis.lettuce.pool.max-active=1024 +spring.redis.lettuce.pool.max-wait=10 +spring.redis.lettuce.pool.max-idle=20 +spring.redis.lettuce.pool.min-idle=10 +spring.redis.lettuce.shutdown-timeout=30000 + +#Cache +keyExpiredTime=30000 + +#K8S service proxy +k8sProxyUrl= +k8sProxyContentType=application/json +k8sProxyCharset=UTF-8 +k8sProxyEncode=UTF-8 +k8sProxyHttpConnectionPoolRequestTimeout= +k8sProxyHttpMaxConnections= +k8sProxyHttpConnectionTimeout= +k8sProxySoTimeout= + +#Schedule +scheduleEnabled=false +scheduleEmailTypeOfConnection=0 + +#Quartz +org.quartz.dataSource.quartzDataSource.connectionProvider.class=com.digiwin.app.schedule.quartz.DWQuartzPoolingConnectionProvider +org.quartz.jobStore.useProperties=false +org.quartz.scheduler.instanceId=AUTO +org.quartz.dataSource.quartzDataSource.testConnectionOnCheckout=true +org.quartz.plugin.DWJobInterruptListener.class=com.digiwin.app.schedule.quartz.listener.DWJobInterruptListener +org.quartz.dataSource.quartzDataSource.testConnectionOnCheckin=false +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.dataSource.quartzDataSource.preferredTestQuery=SELECT 1 +org.quartz.jobStore.dataSource=quartzDataSource +org.quartz.scheduler.instanceName=DigiwinQuartzScheduler +org.quartz.jobStore.isClustered=true +org.quartz.dataSource.quartzDataSource.maxPoolSize=50 +org.quartz.dataSource.quartzDataSource.idleConnectionTestPeriod=300 +org.quartz.dataSource.quartzDataSource.maxIdleTimeExcessConnections=240 +org.quartz.threadPool.threadCount=50 +org.quartz.dataSource.quartzDataSource.acquireIncrement=5 +org.quartz.threadPool.threadPriority=5 +org.quartz.dataSource.quartzDataSource.minPoolSize=5 +org.quartz.jobStore.clusterCheckinInterval=20000 + +#Tenant +tenantEnabled=true + +#Fine report +frUrl= +frUrlKanbanUrlInfo=/digiwin/KanbanUrlInfo +frUrlKanbanUserInfoSyncInit=/digiwin/kanban/view/form?op=fr_base&cmd=evaluate_formula&expression=updateuser10() + +#\u79fb\u52d5\u521d\u59cb\u5316\u793e\u5340 +mobileUrl= +mobileApiInit= + diff --git a/doc/conf_dev/readme.md b/doc/conf_dev/readme.md new file mode 100644 index 0000000..244c204 --- /dev/null +++ b/doc/conf_dev/readme.md @@ -0,0 +1,22 @@ +[開發工具-簡易式模版-配置資源 有下列文件] +---------------------------------------------------- +A.應用層 + 1.application.properties + 2.spring-application.xml +B.平台層 + 1.platform.properties + 2.log4j2.xml + 3.service-retry-config-platform.json +==================================================== + + +[上述文件在平台打包開發包時, 會從模組化運行包中複製] +---------------------------------------------------- + A.1. 從運行包路徑下 application\conf 複製 + A.2. 從運行包路徑下 application\conf 複製 + B.1. 從運行包路徑下 platform\conf 複製 + B.2. 從運行包路徑下 platform\conf 複製 + B.3. 從運行包路徑下 platform\conf 複製 + service-retry-config.json 更名為 + service-retry-config-platform.json +==================================================== \ No newline at end of file diff --git a/doc/conf_dev/service-retry-config-platform.json b/doc/conf_dev/service-retry-config-platform.json new file mode 100644 index 0000000..59785b6 --- /dev/null +++ b/doc/conf_dev/service-retry-config-platform.json @@ -0,0 +1,23 @@ +[ + { + "appId": "iam", + "enable": true, + "paths": [ + { + "path": "/**/identity/token/analyze", + "enable": true, + "retry": { + "retries": 3, + "statuses": "502", + "methods": "POST", + "backoff": { + "type": "simple", + "firstBackoff": "500", + "maxBackoff": "50000", + "factor": 2 + } + } + } + ] + } +] \ No newline at end of file diff --git a/doc/conf_dev/spring-application.xml b/doc/conf_dev/spring-application.xml new file mode 100644 index 0000000..42759dd --- /dev/null +++ b/doc/conf_dev/spring-application.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/sql-dap/dap-5.2.0.1002-ddl.sql b/doc/sql-dap/dap-5.2.0.1002-ddl.sql new file mode 100644 index 0000000..73a077a --- /dev/null +++ b/doc/sql-dap/dap-5.2.0.1002-ddl.sql @@ -0,0 +1,562 @@ +-- -------------------------------------------------------- +-- 主机: 172.16.102.34 +-- 服务器版本: 5.7.38 - MySQL Community Server (GPL) +-- 服务器操作系统: Win64 +-- HeidiSQL 版本: 12.3.0.6589 +-- -------------------------------------------------------- + + +-- 导出 表 ca-cim-ap.dw_app_prod 结构 +CREATE TABLE IF NOT EXISTS `dw_app_prod` ( + `app_code` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '應用產品線代碼', + `description` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '說明資料', + PRIMARY KEY (`app_code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='應用產品線'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_app_release 结构 +CREATE TABLE IF NOT EXISTS `dw_app_release` ( + `app_code` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '應用產品線代碼', + `version` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '版號', + `file_seq` int(10) NOT NULL COMMENT '檔案序號', + `file_id` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '放在文檔中心的檔案id', + `published` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '正式發布', + `file_name` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '放在文檔中心的檔案名稱', + PRIMARY KEY (`app_code`,`version`,`file_seq`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='應用版本發布與釋出'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_app_update 结构 +CREATE TABLE IF NOT EXISTS `dw_app_update` ( + `app_code` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '應用產品線代碼', + `version` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '版號', + `allow_upd_version` varchar(2000) COLLATE utf8_bin NOT NULL COMMENT '允許版更的版本列表[分號分隔]', + `allow_upd_expr` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '允許版更的版本表達式', + PRIMARY KEY (`app_code`,`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='應用更新版本對應'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_custom_column 结构 +CREATE TABLE IF NOT EXISTS `dw_custom_column` ( + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + `table_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '表格id', + `userid` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用戶id', + `config` text COLLATE utf8_bin COMMENT '配置內容', + PRIMARY KEY (`tenantsid`,`table_id`,`userid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_log_operation 结构 +CREATE TABLE IF NOT EXISTS `dw_log_operation` ( + `log_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '主键', + `operate_no` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '操作流水號', + `operate_type` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '操作類型(1:pc 2:pda)', + `operate_desc` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '操作名稱', + `menu` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '選單菜單', + `module` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '模組', + `url` varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT '接口路徑', + `input_value` text COLLATE utf8_bin COMMENT '操作接口入参', + `return_value` text COLLATE utf8_bin COMMENT '操作接口回參', + `client_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '客户端ip', + `time_consume` bigint(20) DEFAULT NULL COMMENT '本次操作耗時(ms)', + `status` tinyint(4) DEFAULT NULL COMMENT '操作狀態', + `remark` text COLLATE utf8_bin COMMENT '備註', + `create_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '創建人', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間', + `update_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '更新人', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間', + `traceid` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '追蹤鍵', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`log_id`,`tenantsid`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=COMPACT COMMENT='操作日誌'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_log_operation_error 结构 +CREATE TABLE IF NOT EXISTS `dw_log_operation_error` ( + `log_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '主键', + `operate_no` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '操作流水號', + `operate_type` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '操作類型(1:pc 2:pda)', + `operate_desc` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '操作名稱', + `error_type` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '異常类型(1:系统異常 2:操作異常 3:集成異常)', + `error_message` varchar(2000) COLLATE utf8_bin DEFAULT NULL COMMENT '異常資訊', + `menu` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '選單菜單', + `module` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '模組', + `url` varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT '接口路徑', + `input_value` varchar(5000) COLLATE utf8_bin DEFAULT NULL COMMENT '操作接口入参', + `client_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '客户端ip', + `time_consume` bigint(20) DEFAULT NULL COMMENT '本次操作耗時(ms)', + `create_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '創建人', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間', + `update_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '更新人', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間', + `traceid` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '追蹤鍵', + `prog_impl` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '代碼方法', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`log_id`,`tenantsid`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=COMPACT COMMENT='操作異常日誌'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_log_operation_sql 结构 +CREATE TABLE IF NOT EXISTS `dw_log_operation_sql` ( + `log_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '主键', + `operation_log_id` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '關聯日誌表id', + `log_type` tinyint(4) DEFAULT '1' COMMENT '日誌類型(1.操作日誌 2.調度日誌)', + `cmd_table` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '執行表名(预留,還可以加操作)', + `cmd_statement` longtext COLLATE utf8_bin COMMENT '執行語句', + `cmd_parameters` longtext COLLATE utf8_bin COMMENT '執行參數', + `cmd_seq` int(11) DEFAULT NULL COMMENT '執行顺序', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`log_id`,`tenantsid`) USING BTREE, + KEY `SEL_INDEX01` (`operation_log_id`,`tenantsid`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=COMPACT COMMENT='sql日誌'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_menu 结构 +CREATE TABLE IF NOT EXISTS `dw_menu` ( + `id` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '編號', + `type` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '型態', + `parent_id` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '父層編號', + `code` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '代碼', + `sequence` int(20) NOT NULL DEFAULT '1' COMMENT '順序', + `icon_class` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '圖示class', + `default_expand` bit(1) DEFAULT b'0' COMMENT '默認展開', + `url` varchar(2000) COLLATE utf8_bin DEFAULT NULL COMMENT 'URL', + `open_mode` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'open 模式', + `version` int(20) NOT NULL DEFAULT '1' COMMENT '版本', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜單主表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_menu_language 结构 +CREATE TABLE IF NOT EXISTS `dw_menu_language` ( + `menu_id` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '菜單編號', + `language` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '語言別', + `name` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '名稱', + PRIMARY KEY (`menu_id`,`language`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜單多語言信息表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_menu_parameter 结构 +CREATE TABLE IF NOT EXISTS `dw_menu_parameter` ( + `menu_id` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '菜單編號', + `name` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '參數名稱', + `value` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '值', + PRIMARY KEY (`menu_id`,`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜單參數表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_myhome 结构 +CREATE TABLE IF NOT EXISTS `dw_myhome` ( + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + `level` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '首頁層級,common/user', + `userid` varchar(40) COLLATE utf8_bin NOT NULL COMMENT '用戶id', + `version` int(11) NOT NULL DEFAULT '1' COMMENT '版本', + `type` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '首頁型態,作業/報表/外部連接', + `path` varchar(2000) COLLATE utf8_bin DEFAULT NULL COMMENT '作業/報表/外部連接路徑', + PRIMARY KEY (`tenantsid`,`userid`,`level`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='自定義首頁主表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_myhome_parameter 结构 +CREATE TABLE IF NOT EXISTS `dw_myhome_parameter` ( + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + `level` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '首頁層級,common/user', + `userid` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '用戶id', + `name` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '參數名稱', + `value` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '參數值', + PRIMARY KEY (`tenantsid`,`userid`,`level`,`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='自定義首頁參數表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_platform_info 结构 +CREATE TABLE IF NOT EXISTS `dw_platform_info` ( + `version` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '版號', + `isTenant` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '是否為多租戶', + `versionDate` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '版本日期', + `updateDate` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '更新日期' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='微服務平台版本資訊'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_query_info 结构 +CREATE TABLE IF NOT EXISTS `dw_query_info` ( + `query_id` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '查詢編號', + `query_type` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '類型', + `sql_statement` varchar(450) COLLATE utf8_bin DEFAULT NULL COMMENT 'sql', + `publish` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '發佈者', + `owner` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '擁有者', + PRIMARY KEY (`query_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='開窗信息主表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_rdbms_fields 结构 +CREATE TABLE IF NOT EXISTS `dw_rdbms_fields` ( + `TABLE_NAME` varchar(80) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '数据表名称', + `SEQ` smallint(5) unsigned NOT NULL COMMENT '项次', + `FIELD_NAME` varchar(80) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '字段编号', + `IS_KEY` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'N' COMMENT '主键否', + `FIELD_TYPE` varchar(20) COLLATE utf8_bin DEFAULT '' COMMENT '字段型态,备注:1.varchar;2.number;3.date;4.datetime', + `STATUS_CODE` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'Y' COMMENT '状态码:Y.有效;N.无效;', + `FIELD_DISPLAY_NAME` varchar(80) COLLATE utf8_bin DEFAULT '' COMMENT '字段名称', + `SCALE` varchar(20) COLLATE utf8_bin DEFAULT '' COMMENT '字段长度', + `DEFAULT_VALUE` varchar(50) COLLATE utf8_bin DEFAULT '' COMMENT '默认值', + `NULLABLE` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'N' COMMENT '可否為空', + `IS_VERSION` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'N' COMMENT '是否需要依version進行樂觀鎖', + `SIZE` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '長度', + `IS_AUTO_INCREMENT` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'N' COMMENT '是否為自動產生流水號', + PRIMARY KEY (`FIELD_NAME`,`TABLE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='数据结构资料表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_rdbms_relations 结构 +CREATE TABLE IF NOT EXISTS `dw_rdbms_relations` ( + `PRIMARY_TABLE_NO` varchar(80) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '来源表号', + `REFERENCE_TABLE_NO` varchar(80) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '参照表号', + `PRIMARY_TABLE_PK` varchar(45) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '来源表PK', + `REFERENCE_TABLE_PK` varchar(45) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '参照表PK', + `TYPE` enum('Auto','OneToOne','OneToMany','ManyToMany') COLLATE utf8_bin DEFAULT NULL COMMENT '關聯類型', + PRIMARY KEY (`PRIMARY_TABLE_NO`,`REFERENCE_TABLE_NO`,`PRIMARY_TABLE_PK`,`REFERENCE_TABLE_PK`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='资料表关系表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_rdbms_tables 结构 +CREATE TABLE IF NOT EXISTS `dw_rdbms_tables` ( + `table_name` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '资料表名', + `table_display_name` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '资料表外显名称', + `table_description` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '资料表描述', + `delete_constraint` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'N' COMMENT '資料表刪除約束', + `hint_field` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '資料表刪除提示字段', + `insert_default_value` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '新增帶默認值選項', + `update_default_value` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '修改帶默認值選項', + PRIMARY KEY (`table_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='数据库资料表描述表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_schedule 结构 +CREATE TABLE IF NOT EXISTS `dw_schedule` ( + `schedule_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '排程編號', + `schedule_name` varchar(50) COLLATE utf8_bin DEFAULT '' COMMENT '排程名稱', + `job_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '工作名稱', + `schedule_type` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '排程類型 1.指定時間背景執行 2.周期執行', + `enable_status` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'Y' COMMENT '啟用狀態 Y/N', + `description` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '描述', + `effective_time` timestamp NULL DEFAULT NULL COMMENT '排程生效時間', + `expire_time` timestamp NULL DEFAULT NULL COMMENT '排程失效時間', + `max_runtime` int(10) DEFAULT NULL COMMENT '最長執行時間(分鐘)', + `schedule_param` text COLLATE utf8_bin COMMENT '參數', + `recent_status` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '近期狀態', + `last_success_time` timestamp NULL DEFAULT NULL COMMENT '上次成功時間', + `last_period_time` int(10) DEFAULT NULL COMMENT '上次執行時間', + `next_execute_time` timestamp NULL DEFAULT NULL COMMENT '下次執行時間', + `program_code` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '作業編號', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + `module_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '模組名稱', + PRIMARY KEY (`schedule_id`,`tenantsid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='排程表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_schedule_contact 结构 +CREATE TABLE IF NOT EXISTS `dw_schedule_contact` ( + `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '編號', + `schedule_id` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '排程編號', + `mail_type` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '寄件形式', + `mail_subject` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '寄件主題', + `mail_content` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '寄件內容', + `receiver_email` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '收件人email地址', + `send_condition` varchar(50) COLLATE utf8_bin DEFAULT '' COMMENT '寄信條件', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='排程寄信通知表'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_schedule_record 结构 +CREATE TABLE IF NOT EXISTS `dw_schedule_record` ( + `execute_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT '執行編號', + `schedule_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '排程編號', + `job_name` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '工作名稱', + `execute_status` varchar(10) COLLATE utf8_bin DEFAULT '' COMMENT '執行狀態 ', + `message` text COLLATE utf8_bin COMMENT '訊息id', + `message_detail` text COLLATE utf8_bin COMMENT '詳細訊息', + `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '執行開始時間', + `end_time` timestamp NULL DEFAULT NULL COMMENT '執行結束時間', + `schedule_param` text COLLATE utf8_bin COMMENT '執行參數', + `schedule_type` varchar(1) COLLATE utf8_bin DEFAULT '' COMMENT '排程類型 1.指定時間背景執行 2.周期執行', + `is_misfire` varchar(1) COLLATE utf8_bin DEFAULT 'N' COMMENT '是否為misfire後重試', + `program_code` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '作業編號', + `schedule_name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '排程名稱', + `executor` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '執行者', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`execute_id`,`tenantsid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='排程執行記錄'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_schedule_time 结构 +CREATE TABLE IF NOT EXISTS `dw_schedule_time` ( + `schedule_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '執行編號', + `month` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '月份', + `week_of_month` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '每個月第幾個星期', + `week` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '星期幾', + `day_of_month` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '每個月第幾天', + `assign_time` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '指定時間', + `time` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '週期性指定時間', + `holiday` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '假日處理模式', + `time1` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '時間區間一', + `time2` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '時間區間二', + `time3` varchar(255) COLLATE utf8_bin DEFAULT '' COMMENT '時間區間三', + `is_allow_concurrent` varchar(1) COLLATE utf8_bin DEFAULT '' COMMENT '是否允許併發 Y/N', + `day_radio` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '日頻次', + `month_radio` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '月頻次', + `time_radio` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '時間頻次', + `week_radio` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '周頻次', + `frequency` int(10) DEFAULT NULL COMMENT '週期頻率', + `repeat_type` int(10) DEFAULT NULL COMMENT '區間類型 1.每幾分 2.每幾小時 3.每幾天', + `start_time` timestamp NULL DEFAULT NULL COMMENT '開始日期', + `end_time` timestamp NULL DEFAULT NULL COMMENT '結束日期', + `repeat_count` int(11) DEFAULT NULL COMMENT '執行次數', + `minutely` int(10) DEFAULT NULL COMMENT '每n分', + `hourly` int(10) DEFAULT NULL COMMENT '每n時', + `daily` int(10) DEFAULT NULL COMMENT '每n天', + `weekly` int(10) DEFAULT NULL COMMENT '每n週', + `byday` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '星期n', + `monthly` int(10) DEFAULT NULL COMMENT '每n月', + `bymonthday` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '當月中的第n天', + `byweeklyday` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '當月中的第n個星期m', + `exclude_date` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '例外日期', + `exclude_time` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '例外時間', + `retry_after_misfire_sec` int(10) DEFAULT NULL COMMENT 'misfire幾秒後重試', + `is_retry` varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'Y' COMMENT '是否在misfire後重試', + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + PRIMARY KEY (`schedule_id`,`tenantsid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='排程執行時間設定檔'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_theme 结构 +CREATE TABLE IF NOT EXISTS `dw_theme` ( + `tenantsid` bigint(20) NOT NULL COMMENT '租戶sid', + `prop` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '屬性key名稱', + `value` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT '屬性值', + `userid` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '用戶id', + PRIMARY KEY (`tenantsid`,`prop`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_theme_filelog 结构 +CREATE TABLE IF NOT EXISTS `dw_theme_filelog` ( + `fileid` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '文件ID(DMC)', + `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '創建時間', + `messege` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '描述', + PRIMARY KEY (`fileid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.dw_ui_metadata 结构 +CREATE TABLE IF NOT EXISTS `dw_ui_metadata` ( + `operation_id` varchar(80) COLLATE utf8_bin NOT NULL COMMENT 'ui編號', + `table_name` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '表名稱', + `field_id` varchar(45) COLLATE utf8_bin NOT NULL COMMENT '字段名稱', + `length` int(11) DEFAULT NULL COMMENT '長度', + `nullable` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '允許為null', + `format` varchar(80) COLLATE utf8_bin DEFAULT NULL COMMENT '格式', + `enum` varchar(80) COLLATE utf8_bin DEFAULT NULL COMMENT '枚舉值', + `resource` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '來源', + PRIMARY KEY (`operation_id`,`table_name`,`field_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='使用者介面元數據'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_job_details 结构 +CREATE TABLE IF NOT EXISTS `qrtz_job_details` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `JOB_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '作业名称', + `JOB_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '作业组', + `DESCRIPTION` varchar(250) COLLATE utf8_bin DEFAULT NULL COMMENT '描述', + `JOB_CLASS_NAME` varchar(250) COLLATE utf8_bin NOT NULL COMMENT '作业程序集名称', + `IS_DURABLE` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '是否持久', + `IS_NONCONCURRENT` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '是否并行', + `IS_UPDATE_DATA` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '是否更新', + `REQUESTS_RECOVERY` varchar(1) COLLATE utf8_bin NOT NULL COMMENT '是否要求唤醒', + `JOB_DATA` blob COMMENT '作业信息', + PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='job詳息信息'; + + +-- 导出 表 ca-cim-ap.qrtz_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `JOB_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '作业名称', + `JOB_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '作业组', + `DESCRIPTION` varchar(250) COLLATE utf8_bin DEFAULT NULL COMMENT '描述', + `NEXT_FIRE_TIME` bigint(13) DEFAULT NULL COMMENT '下次执行时间', + `PREV_FIRE_TIME` bigint(13) DEFAULT NULL COMMENT '前一次执行时间', + `PRIORITY` int(11) DEFAULT NULL COMMENT '优先权', + `TRIGGER_STATE` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '触发器状态', + `TRIGGER_TYPE` varchar(8) COLLATE utf8_bin NOT NULL COMMENT '触发器类型', + `START_TIME` bigint(13) NOT NULL COMMENT '开始时间', + `END_TIME` bigint(13) DEFAULT NULL COMMENT '结束时间', + `CALENDAR_NAME` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '日历名称', + `MISFIRE_INSTR` smallint(2) DEFAULT NULL COMMENT '失败次数', + `JOB_DATA` blob COMMENT '作业数据', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + KEY `SCHED_NAME` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`), + CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='触发器的基本信息'; + + + +-- 导出 表 ca-cim-ap.qrtz_blob_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_blob_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `BLOB_DATA` blob COMMENT '保存triggers一些信息', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='自定义触发器'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_calendars 结构 +CREATE TABLE IF NOT EXISTS `qrtz_calendars` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `CALENDAR_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `CALENDAR` blob NOT NULL COMMENT '日曆信息', + PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='日曆資訊'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_cron_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_cron_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `CRON_EXPRESSION` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '时间表达式', + `TIME_ZONE_ID` varchar(80) COLLATE utf8_bin DEFAULT NULL COMMENT '时区ID', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存储 Cron Trigger,包括Cron表达式和时区信息'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_fired_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_fired_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `ENTRY_ID` varchar(95) COLLATE utf8_bin NOT NULL COMMENT '组标识', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `INSTANCE_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '当前实例的名称', + `FIRED_TIME` bigint(13) NOT NULL COMMENT '当前执行时间', + `SCHED_TIME` decimal(28,0) DEFAULT NULL COMMENT '计划时间', + `PRIORITY` int(11) NOT NULL COMMENT '权重', + `STATE` varchar(16) COLLATE utf8_bin NOT NULL COMMENT '状态', + `JOB_NAME` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '作业名称', + `JOB_GROUP` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '作业组', + `IS_NONCONCURRENT` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '是否并行', + `REQUESTS_RECOVERY` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT '是否要求唤醒', + PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='保存已经触发的触发器状态信息'; + + + +-- 导出 表 ca-cim-ap.qrtz_locks 结构 +CREATE TABLE IF NOT EXISTS `qrtz_locks` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `LOCK_NAME` varchar(40) COLLATE utf8_bin NOT NULL COMMENT '锁名称', + PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存储程序的悲观锁的信息'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_paused_trigger_grps 结构 +CREATE TABLE IF NOT EXISTS `qrtz_paused_trigger_grps` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存放暂停掉的触发器'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_scheduler_state 结构 +CREATE TABLE IF NOT EXISTS `qrtz_scheduler_state` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `INSTANCE_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '实例名称', + `LAST_CHECKIN_TIME` bigint(13) NOT NULL COMMENT '最后的检查时间', + `CHECKIN_INTERVAL` bigint(13) NOT NULL COMMENT '检查间隔', + PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存储少量的有关 Scheduler 的状态信息,和别的Scheduler实例'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_simple_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_simple_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `REPEAT_COUNT` bigint(7) NOT NULL COMMENT '重复次数', + `REPEAT_INTERVAL` bigint(12) NOT NULL COMMENT '重复间隔', + `TIMES_TRIGGERED` bigint(10) NOT NULL COMMENT '触发次数', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存储简单的Trigger,包括重复次数,间隔,以及已触的次数'; + +-- 数据导出被取消选择。 + +-- 导出 表 ca-cim-ap.qrtz_simprop_triggers 结构 +CREATE TABLE IF NOT EXISTS `qrtz_simprop_triggers` ( + `SCHED_NAME` varchar(120) COLLATE utf8_bin NOT NULL COMMENT '计划名称', + `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器名称', + `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '触发器组', + `STR_PROP_1` varchar(512) COLLATE utf8_bin DEFAULT NULL COMMENT 'String參數1', + `STR_PROP_2` varchar(512) COLLATE utf8_bin DEFAULT NULL COMMENT 'String參數2', + `STR_PROP_3` varchar(512) COLLATE utf8_bin DEFAULT NULL COMMENT 'String參數3', + `INT_PROP_1` int(11) DEFAULT NULL COMMENT 'Integer參數1', + `INT_PROP_2` int(11) DEFAULT NULL COMMENT 'Integer參數2', + `LONG_PROP_1` bigint(20) DEFAULT NULL COMMENT 'Long參數1', + `LONG_PROP_2` bigint(20) DEFAULT NULL COMMENT 'Long參數2', + `DEC_PROP_1` decimal(13,4) DEFAULT NULL COMMENT 'Decimal參數1', + `DEC_PROP_2` decimal(13,4) DEFAULT NULL COMMENT 'Decimal參數2', + `BOOL_PROP_1` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT 'Boolean參數1', + `BOOL_PROP_2` varchar(1) COLLATE utf8_bin DEFAULT NULL COMMENT 'Boolean參數2', + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='存储简单的Trigger屬性信息'; + +-- 数据导出被取消选择。 +-- 导出 表 ca-cim-ap.undo_log 结构 +CREATE TABLE IF NOT EXISTS `undo_log` ( + `branch_id` bigint(20) NOT NULL COMMENT 'branch transaction id', + `xid` varchar(100) NOT NULL COMMENT 'global transaction id', + `context` varchar(128) NOT NULL COMMENT 'undo_log context,such as serialization', + `rollback_info` longblob NOT NULL COMMENT 'rollback info', + `log_status` int(11) NOT NULL COMMENT '0:normal status,1:defense status', + `log_created` datetime(6) NOT NULL COMMENT 'create datetime', + `log_modified` datetime(6) NOT NULL COMMENT 'modify datetime', + UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='AT transaction mode undo table'; + +-- 数据导出被取消选择。 diff --git a/doc/sql-dap/dap-5.2.0.1002-dml.sql b/doc/sql-dap/dap-5.2.0.1002-dml.sql new file mode 100644 index 0000000..39c3bdd --- /dev/null +++ b/doc/sql-dap/dap-5.2.0.1002-dml.sql @@ -0,0 +1,221 @@ +-- -------------------------------------------------------- +-- 主机: 172.16.102.34 +-- 服务器版本: 5.7.38 - MySQL Community Server (GPL) +-- 服务器操作系统: Win64 +-- HeidiSQL 版本: 12.3.0.6589 +-- -------------------------------------------------------- + +-- 正在导出表 ca-cim-ap.dw_platform_info 的数据:~1 rows (大约) +INSERT INTO `dw_platform_info` (`version`, `isTenant`, `versionDate`, `updateDate`) VALUES + ('5.2.0.1002', 'Y', '2023-01-16', '2023-02-21'); + +-- 正在导出表 ca-cim-ap.dw_query_info 的数据:~0 rows (大约) + +-- 正在导出表 ca-cim-ap.dw_rdbms_fields 的数据:~175 rows (大约) +INSERT INTO `dw_rdbms_fields` (`TABLE_NAME`, `SEQ`, `FIELD_NAME`, `IS_KEY`, `FIELD_TYPE`, `STATUS_CODE`, `FIELD_DISPLAY_NAME`, `SCALE`, `DEFAULT_VALUE`, `NULLABLE`, `IS_VERSION`, `SIZE`, `IS_AUTO_INCREMENT`) VALUES + ('dw_app_update', 4, 'allow_upd_expr', 'N', 'varchar', 'Y', 'allow_upd_expr', '0', '', 'N', 'N', '20', 'N'), + ('dw_app_update', 3, 'allow_upd_version', 'N', 'varchar', 'Y', 'allow_upd_version', '0', '', 'N', 'N', '2000', 'N'), + ('dw_app_prod', 1, 'app_code', 'Y', 'varchar', 'Y', 'app_code', '0', '', 'N', 'N', '20', 'N'), + ('dw_app_release', 1, 'app_code', 'Y', 'varchar', 'Y', 'app_code', '0', '', 'N', 'N', '20', 'N'), + ('dw_app_update', 1, 'app_code', 'Y', 'varchar', 'Y', 'app_code', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_time', 6, 'assign_time', 'N', 'varchar', 'Y', 'assign_time', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 26, 'byday', 'N', 'varchar', 'Y', 'byday', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 28, 'bymonthday', 'N', 'varchar', 'Y', 'bymonthday', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 29, 'byweeklyday', 'N', 'varchar', 'Y', 'byweeklyday', '0', '', 'Y', 'N', '255', 'N'), + ('dw_log_operation', 7, 'client_ip', 'N', 'varchar', 'N', 'client_ip', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 10, 'client_ip', 'N', 'varchar', 'N', 'client_ip', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_sql', 6, 'cmd_parameters', 'N', 'text', 'N', 'cmd_parameters', '0', '', 'Y', 'N', '1000', 'N'), + ('dw_log_operation_sql', 7, 'cmd_seq', 'N', 'INT', 'N', 'cmd_seq', '0', '', 'Y', 'N', '11', 'N'), + ('dw_log_operation_sql', 5, 'cmd_statement', 'N', 'text', 'N', 'cmd_statement', '0', '', 'Y', 'N', '1000', 'N'), + ('dw_log_operation_sql', 4, 'cmd_table', 'N', 'varchar', 'N', 'cmd_table', '0', '', 'Y', 'N', '50', 'N'), + ('dw_menu', 4, 'code', 'N', 'varchar', 'Y', 'code', '0', '', 'Y', 'N', '200', 'N'), + ('dw_custom_column', 4, 'config', 'N', 'varchar', 'Y', 'config', '0', '', 'Y', 'N', '500', 'N'), + ('dw_log_operation', 13, 'create_name', 'N', 'varchar', 'N', 'create_name', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 16, 'create_name', 'N', 'varchar', 'N', 'create_name', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_sql', 8, 'create_name', 'N', 'varchar', 'N', 'create_name', '0', '', 'Y', 'N', '50', 'N'), + ('dw_log_operation', 15, 'create_time', 'N', 'datetime', 'N', 'create_time', '0', '', 'N', 'N', NULL, 'N'), + ('dw_log_operation_error', 15, 'create_time', 'N', 'datetime', 'N', 'create_time', '0', '', 'N', 'N', NULL, 'N'), + ('dw_theme_filelog', 2, 'create_time', 'N', 'timestamp', 'Y', 'create_time', '0', '', 'N', 'N', '0', 'N'), + ('dw_schedule_time', 24, 'daily', 'N', 'INT', 'Y', 'daily', '0', '', 'Y', 'N', '10', 'N'), + ('dw_schedule_time', 5, 'day_of_month', 'N', 'varchar', 'Y', 'day_of_month', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 13, 'day_radio', 'N', 'varchar', 'Y', 'day_radio', '0', '', 'Y', 'N', '1', 'N'), + ('dw_menu', 7, 'default_expand', 'N', 'number', 'Y', 'default_expand', '0', '0', 'Y', 'N', '1', 'N'), + ('dw_app_prod', 2, 'description', 'N', 'varchar', 'Y', 'description', '0', '', 'N', 'N', '200', 'N'), + ('dw_schedule', 6, 'description', 'N', 'varchar', 'Y', 'description', '0', '', 'Y', 'N', '100', 'N'), + ('dw_schedule', 7, 'effective_time', 'N', 'datetime', 'Y', 'effective_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_schedule', 5, 'enable_status', 'N', 'varchar', 'Y', 'enable_status', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_record', 8, 'end_time', 'N', 'datetime', 'Y', 'end_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_schedule_time', 21, 'end_time', 'N', 'datetime', 'Y', 'end_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_log_operation_error', 6, 'error_message', 'N', 'varchar', 'N', 'error_message', '0', '', 'N', 'N', '2000', 'N'), + ('dw_log_operation_error', 5, 'error_type', 'N', 'varchar', 'N', 'error_type', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_time', 31, 'exclude_date', 'N', 'varchar', 'Y', 'exclude_date', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 32, 'exclude_time', 'N', 'varchar', 'Y', 'exclude_time', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_record', 1, 'execute_id', 'Y', 'varchar', 'Y', 'execute_id', '0', '', 'N', 'N', '128', 'N'), + ('dw_schedule_record', 4, 'execute_status', 'N', 'varchar', 'Y', 'execute_status', '0', '', 'Y', 'N', '10', 'N'), + ('dw_schedule_record', 14, 'executor', 'N', 'varchar', 'Y', 'executor', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule', 8, 'expire_time', 'N', 'datetime', 'Y', 'expire_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_app_release', 4, 'file_id', 'N', 'varchar', 'Y', 'file_id', '0', '', 'N', 'N', '200', 'N'), + ('dw_app_release', 6, 'file_name', 'N', 'varchar', 'Y', 'file_name', '0', '', 'N', 'N', '200', 'N'), + ('dw_app_release', 3, 'file_seq', 'Y', 'number', 'Y', 'file_seq', '0', '', 'N', 'N', '10', 'N'), + ('dw_theme_filelog', 1, 'fileid', 'Y', 'varchar', 'Y', 'fileid', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule_time', 17, 'frequency', 'N', 'varchar', 'Y', 'frequency', '0', '', 'Y', 'N', '10', 'N'), + ('dw_schedule_time', 8, 'holiday', 'N', 'varchar', 'Y', 'holiday', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 23, 'hourly', 'N', 'INT', 'Y', 'hourly', '0', '', 'Y', 'N', '10', 'N'), + ('dw_menu', 6, 'icon_class', 'N', 'varchar', 'Y', 'icon_class', '0', '', 'Y', 'N', '200', 'N'), + ('dw_menu', 1, 'id', 'Y', 'varchar', 'Y', 'id', '0', '', 'N', 'N', '100', 'N'), + ('dw_schedule_contact', 1, 'id', 'Y', 'number', 'Y', 'id', '0', '', 'N', 'N', '10', 'N'), + ('dw_log_operation', 9, 'input_value', 'N', 'text', 'N', 'input_value', '0', '', 'N', 'N', '4000', 'N'), + ('dw_log_operation_error', 12, 'input_value', 'N', 'text', 'N', 'input_value', '0', '', 'N', 'N', '4000', 'N'), + ('dw_schedule_time', 12, 'is_allow_concurrent', 'N', 'varchar', 'Y', 'is_allow_concurrent', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_record', 12, 'is_misfire', 'N', 'varchar', 'Y', 'is_misfire', '0', 'N', 'N', 'N', '1', 'N'), + ('dw_schedule_time', 34, 'is_retry', 'N', 'varchar', 'Y', 'is_retry', '0', '', 'N', 'N', '1', 'N'), + ('dw_schedule', 3, 'job_name', 'N', 'varchar', 'Y', 'job_name', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule_record', 3, 'job_name', 'N', 'varchar', 'Y', 'job_name', '0', '', 'N', 'N', '50', 'N'), + ('dw_menu_language', 2, 'language', 'Y', 'varchar', 'Y', 'language', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule', 13, 'last_period_time', 'N', 'number', 'Y', 'last_period_time', '0', '', 'Y', 'N', '10', 'N'), + ('dw_schedule', 12, 'last_success_time', 'N', 'datetime', 'Y', 'last_success_time', '0', '', 'Y', 'N', NULL, 'N'), + ('dw_myhome', 2, 'level', 'Y', 'varchar', 'N', 'level', '', '', 'N', 'N', '255', 'N'), + ('dw_myhome_parameter', 2, 'level', 'Y', 'varchar', 'N', 'level', '', '', 'N', 'N', '255', 'N'), + ('dw_log_operation', 1, 'log_id', 'Y', 'varchar', 'N', 'id', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 1, 'log_id', 'Y', 'varchar', 'N', 'id', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_sql', 1, 'log_id', 'Y', 'varchar', 'N', 'log_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_sql', 3, 'log_type', 'N', 'INT', 'N', 'log_type', '0', '', 'Y', 'N', '4', 'N'), + ('dw_schedule_contact', 5, 'mail_content', 'N', 'number', 'Y', 'mail_content', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_contact', 4, 'mail_subject', 'N', 'number', 'Y', 'mail_subject', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_contact', 3, 'mail_type', 'N', 'number', 'Y', 'mail_type', '0', '', 'Y', 'N', '10', 'N'), + ('dw_schedule', 9, 'max_runtime', 'N', 'number', 'Y', 'max_runtime', '0', '', 'Y', 'N', '10', 'N'), + ('dw_log_operation', 5, 'menu', 'N', 'varchar', 'N', 'menu', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 8, 'menu', 'N', 'varchar', 'N', 'operate_type', '0', '', 'N', 'N', '50', 'N'), + ('dw_menu_language', 1, 'menu_id', 'Y', 'varchar', 'Y', 'menu_id', '0', '', 'N', 'N', '100', 'N'), + ('dw_menu_parameter', 1, 'menu_id', 'Y', 'varchar', 'Y', 'menu_id', '0', '', 'N', 'N', '100', 'N'), + ('dw_schedule_record', 5, 'message', 'N', 'TEXT', 'Y', 'message', '0', '', 'Y', 'N', NULL, 'N'), + ('dw_schedule_record', 6, 'message_detail', 'N', 'varchar', 'Y', 'message_detail', '0', '', 'Y', 'N', '255', 'N'), + ('dw_theme_filelog', 3, 'messege', 'N', 'varchar', 'Y', 'messege', '0', '', 'Y', 'N', '500', 'N'), + ('dw_schedule_time', 22, 'minutely', 'N', 'INT', 'Y', 'minutely', '0', '', 'Y', 'N', '10', 'N'), + ('dw_log_operation', 6, 'module', 'N', 'varchar', 'N', 'module', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 9, 'module', 'N', 'varchar', 'N', 'module', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule', 17, 'module_name', 'N', 'varchar', 'Y', 'module_name', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule_time', 2, 'month', 'N', 'varchar', 'Y', 'month', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 14, 'month_radio', 'N', 'varchar', 'Y', 'month_radio', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_time', 27, 'monthly', 'N', 'INT', 'Y', 'monthly', '0', '', 'Y', 'N', '10', 'N'), + ('dw_menu_language', 3, 'name', 'N', 'varchar', 'Y', 'name', '0', '', 'Y', 'N', '200', 'N'), + ('dw_menu_parameter', 2, 'name', 'Y', 'varchar', 'Y', 'name', '0', '', 'N', 'N', '200', 'N'), + ('dw_myhome_parameter', 3, 'name', 'Y', 'varchar', 'N', 'name', '', '', 'N', 'N', '200', 'N'), + ('dw_schedule', 14, 'next_execute_time', 'N', 'datetime', 'Y', 'next_execute_time', '0', '', 'Y', 'N', NULL, 'N'), + ('dw_menu', 9, 'open_mode', 'N', 'varchar', 'Y', 'open_mode', '0', '', 'Y', 'N', '50', 'N'), + ('dw_log_operation', 4, 'operate_desc', 'N', 'varchar', 'N', 'operate_desc', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 4, 'operate_desc', 'N', 'varchar', 'N', 'operate_desc', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation', 2, 'operate_no', 'N', 'varchar', 'N', 'operate_no', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 2, 'operate_no', 'N', 'varchar', 'N', 'operate_no', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation', 3, 'operate_type', 'N', 'varchar', 'N', 'operate_type', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation_error', 3, 'operate_type', 'N', 'varchar', 'N', 'operate_type', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation_sql', 2, 'operation_log_id', 'Y', 'varchar', 'N', 'operation_log_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_query_info', 5, 'owner', 'N', 'varchar', 'Y', 'owner', '0', '', 'Y', 'N', '45', 'N'), + ('dw_menu', 3, 'parent_id', 'N', 'varchar', 'Y', 'parent_id', '0', '', 'Y', 'N', '100', 'N'), + ('dw_myhome', 4, 'path', 'N', 'varchar', 'N', 'path', '', '', 'Y', 'N', '2000', 'N'), + ('dw_log_operation_error', 18, 'prog_impl', 'N', 'varchar', 'N', 'function', '0', '', 'N', 'N', '200', 'N'), + ('dw_schedule', 16, 'program_code', 'N', 'varchar', 'Y', 'program_code', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule_record', 12, 'program_code', 'N', 'varchar', 'Y', 'program_code', '0', '', 'Y', 'N', '50', 'N'), + ('dw_theme', 2, 'prop', 'Y', 'varchar', 'Y', 'prop', '0', '', 'N', 'N', '50', 'N'), + ('dw_query_info', 4, 'publish', 'N', 'varchar', 'Y', 'publish', '0', '', 'Y', 'N', '45', 'N'), + ('dw_app_release', 5, 'published', 'N', 'varchar', 'Y', 'published', '0', '', 'N', 'N', '1', 'N'), + ('dw_query_info', 1, 'query_id', 'Y', 'varchar', 'Y', 'query_id', '0', '', 'N', 'N', '45', 'N'), + ('dw_query_info', 2, 'query_type', 'N', 'varchar', 'Y', 'query_type', '0', '', 'N', 'N', '45', 'N'), + ('dw_schedule_contact', 6, 'receiver_email', 'N', 'number', 'Y', 'receiver_email', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule', 11, 'recent_status', 'N', 'varchar', 'Y', 'recent_status', '0', '', 'Y', 'N', '255', 'N'), + ('dw_log_operation', 14, 'remark', 'N', 'varchar', 'N', 'remark', '0', '', 'N', 'N', '1000', 'N'), + ('dw_schedule_time', 18, 'repeat_count', 'N', 'number', 'Y', 'repeat_count', '0', '', 'Y', 'N', '65', 'N'), + ('dw_schedule_time', 19, 'repeat_type', 'N', 'varchar', 'Y', 'repeat_type', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_time', 33, 'retry_after_misfire_sec', 'N', 'INT', 'Y', 'retry_after_misfire_sec', '0', '', 'Y', 'N', '10', 'N'), + ('dw_log_operation', 10, 'return_value', 'N', 'text', 'N', 'return_value', '0', '', 'N', 'N', '4000', 'N'), + ('dw_log_operation_error', 13, 'return_value', 'N', 'text', 'N', 'return_value', '0', '', 'N', 'N', '4000', 'N'), + ('dw_schedule', 1, 'schedule_id', 'Y', 'varchar', 'Y', 'schedule_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule_contact', 2, 'schedule_id', 'N', 'number', 'Y', 'schedule_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule_record', 2, 'schedule_id', 'N', 'varchar', 'Y', 'schedule_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule_time', 1, 'schedule_id', 'Y', 'varchar', 'Y', 'schedule_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_schedule', 2, 'schedule_name', 'N', 'varchar', 'Y', 'schedule_name', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule_record', 13, 'schedule_name', 'N', 'varchar', 'Y', 'schedule_name', '0', '', 'Y', 'N', '50', 'N'), + ('dw_schedule', 10, 'schedule_param', 'N', 'TEXT', 'Y', 'schedule_param', '0', '', 'Y', 'N', NULL, 'N'), + ('dw_schedule_record', 9, 'schedule_param', 'N', 'TEXT', 'Y', 'schedule_param', '0', '', 'Y', 'N', NULL, 'N'), + ('dw_schedule', 4, 'schedule_type', 'N', 'varchar', 'Y', 'schedule_type', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_record', 10, 'schedule_type', 'N', 'varchar', 'Y', 'schedule_type', '0', '', 'Y', 'N', '1', 'N'), + ('dw_schedule_contact', 7, 'send_condition', 'N', 'number', 'Y', 'send_condition', '0', '', 'Y', 'N', '50', 'N'), + ('dw_menu', 5, 'sequence', 'N', 'number', 'Y', 'sequence', '0', '', 'N', 'N', '20', 'N'), + ('dw_query_info', 3, 'sql_statement', 'N', 'varchar', 'Y', 'sql_statement', '0', '', 'N', 'N', '450', 'N'), + ('dw_schedule_record', 7, 'start_time', 'N', 'datetime', 'Y', 'start_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_schedule_time', 20, 'start_time', 'N', 'datetime', 'Y', 'start_time', '0', '', 'Y', 'N', '20', 'N'), + ('dw_log_operation', 12, 'status', 'N', 'INT', 'Y', 'status', '0', '', 'N', 'N', '4', 'N'), + ('dw_custom_column', 2, 'table_id', 'Y', 'varchar', 'Y', 'table_id', '0', '', 'N', 'N', '50', 'N'), + ('dw_custom_column', 1, 'tenantsid', 'Y', 'bigint', 'Y', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation', 19, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation_error', 19, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation_sql', 9, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_myhome', 6, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '', '', 'N', 'N', '20', 'N'), + ('dw_myhome_parameter', 5, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '', '', 'N', 'N', '20', 'N'), + ('dw_schedule', 15, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_contact', 8, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_record', 11, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_time', 30, 'tenantsid', 'Y', 'bigint', 'N', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_theme', 1, 'tenantsid', 'Y', 'bigint', 'Y', 'tenantsid', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_time', 7, 'time', 'N', 'varchar', 'Y', 'time', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 9, 'time1', 'N', 'varchar', 'Y', 'time1', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 10, 'time2', 'N', 'varchar', 'Y', 'time2', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 11, 'time3', 'N', 'varchar', 'Y', 'time3', '0', '', 'Y', 'N', '255', 'N'), + ('dw_log_operation', 11, 'time_consume', 'N', 'bigint', 'N', 'time_consume', '0', '', 'N', 'N', '20', 'N'), + ('dw_log_operation_error', 14, 'time_consume', 'N', 'bigint', 'N', 'time_consume', '0', '', 'N', 'N', '20', 'N'), + ('dw_schedule_time', 15, 'time_radio', 'N', 'varchar', 'Y', 'time_radio', '0', '', 'Y', 'N', '1', 'N'), + ('dw_log_operation', 18, 'traceid', 'N', 'varchar', 'N', 'traceid', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation_error', 17, 'traceid', 'N', 'varchar', 'N', 'traceid', '0', '', 'N', 'N', '50', 'N'), + ('dw_menu', 2, 'type', 'N', 'varchar', 'Y', 'type', '0', '', 'N', 'N', '50', 'N'), + ('dw_myhome', 3, 'type', 'N', 'varchar', 'N', 'type', '', '', 'Y', 'N', '20', 'N'), + ('dw_log_operation', 16, 'update_name', 'N', 'varchar', 'N', 'update_name', '0', '', 'N', 'N', '50', 'N'), + ('dw_log_operation', 17, 'update_time', 'N', 'datetime', 'N', 'update_time', '0', '', 'N', 'N', NULL, 'N'), + ('dw_log_operation', 8, 'url', 'N', 'varchar', 'N', 'url', '0', '', 'N', 'N', '1000', 'N'), + ('dw_log_operation_error', 11, 'url', 'N', 'varchar', 'N', 'url', '0', '', 'N', 'N', '1000', 'N'), + ('dw_menu', 8, 'url', 'N', 'varchar', 'Y', 'url', '0', '', 'Y', 'N', '2000', 'N'), + ('dw_custom_column', 3, 'userid', 'Y', 'varchar', 'Y', 'userid', '0', '', 'N', 'N', '50', 'N'), + ('dw_myhome', 1, 'userid', 'Y', 'varchar', 'N', 'userid', '', '', 'N', 'N', '40', 'N'), + ('dw_myhome_parameter', 1, 'userid', 'Y', 'varchar', 'N', 'userid', '', '', 'N', 'N', '40', 'N'), + ('dw_theme', 4, 'userid', 'N', 'varchar', 'Y', 'userid', '0', '', 'Y', 'N', '50', 'N'), + ('dw_menu_parameter', 3, 'value', 'N', 'varchar', 'Y', 'value', '0', '', 'Y', 'N', '200', 'N'), + ('dw_myhome_parameter', 4, 'value', 'N', 'varchar', 'N', 'value', '', '', 'Y', 'N', '200', 'N'), + ('dw_theme', 3, 'value', 'N', 'varchar', 'Y', 'value', '0', '', 'Y', 'N', '500', 'N'), + ('dw_app_release', 2, 'version', 'Y', 'varchar', 'Y', 'version', '0', '', 'N', 'N', '20', 'N'), + ('dw_app_update', 2, 'version', 'Y', 'varchar', 'Y', 'version', '0', '', 'N', 'N', '20', 'N'), + ('dw_menu', 10, 'version', 'N', 'number', 'Y', 'version', '0', '', 'N', 'Y', '20', 'N'), + ('dw_myhome', 5, 'version', 'N', 'int', 'N', 'version', '', '', 'Y', 'Y', '11', 'N'), + ('dw_schedule_time', 4, 'week', 'N', 'varchar', 'Y', 'week', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 3, 'week_of_month', 'N', 'varchar', 'Y', 'week_of_month', '0', '', 'Y', 'N', '255', 'N'), + ('dw_schedule_time', 16, 'week_radio', 'N', 'varchar', 'Y', 'week_radio', '0', '', 'N', 'N', '1', 'N'), + ('dw_schedule_time', 25, 'weekly', 'N', 'INT', 'Y', 'weekly', '0', '', 'Y', 'N', '10', 'N'); + +-- 正在导出表 ca-cim-ap.dw_rdbms_relations 的数据:~6 rows (大约) +INSERT INTO `dw_rdbms_relations` (`PRIMARY_TABLE_NO`, `REFERENCE_TABLE_NO`, `PRIMARY_TABLE_PK`, `REFERENCE_TABLE_PK`, `TYPE`) VALUES + ('dw_app_prod', 'dw_app_release', 'app_code', 'app_code', NULL), + ('dw_app_prod', 'dw_app_update', 'app_code', 'app_code', NULL), + ('dw_log_operation', 'dw_log_operation_sql', 'log_id', 'operation_log_id', NULL), + ('dw_menu', 'dw_menu_language', 'id', 'menu_id', NULL), + ('dw_menu', 'dw_menu_parameter', 'id', 'menu_id', NULL), + ('dw_myhome', 'dw_myhome_parameter', 'tenantsid,userid,level', 'tenantsid,userid,level', NULL); + +-- 正在导出表 ca-cim-ap.dw_rdbms_tables 的数据:~18 rows (大约) +INSERT INTO `dw_rdbms_tables` (`table_name`, `table_display_name`, `table_description`, `delete_constraint`, `hint_field`, `insert_default_value`, `update_default_value`) VALUES + ('dw_app_prod', 'dw_app_prod', '應用產品線', 'N', NULL, 'N', 'N'), + ('dw_app_release', 'dw_app_release', '應用版本發布與釋出', 'N', NULL, 'N', 'N'), + ('dw_app_update', 'dw_app_update', '應用更新版本對應', 'N', NULL, 'N', 'N'), + ('dw_custom_column', '個性化欄位表', '個性化欄位表', 'N', NULL, 'N', 'N'), + ('dw_log_operation', 'dw_log_operation', '操作日誌', 'N', NULL, 'N', 'N'), + ('dw_log_operation_error', 'dw_log_operation_error', '操作異常日誌', 'N', NULL, 'N', 'N'), + ('dw_log_operation_sql', 'dw_log_operation_sql', '操作日誌SQL', 'N', NULL, 'N', 'N'), + ('dw_menu', 'dw_menu', '菜单', 'N', NULL, 'N', 'N'), + ('dw_menu_language', 'dw_menu_language', '菜单多语言', 'N', NULL, 'N', 'N'), + ('dw_menu_parameter', 'dw_menu_parameter', '菜单参数', 'N', NULL, 'N', 'N'), + ('dw_myhome', 'dw_myhome', '自定義首頁主表', 'N', NULL, 'N', 'N'), + ('dw_myhome_parameter', 'dw_myhomedw_parameter', '自定義首頁參數表', 'N', NULL, 'N', 'N'), + ('dw_schedule', '排程表', '排程表', 'N', NULL, 'N', 'N'), + ('dw_schedule_contact', '排程寄信通知表', '排程寄信通知表', 'N', NULL, 'N', 'N'), + ('dw_schedule_record', '排程執行記錄', '排程執行記錄', 'N', NULL, 'N', 'N'), + ('dw_schedule_time', '排程執行時間設定檔', '排程執行時間設定檔', 'N', NULL, 'N', 'N'), + ('dw_theme', '企業主題主表', '企業主題主表', 'N', NULL, 'N', 'N'), + ('dw_theme_filelog', '企業主題文件上傳日誌', '企業主題文件上傳日誌', 'N', NULL, 'N', 'N'); + diff --git a/doc/sql/app-yyyyMMdd-ddl.sql b/doc/sql/app-yyyyMMdd-ddl.sql new file mode 100644 index 0000000..bcb97cf --- /dev/null +++ b/doc/sql/app-yyyyMMdd-ddl.sql @@ -0,0 +1 @@ +-- cim_wo_routing 工单工艺数据 diff --git a/version_control/APP_VERSION b/version_control/APP_VERSION new file mode 100644 index 0000000..3eefcb9 --- /dev/null +++ b/version_control/APP_VERSION @@ -0,0 +1 @@ +1.0.0 diff --git a/version_control/BUILD b/version_control/BUILD new file mode 100644 index 0000000..5ed13cb --- /dev/null +++ b/version_control/BUILD @@ -0,0 +1 @@ +1002 \ No newline at end of file diff --git a/version_control/Makefile b/version_control/Makefile new file mode 100644 index 0000000..f60617b --- /dev/null +++ b/version_control/Makefile @@ -0,0 +1,58 @@ +#版本檔案 +LAST_APP_VERSION_FILE=APP_VERSION +BUILD_VERSION_FILE=BUILD + +#版本變數 +VERSION:=$(shell cat ../VERSION) +#打包起始版本 -1 +INIT_BUILD_VERSION=999 +BUILD_VERSION=$(shell echo $(shell cat $(BUILD_VERSION_FILE))+1 | bc) +export APP_VERSION=$(shell cat $(LAST_APP_VERSION_FILE)) +#Git +GIT_CMD=git +GIT_BRANCH=$(GIT_CMD) branch +GIT_ADD=$(GIT_CMD) add +GIT_COMMIT=$(GIT_CMD) commit +GIT_PUSH=$(GIT_CMD) push -f +GIT_CURRENT_BRANCH=$$branch +GIT_TAG=$(GIT_CMD) tag +# Pure targets. +#.PHONY: all +all: check_version_file_is_exist check_version add_version write_tag_to_file +#初始化 build version 檔案 +init_build_version: + touch $(BUILD_VERSION_FILE) + echo $(INIT_BUILD_VERSION) > $(BUILD_VERSION_FILE) + echo "BUILD_VERSION = " BUILD_VERSION +#初始化 app version +init_app_version: + touch $(LAST_APP_VERSION_FILE) + echo $(VERSION) > $(LAST_APP_VERSION_FILE) + +#檢查版本檔案是否存在 +check_version_file_is_exist: +ifeq "$(wildcard $(BUILD_VERSION_FILE))" "" + @make init_build_version +endif +ifeq "$(wildcard $(LAST_APP_VERSION_FILE))" "" + @make init_app_version +endif + +#檢查版本 +check_version: + @if [ $(shell cat $(LAST_APP_VERSION_FILE)) != $(VERSION) ]; then\ + make init_app_version;\ + make init_build_version;\ + fi +add_version: + echo $(BUILD_VERSION) > $(BUILD_VERSION_FILE) +commit_record: + $(GIT_ADD) $(LAST_APP_VERSION_FILE) + $(GIT_ADD) $(BUILD_VERSION_FILE) + $(GIT_COMMIT) -m "auto increment build version $(shell cat BUILD) [CI SKIP]" + $(GIT_PUSH) origin HEAD:"$(GIT_CURRENT_BRANCH)" +add_tag: + $(GIT_TAG) -a v$(shell cat APP_VERSION).$(shell cat BUILD) -m "auto increment build version v$(shell cat APP_VERSION).$(shell cat BUILD)" + $(GIT_PUSH) origin v$(shell cat APP_VERSION).$(shell cat BUILD) +write_tag_to_file: + echo "$(shell cat APP_VERSION).$(shell cat BUILD)" > ../.tags \ No newline at end of file