瀏覽代碼

!151 增加 PostgreSQL 数据库的支持
Merge pull request !151 from 芋道源码/feature/1.6.2

芋道源码 3 年之前
父節點
當前提交
20840a3ac0
共有 88 個文件被更改,包括 1380 次插入191 次删除
  1. 0 0
      sql/mysql/bpm-activiti.sql
  2. 0 0
      sql/mysql/bpm-flowable.sql
  3. 0 0
      sql/mysql/quartz.sql
  4. 43 0
      sql/mysql/ruoyi-vue-pro.sql
  5. 64 0
      sql/postgresql/bpm-flowable.sql
  6. 453 0
      sql/postgresql/quartz.sql
  7. 403 0
      sql/postgresql/ruoyi-vue-pro.sql
  8. 0 43
      sql/ruoyi-vue-pro.sql
  9. 0 1
      yudao-framework/yudao-spring-boot-starter-job/pom.xml
  10. 4 0
      yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml
  11. 101 0
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java
  12. 30 0
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java
  13. 0 1
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java
  14. 13 0
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/JdbcUtils.java
  15. 2 0
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories
  16. 2 0
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java
  17. 2 0
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java
  18. 3 1
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java
  19. 2 0
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java
  20. 10 5
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java
  21. 2 0
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java
  22. 2 0
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java
  23. 6 6
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmFormMapper.java
  24. 3 4
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java
  25. 12 12
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java
  26. 15 16
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java
  27. 2 2
      yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java
  28. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java
  29. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java
  30. 6 4
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java
  31. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java
  32. 3 1
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java
  33. 3 1
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java
  34. 4 2
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java
  35. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java
  36. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java
  37. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
  38. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java
  39. 2 0
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/test/TestDemoDO.java
  40. 6 4
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java
  41. 5 5
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenTableMapper.java
  42. 12 13
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java
  43. 6 6
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileMapper.java
  44. 10 1
      yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/DefaultDatabaseQueryTest.java
  45. 4 0
      yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigServiceImplTest.java
  46. 2 0
      yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
  47. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayAppDO.java
  48. 3 1
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayChannelDO.java
  49. 3 5
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayMerchantDO.java
  50. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java
  51. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
  52. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
  53. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java
  54. 2 0
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
  55. 0 2
      yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java
  56. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/auth/UserSessionDO.java
  57. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java
  58. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java
  59. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java
  60. 3 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java
  61. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorcode/ErrorCodeDO.java
  62. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java
  63. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
  64. 3 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java
  65. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java
  66. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java
  67. 2 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java
  68. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java
  69. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java
  70. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java
  71. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
  72. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java
  73. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java
  74. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java
  75. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java
  76. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java
  77. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java
  78. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
  79. 13 13
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java
  80. 4 4
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java
  81. 15 13
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
  82. 6 6
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
  83. 11 5
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java
  84. 1 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
  85. 2 2
      yudao-module-system/yudao-module-system-biz/src/test/resources/sql/create_tables.sql
  86. 1 1
      yudao-server/src/main/resources/application-dev.yaml
  87. 5 5
      yudao-server/src/main/resources/application-local.yaml
  88. 5 2
      yudao-server/src/main/resources/application.yaml

+ 0 - 0
sql/bpm-activiti.sql → sql/mysql/bpm-activiti.sql


+ 0 - 0
sql/bpm-flowable.sql → sql/mysql/bpm-flowable.sql


+ 0 - 0
sql/quartz.sql → sql/mysql/quartz.sql


File diff suppressed because it is too large
+ 43 - 0
sql/mysql/ruoyi-vue-pro.sql


File diff suppressed because it is too large
+ 64 - 0
sql/postgresql/bpm-flowable.sql


+ 453 - 0
sql/postgresql/quartz.sql

