diff --git a/db/v311_v4_update.sql b/db/v311_v4_update.sql
new file mode 100644
index 000000000..8ee1db06c
--- /dev/null
+++ b/db/v311_v4_update.sql
@@ -0,0 +1,213 @@
+BEGIN;
+-- 配置中心
+
+SET FOREIGN_KEY_CHECKS = 0;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'application-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '# 配置文件加密根密码\njasypt:\n encryptor:\n password: pigx\n algorithm: PBEWithMD5AndDES\n iv-generator-classname: org.jasypt.iv.NoIvGenerator\n\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration #非常重要 sca 兼容sc2020 重要配置\n redis:\n host: pigx-redis\n servlet:\n multipart:\n max-file-size: 100MB\n max-request-size: 100MB\n cloud:\n sentinel:\n eager: true\n filter:\n url-patterns: /** \n transport:\n dashboard: pigx-sentinel:5020\n\n# 端点对外暴露 \nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS\n\n# feign 相关配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 20000\n readTimeout: 20000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n#开启灰度\ngray:\n rule:\n enabled: true\n\n# mybatis-plus 配置\nmybatis-plus:\n tenant-enable: ture\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n field-strategy: NOT_EMPTY\n type-handlers-package: com.pig4cloud.pigx.common.data.handler\n\n# swagger 全局配置\nswagger:\n title: PigX Swagger API\n license: Powered By PigX\n licenseUrl: https://pig4cloud.com/\n terms-of-service-url: https://pig4cloud.com/\n contact:\n email: wangiegie@gmail.com\n url: https://pig4cloud.com/about.html\n authorization:\n name: oauth2\n auth-regex: ^.*$\n authorization-scope-list:\n - scope: server\n description: server all\n token-url-list:\n - http://${GATEWAY_HOST:pigx-gateway}:${GATEWAY_PORT:9999}/auth/oauth/token\n\n# oauth2 资源服务器相关配置\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /error\n - /actuator/**\n - /v2/api-docs\n resource:\n loadBalanced: true\n token-info-uri: http://pigx-auth/oauth/check_token', `md5` = 'ef961ab96720fb8091f6e20758e8c6fd', `gmt_create` = '2019-04-18 02:10:20', `gmt_modified` = '2021-02-18 10:31:55', `src_user` = NULL, `src_ip` = '10.1.1.58', `app_name` = '', `tenant_id` = '', `c_desc` = '通用配置文件', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 1;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'pigx-gateway-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\nswagger:\n ignore-providers:\n - pigx-auth\n - pigx-tx-manager\n\nribbon:\n rule:\n gray-enabled: true\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud', `md5` = 'c9c6c4268b5df12740d28d5aeffb49ea', `gmt_create` = '2019-04-18 02:13:52', `gmt_modified` = '2021-01-11 17:37:42', `src_user` = NULL, `src_ip` = '172.16.1.105', `app_name` = '', `tenant_id` = '', `c_desc` = '', `c_use` = '', `effect` = '', `type` = 'yaml', `c_schema` = '' WHERE `id` = 5;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'pigx-monitor-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = 'spring:\n # 安全配置\n security:\n user:\n name: ENC(rZHA4LW5hHmhLAAzJoFNag==) # pigx\n password: ENC(bjeyh+Aeii3kHXkoo00ZUw==) # pigx\n autoconfigure:\n exclude: com.pig4cloud.pigx.common.core.config.JacksonConfig\n boot:\n admin:\n ui:\n title: \'pigx 服务状态监控\'\n brand: \'pigx 服务状态监控\'\n external-views:\n - label: \"SQL监控\"\n url: /druid/sql.html\n order: 2000\n iframe: true\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\n\n\n# druid 监控的服务\nmonitor:\n applications:\n - pigx-upms-biz', `md5` = 'bafb4b4e1c86115d15be0bf23ec48a6c', `gmt_create` = '2019-04-18 02:14:17', `gmt_modified` = '2021-02-10 21:32:49', `src_user` = NULL, `src_ip` = '10.1.1.42', `app_name` = '', `tenant_id` = '', `c_desc` = '监控配置文件', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 6;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'pigx-upms-biz-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n client-secret: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n scope: server\n ignore-urls:\n - /error\n - /druid/**\n - /actuator/**\n - /v2/api-docs\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 文件系统 (提供测试环境,不要乱传)\noss:\n endpoint: http://minio.pig4cloud.com\n access-key: lengleng\n secret-key: lengleng\n bucket-name: lengleng\n\n# Logger Config\nlogging:\n level:\n com.pig4cloud.pigx.admin.mapper: debug\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - sys_user\n - sys_role\n - sys_menu\n - sys_dept\n - sys_log\n - sys_social_details\n - sys_dict\n - sys_dict_item\n - sys_public_param\n - sys_log\n - sys_file\n - sys_oauth_client_details', `md5` = 'ef3968c8268783f233bec0d657dbaaab', `gmt_create` = '2019-04-18 02:32:44', `gmt_modified` = '2021-02-18 12:46:02', `src_user` = NULL, `src_ip` = '10.1.1.60', `app_name` = '', `tenant_id` = '', `c_desc` = 'admin 服务配置', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 7;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'pigx-pay-platform-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n client-secret: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n scope: server\n# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_pay}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/\n# 租户表维护\npigx:\n pay:\n test: lengleng\n aliPayConfig:\n expire-time: 30\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/ali/callbak\n wxPayConfig:\n notify-url: https://admin.pig4cloud.com/pay/notify/wx/callbak\n mergePayConfig:\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/merge/callbak\n xsequence: #发号器相关配置\n db:\n retry-times: 3\n table-name: pay_sequence\n tenant:\n column: tenant_id\n tables:\n - pay_channel\n - pay_trade_order\n - pay_goods_order\n - pay_notify_record', `md5` = '5ae561216eef67b9fc83a2b077c0adb0', `gmt_create` = '2019-05-28 11:46:27', `gmt_modified` = '2021-01-04 22:16:41', `src_user` = NULL, `src_ip` = '10.1.1.163', `app_name` = '', `tenant_id` = '', `c_desc` = '支付模块配置', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 10;
+
+UPDATE `pigxx_config`.`config_info` SET `data_id` = 'pigx-bi-platform-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = 'spring:\n # 安全配置\n security:\n user:\n name: ENC(rZHA4LW5hHmhLAAzJoFNag==) # pigx\n password: ENC(bjeyh+Aeii3kHXkoo00ZUw==) # pigx\n \n# ureport 报表相关设置\nureport:\n debug: false\n disableFileProvider: true\n disableHttpSessionReportCache: true\n\n# oss 保存报表设计文件\noss:\n bucket-name: lengleng\n access-key: lengleng\n secret-key: lengleng\n endpoint: http://minio.pig4cloud.com', `md5` = '77e5829593e85d395aafdd88e662c036', `gmt_create` = '2020-10-15 18:18:13', `gmt_modified` = '2021-02-03 19:12:08', `src_user` = NULL, `src_ip` = '172.16.1.92', `app_name` = '', `tenant_id` = '', `c_desc` = '', `c_use` = '', `effect` = '', `type` = 'yaml', `c_schema` = '' WHERE `id` = 13;
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+-- 代码生成
+SET FOREIGN_KEY_CHECKS=0;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `ds_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据库类型' AFTER `tenant_id`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `conf_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置类型' AFTER `ds_type`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `ds_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据库名称' AFTER `conf_type`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `instance` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实例' AFTER `ds_name`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `port` int NULL DEFAULT NULL COMMENT '端口' AFTER `instance`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` ADD COLUMN `host` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主机' AFTER `port`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `id` int NOT NULL COMMENT '主键' FIRST;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '别名' AFTER `id`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'jdbcurl' AFTER `name`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名' AFTER `url`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码' AFTER `username`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标记' AFTER `update_date`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `del_flag`;
+
+ALTER TABLE `pigxx_codegen`.`gen_datasource_conf` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT COMMENT '主键';
+
+ALTER TABLE `pigxx_codegen`.`gen_form_conf` MODIFY COLUMN `id` int NOT NULL COMMENT 'ID' FIRST;
+
+ALTER TABLE `pigxx_codegen`.`gen_form_conf` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '所属租户' AFTER `del_flag`;
+
+ALTER TABLE `pigxx_codegen`.`gen_form_conf` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT COMMENT 'ID';
+
+SET FOREIGN_KEY_CHECKS=1;
+
+-- job 更新
+
+SET FOREIGN_KEY_CHECKS=0;
+
+ALTER TABLE `pigxx_job`.`sys_job` MODIFY COLUMN `job_id` int NOT NULL COMMENT '任务id' FIRST;
+
+ALTER TABLE `pigxx_job`.`sys_job` MODIFY COLUMN `tenant_id` int NULL DEFAULT 1 COMMENT '租户' AFTER `next_time`;
+
+ALTER TABLE `pigxx_job`.`sys_job` MODIFY COLUMN `job_id` int NOT NULL AUTO_INCREMENT COMMENT '任务id';
+
+ALTER TABLE `pigxx_job`.`sys_job_log` MODIFY COLUMN `job_log_id` int NOT NULL COMMENT '任务日志ID' FIRST;
+
+ALTER TABLE `pigxx_job`.`sys_job_log` MODIFY COLUMN `job_id` int NOT NULL COMMENT '任务id' AFTER `job_log_id`;
+
+ALTER TABLE `pigxx_job`.`sys_job_log` MODIFY COLUMN `tenant_id` int NOT NULL DEFAULT 1 COMMENT '租户id' AFTER `create_time`;
+
+ALTER TABLE `pigxx_job`.`sys_job_log` MODIFY COLUMN `job_log_id` int NOT NULL AUTO_INCREMENT COMMENT '任务日志ID';
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` ADD COLUMN `update_time` datetime NULL DEFAULT NULL AFTER `address_list`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` MODIFY COLUMN `address_type` tinyint NOT NULL DEFAULT 0 COMMENT '执行器地址类型:0=自动注册、1=手动录入' AFTER `title`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` MODIFY COLUMN `address_list` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '执行器地址列表,多地址逗号分隔' AFTER `address_type`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_group` DROP COLUMN `order`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` ADD COLUMN `schedule_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'NONE' COMMENT '调度类型' AFTER `alarm_email`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` ADD COLUMN `schedule_conf` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '调度配置,值含义取决于调度类型' AFTER `schedule_type`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` ADD COLUMN `misfire_strategy` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DO_NOTHING' COMMENT '调度过期策略' AFTER `schedule_conf`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `job_group` int NOT NULL COMMENT '执行器主键ID' AFTER `id`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `executor_timeout` int NOT NULL DEFAULT 0 COMMENT '任务执行超时时间,单位秒' AFTER `executor_block_strategy`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `executor_fail_retry_count` int NOT NULL DEFAULT 0 COMMENT '失败重试次数' AFTER `executor_timeout`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `trigger_status` tinyint NOT NULL DEFAULT 0 COMMENT '调度状态:0-停止,1-运行' AFTER `child_jobid`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `trigger_last_time` bigint NOT NULL DEFAULT 0 COMMENT '上次调度时间' AFTER `trigger_status`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `trigger_next_time` bigint NOT NULL DEFAULT 0 COMMENT '下次调度时间' AFTER `trigger_last_time`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_info` DROP COLUMN `job_cron`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `id` bigint NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `job_group` int NOT NULL COMMENT '执行器主键ID' AFTER `id`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `job_id` int NOT NULL COMMENT '任务,主键ID' AFTER `job_group`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `executor_fail_retry_count` int NOT NULL DEFAULT 0 COMMENT '失败重试次数' AFTER `executor_sharding_param`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `trigger_code` int NOT NULL COMMENT '调度-结果' AFTER `trigger_time`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `handle_code` int NOT NULL COMMENT '执行-状态' AFTER `handle_time`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `alarm_status` tinyint NOT NULL DEFAULT 0 COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败' AFTER `handle_msg`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` ADD COLUMN `update_time` datetime NULL DEFAULT NULL AFTER `fail_count`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` MODIFY COLUMN `running_count` int NOT NULL DEFAULT 0 COMMENT '运行中-日志数量' AFTER `trigger_day`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` MODIFY COLUMN `suc_count` int NOT NULL DEFAULT 0 COMMENT '执行成功-日志数量' AFTER `running_count`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` MODIFY COLUMN `fail_count` int NOT NULL DEFAULT 0 COMMENT '执行失败-日志数量' AFTER `suc_count`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_log_report` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_logglue` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_logglue` MODIFY COLUMN `job_id` int NOT NULL COMMENT '任务,主键ID' AFTER `id`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_logglue` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_registry` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_registry` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_job`.`xxl_job_user` MODIFY COLUMN `id` int NOT NULL FIRST;
+
+ALTER TABLE `pigxx_job`.`xxl_job_user` MODIFY COLUMN `role` tinyint NOT NULL COMMENT '角色:0-普通用户、1-管理员' AFTER `password`;
+
+ALTER TABLE `pigxx_job`.`xxl_job_user` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT;
+
+SET FOREIGN_KEY_CHECKS=1;
+
+-- 支付模块
+SET FOREIGN_KEY_CHECKS=0;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` DROP INDEX `IDX_MchId_MchOrderNo`;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` ADD COLUMN `return_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端回调地址' AFTER `channel_mch_id`;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` ADD COLUMN `notify_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端回调地址' AFTER `return_url`;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` MODIFY COLUMN `id` int NOT NULL COMMENT '渠道主键ID' FIRST;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `update_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_channel` MODIFY COLUMN `id` int NOT NULL AUTO_INCREMENT COMMENT '渠道主键ID';
+
+ALTER TABLE `pigxx_pay`.`pay_goods_order` MODIFY COLUMN `goods_order_id` int NOT NULL COMMENT '商品订单ID' FIRST;
+
+ALTER TABLE `pigxx_pay`.`pay_goods_order` MODIFY COLUMN `status` tinyint NOT NULL DEFAULT 0 COMMENT '订单状态,订单生成(0),支付成功(1),处理完成(2),处理失败(-1)' AFTER `user_id`;
+
+ALTER TABLE `pigxx_pay`.`pay_goods_order` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `update_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_goods_order` MODIFY COLUMN `goods_order_id` int NOT NULL AUTO_INCREMENT COMMENT '商品订单ID';
+
+ALTER TABLE `pigxx_pay`.`pay_notify_record` MODIFY COLUMN `id` bigint NOT NULL COMMENT 'ID' FIRST;
+
+ALTER TABLE `pigxx_pay`.`pay_notify_record` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `update_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_notify_record` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID';
+
+ALTER TABLE `pigxx_pay`.`pay_refund_order` MODIFY COLUMN `refund_amount` bigint NOT NULL COMMENT '退款金额,单位分' AFTER `pay_amount`;
+
+ALTER TABLE `pigxx_pay`.`pay_refund_order` MODIFY COLUMN `status` tinyint NOT NULL DEFAULT 0 COMMENT '退款状态:0-订单生成,1-退款中,2-退款成功,3-退款失败,4-业务处理完成' AFTER `currency`;
+
+ALTER TABLE `pigxx_pay`.`pay_refund_order` MODIFY COLUMN `result` tinyint NOT NULL DEFAULT 0 COMMENT '退款结果:0-不确认结果,1-等待手动处理,2-确认成功,3-确认失败' AFTER `status`;
+
+ALTER TABLE `pigxx_pay`.`pay_refund_order` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `update_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_sequence` MODIFY COLUMN `id` bigint NOT NULL FIRST;
+
+ALTER TABLE `pigxx_pay`.`pay_sequence` MODIFY COLUMN `value` bigint NOT NULL AFTER `id`;
+
+ALTER TABLE `pigxx_pay`.`pay_sequence` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT;
+
+ALTER TABLE `pigxx_pay`.`pay_trade_order` MODIFY COLUMN `notify_count` tinyint NULL DEFAULT 0 COMMENT '通知次数' AFTER `notify_url`;
+
+ALTER TABLE `pigxx_pay`.`pay_trade_order` MODIFY COLUMN `last_notify_time` bigint NULL DEFAULT NULL COMMENT '最后一次通知时间' AFTER `notify_count`;
+
+ALTER TABLE `pigxx_pay`.`pay_trade_order` MODIFY COLUMN `expire_time` bigint NULL DEFAULT NULL COMMENT '订单失效时间' AFTER `last_notify_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_trade_order` MODIFY COLUMN `pay_succ_time` bigint NULL DEFAULT NULL COMMENT '订单支付成功时间' AFTER `expire_time`;
+
+ALTER TABLE `pigxx_pay`.`pay_trade_order` MODIFY COLUMN `tenant_id` int NULL DEFAULT NULL COMMENT '租户ID' AFTER `del_flag`;
+
+SET FOREIGN_KEY_CHECKS=1;
+COMMIT;
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 65aeb6188..c6ad9e5de 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,4 @@
-# 使用说明 V3.11.0
+# 使用说明 V4.0.0
# 1. 使用docker-compose 宿主机不需要配置host来发现
# 2. 无需修改源码,根目录 docker-compose up 即可
# 3. 静静等待服务启动
diff --git a/pigx-auth/pom.xml b/pigx-auth/pom.xml
index 20b46c7e9..b7e60812e 100644
--- a/pigx-auth/pom.xml
+++ b/pigx-auth/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-auth
diff --git a/pigx-common/pigx-common-bom/pom.xml b/pigx-common/pigx-common-bom/pom.xml
index 54b86464b..7db075fd2 100644
--- a/pigx-common/pigx-common-bom/pom.xml
+++ b/pigx-common/pigx-common-bom/pom.xml
@@ -17,7 +17,7 @@
pigx 公共版本控制
- 4.0.0-SNAPSHOT
+ 4.0.0
3.4.2
3.2.0
1.2.5
diff --git a/pigx-common/pigx-common-core/pom.xml b/pigx-common/pigx-common-core/pom.xml
index 74adbdf4c..7d07b562a 100644
--- a/pigx-common/pigx-common-core/pom.xml
+++ b/pigx-common/pigx-common-core/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-core
diff --git a/pigx-common/pigx-common-data/pom.xml b/pigx-common/pigx-common-data/pom.xml
index 8e549e082..901b03dd2 100644
--- a/pigx-common/pigx-common-data/pom.xml
+++ b/pigx-common/pigx-common-data/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-data
diff --git a/pigx-common/pigx-common-datasource/pom.xml b/pigx-common/pigx-common-datasource/pom.xml
index e484f746a..e483f344c 100644
--- a/pigx-common/pigx-common-datasource/pom.xml
+++ b/pigx-common/pigx-common-datasource/pom.xml
@@ -5,7 +5,7 @@
pigx-common
com.pig4cloud
- 4.0.0-SNAPSHOT
+ 4.0.0
4.0.0
diff --git a/pigx-common/pigx-common-feign/pom.xml b/pigx-common/pigx-common-feign/pom.xml
index 097dab123..a70d1c4e7 100755
--- a/pigx-common/pigx-common-feign/pom.xml
+++ b/pigx-common/pigx-common-feign/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
4.0.0
diff --git a/pigx-common/pigx-common-gateway/pom.xml b/pigx-common/pigx-common-gateway/pom.xml
index e425b3c7f..e0272fa37 100644
--- a/pigx-common/pigx-common-gateway/pom.xml
+++ b/pigx-common/pigx-common-gateway/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-gateway
diff --git a/pigx-common/pigx-common-gray/pom.xml b/pigx-common/pigx-common-gray/pom.xml
index ae6d1ec85..f33ad92fb 100644
--- a/pigx-common/pigx-common-gray/pom.xml
+++ b/pigx-common/pigx-common-gray/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-gray
diff --git a/pigx-common/pigx-common-job/pom.xml b/pigx-common/pigx-common-job/pom.xml
index b399f7256..9bab8f5da 100644
--- a/pigx-common/pigx-common-job/pom.xml
+++ b/pigx-common/pigx-common-job/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-job
diff --git a/pigx-common/pigx-common-log/pom.xml b/pigx-common/pigx-common-log/pom.xml
index 7dd3f1f3e..f581de2fe 100644
--- a/pigx-common/pigx-common-log/pom.xml
+++ b/pigx-common/pigx-common-log/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-log
diff --git a/pigx-common/pigx-common-oss/pom.xml b/pigx-common/pigx-common-oss/pom.xml
index bab5c3479..622bd356f 100755
--- a/pigx-common/pigx-common-oss/pom.xml
+++ b/pigx-common/pigx-common-oss/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-oss
diff --git a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java
index 419c8c27f..1667796a5 100755
--- a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java
+++ b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java
@@ -195,8 +195,9 @@ public class OssTemplate implements InitializingBean {
* @see AWS
* API Documentation
*/
- public S3Object getObjectInfo(String bucketName, String objectName) throws Exception{
- @Cleanup S3Object object = amazonS3.getObject(bucketName, objectName);
+ public S3Object getObjectInfo(String bucketName, String objectName) throws Exception {
+ @Cleanup
+ S3Object object = amazonS3.getObject(bucketName, objectName);
return object;
}
diff --git a/pigx-common/pigx-common-security/pom.xml b/pigx-common/pigx-common-security/pom.xml
index 426110b67..93e2596e4 100644
--- a/pigx-common/pigx-common-security/pom.xml
+++ b/pigx-common/pigx-common-security/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-security
diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handler/TenantSavedRequestAwareAuthenticationSuccessHandler.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handler/TenantSavedRequestAwareAuthenticationSuccessHandler.java
index 955dc334d..6ca9c68f2 100644
--- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handler/TenantSavedRequestAwareAuthenticationSuccessHandler.java
+++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/handler/TenantSavedRequestAwareAuthenticationSuccessHandler.java
@@ -51,8 +51,8 @@ public class TenantSavedRequestAwareAuthenticationSuccessHandler extends SimpleU
this.clearAuthenticationAttributes(request);
// 增加租户信息
assert savedRequest != null;
- String targetUrl = savedRequest.getRedirectUrl() + "&TENANT-ID=" +
- SpringContextHolder.getBean(KeyStrResolver.class).key();
+ String targetUrl = savedRequest.getRedirectUrl() + "&TENANT-ID="
+ + SpringContextHolder.getBean(KeyStrResolver.class).key();
this.getRedirectStrategy().sendRedirect(request, response, targetUrl);
}
diff --git a/pigx-common/pigx-common-sentinel/pom.xml b/pigx-common/pigx-common-sentinel/pom.xml
index 789c9c2bc..0d1bccdcf 100755
--- a/pigx-common/pigx-common-sentinel/pom.xml
+++ b/pigx-common/pigx-common-sentinel/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
4.0.0
diff --git a/pigx-common/pigx-common-sequence/pom.xml b/pigx-common/pigx-common-sequence/pom.xml
index 0416208c1..d57486e92 100755
--- a/pigx-common/pigx-common-sequence/pom.xml
+++ b/pigx-common/pigx-common-sequence/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-sequence
diff --git a/pigx-common/pigx-common-swagger/pom.xml b/pigx-common/pigx-common-swagger/pom.xml
index 24a901e1b..447bc9b63 100644
--- a/pigx-common/pigx-common-swagger/pom.xml
+++ b/pigx-common/pigx-common-swagger/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-swagger
diff --git a/pigx-common/pigx-common-test/pom.xml b/pigx-common/pigx-common-test/pom.xml
index 659e9a5bb..c11dbf325 100755
--- a/pigx-common/pigx-common-test/pom.xml
+++ b/pigx-common/pigx-common-test/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-test
diff --git a/pigx-common/pigx-common-transaction/pom.xml b/pigx-common/pigx-common-transaction/pom.xml
index 811a5b92b..a937748ee 100644
--- a/pigx-common/pigx-common-transaction/pom.xml
+++ b/pigx-common/pigx-common-transaction/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-transaction
diff --git a/pigx-common/pigx-common-xss/pom.xml b/pigx-common/pigx-common-xss/pom.xml
index c5e5c28b0..8eea1903f 100755
--- a/pigx-common/pigx-common-xss/pom.xml
+++ b/pigx-common/pigx-common-xss/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-common
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common-xss
diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml
index 7b68e1c3f..2ef03cb0f 100644
--- a/pigx-common/pom.xml
+++ b/pigx-common/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-common
diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml
index cb50b7ab7..7c379e60c 100644
--- a/pigx-gateway/pom.xml
+++ b/pigx-gateway/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-gateway
diff --git a/pigx-register/pom.xml b/pigx-register/pom.xml
index 4c3482a45..9f173c93e 100755
--- a/pigx-register/pom.xml
+++ b/pigx-register/pom.xml
@@ -18,7 +18,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-register
diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml
index dad859c9c..80b466a4d 100644
--- a/pigx-upms/pigx-upms-api/pom.xml
+++ b/pigx-upms/pigx-upms-api/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-upms-api
diff --git a/pigx-upms/pigx-upms-biz/pom.xml b/pigx-upms/pigx-upms-biz/pom.xml
index e5eb21c30..47ee204d6 100644
--- a/pigx-upms/pigx-upms-biz/pom.xml
+++ b/pigx-upms/pigx-upms-biz/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-upms
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-upms-biz
diff --git a/pigx-upms/pom.xml b/pigx-upms/pom.xml
index 3c0264963..fb62feb1d 100644
--- a/pigx-upms/pom.xml
+++ b/pigx-upms/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-upms
diff --git a/pigx-visual/pigx-bi-platform/pom.xml b/pigx-visual/pigx-bi-platform/pom.xml
index 9949feb08..5cb26a60a 100755
--- a/pigx-visual/pigx-bi-platform/pom.xml
+++ b/pigx-visual/pigx-bi-platform/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-bi-platform
diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
index 7c035b0fc..8bcdcc0df 100755
--- a/pigx-visual/pigx-codegen/pom.xml
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-codegen
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
index 0ed4cd975..324a14825 100644
--- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
@@ -17,12 +17,29 @@
package com.pig4cloud.pigx.codegen.util;
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.pig4cloud.pigx.codegen.entity.*;
+import com.pig4cloud.pigx.codegen.entity.ColumnEntity;
+import com.pig4cloud.pigx.codegen.entity.GenConfig;
+import com.pig4cloud.pigx.codegen.entity.GenDatasourceConf;
+import com.pig4cloud.pigx.codegen.entity.GenFormConf;
+import com.pig4cloud.pigx.codegen.entity.TableEntity;
import com.pig4cloud.pigx.codegen.mapper.GenDatasourceConfMapper;
import com.pig4cloud.pigx.codegen.mapper.GeneratorMapper;
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
@@ -43,14 +60,6 @@ import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.springframework.context.ApplicationContext;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
/**
* 代码生成器 工具类
*
@@ -205,6 +214,7 @@ public class GenUtils {
// 封装模板数据
Map map = new HashMap<>(16);
+ map.put("dbType", tableEntity.getDbType());
map.put("tableName", tableEntity.getTableName());
map.put("pk", tableEntity.getPk());
map.put("className", tableEntity.getCaseClassName());
diff --git a/pigx-visual/pigx-daemon-elastic-job/pom.xml b/pigx-visual/pigx-daemon-elastic-job/pom.xml
index 127911484..a2d431b76 100644
--- a/pigx-visual/pigx-daemon-elastic-job/pom.xml
+++ b/pigx-visual/pigx-daemon-elastic-job/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-daemon-elastic-job
diff --git a/pigx-visual/pigx-daemon-quartz/pom.xml b/pigx-visual/pigx-daemon-quartz/pom.xml
index 9d3f1a8a8..09412d041 100644
--- a/pigx-visual/pigx-daemon-quartz/pom.xml
+++ b/pigx-visual/pigx-daemon-quartz/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
4.0.0
diff --git a/pigx-visual/pigx-monitor/pom.xml b/pigx-visual/pigx-monitor/pom.xml
index fa6da208c..136e05573 100644
--- a/pigx-visual/pigx-monitor/pom.xml
+++ b/pigx-visual/pigx-monitor/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-monitor
diff --git a/pigx-visual/pigx-mp-platform/pom.xml b/pigx-visual/pigx-mp-platform/pom.xml
index 71784ed3c..04fc170f8 100755
--- a/pigx-visual/pigx-mp-platform/pom.xml
+++ b/pigx-visual/pigx-mp-platform/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-mp-platform
diff --git a/pigx-visual/pigx-oa-platform/pom.xml b/pigx-visual/pigx-oa-platform/pom.xml
index c1c0bf539..e7162960b 100644
--- a/pigx-visual/pigx-oa-platform/pom.xml
+++ b/pigx-visual/pigx-oa-platform/pom.xml
@@ -23,7 +23,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-oa-platform
diff --git a/pigx-visual/pigx-pay-platform/pom.xml b/pigx-visual/pigx-pay-platform/pom.xml
index 9f5ead40f..249f9281f 100755
--- a/pigx-visual/pigx-pay-platform/pom.xml
+++ b/pigx-visual/pigx-pay-platform/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-pay-platform
diff --git a/pigx-visual/pigx-sentinel-dashboard/pom.xml b/pigx-visual/pigx-sentinel-dashboard/pom.xml
index fc71fc47e..1ad4d82c6 100755
--- a/pigx-visual/pigx-sentinel-dashboard/pom.xml
+++ b/pigx-visual/pigx-sentinel-dashboard/pom.xml
@@ -6,7 +6,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-sentinel-dashboard
diff --git a/pigx-visual/pigx-sso-client-demo/pom.xml b/pigx-visual/pigx-sso-client-demo/pom.xml
index 3d8c4ec41..5a58b3d3a 100644
--- a/pigx-visual/pigx-sso-client-demo/pom.xml
+++ b/pigx-visual/pigx-sso-client-demo/pom.xml
@@ -29,7 +29,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
diff --git a/pigx-visual/pigx-tx-manager/pom.xml b/pigx-visual/pigx-tx-manager/pom.xml
index a7efb7468..24b9b2bc3 100644
--- a/pigx-visual/pigx-tx-manager/pom.xml
+++ b/pigx-visual/pigx-tx-manager/pom.xml
@@ -5,7 +5,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-tx-manager
diff --git a/pigx-visual/pigx-xxl-job-admin/pom.xml b/pigx-visual/pigx-xxl-job-admin/pom.xml
index 003eab9f5..ed919b871 100644
--- a/pigx-visual/pigx-xxl-job-admin/pom.xml
+++ b/pigx-visual/pigx-xxl-job-admin/pom.xml
@@ -4,7 +4,7 @@
com.pig4cloud
pigx-visual
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-xxl-job-admin
diff --git a/pigx-visual/pom.xml b/pigx-visual/pom.xml
index 03225e4b1..1bfe7cfd8 100644
--- a/pigx-visual/pom.xml
+++ b/pigx-visual/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
pigx-visual
diff --git a/pom.xml b/pom.xml
index c0c078f09..f53dc5f93 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
com.pig4cloud
pigx
- 4.0.0-SNAPSHOT
+ 4.0.0
${project.artifactId}
pom