@@ -0,0 +1,453 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 127.0.0.1 PostgreSQL
+ Source Server Type    : PostgreSQL
+ Source Server Version : 140002
+ Source Host           : 127.0.0.1:5432
+ Source Catalog        : ruoyi-vue-pro
+ Source Schema         : public
+
+ Target Server Type    : PostgreSQL
+ Target Server Version : 140002
+ File Encoding         : 65001
+
+ Date: 30/04/2022 23:06:11
+*/
+
+
+-- ----------------------------
+-- Table structure for qrtz_blob_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_blob_triggers";
+CREATE TABLE "public"."qrtz_blob_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "blob_data" bytea
+)
+;
+ALTER TABLE "public"."qrtz_blob_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_blob_triggers
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_calendars
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_calendars";
+CREATE TABLE "public"."qrtz_calendars" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "calendar_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "calendar" bytea NOT NULL
+)
+;
+ALTER TABLE "public"."qrtz_calendars" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_calendars
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_cron_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_cron_triggers";
+CREATE TABLE "public"."qrtz_cron_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "cron_expression" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "time_zone_id" varchar(80) COLLATE "pg_catalog"."default"
+)
+;
+ALTER TABLE "public"."qrtz_cron_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_cron_triggers
+-- ----------------------------
+BEGIN;
+INSERT INTO "public"."qrtz_cron_triggers" ("sched_name", "trigger_name", "trigger_group", "cron_expression", "time_zone_id") VALUES ('schedulerName', 'userSessionTimeoutJob', 'DEFAULT', '0 * * * * ? *', 'Asia/Shanghai');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_fired_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_fired_triggers";
+CREATE TABLE "public"."qrtz_fired_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "entry_id" varchar(95) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "instance_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "fired_time" int8 NOT NULL,
+  "sched_time" int8 NOT NULL,
+  "priority" int4 NOT NULL,
+  "state" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
+  "job_name" varchar(200) COLLATE "pg_catalog"."default",
+  "job_group" varchar(200) COLLATE "pg_catalog"."default",
+  "is_nonconcurrent" bool,
+  "requests_recovery" bool
+)
+;
+ALTER TABLE "public"."qrtz_fired_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_fired_triggers
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_job_details
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_job_details";
+CREATE TABLE "public"."qrtz_job_details" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "job_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "job_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "description" varchar(250) COLLATE "pg_catalog"."default",
+  "job_class_name" varchar(250) COLLATE "pg_catalog"."default" NOT NULL,
+  "is_durable" bool NOT NULL,
+  "is_nonconcurrent" bool NOT NULL,
+  "is_update_data" bool NOT NULL,
+  "requests_recovery" bool NOT NULL,
+  "job_data" bytea
+)
+;
+ALTER TABLE "public"."qrtz_job_details" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_job_details
+-- ----------------------------
+BEGIN;
+INSERT INTO "public"."qrtz_job_details" ("sched_name", "job_name", "job_group", "description", "job_class_name", "is_durable", "is_nonconcurrent", "is_update_data", "requests_recovery", "job_data") VALUES ('schedulerName', 'userSessionTimeoutJob', 'DEFAULT', NULL, 'cn.iocoder.yudao.framework.quartz.core.handler.JobHandlerInvoker', 'f', 't', 't', 'f', E'\\254\\355\\000\\005sr\\000\\025org.quartz.JobDataMap\\237\\260\\203\\350\\277\\251\\260\\313\\002\\000\\000xr\\000&org.quartz.utils.StringKeyDirtyFlagMap\\202\\010\\350\\303\\373\\305](\\002\\000\\001Z\\000\\023allowsTransientDataxr\\000\\035org.quartz.utils.DirtyFlagMap\\023\\346.\\255(v\\012\\316\\002\\000\\002Z\\000\\005dirtyL\\000\\003mapt\\000\\017Ljava/util/Map;xp\\001sr\\000\\021java.util.HashMap\\005\\007\\332\\301\\303\\026`\\321\\003\\000\\002F\\000\\012loadFactorI\\000\\011thresholdxp?@\\000\\000\\000\\000\\000\\014w\\010\\000\\000\\000\\020\\000\\000\\000\\002t\\000\\006JOB_IDsr\\000\\016java.lang.Long;\\213\\344\\220\\314\\217#\\337\\002\\000\\001J\\000\\005valuexr\\000\\020java.lang.Number\\206\\254\\225\\035\\013\\224\\340\\213\\002\\000\\000xp\\000\\000\\000\\000\\000\\000\\000\\002t\\000\\020JOB_HANDLER_NAMEt\\000\\025userSessionTimeoutJobx\\000');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_locks
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_locks";
+CREATE TABLE "public"."qrtz_locks" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "lock_name" varchar(40) COLLATE "pg_catalog"."default" NOT NULL
+)
+;
+ALTER TABLE "public"."qrtz_locks" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_locks
+-- ----------------------------
+BEGIN;
+INSERT INTO "public"."qrtz_locks" ("sched_name", "lock_name") VALUES ('schedulerName', 'TRIGGER_ACCESS');
+INSERT INTO "public"."qrtz_locks" ("sched_name", "lock_name") VALUES ('schedulerName', 'STATE_ACCESS');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_paused_trigger_grps
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_paused_trigger_grps";
+CREATE TABLE "public"."qrtz_paused_trigger_grps" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL
+)
+;
+ALTER TABLE "public"."qrtz_paused_trigger_grps" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_paused_trigger_grps
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_scheduler_state
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_scheduler_state";
+CREATE TABLE "public"."qrtz_scheduler_state" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "instance_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "last_checkin_time" int8 NOT NULL,
+  "checkin_interval" int8 NOT NULL
+)
+;
+ALTER TABLE "public"."qrtz_scheduler_state" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_scheduler_state
+-- ----------------------------
+BEGIN;
+INSERT INTO "public"."qrtz_scheduler_state" ("sched_name", "instance_name", "last_checkin_time", "checkin_interval") VALUES ('schedulerName', 'Yunai.local1651328569660', 1651328650075, 15000);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_simple_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_simple_triggers";
+CREATE TABLE "public"."qrtz_simple_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "repeat_count" int8 NOT NULL,
+  "repeat_interval" int8 NOT NULL,
+  "times_triggered" int8 NOT NULL
+)
+;
+ALTER TABLE "public"."qrtz_simple_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_simple_triggers
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_simprop_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_simprop_triggers";
+CREATE TABLE "public"."qrtz_simprop_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "str_prop_1" varchar(512) COLLATE "pg_catalog"."default",
+  "str_prop_2" varchar(512) COLLATE "pg_catalog"."default",
+  "str_prop_3" varchar(512) COLLATE "pg_catalog"."default",
+  "int_prop_1" int4,
+  "int_prop_2" int4,
+  "long_prop_1" int8,
+  "long_prop_2" int8,
+  "dec_prop_1" numeric(13,4),
+  "dec_prop_2" numeric(13,4),
+  "bool_prop_1" bool,
+  "bool_prop_2" bool
+)
+;
+ALTER TABLE "public"."qrtz_simprop_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_simprop_triggers
+-- ----------------------------
+BEGIN;
+COMMIT;
+
+-- ----------------------------
+-- Table structure for qrtz_triggers
+-- ----------------------------
+DROP TABLE IF EXISTS "public"."qrtz_triggers";
+CREATE TABLE "public"."qrtz_triggers" (
+  "sched_name" varchar(120) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "job_name" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "job_group" varchar(200) COLLATE "pg_catalog"."default" NOT NULL,
+  "description" varchar(250) COLLATE "pg_catalog"."default",
+  "next_fire_time" int8,
+  "prev_fire_time" int8,
+  "priority" int4,
+  "trigger_state" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
+  "trigger_type" varchar(8) COLLATE "pg_catalog"."default" NOT NULL,
+  "start_time" int8 NOT NULL,
+  "end_time" int8,
+  "calendar_name" varchar(200) COLLATE "pg_catalog"."default",
+  "misfire_instr" int2,
+  "job_data" bytea
+)
+;
+ALTER TABLE "public"."qrtz_triggers" OWNER TO "postgres";
+
+-- ----------------------------
+-- Records of qrtz_triggers
+-- ----------------------------
+BEGIN;
+INSERT INTO "public"."qrtz_triggers" ("sched_name", "trigger_name", "trigger_group", "job_name", "job_group", "description", "next_fire_time", "prev_fire_time", "priority", "trigger_state", "trigger_type", "start_time", "end_time", "calendar_name", "misfire_instr", "job_data") VALUES ('schedulerName', 'userSessionTimeoutJob', 'DEFAULT', 'userSessionTimeoutJob', 'DEFAULT', NULL, 1651328700000, 1651328640000, 5, 'WAITING', 'CRON', 1651328526000, 0, NULL, 0, E'\\254\\355\\000\\005sr\\000\\025org.quartz.JobDataMap\\237\\260\\203\\350\\277\\251\\260\\313\\002\\000\\000xr\\000&org.quartz.utils.StringKeyDirtyFlagMap\\202\\010\\350\\303\\373\\305](\\002\\000\\001Z\\000\\023allowsTransientDataxr\\000\\035org.quartz.utils.DirtyFlagMap\\023\\346.\\255(v\\012\\316\\002\\000\\002Z\\000\\005dirtyL\\000\\003mapt\\000\\017Ljava/util/Map;xp\\001sr\\000\\021java.util.HashMap\\005\\007\\332\\301\\303\\026`\\321\\003\\000\\002F\\000\\012loadFactorI\\000\\011thresholdxp?@\\000\\000\\000\\000\\000\\014w\\010\\000\\000\\000\\020\\000\\000\\000\\003t\\000\\021JOB_HANDLER_PARAMpt\\000\\022JOB_RETRY_INTERVALsr\\000\\021java.lang.Integer\\022\\342\\240\\244\\367\\201\\2078\\002\\000\\001I\\000\\005valuexr\\000\\020java.lang.Number\\206\\254\\225\\035\\013\\224\\340\\213\\002\\000\\000xp\\000\\000\\007\\320t\\000\\017JOB_RETRY_COUNTsq\\000~\\000\\011\\000\\000\\000\\003x\\000');
+COMMIT;
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_blob_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_blob_triggers" ADD CONSTRAINT "qrtz_blob_triggers_pkey" PRIMARY KEY ("sched_name", "trigger_name", "trigger_group");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_calendars
+-- ----------------------------
+ALTER TABLE "public"."qrtz_calendars" ADD CONSTRAINT "qrtz_calendars_pkey" PRIMARY KEY ("sched_name", "calendar_name");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_cron_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_cron_triggers" ADD CONSTRAINT "qrtz_cron_triggers_pkey" PRIMARY KEY ("sched_name", "trigger_name", "trigger_group");
+
+-- ----------------------------
+-- Indexes structure for table qrtz_fired_triggers
+-- ----------------------------
+CREATE INDEX "idx_qrtz_ft_inst_job_req_rcvry" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "instance_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "requests_recovery" "pg_catalog"."bool_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_ft_j_g" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_ft_jg" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_ft_t_g" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_ft_tg" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_ft_trig_inst_name" ON "public"."qrtz_fired_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "instance_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_fired_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_fired_triggers" ADD CONSTRAINT "qrtz_fired_triggers_pkey" PRIMARY KEY ("sched_name", "entry_id");
+
+-- ----------------------------
+-- Indexes structure for table qrtz_job_details
+-- ----------------------------
+CREATE INDEX "idx_qrtz_j_grp" ON "public"."qrtz_job_details" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_j_req_recovery" ON "public"."qrtz_job_details" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "requests_recovery" "pg_catalog"."bool_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_job_details
+-- ----------------------------
+ALTER TABLE "public"."qrtz_job_details" ADD CONSTRAINT "qrtz_job_details_pkey" PRIMARY KEY ("sched_name", "job_name", "job_group");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_locks
+-- ----------------------------
+ALTER TABLE "public"."qrtz_locks" ADD CONSTRAINT "qrtz_locks_pkey" PRIMARY KEY ("sched_name", "lock_name");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_paused_trigger_grps
+-- ----------------------------
+ALTER TABLE "public"."qrtz_paused_trigger_grps" ADD CONSTRAINT "qrtz_paused_trigger_grps_pkey" PRIMARY KEY ("sched_name", "trigger_group");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_scheduler_state
+-- ----------------------------
+ALTER TABLE "public"."qrtz_scheduler_state" ADD CONSTRAINT "qrtz_scheduler_state_pkey" PRIMARY KEY ("sched_name", "instance_name");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_simple_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_simple_triggers" ADD CONSTRAINT "qrtz_simple_triggers_pkey" PRIMARY KEY ("sched_name", "trigger_name", "trigger_group");
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_simprop_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_simprop_triggers" ADD CONSTRAINT "qrtz_simprop_triggers_pkey" PRIMARY KEY ("sched_name", "trigger_name", "trigger_group");
+
+-- ----------------------------
+-- Indexes structure for table qrtz_triggers
+-- ----------------------------
+CREATE INDEX "idx_qrtz_t_c" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "calendar_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_g" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_j" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_jg" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "job_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_n_g_state" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_n_state" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_next_fire_time" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "next_fire_time" "pg_catalog"."int8_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_nft_misfire" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "misfire_instr" "pg_catalog"."int2_ops" ASC NULLS LAST,
+  "next_fire_time" "pg_catalog"."int8_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_nft_st" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "next_fire_time" "pg_catalog"."int8_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_nft_st_misfire" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "misfire_instr" "pg_catalog"."int2_ops" ASC NULLS LAST,
+  "next_fire_time" "pg_catalog"."int8_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_nft_st_misfire_grp" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "misfire_instr" "pg_catalog"."int2_ops" ASC NULLS LAST,
+  "next_fire_time" "pg_catalog"."int8_ops" ASC NULLS LAST,
+  "trigger_group" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_qrtz_t_state" ON "public"."qrtz_triggers" USING btree (
+  "sched_name" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "trigger_state" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table qrtz_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_triggers" ADD CONSTRAINT "qrtz_triggers_pkey" PRIMARY KEY ("sched_name", "trigger_name", "trigger_group");
+
+-- ----------------------------
+-- Foreign Keys structure for table qrtz_blob_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_blob_triggers" ADD CONSTRAINT "qrtz_blob_triggers_sched_name_trigger_name_trigger_group_fkey" FOREIGN KEY ("sched_name", "trigger_name", "trigger_group") REFERENCES "public"."qrtz_triggers" ("sched_name", "trigger_name", "trigger_group") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table qrtz_cron_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_cron_triggers" ADD CONSTRAINT "qrtz_cron_triggers_sched_name_trigger_name_trigger_group_fkey" FOREIGN KEY ("sched_name", "trigger_name", "trigger_group") REFERENCES "public"."qrtz_triggers" ("sched_name", "trigger_name", "trigger_group") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table qrtz_simple_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_simple_triggers" ADD CONSTRAINT "qrtz_simple_triggers_sched_name_trigger_name_trigger_group_fkey" FOREIGN KEY ("sched_name", "trigger_name", "trigger_group") REFERENCES "public"."qrtz_triggers" ("sched_name", "trigger_name", "trigger_group") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table qrtz_simprop_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_simprop_triggers" ADD CONSTRAINT "qrtz_simprop_triggers_sched_name_trigger_name_trigger_grou_fkey" FOREIGN KEY ("sched_name", "trigger_name", "trigger_group") REFERENCES "public"."qrtz_triggers" ("sched_name", "trigger_name", "trigger_group") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table qrtz_triggers
+-- ----------------------------
+ALTER TABLE "public"."qrtz_triggers" ADD CONSTRAINT "qrtz_triggers_sched_name_job_name_job_group_fkey" FOREIGN KEY ("sched_name", "job_name", "job_group") REFERENCES "public"."qrtz_job_details" ("sched_name", "job_name", "job_group") ON DELETE NO ACTION ON UPDATE NO ACTION;

File diff suppressed because it is too large
+ 403 - 0
sql/postgresql/ruoyi-vue-pro.sql


File diff suppressed because it is too large
+ 0 - 43
sql/ruoyi-vue-pro.sql


+ 0 - 1
yudao-framework/yudao-spring-boot-starter-job/pom.xml

@@ -36,7 +36,6 @@
             <artifactId>jakarta.validation-api</artifactId>
         </dependency>
 
-
     </dependencies>
 
 </project>

+ 4 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/pom.xml

@@ -42,6 +42,10 @@
             <groupId>com.oracle.database.jdbc</groupId>
             <artifactId>ojdbc8</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>com.alibaba</groupId>

+ 101 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/IdTypeEnvironmentPostProcessor.java

@@ -0,0 +1,101 @@
+package cn.iocoder.yudao.framework.mybatis.config;
+
+import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
+import cn.iocoder.yudao.framework.mybatis.core.util.JdbcUtils;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.annotation.IdType;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.env.EnvironmentPostProcessor;
+import org.springframework.core.env.ConfigurableEnvironment;
+
+import java.util.Set;
+
+/**
+ * 当 IdType 为 {@link IdType#NONE} 时,根据 PRIMARY 数据源所使用的数据库,自动设置
+ *
+ * @author 芋道源码
+ */
+@Slf4j
+public class IdTypeEnvironmentPostProcessor implements EnvironmentPostProcessor {
+
+    private static final String ID_TYPE_KEY = "mybatis-plus.global-config.db-config.id-type";
+
+    private static final String DATASOURCE_DYNAMIC_KEY = "spring.datasource.dynamic";
+
+    private static final String QUARTZ_JOB_STORE_DRIVER_KEY = "spring.quartz.properties.org.quartz.jobStore.driverDelegateClass";
+
+    private static final Set<DbType> INPUT_ID_TYPES = SetUtils.asSet(DbType.ORACLE, DbType.ORACLE_12C,
+            DbType.POSTGRE_SQL, DbType.KINGBASE_ES, DbType.DB2, DbType.H2);
+
+    @Override
+    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
+        // 如果获取不到 DbType,则不进行处理
+        DbType dbType = getDbType(environment);
+        if (dbType == null) {
+            return;
+        }
+
+        // 设置 Quartz JobStore 对应的 Driver
+        // TODO 芋艿:暂时没有找到特别合适的地方,先放在这里
+        setJobStoreDriverIfPresent(environment, dbType);
+
+        // 如果非 NONE,则不进行处理
+        IdType idType = getIdType(environment);
+        if (idType != IdType.NONE) {
+            return;
+        }
+        // 情况一,用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库
+        if (INPUT_ID_TYPES.contains(dbType)) {
+            setIdType(environment, IdType.INPUT);
+            return;
+        }
+        // 情况二,自增 ID,适合 MySQL 等直接自增的数据库
+        setIdType(environment, IdType.AUTO);
+    }
+
+    public IdType getIdType(ConfigurableEnvironment environment) {
+        return environment.getProperty(ID_TYPE_KEY, IdType.class);
+    }
+
+    public void setIdType(ConfigurableEnvironment environment, IdType idType) {
+        environment.getSystemProperties().put(ID_TYPE_KEY, idType);
+        log.info("[setIdType][修改 MyBatis Plus 的 idType 为({})]", idType);
+    }
+
+    public void setJobStoreDriverIfPresent(ConfigurableEnvironment environment, DbType dbType) {
+        String driverClass = environment.getProperty(QUARTZ_JOB_STORE_DRIVER_KEY);
+        if (StrUtil.isNotEmpty(driverClass)) {
+            return;
+        }
+        // 根据 dbType 类型,获取对应的 driverClass
+        switch (dbType) {
+            case POSTGRE_SQL:
+                driverClass = "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate";
+                break;
+            case ORACLE:
+            case ORACLE_12C:
+                driverClass = "org.quartz.impl.jdbcjobstore.oracle.OracleDelegate";
+                break;
+        }
+        // 设置 driverClass 变量
+        if (StrUtil.isNotEmpty(driverClass)) {
+            environment.getSystemProperties().put(QUARTZ_JOB_STORE_DRIVER_KEY, driverClass);
+
+        }
+    }
+
+    public static DbType getDbType(ConfigurableEnvironment environment) {
+        String primary = environment.getProperty(DATASOURCE_DYNAMIC_KEY + "." + "primary");
+        if (StrUtil.isEmpty(primary)) {
+            return null;
+        }
+        String url = environment.getProperty(DATASOURCE_DYNAMIC_KEY + ".datasource." + primary + ".url");
+        if (StrUtil.isEmpty(url)) {
+            return null;
+        }
+        return JdbcUtils.getDbType(url);
+    }
+
+}

+ 30 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/config/YudaoMybatisAutoConfiguration.java

@@ -1,13 +1,22 @@
 package cn.iocoder.yudao.framework.mybatis.config;
 
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.mybatis.core.handler.DefaultDBFieldHandler;
+import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
+import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
+import com.baomidou.mybatisplus.extension.incrementer.KingbaseKeyGenerator;
+import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
+import com.baomidou.mybatisplus.extension.incrementer.PostgreKeyGenerator;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import org.apache.ibatis.annotations.Mapper;
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.ConfigurableEnvironment;
 
 /**
  * MyBaits 配置类
@@ -31,4 +40,25 @@ public class YudaoMybatisAutoConfiguration {
         return new DefaultDBFieldHandler(); // 自动填充参数类
     }
 
+    @Bean
+    @ConditionalOnProperty(prefix = "mybatis-plus.global-config.db-config", name = "id-type", havingValue = "INPUT")
+    public IKeyGenerator keyGenerator(ConfigurableEnvironment environment) {
+        DbType dbType = IdTypeEnvironmentPostProcessor.getDbType(environment);
+        if (dbType != null) {
+            switch (dbType) {
+                case POSTGRE_SQL:
+                    return new PostgreKeyGenerator();
+                case ORACLE:
+                case ORACLE_12C:
+                    return new OracleKeyGenerator();
+                case H2:
+                    return new H2KeyGenerator();
+                case KINGBASE_ES:
+                    return new KingbaseKeyGenerator();
+            }
+        }
+        // 找不到合适的 IKeyGenerator 实现类
+        throw new IllegalArgumentException(StrUtil.format("DbType{} 找不到合适的 IKeyGenerator 实现类", dbType));
+    }
+
 }

+ 0 - 1
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/SqlConstants.java

@@ -5,7 +5,6 @@ package cn.iocoder.yudao.framework.mybatis.core.enums;
  */
 public interface SqlConstants {
 
-
     String LIMIT1 = "LIMIT 1";
 
 }

+ 13 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/JdbcUtils.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.framework.mybatis.core.util;
 
+import com.baomidou.mybatisplus.annotation.DbType;
+
 import java.sql.Connection;
 import java.sql.DriverManager;
 
@@ -26,4 +28,15 @@ public class JdbcUtils {
         }
     }
 
+    /**
+     * 获得 URL 对应的 DB 类型
+     *
+     * @param url URL
+     * @return DB 类型
+     */
+    public static DbType getDbType(String url) {
+        String name = com.alibaba.druid.util.JdbcUtils.getDbType(url, null);
+        return DbType.getDbType(name);
+    }
+
 }

+ 2 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/resources/META-INF/spring.factories

@@ -1,3 +1,5 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
   cn.iocoder.yudao.framework.datasource.config.YudaoDataSourceAutoConfiguration,\
   cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration
+org.springframework.boot.env.EnvironmentPostProcessor=\
+  cn.iocoder.yudao.framework.mybatis.config.IdTypeEnvironmentPostProcessor

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.definition;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author 芋道源码
  */
 @TableName(value = "bpm_form", autoResultMap = true)
+@KeySequence("bpm_form_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionExtDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.definition;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelFormTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -17,6 +18,7 @@ import java.util.List;
  * @author 芋道源码
  */
 @TableName(value = "bpm_process_definition_ext", autoResultMap = true)
+@KeySequence("bpm_process_definition_ext_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 3 - 1
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmTaskAssignRuleDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
 import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
 import cn.iocoder.yudao.module.bpm.enums.definition.BpmTaskRuleScriptEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -21,6 +22,7 @@ import java.util.Set;
  * @author 芋道源码
  */
 @TableName(value = "bpm_task_assign_rule", autoResultMap = true)
+@KeySequence("bpm_task_assign_rule_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
@@ -64,7 +66,7 @@ public class BpmTaskAssignRuleDO extends BaseDO {
      *
      * 枚举 {@link BpmTaskAssignRuleTypeEnum}
      */
-    @TableField("`type`")
+    @TableField("\"type\"")
     private Integer type;
     /**
      * 规则值数组,一般关联指定表的编号

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.definition;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,6 +17,7 @@ import java.util.Set;
  * @author 芋道源码
  */
 @TableName(value = "bpm_user_group", autoResultMap = true)
+@KeySequence("bpm_user_group_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 10 - 5
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java

@@ -1,10 +1,14 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa;
 
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
-import java.util.*;
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+import java.util.Date;
 
 /**
  * OA 请假申请 DO
@@ -15,6 +19,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  * @author 芋道源码
  */
 @TableName("bpm_oa_leave")
+@KeySequence("bpm_oa_leave_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
@@ -37,8 +42,8 @@ public class BpmOALeaveDO extends BaseDO {
     /**
      * 请假类型
      */
-    @TableField("`type`")
-    private String type;
+    @TableField("\"type\"")
+    private Integer type;
     /**
      * 原因
      */

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceExtDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -21,6 +22,7 @@ import java.util.Map;
  * @author 芋道源码
  */
 @TableName(value = "bpm_process_instance_ext", autoResultMap = true)
+@KeySequence("bpm_process_instance_ext_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmTaskExtDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.dal.dataobject.task;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -17,6 +18,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName(value = "bpm_task_ext", autoResultMap = true)
+@KeySequence("bpm_task_ext_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 6 - 6
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmFormMapper.java

@@ -1,11 +1,11 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
 
 
-import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.form.BpmFormPageReqVO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -17,9 +17,9 @@ import org.apache.ibatis.annotations.Mapper;
 public interface BpmFormMapper extends BaseMapperX<BpmFormDO> {
 
     default PageResult<BpmFormDO> selectPage(BpmFormPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<BpmFormDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .orderByDesc("id"));
+        return selectPage(reqVO, new LambdaQueryWrapperX<BpmFormDO>()
+                .likeIfPresent(BpmFormDO::getName, reqVO.getName())
+                .orderByDesc(BpmFormDO::getId));
     }
 
 }

+ 3 - 4
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmProcessDefinitionExtMapper.java

@@ -1,8 +1,7 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
 
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.Collection;
@@ -12,11 +11,11 @@ import java.util.List;
 public interface BpmProcessDefinitionExtMapper extends BaseMapperX<BpmProcessDefinitionExtDO> {
 
     default List<BpmProcessDefinitionExtDO> selectListByProcessDefinitionIds(Collection<String> processDefinitionIds) {
-        return selectList("process_definition_id", processDefinitionIds);
+        return selectList(BpmProcessDefinitionExtDO::getProcessDefinitionId, processDefinitionIds);
     }
 
     default BpmProcessDefinitionExtDO selectByProcessDefinitionId(String processDefinitionId) {
-        return selectOne("process_definition_id", processDefinitionId);
+        return selectOne(BpmProcessDefinitionExtDO::getProcessDefinitionId, processDefinitionId);
     }
 
 }

+ 12 - 12
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmTaskAssignRuleMapper.java

@@ -1,8 +1,8 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
 
-import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.lang.Nullable;
 
@@ -13,23 +13,23 @@ public interface BpmTaskAssignRuleMapper extends BaseMapperX<BpmTaskAssignRuleDO
 
     default List<BpmTaskAssignRuleDO> selectListByProcessDefinitionId(String processDefinitionId,
                                                                       @Nullable String taskDefinitionKey) {
-        return selectList(new QueryWrapperX<BpmTaskAssignRuleDO>()
-                .eq("process_definition_id", processDefinitionId)
-                .eqIfPresent("task_definition_key", taskDefinitionKey));
+        return selectList(new LambdaQueryWrapperX<BpmTaskAssignRuleDO>()
+                .eq(BpmTaskAssignRuleDO::getProcessDefinitionId, processDefinitionId)
+                .eqIfPresent(BpmTaskAssignRuleDO::getTaskDefinitionKey, taskDefinitionKey));
     }
 
     default List<BpmTaskAssignRuleDO> selectListByModelId(String modelId) {
-        return selectList(new QueryWrapperX<BpmTaskAssignRuleDO>()
-                .eq("model_id", modelId)
-                .eq("process_definition_id", BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL));
+        return selectList(new LambdaQueryWrapperX<BpmTaskAssignRuleDO>()
+                .eq(BpmTaskAssignRuleDO::getModelId, modelId)
+                .eq(BpmTaskAssignRuleDO::getProcessDefinitionId, BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL));
     }
 
     default BpmTaskAssignRuleDO selectListByModelIdAndTaskDefinitionKey(String modelId,
                                                                         String taskDefinitionKey) {
-        return selectOne(new QueryWrapperX<BpmTaskAssignRuleDO>()
-                .eq("model_id", modelId)
-                .eq("process_definition_id", BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL)
-                .eq("task_definition_key", taskDefinitionKey));
+        return selectOne(new LambdaQueryWrapperX<BpmTaskAssignRuleDO>()
+                .eq(BpmTaskAssignRuleDO::getModelId, modelId)
+                .eq(BpmTaskAssignRuleDO::getProcessDefinitionId, BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL)
+                .eq(BpmTaskAssignRuleDO::getTaskDefinitionKey, taskDefinitionKey));
     }
 
 }

+ 15 - 16
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmProcessInstanceExtMapper.java

@@ -1,35 +1,34 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.task;
 
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
 public interface BpmProcessInstanceExtMapper extends BaseMapperX<BpmProcessInstanceExtDO> {
 
     default PageResult<BpmProcessInstanceExtDO> selectPage(Long userId, BpmProcessInstanceMyPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<BpmProcessInstanceExtDO>()
-                .eqIfPresent("start_user_id", userId)
-                .likeIfPresent("name", reqVO.getName())
-                .eqIfPresent("process_definition_id", reqVO.getProcessDefinitionId())
-                .eqIfPresent("category", reqVO.getCategory())
-                .eqIfPresent("status", reqVO.getStatus())
-                .eqIfPresent("result", reqVO.getResult())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("id"));
+        return selectPage(reqVO, new LambdaQueryWrapperX<BpmProcessInstanceExtDO>()
+                .eqIfPresent(BpmProcessInstanceExtDO::getStartUserId, userId)
+                .likeIfPresent(BpmProcessInstanceExtDO::getName, reqVO.getName())
+                .eqIfPresent(BpmProcessInstanceExtDO::getProcessDefinitionId, reqVO.getProcessDefinitionId())
+                .eqIfPresent(BpmProcessInstanceExtDO::getCategory, reqVO.getCategory())
+                .eqIfPresent(BpmProcessInstanceExtDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(BpmProcessInstanceExtDO::getResult, reqVO.getResult())
+                .betweenIfPresent(BpmProcessInstanceExtDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
+                .orderByDesc(BpmProcessInstanceExtDO::getId));
     }
 
     default BpmProcessInstanceExtDO selectByProcessInstanceId(String processDefinitionId) {
-        return selectOne("process_instance_id", processDefinitionId);
+        return selectOne(BpmProcessInstanceExtDO::getProcessInstanceId, processDefinitionId);
     }
 
     default void updateByProcessInstanceId(BpmProcessInstanceExtDO updateObj) {
-        update(updateObj, new QueryWrapper<BpmProcessInstanceExtDO>()
-                .eq("process_instance_id", updateObj.getProcessInstanceId()));
+        update(updateObj, new LambdaQueryWrapperX<BpmProcessInstanceExtDO>()
+                .eq(BpmProcessInstanceExtDO::getProcessInstanceId, updateObj.getProcessInstanceId()));
     }
 
 }

+ 2 - 2
yudao-module-bpm/yudao-module-bpm-base/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.task;
 
-import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -20,6 +20,6 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
     }
 
     default List<BpmTaskExtDO> selectListByProcessInstanceId(String processInstanceId) {
-        return selectList("process_instance_id", processInstanceId);
+        return selectList(BpmTaskExtDO::getProcessInstanceId, processInstanceId);
     }
 }

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.codegen;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenColumnListConditionEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -15,6 +16,7 @@ import lombok.experimental.Accessors;
  * @author 芋道源码
  */
 @TableName(value = "infra_codegen_column", autoResultMap = true)
+@KeySequence("infra_codegen_column_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO;
 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenSceneEnum;
 import cn.iocoder.yudao.module.infra.enums.codegen.CodegenTemplateTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -15,6 +16,7 @@ import lombok.experimental.Accessors;
  * @author 芋道源码
  */
 @TableName(value = "infra_codegen_table", autoResultMap = true)
+@KeySequence("infra_codegen_table_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)

+ 6 - 4
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.config;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.infra.enums.config.ConfigTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -15,6 +16,7 @@ import lombok.ToString;
  * @author 芋道源码
  */
 @TableName("infra_config")
+@KeySequence("infra_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
@@ -28,7 +30,7 @@ public class ConfigDO extends BaseDO {
     /**
      * 参数分组
      */
-    @TableField("`group`")
+    @TableField("\"group\"")
     private String group;
     /**
      * 参数名称
@@ -37,7 +39,7 @@ public class ConfigDO extends BaseDO {
     /**
      * 参数键名
      */
-    @TableField("`key`")
+    @TableField("\"key\"")
     private String key;
     /**
      * 参数键值
@@ -48,14 +50,14 @@ public class ConfigDO extends BaseDO {
      *
      * 枚举 {@link ConfigTypeEnum}
      */
-    @TableField("`type`")
+    @TableField("\"type\"")
     private Integer type;
     /**
      * 是否敏感
      *
      * 对于敏感配置,需要管理权限才能查看
      */
-    @TableField("`sensitive`")
+    @TableField("\"sensitive\"")
     private Boolean sensitive;
     /**
      * 备注

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.infra.dal.dataobject.db;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -10,6 +11,7 @@ import lombok.Data;
  * @author 芋道源码
  */
 @TableName("infra_data_source_config")
+@KeySequence("infra_data_source_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 public class DataSourceConfigDO extends BaseDO {
 

+ 3 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.file;
 import cn.iocoder.yudao.framework.file.core.client.FileClientConfig;
 import cn.iocoder.yudao.framework.file.core.enums.FileStorageEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
@@ -13,8 +14,9 @@ import lombok.*;
  *
  * @author 芋道源码
  */
-@Data
 @TableName(value = "infra_file_config", autoResultMap = true)
+@KeySequence("infra_file_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 @Builder

+ 3 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.file;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -13,8 +14,9 @@ import lombok.*;
  *
  * @author 芋道源码
  */
-@Data
 @TableName("infra_file_content")
+@KeySequence("infra_file_content_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 @Builder

+ 4 - 2
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.infra.dal.dataobject.file;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -13,8 +14,9 @@ import java.io.InputStream;
  *
  * @author 芋道源码
  */
-@Data
 @TableName("infra_file")
+@KeySequence("infra_file_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 @Builder
@@ -45,7 +47,7 @@ public class FileDO extends BaseDO {
      *
      * 通过 {@link cn.hutool.core.io.FileTypeUtil#getType(InputStream)} 获取
      */
-    @TableField(value = "`type`")
+    @TableField("\"type\"")
     private String type;
     /**
      * 文件大小

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.job;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.infra.enums.job.JobStatusEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -12,6 +13,7 @@ import lombok.*;
  * @author 芋道源码
  */
 @TableName("infra_job")
+@KeySequence("infra_job_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.job;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.module.infra.enums.job.JobLogStatusEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -14,6 +15,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("infra_job_log")
+@KeySequence("infra_job_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.logger;
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -15,6 +16,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("infra_api_access_log")
+@KeySequence(value = "infra_api_access_log_seq")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.infra.dal.dataobject.logger;
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.infra.enums.logger.ApiErrorLogProcessStatusEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -21,6 +22,7 @@ import java.util.Date;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
+@KeySequence(value = "infra_api_error_log_seq")
 public class ApiErrorLogDO extends BaseDO {
 
     /**

+ 2 - 0
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/test/TestDemoDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.infra.dal.dataobject.test;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -11,6 +12,7 @@ import lombok.*;
  * @author 芋道源码
  */
 @TableName("infra_test_demo")
+@KeySequence("infra_test_demo_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 6 - 4
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenColumnMapper.java

@@ -1,8 +1,8 @@
 package cn.iocoder.yudao.module.infra.dal.mysql.codegen;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenColumnDO;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -11,12 +11,14 @@ import java.util.List;
 public interface CodegenColumnMapper extends BaseMapperX<CodegenColumnDO> {
 
     default List<CodegenColumnDO> selectListByTableId(Long tableId) {
-        return selectList(new QueryWrapper<CodegenColumnDO>().eq("table_id", tableId)
-                .orderByAsc("ordinal_position"));
+        return selectList(new LambdaQueryWrapperX<CodegenColumnDO>()
+                .eq(CodegenColumnDO::getTableId, tableId)
+                .orderByAsc(CodegenColumnDO::getId));
     }
 
     default void deleteListByTableId(Long tableId) {
-        delete(new QueryWrapper<CodegenColumnDO>().eq("table_id", tableId));
+        delete(new LambdaQueryWrapperX<CodegenColumnDO>()
+                .eq(CodegenColumnDO::getTableId, tableId));
     }
 
 }

+ 5 - 5
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/codegen/CodegenTableMapper.java

@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.mysql.codegen;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.infra.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.codegen.CodegenTableDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -18,10 +18,10 @@ public interface CodegenTableMapper extends BaseMapperX<CodegenTableDO> {
     }
 
     default PageResult<CodegenTableDO> selectPage(CodegenTablePageReqVO pageReqVO) {
-        return selectPage(pageReqVO, new QueryWrapperX<CodegenTableDO>()
-                .likeIfPresent("table_name", pageReqVO.getTableName())
-                .likeIfPresent("table_comment", pageReqVO.getTableComment())
-                .betweenIfPresent("create_time", pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime()));
+        return selectPage(pageReqVO, new LambdaQueryWrapperX<CodegenTableDO>()
+                .likeIfPresent(CodegenTableDO::getTableName, pageReqVO.getTableName())
+                .likeIfPresent(CodegenTableDO::getTableComment, pageReqVO.getTableComment())
+                .betweenIfPresent(CodegenTableDO::getCreateTime, pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime()));
     }
 
     default List<CodegenTableDO> selectListByDataSourceConfigId(Long dataSourceConfigId) {

+ 12 - 13
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/config/ConfigMapper.java

@@ -2,11 +2,10 @@ package cn.iocoder.yudao.module.infra.dal.mysql.config;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.config.vo.ConfigPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.config.ConfigDO;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -15,23 +14,23 @@ import java.util.List;
 public interface ConfigMapper extends BaseMapperX<ConfigDO> {
 
     default ConfigDO selectByKey(String key) {
-        return selectOne(new QueryWrapper<ConfigDO>().eq("`key`", key));
+        return selectOne(ConfigDO::getKey, key);
     }
 
     default PageResult<ConfigDO> selectPage(ConfigPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<ConfigDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`key`", reqVO.getKey())
-                .eqIfPresent("`type`", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
+        return selectPage(reqVO, new LambdaQueryWrapperX<ConfigDO>()
+                .likeIfPresent(ConfigDO::getName, reqVO.getName())
+                .likeIfPresent(ConfigDO::getKey, reqVO.getKey())
+                .eqIfPresent(ConfigDO::getType, reqVO.getType())
+                .betweenIfPresent(ConfigDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
     }
 
     default List<ConfigDO> selectList(ConfigExportReqVO reqVO) {
-        return selectList(new QueryWrapperX<ConfigDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`key`", reqVO.getKey())
-                .eqIfPresent("`type`", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
+        return selectList(new LambdaQueryWrapperX<ConfigDO>()
+                .likeIfPresent(ConfigDO::getName, reqVO.getName())
+                .likeIfPresent(ConfigDO::getKey, reqVO.getKey())
+                .eqIfPresent(ConfigDO::getType, reqVO.getType())
+                .betweenIfPresent(ConfigDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
     }
 
 }

+ 6 - 6
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/FileMapper.java

@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.infra.dal.mysql.file;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -16,11 +16,11 @@ import org.apache.ibatis.annotations.Mapper;
 public interface FileMapper extends BaseMapperX<FileDO> {
 
     default PageResult<FileDO> selectPage(FilePageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<FileDO>()
-                .likeIfPresent("path", reqVO.getPath())
-                .likeIfPresent("type", reqVO.getType())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("create_time"));
+        return selectPage(reqVO, new LambdaQueryWrapperX<FileDO>()
+                .likeIfPresent(FileDO::getPath, reqVO.getPath())
+                .likeIfPresent(FileDO::getType, reqVO.getType())
+                .betweenIfPresent(FileDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
+                .orderByDesc(FileDO::getId));
     }
 
 }

+ 10 - 1
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/DefaultDatabaseQueryTest.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.infra.service;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.generator.IDatabaseQuery.DefaultDatabaseQuery;
 import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
 import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
@@ -10,7 +11,9 @@ import java.util.List;
 public class DefaultDatabaseQueryTest {
 
     public static void main(String[] args) {
-        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:oracle:thin:@127.0.0.1:1521:xe",
+//        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:oracle:thin:@127.0.0.1:1521:xe",
+//                "root", "123456").build();
+        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro",
                 "root", "123456").build();
 //        StrategyConfig strategyConfig = new StrategyConfig.Builder().build();
 
@@ -20,6 +23,12 @@ public class DefaultDatabaseQueryTest {
 
         long time = System.currentTimeMillis();
         List<TableInfo> tableInfos = query.queryTables();
+        for (TableInfo tableInfo : tableInfos) {
+            if (StrUtil.startWithAny(tableInfo.getName().toLowerCase(), "act_", "flw_", "qrtz_")) {
+                continue;
+            }
+            System.out.println(String.format("CREATE SEQUENCE %s_seq MINVALUE 0;", tableInfo.getName()));
+        }
         System.out.println(tableInfos.size());
         System.out.println(System.currentTimeMillis() - time);
     }

+ 4 - 0
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/db/DataSourceConfigServiceImplTest.java

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigCrea
 import cn.iocoder.yudao.module.infra.controller.admin.db.vo.DataSourceConfigUpdateReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.db.DataSourceConfigDO;
 import cn.iocoder.yudao.module.infra.dal.mysql.db.DataSourceConfigMapper;
+import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
 import org.jasypt.encryption.StringEncryptor;
 import org.junit.jupiter.api.Test;
 import org.mockito.MockedStatic;
@@ -39,6 +40,9 @@ public class DataSourceConfigServiceImplTest extends BaseDbUnitTest {
     @MockBean
     private StringEncryptor stringEncryptor;
 
+    @MockBean
+    private DynamicDataSourceProperties dynamicDataSourceProperties;
+
     @Test
     public void testCreateDataSourceConfig_success() {
         try (MockedStatic<JdbcUtils> databaseUtilsMock = mockStatic(JdbcUtils.class)) {

+ 2 - 0
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.dal.dataobject.user;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -17,6 +18,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName(value = "member_user", autoResultMap = true)
+@KeySequence("member_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayAppDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -16,6 +17,7 @@ import lombok.*;
  * @author 芋道源码
  */
 @TableName("pay_app")
+@KeySequence("pay_app_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 3 - 1
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayChannelDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
 import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
@@ -17,8 +18,9 @@ import lombok.*;
  *
  * @author 芋道源码
  */
-@Data
 @TableName(value = "pay_channel", autoResultMap = true)
+@KeySequence("pay_channel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 @Builder

+ 3 - 5
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayMerchantDO.java

@@ -2,10 +2,7 @@ package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.*;
 
 /**
@@ -14,8 +11,9 @@ import lombok.*;
  *
  * @author 芋道源码
  */
-@Data
 @TableName("pay_merchant")
+@KeySequence("pay_merchant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pay.dal.dataobject.notify;
 
 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -12,6 +13,7 @@ import lombok.*;
  * @author 芋道源码
  */
 @TableName("pay_notify_log")
+@KeySequence("pay_notify_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -21,6 +22,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("pay_notify_task")
+@KeySequence("pay_notify_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.pay.enums.refund.PayRefundTypeEnum;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -19,6 +20,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("pay_order")
+@KeySequence("pay_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pay.dal.dataobject.order;
 import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
 import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
@@ -17,6 +18,7 @@ import java.util.Map;
  * @author 芋道源码
  */
 @TableName(value = "pay_order_extension",autoResultMap = true)
+@KeySequence("pay_order_extension_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.pay.enums.refund.PayRefundStatusEnum;
 import cn.iocoder.yudao.module.pay.enums.refund.PayRefundTypeEnum;
 import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -23,6 +24,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("pay_refund")
+@KeySequence("pay_refund_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 0 - 2
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/merchant/PayChannelMapper.java

@@ -32,7 +32,6 @@ public interface PayChannelMapper extends BaseMapperX<PayChannelDO> {
                 .eqIfPresent("fee_rate", reqVO.getFeeRate())
                 .eqIfPresent("merchant_id", reqVO.getMerchantId())
                 .eqIfPresent("app_id", reqVO.getAppId())
-                // .eqIfPresent("config", reqVO.getConfig())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
                 .orderByDesc("id")        );
     }
@@ -45,7 +44,6 @@ public interface PayChannelMapper extends BaseMapperX<PayChannelDO> {
                 .eqIfPresent("fee_rate", reqVO.getFeeRate())
                 .eqIfPresent("merchant_id", reqVO.getMerchantId())
                 .eqIfPresent("app_id", reqVO.getAppId())
-                // .eqIfPresent("config", reqVO.getConfig())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
                 .orderByDesc("id")        );
     }

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/auth/UserSessionDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Builder;
@@ -22,6 +23,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName(value = "system_user_session", autoResultMap = true)
+@KeySequence("system_user_session_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @Builder
 @EqualsAndHashCode(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dept;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
  * @author 芋道源码
  */
 @TableName("system_dept")
+@KeySequence("system_dept_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DeptDO extends BaseDO {

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dept;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -13,6 +14,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_post")
+@KeySequence("system_post_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class PostDO extends BaseDO {

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -13,6 +14,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_dict_data")
+@KeySequence("system_dict_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class DictDataDO extends BaseDO {

+ 3 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.dict;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -13,6 +14,7 @@ import lombok.*;
  * @author ruoyi
  */
 @TableName("system_dict_type")
+@KeySequence("system_dict_type_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)
@@ -33,7 +35,7 @@ public class DictTypeDO extends BaseDO {
     /**
      * 字典类型
      */
-    @TableField("`type`")
+    @TableField("\"type\"")
     private String type;
     /**
      * 状态

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/errorcode/ErrorCodeDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.errorcode;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.enums.errorcode.ErrorCodeTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -14,6 +15,7 @@ import lombok.ToString;
  * @author 芋道源码
  */
 @TableName(value = "system_error_code")
+@KeySequence("system_error_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -17,6 +18,7 @@ import lombok.ToString;
  * @author 芋道源码
  */
 @TableName("system_login_log")
+@KeySequence("system_login_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -20,6 +21,7 @@ import java.util.Map;
  * @author 芋道源码
  */
 @TableName(value = "system_operate_log", autoResultMap = true)
+@KeySequence("system_operate_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class OperateLogDO extends BaseDO {

+ 3 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.notice;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.enums.notice.NoticeTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_notice")
+@KeySequence("system_notice_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class NoticeDO extends BaseDO {
@@ -31,7 +33,7 @@ public class NoticeDO extends BaseDO {
      *
      * 枚举 {@link NoticeTypeEnum}
      */
-    @TableField("notice_type")
+    @TableField("\"type\"")
     private Integer type;
     /**
      * 公告内容

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.permission;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_menu")
+@KeySequence("system_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class MenuDO extends BaseDO {

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
 import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -19,6 +20,7 @@ import java.util.Set;
  * @author ruoyi
  */
 @TableName(value = "system_role", autoResultMap = true)
+@KeySequence("system_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class RoleDO extends TenantBaseDO {

+ 2 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java

@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.permission;
 
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -13,6 +13,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_role_menu")
+@KeySequence("system_role_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class RoleMenuDO extends TenantBaseDO {

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.permission;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -12,6 +13,7 @@ import lombok.EqualsAndHashCode;
  * @author ruoyi
  */
 @TableName("system_user_role")
+@KeySequence("system_user_role_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class UserRoleDO extends BaseDO {

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sensitiveword/SensitiveWordDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sensitiveword;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.type.StringLiSTTypeHandler;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,6 +17,7 @@ import java.util.List;
  * @author 永不言败
  */
 @TableName(value = "system_sensitive_word", autoResultMap = true)
+@KeySequence("system_sensitive_word_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -15,6 +16,7 @@ import lombok.ToString;
  * @since 2021-01-25
  */
 @TableName(value = "system_sms_channel", autoResultMap = true)
+@KeySequence("system_sms_channel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.system.dal.dataobject.sms;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -14,6 +15,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName("system_sms_code")
+@KeySequence("system_sms_code_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
@@ -20,6 +21,7 @@ import java.util.Map;
  * @since 2021-01-25
  */
 @TableName(value = "system_sms_log", autoResultMap = true)
+@KeySequence("system_sms_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.sms;
 import cn.iocoder.yudao.module.system.enums.sms.SmsTemplateTypeEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
@@ -19,6 +20,7 @@ import java.util.List;
  * @since 2021-01-25
  */
 @TableName(value = "system_sms_template", autoResultMap = true)
+@KeySequence("system_sms_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.social;
 
 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -12,6 +13,7 @@ import lombok.*;
  * @author 芋道源码
  */
 @TableName(value = "system_social_user_bind", autoResultMap = true)
+@KeySequence("system_social_user_bind_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.social;
 
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -12,6 +13,7 @@ import lombok.*;
  * @author weir
  */
 @TableName(value = "system_social_user", autoResultMap = true)
+@KeySequence("system_social_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
 
@@ -14,6 +15,7 @@ import java.util.Date;
  * @author 芋道源码
  */
 @TableName(value = "system_tenant", autoResultMap = true)
+@KeySequence("system_tenant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.dal.dataobject.tenant;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
@@ -15,6 +16,7 @@ import java.util.Set;
  * @author 芋道源码
  */
 @TableName(value = "system_tenant_package", autoResultMap = true)
+@KeySequence("system_tenant_package_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
 import cn.iocoder.yudao.module.system.enums.common.SexEnum;
+import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -19,6 +20,7 @@ import java.util.Set;
  * @author 芋道源码
  */
 @TableName(value = "system_user", autoResultMap = true)
+@KeySequence("system_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Builder

+ 13 - 13
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/DictTypeMapper.java

@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeExportReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
@@ -14,27 +14,27 @@ import java.util.List;
 public interface DictTypeMapper extends BaseMapperX<DictTypeDO> {
 
     default PageResult<DictTypeDO> selectPage(DictTypePageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<DictTypeDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`type`", reqVO.getType())
-                .eqIfPresent("status", reqVO.getStatus())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()));
+        return selectPage(reqVO, new LambdaQueryWrapperX<DictTypeDO>()
+                .likeIfPresent(DictTypeDO::getName, reqVO.getName())
+                .likeIfPresent(DictTypeDO::getType, reqVO.getType())
+                .eqIfPresent(DictTypeDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(DictTypeDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()));
     }
 
     default List<DictTypeDO> selectList(DictTypeExportReqVO reqVO) {
-        return selectList(new QueryWrapperX<DictTypeDO>()
-                .likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("`type`", reqVO.getType())
-                .eqIfPresent("status", reqVO.getStatus())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()));
+        return selectList(new LambdaQueryWrapperX<DictTypeDO>()
+                .likeIfPresent(DictTypeDO::getName, reqVO.getName())
+                .likeIfPresent(DictTypeDO::getType, reqVO.getType())
+                .eqIfPresent(DictTypeDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(DictTypeDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()));
     }
 
     default DictTypeDO selectByType(String type) {
-        return selectOne(new QueryWrapperX<DictTypeDO>().eq("`type`", type));
+        return selectOne(DictTypeDO::getType, type);
     }
 
     default DictTypeDO selectByName(String name) {
-        return selectOne(new QueryWrapperX<DictTypeDO>().eq("name", name));
+        return selectOne(DictTypeDO::getName, name);
     }
 
 }

+ 4 - 4
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notice/NoticeMapper.java

@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.notice;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.system.controller.admin.notice.vo.NoticePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.notice.NoticeDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -11,9 +11,9 @@ import org.apache.ibatis.annotations.Mapper;
 public interface NoticeMapper extends BaseMapperX<NoticeDO> {
 
     default PageResult<NoticeDO> selectPage(NoticePageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<NoticeDO>()
-                .likeIfPresent("title", reqVO.getTitle())
-                .eqIfPresent("status", reqVO.getStatus()));
+        return selectPage(reqVO, new LambdaQueryWrapperX<NoticeDO>()
+                .likeIfPresent(NoticeDO::getTitle, reqVO.getTitle())
+                .eqIfPresent(NoticeDO::getStatus, reqVO.getStatus()));
     }
 
 }

+ 15 - 13
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java

@@ -1,9 +1,9 @@
 package cn.iocoder.yudao.module.system.dal.mysql.permission;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
@@ -19,29 +19,31 @@ import java.util.List;
 public interface RoleMapper extends BaseMapperX<RoleDO> {
 
     default PageResult<RoleDO> selectPage(RolePageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<RoleDO>().likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("code", reqVO.getCode())
-                .eqIfPresent("status", reqVO.getStatus())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
+        return selectPage(reqVO, new LambdaQueryWrapperX<RoleDO>()
+                .likeIfPresent(RoleDO::getName, reqVO.getName())
+                .likeIfPresent(RoleDO::getCode, reqVO.getCode())
+                .eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(BaseDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
     }
 
-    default List<RoleDO> listRoles(RoleExportReqVO reqVO) {
-        return selectList(new QueryWrapperX<RoleDO>().likeIfPresent("name", reqVO.getName())
-                .likeIfPresent("code", reqVO.getCode())
-                .eqIfPresent("status", reqVO.getStatus())
-                .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
+    default List<RoleDO> selectList(RoleExportReqVO reqVO) {
+        return selectList(new LambdaQueryWrapperX<RoleDO>()
+                .likeIfPresent(RoleDO::getName, reqVO.getName())
+                .likeIfPresent(RoleDO::getCode, reqVO.getCode())
+                .eqIfPresent(RoleDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(BaseDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime()));
     }
 
     default RoleDO selectByName(String name) {
-        return selectOne(new QueryWrapperX<RoleDO>().eq("name", name));
+        return selectOne(RoleDO::getName, name);
     }
 
     default RoleDO selectByCode(String code) {
-        return selectOne(new QueryWrapperX<RoleDO>().eq("code", code));
+        return selectOne(RoleDO::getCode, code);
     }
 
     default List<RoleDO> selectListByStatus(@Nullable Collection<Integer> statuses) {
-        return selectList(new LambdaQueryWrapperX<RoleDO>().inIfPresent(RoleDO::getStatus, statuses));
+        return selectList(RoleDO::getStatus, statuses);
     }
 
     @Select("SELECT id FROM system_role WHERE update_time > #{maxUpdateTime} LIMIT 1")

+ 6 - 6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java

@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.sms;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsChannelDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -14,11 +14,11 @@ import java.util.Date;
 public interface SmsChannelMapper extends BaseMapperX<SmsChannelDO> {
 
     default PageResult<SmsChannelDO> selectPage(SmsChannelPageReqVO reqVO) {
-        return selectPage(reqVO, new QueryWrapperX<SmsChannelDO>()
-                .likeIfPresent("signature", reqVO.getSignature())
-                .eqIfPresent("status", reqVO.getStatus())
-                .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-                .orderByDesc("id"));
+        return selectPage(reqVO, new LambdaQueryWrapperX<SmsChannelDO>()
+                .likeIfPresent(SmsChannelDO::getSignature, reqVO.getSignature())
+                .eqIfPresent(SmsChannelDO::getStatus, reqVO.getStatus())
+                .betweenIfPresent(SmsChannelDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
+                .orderByDesc(SmsChannelDO::getId));
     }
 
     @Select("SELECT id FROM system_sms_channel WHERE update_time > #{maxUpdateTime} LIMIT 1")

+ 11 - 5
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/errorcode/core/generator/ErrorCodeAutoGeneratorImpl.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.system.framework.errorcode.core.generator;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.exceptions.ExceptionUtil;
 import cn.hutool.core.util.ClassUtil;
 import cn.hutool.core.util.ReflectUtil;
 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
@@ -57,7 +58,7 @@ public class ErrorCodeAutoGeneratorImpl implements ErrorCodeAutoGenerator {
      *
      * @return 错误码数组
      */
-    private List<ErrorCodeAutoGenerateReqDTO>  parseErrorCode() {
+    private List<ErrorCodeAutoGenerateReqDTO> parseErrorCode() {
         // 校验 errorCodeConstantsClass 参数
         if (CollUtil.isEmpty(constantsClassList)) {
             log.info("[execute][未配置 yudao.error-code.constants-class-list 配置项,不进行自动写入到 system 服务中]");
@@ -67,10 +68,15 @@ public class ErrorCodeAutoGeneratorImpl implements ErrorCodeAutoGenerator {
         // 解析错误码
         List<ErrorCodeAutoGenerateReqDTO> autoGenerateDTOs = new ArrayList<>();
         constantsClassList.forEach(constantsClass -> {
-            // 解析错误码枚举类
-            Class<?> errorCodeConstantsClazz = ClassUtil.loadClass(constantsClass);
-            // 解析错误码
-            autoGenerateDTOs.addAll(parseErrorCode(errorCodeConstantsClazz));
+            try {
+                // 解析错误码枚举类
+                Class<?> errorCodeConstantsClazz = ClassUtil.loadClass(constantsClass);
+                // 解析错误码
+                autoGenerateDTOs.addAll(parseErrorCode(errorCodeConstantsClazz));
+            } catch (Exception ex) {
+                log.warn("[parseErrorCode][constantsClass({}) 加载失败({})]", constantsClass,
+                        ExceptionUtil.getRootCauseMessage(ex));
+            }
         });
         return autoGenerateDTOs;
     }

+ 1 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java

@@ -247,7 +247,7 @@ public class RoleServiceImpl implements RoleService {
 
     @Override
     public List<RoleDO> getRoleList(RoleExportReqVO reqVO) {
-        return roleMapper.listRoles(reqVO);
+        return roleMapper.selectList(reqVO);
     }
 
     /**

+ 2 - 2
yudao-module-system/yudao-module-system-biz/src/test/resources/sql/create_tables.sql

@@ -78,7 +78,7 @@ CREATE TABLE IF NOT EXISTS "system_menu" (
     "component" varchar(255) DEFAULT NULL,
     "status" tinyint NOT NULL DEFAULT '0',
     "visible" bit NOT NULL DEFAULT TRUE,
-    "hidden" bit NOT NULL DEFAULT TRUE,
+    "keep_alive" bit NOT NULL DEFAULT TRUE,
     "creator" varchar(64) DEFAULT '',
     "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
     "updater" varchar(64) DEFAULT '',
@@ -151,7 +151,7 @@ CREATE TABLE IF NOT EXISTS "system_notice" (
 	"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
 	"title" varchar(50) NOT NULL COMMENT '公告标题',
 	"content" text NOT NULL COMMENT '公告内容',
-	"notice_type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)',
+	"type" tinyint NOT NULL COMMENT '公告类型(1通知 2公告)',
 	"status" tinyint NOT NULL DEFAULT '0' COMMENT '公告状态(0正常 1关闭)',
 	"creator" varchar(64) DEFAULT '' COMMENT '创建者',
 	"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

+ 1 - 1
yudao-server/src/main/resources/application-dev.yaml

@@ -36,7 +36,7 @@ spring:
         time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
         min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
         max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
-        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
+        validation-query: SELECT 1 # 配置检测连接是否有效
         test-while-idle: true
         test-on-borrow: false
         test-on-return: false

+ 5 - 5
yudao-server/src/main/resources/application-local.yaml

@@ -36,7 +36,7 @@ spring:
         time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
         min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
         max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
-        validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
+        validation-query: SELECT 1 # 配置检测连接是否有效
         test-while-idle: true
         test-on-borrow: false
         test-on-return: false
@@ -44,14 +44,14 @@ spring:
       datasource:
         master:
           name: ruoyi-vue-pro
-          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
-          driver-class-name: com.mysql.jdbc.Driver
+          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL 连接的示例
+#          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例
           username: root
           password: 123456
         slave: # 模拟从库,可根据自己需要修改
           name: ruoyi-vue-pro
-          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
-          driver-class-name: com.mysql.jdbc.Driver
+          url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL 连接的示例
+#          url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例
           username: root
           password: 123456
 

+ 5 - 2
yudao-server/src/main/resources/application.yaml

@@ -39,7 +39,7 @@ spring:
 
 # 工作流 Flowable 配置
 flowable:
-  # 1. false: 默认值,activiti启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常
+  # 1. false: 默认值,Flowable 启动时,对比数据库表中保存的版本,如果不匹配。将抛出异常
   # 2. true: 启动时会对数据库中所有表进行更新操作,如果表存在,不做处理,反之,自动创建表
   # 3. create_drop: 启动时自动创建表,关闭时自动删除表
   # 4. drop_create: 启动时,删除旧表,再创建新表
@@ -54,7 +54,10 @@ mybatis-plus:
     map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。
   global-config:
     db-config:
-      id-type: AUTO # 自增 ID
+      id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。
+#      id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库
+#      id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库
+#      id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解
       logic-delete-value: 1 # 逻辑已删除值(默认为 1)
       logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
   type-aliases-package: ${yudao.info.base-package}.module.*.dal.dataobject

Some files were not shown because too many files changed in this diff