Просмотр исходного кода

Merge branch 'test-transfer' into develop-debt

* test-transfer:
  自动建收支明细表
  定时任务机具循环,自动建表迁移到定时任务模块
  新建定时任务
  定时任务
  定时任务执行
mac 2 лет назад
Родитель
Сommit
49f966c84e
45 измененных файлов с 702 добавлено и 260 удалено
  1. 95 0
      .drone.yml
  2. 149 116
      db/kxs_job.sql
  3. 96 0
      drone/.drone-test.yml
  4. 9 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java
  5. 24 41
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/task/KxsProductTask.java
  6. 102 0
      kxs-quartz/pom.xml
  7. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/KxsQuartzApplication.java
  8. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/AutowireCapableBeanJobFactory.java
  9. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyInitQuartzJob.java
  10. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzConfig.java
  11. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzCustomizerConfig.java
  12. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzFactory.java
  13. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzInvokeFactory.java
  14. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/constants/JobTypeQuartzEnum.java
  15. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/constants/SkyQuartzEnum.java
  16. 7 7
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/controller/SysJobController.java
  17. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/controller/SysJobLogController.java
  18. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/entity/SysJob.java
  19. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/entity/SysJobLog.java
  20. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobEvent.java
  21. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobListener.java
  22. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobLogEvent.java
  23. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobLogListener.java
  24. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/exception/TaskException.java
  25. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/mapper/SysJobLogMapper.java
  26. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/mapper/SysJobMapper.java
  27. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/SysJobLogService.java
  28. 2 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/SysJobService.java
  29. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/impl/SysJobLogServiceImpl.java
  30. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/impl/SysJobServiceImpl.java
  31. 43 0
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/ProductBeanTask.java
  32. 1 1
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/RestTaskDemo.java
  33. 4 2
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/SpringBeanTaskDemo.java
  34. 55 0
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/UserBeanTask.java
  35. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/ITaskInvoke.java
  36. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/JarTaskInvoke.java
  37. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/JavaClassTaskInvoke.java
  38. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/RestTaskInvoke.java
  39. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/SpringBeanTaskInvoke.java
  40. 3 3
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskInvokFactory.java
  41. 7 7
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskInvokUtil.java
  42. 4 4
      kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskUtil.java
  43. 19 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java
  44. 18 11
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/task/KxsUserTaskJob.java
  45. 1 3
      kxs-user/kxs-user-biz/src/test/java/com/kxs/user/biz/ImportData.java

+ 95 - 0
.drone.yml

@@ -93,6 +93,101 @@ trigger:
       - pull_request
       - pull_request
       - push
       - push
 
 
+---
+kind: pipeline
+type: docker
+name: kxs-quartz-test
+
+volumes: # 声明数据卷
+  - name: mvn_repo # 数据卷名称
+    # Host Volume, 挂载到宿主机上的卷轴
+    host:
+      # 宿主机的绝对路径
+      path: /home/ABServer/cache/mvn_repo
+  - name: mvn_config
+    host:
+      path: /home/ABServer/config/mvn/
+  - name: targetDir
+    host:
+      path: /kxs-quartz
+
+clone:
+  disable: false # 启用代码拉取
+
+steps:
+  - name: build-project
+    image: maven:3.9.4-amazoncorretto-17
+    pull: if-not-exists
+    depends_on: [clone] # 依赖的步骤
+    volumes: # 挂载数据卷
+      - name: mvn_repo # 数据卷名称
+        path: /usr/share/maven/repo # 容器内目录 绝对路径
+      - name: targetDir
+        path: /drone/src/dist/
+      - name: mvn_config
+        path: /usr/share/maven/conf/
+    commands: # 执行命令
+      - mvn clean package -Dmaven.test.skip=true -P test
+      - cp /drone/src/kxs-quartz/target/*.jar /drone/src/dist/ && cp -r /drone/src/kxs-quartz/target/lib /drone/src/dist/ && cp -r /drone/src/kxs-quartz/target/config /drone/src/dist/ # 复制文件
+    when:
+      status:
+        - success # 当前步骤成功时执行
+  - name: scp-project
+    image: appleboy/drone-scp
+    pull: if-not-exists
+    depends_on: [build-project] # 依赖的步骤
+    volumes: # 挂载数据卷
+      - name: targetDir # 数据卷名称
+        path: /kxs-quartz # 容器内目录 绝对路径
+    settings:
+      host:
+        from_secret: host
+      username:
+        from_secret: username
+      password:
+        from_secret: userpwd
+      port: 22
+      command_timeout: 2m
+      target: /home/ABServer/deploy-ready/
+      source:
+        - echo ====开始拷贝=======
+        - /kxs-quartz/*.jar
+        - /kxs-quartz/lib
+        - /kxs-quartz/config
+        - echo ====结束拷贝=======
+      when:
+        status:
+          - success # 当前步骤成功时执行
+
+  - name: deploy-project
+    image: appleboy/drone-ssh
+    pull: if-not-exists
+    depends_on: [scp-project] # 依赖的步骤
+    settings:
+      host:
+        from_secret: host
+      username:
+        from_secret: username
+      password:
+        from_secret: userpwd
+      port: 22
+      command_timeout: 2m
+      script:
+        - echo ====开始部署=======
+        - cd /home/ABServer/
+        - cp -r /home/ABServer/deploy-ready/kxs-quartz /home/ABServer/webroot/
+        - docker restart kxs-quartz
+        # - docker restart nodeServer1
+        - echo ====部署成功=======
+
+trigger:
+  branch:
+    include:
+      - test-quartz
+  event:
+    include:
+      - pull_request
+      - push
 
 
 ---
 ---
 kind: pipeline
 kind: pipeline

+ 149 - 116
db/kxs_job.sql

@@ -1,17 +1,17 @@
 /*
 /*
  Navicat Premium Data Transfer
  Navicat Premium Data Transfer
 
 
- Source Server         : local
+ Source Server         : kxs-test
  Source Server Type    : MySQL
  Source Server Type    : MySQL
- Source Server Version : 80032
- Source Host           : localhost:3306
+ Source Server Version : 80034 (8.0.34-magnus-server)
+ Source Host           : jumpserver.kexiaoshuang.com:33061
  Source Schema         : kxs_job
  Source Schema         : kxs_job
 
 
  Target Server Type    : MySQL
  Target Server Type    : MySQL
- Target Server Version : 80032
+ Target Server Version : 80034 (8.0.34-magnus-server)
  File Encoding         : 65001
  File Encoding         : 65001
 
 
- Date: 14/11/2023 22:34:11
+ Date: 21/03/2024 13:33:11
 */
 */
 
 
 SET NAMES utf8mb4;
 SET NAMES utf8mb4;
@@ -21,281 +21,314 @@ SET FOREIGN_KEY_CHECKS = 0;
 -- Table structure for QRTZ_BLOB_TRIGGERS
 -- Table structure for QRTZ_BLOB_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`;
-CREATE TABLE `QRTZ_BLOB_TRIGGERS`  (
+CREATE TABLE `QRTZ_BLOB_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `BLOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+  `BLOB_DATA` blob,
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
   CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
   CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_BLOB_TRIGGERS
 -- Records of QRTZ_BLOB_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_CALENDARS
 -- Table structure for QRTZ_CALENDARS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_CALENDARS`;
 DROP TABLE IF EXISTS `QRTZ_CALENDARS`;
-CREATE TABLE `QRTZ_CALENDARS`  (
+CREATE TABLE `QRTZ_CALENDARS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `CALENDAR_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `CALENDAR_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `CALENDAR` blob NOT NULL,
   `CALENDAR` blob NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_CALENDARS
 -- Records of QRTZ_CALENDARS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_CRON_TRIGGERS
 -- Table structure for QRTZ_CRON_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`;
-CREATE TABLE `QRTZ_CRON_TRIGGERS`  (
+CREATE TABLE `QRTZ_CRON_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `CRON_EXPRESSION` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `CRON_EXPRESSION` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+  `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
   CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
   CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_CRON_TRIGGERS
 -- Records of QRTZ_CRON_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_FIRED_TRIGGERS
 -- Table structure for QRTZ_FIRED_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`;
-CREATE TABLE `QRTZ_FIRED_TRIGGERS`  (
+CREATE TABLE `QRTZ_FIRED_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `ENTRY_ID` varchar(95) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `INSTANCE_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `INSTANCE_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `FIRED_TIME` bigint(0) NOT NULL,
-  `SCHED_TIME` bigint(0) NOT NULL,
-  `PRIORITY` int(0) NOT NULL,
+  `FIRED_TIME` bigint NOT NULL,
+  `SCHED_TIME` bigint NOT NULL,
+  `PRIORITY` int NOT NULL,
   `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_FIRED_TRIGGERS
 -- Records of QRTZ_FIRED_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_JOB_DETAILS
 -- Table structure for QRTZ_JOB_DETAILS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`;
 DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`;
-CREATE TABLE `QRTZ_JOB_DETAILS`  (
+CREATE TABLE `QRTZ_JOB_DETAILS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
   `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_DURABLE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `JOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  `JOB_DATA` blob,
+  PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_JOB_DETAILS
 -- Records of QRTZ_JOB_DETAILS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_LOCKS
 -- Table structure for QRTZ_LOCKS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_LOCKS`;
 DROP TABLE IF EXISTS `QRTZ_LOCKS`;
-CREATE TABLE `QRTZ_LOCKS`  (
+CREATE TABLE `QRTZ_LOCKS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `LOCK_NAME` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_LOCKS
 -- Records of QRTZ_LOCKS
 -- ----------------------------
 -- ----------------------------
-INSERT INTO `QRTZ_LOCKS` VALUES ('clusteredScheduler', 'STATE_ACCESS');
+BEGIN;
+INSERT INTO `QRTZ_LOCKS` (`SCHED_NAME`, `LOCK_NAME`) VALUES ('clusteredScheduler', 'STATE_ACCESS');
+INSERT INTO `QRTZ_LOCKS` (`SCHED_NAME`, `LOCK_NAME`) VALUES ('clusteredScheduler', 'TRIGGER_ACCESS');
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_PAUSED_TRIGGER_GRPS
 -- Table structure for QRTZ_PAUSED_TRIGGER_GRPS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`;
 DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`;
-CREATE TABLE `QRTZ_PAUSED_TRIGGER_GRPS`  (
+CREATE TABLE `QRTZ_PAUSED_TRIGGER_GRPS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_PAUSED_TRIGGER_GRPS
 -- Records of QRTZ_PAUSED_TRIGGER_GRPS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_SCHEDULER_STATE
 -- Table structure for QRTZ_SCHEDULER_STATE
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`;
 DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`;
-CREATE TABLE `QRTZ_SCHEDULER_STATE`  (
+CREATE TABLE `QRTZ_SCHEDULER_STATE` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `INSTANCE_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `INSTANCE_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `LAST_CHECKIN_TIME` bigint(0) NOT NULL,
-  `CHECKIN_INTERVAL` bigint(0) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+  `LAST_CHECKIN_TIME` bigint NOT NULL,
+  `CHECKIN_INTERVAL` bigint NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_SCHEDULER_STATE
 -- Records of QRTZ_SCHEDULER_STATE
 -- ----------------------------
 -- ----------------------------
-INSERT INTO `QRTZ_SCHEDULER_STATE` VALUES ('clusteredScheduler', 'BF-2023081715191699970687710', 1699972370383, 10000);
+BEGIN;
+INSERT INTO `QRTZ_SCHEDULER_STATE` (`SCHED_NAME`, `INSTANCE_NAME`, `LAST_CHECKIN_TIME`, `CHECKIN_INTERVAL`) VALUES ('clusteredScheduler', 'kxs-quartz1710998479361', 1710999190469, 10000);
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_SIMPLE_TRIGGERS
 -- Table structure for QRTZ_SIMPLE_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`;
-CREATE TABLE `QRTZ_SIMPLE_TRIGGERS`  (
+CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `REPEAT_COUNT` bigint(0) NOT NULL,
-  `REPEAT_INTERVAL` bigint(0) NOT NULL,
-  `TIMES_TRIGGERED` bigint(0) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+  `REPEAT_COUNT` bigint NOT NULL,
+  `REPEAT_INTERVAL` bigint NOT NULL,
+  `TIMES_TRIGGERED` bigint NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
   CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
   CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_SIMPLE_TRIGGERS
 -- Records of QRTZ_SIMPLE_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_SIMPROP_TRIGGERS
 -- Table structure for QRTZ_SIMPROP_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`;
-CREATE TABLE `QRTZ_SIMPROP_TRIGGERS`  (
+CREATE TABLE `QRTZ_SIMPROP_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `INT_PROP_1` int(0) NULL DEFAULT NULL,
-  `INT_PROP_2` int(0) NULL DEFAULT NULL,
-  `LONG_PROP_1` bigint(0) NULL DEFAULT NULL,
-  `LONG_PROP_2` bigint(0) NULL DEFAULT NULL,
-  `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
-  `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
-  `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+  `STR_PROP_1` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `STR_PROP_2` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `STR_PROP_3` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `INT_PROP_1` int DEFAULT NULL,
+  `INT_PROP_2` int DEFAULT NULL,
+  `LONG_PROP_1` bigint DEFAULT NULL,
+  `LONG_PROP_2` bigint DEFAULT NULL,
+  `DEC_PROP_1` decimal(13,4) DEFAULT NULL,
+  `DEC_PROP_2` decimal(13,4) DEFAULT NULL,
+  `BOOL_PROP_1` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `BOOL_PROP_2` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
   CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
   CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_SIMPROP_TRIGGERS
 -- Records of QRTZ_SIMPROP_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for QRTZ_TRIGGERS
 -- Table structure for QRTZ_TRIGGERS
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `QRTZ_TRIGGERS`;
 DROP TABLE IF EXISTS `QRTZ_TRIGGERS`;
-CREATE TABLE `QRTZ_TRIGGERS`  (
+CREATE TABLE `QRTZ_TRIGGERS` (
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `SCHED_NAME` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `JOB_GROUP` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `NEXT_FIRE_TIME` bigint(0) NULL DEFAULT NULL,
-  `PREV_FIRE_TIME` bigint(0) NULL DEFAULT NULL,
-  `PRIORITY` int(0) NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `NEXT_FIRE_TIME` bigint DEFAULT NULL,
+  `PREV_FIRE_TIME` bigint DEFAULT NULL,
+  `PRIORITY` int DEFAULT NULL,
   `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_STATE` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
   `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
-  `START_TIME` bigint(0) NOT NULL,
-  `END_TIME` bigint(0) NULL DEFAULT NULL,
-  `CALENDAR_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
-  `MISFIRE_INSTR` smallint(0) NULL DEFAULT NULL,
-  `JOB_DATA` blob NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
-  INDEX `SCHED_NAME`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
+  `START_TIME` bigint NOT NULL,
+  `END_TIME` bigint DEFAULT NULL,
+  `CALENDAR_NAME` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
+  `MISFIRE_INSTR` smallint DEFAULT NULL,
+  `JOB_DATA` blob,
+  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`) USING BTREE,
+  KEY `SCHED_NAME` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`) USING BTREE,
   CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
   CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of QRTZ_TRIGGERS
 -- Records of QRTZ_TRIGGERS
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for sys_job
 -- Table structure for sys_job
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `sys_job`;
 DROP TABLE IF EXISTS `sys_job`;
-CREATE TABLE `sys_job`  (
-  `job_id` bigint(0) NOT NULL COMMENT '任务id',
+CREATE TABLE `sys_job` (
+  `job_id` bigint NOT NULL COMMENT '任务id',
   `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务名称',
   `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务名称',
   `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务组名',
   `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务组名',
-  `job_order` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '组内执行顺利,值越大执行优先级越高,最大值9,最小值1',
+  `job_order` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '1' COMMENT '组内执行顺利,值越大执行优先级越高,最大值9,最小值1',
   `job_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '1、java类;2、spring bean名称;3、rest调用;4、jar调用;9其他',
   `job_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '1' COMMENT '1、java类;2、spring bean名称;3、rest调用;4、jar调用;9其他',
-  `execute_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'job_type=3时,rest调用地址,仅支持rest get协议,需要增加String返回值,0成功,1失败;job_type=4时,jar路径;其它值为空',
-  `class_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'job_type=1时,类完整路径;job_type=2时,spring bean名称;其它值为空',
-  `method_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '任务方法',
-  `method_params_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '参数值',
-  `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'cron执行表达式',
-  `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '3' COMMENT '错失执行策略(1错失周期立即执行 2错失周期执行一次 3下周期执行)',
-  `job_tenant_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '1' COMMENT '1、多租户任务;2、非多租户任务',
-  `job_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(1、未发布;2、运行中;3、暂停;4、删除;)',
-  `job_execute_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '0' COMMENT '状态(0正常 1异常)',
-  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建者',
-  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
-  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '更新者',
-  `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
-  `start_time` timestamp(0) NULL DEFAULT NULL COMMENT '初次执行时间',
-  `previous_time` timestamp(0) NULL DEFAULT NULL COMMENT '上次执行时间',
-  `next_time` timestamp(0) NULL DEFAULT NULL COMMENT '下次执行时间',
-  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT '' COMMENT '备注信息',
-  PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic;
+  `execute_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'job_type=3时,rest调用地址,仅支持rest get协议,需要增加String返回值,0成功,1失败;job_type=4时,jar路径;其它值为空',
+  `class_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'job_type=1时,类完整路径;job_type=2时,spring bean名称;其它值为空',
+  `method_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '任务方法',
+  `method_params_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '参数值',
+  `cron_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'cron执行表达式',
+  `misfire_policy` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '3' COMMENT '错失执行策略(1错失周期立即执行 2错失周期执行一次 3下周期执行)',
+  `job_tenant_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '1' COMMENT '1、多租户任务;2、非多租户任务',
+  `job_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '状态(1、未发布;2、运行中;3、暂停;4、删除;)',
+  `job_execute_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '0' COMMENT '状态(0正常 1异常)',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
+  `start_time` timestamp NULL DEFAULT NULL COMMENT '初次执行时间',
+  `previous_time` timestamp NULL DEFAULT NULL COMMENT '上次执行时间',
+  `next_time` timestamp NULL DEFAULT NULL COMMENT '下次执行时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '备注信息',
+  PRIMARY KEY (`job_id`,`job_name`,`job_group`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务调度表';
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of sys_job
 -- Records of sys_job
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+INSERT INTO `sys_job` (`job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `misfire_policy`, `job_tenant_type`, `job_status`, `job_execute_status`, `create_by`, `create_time`, `update_by`, `update_time`, `start_time`, `previous_time`, `next_time`, `remark`) VALUES (1770677976497672194, '循环过期机具添加预扣款', 'product', '1', '2', '', 'demo', 'demoMethod', 'xxx', '0 0 * * * ?', '3', '1', '1', '0', 'admin', '2024-03-21 12:44:37', NULL, '2024-03-21 13:05:09', NULL, NULL, NULL, '');
+COMMIT;
 
 
 -- ----------------------------
 -- ----------------------------
 -- Table structure for sys_job_log
 -- Table structure for sys_job_log
 -- ----------------------------
 -- ----------------------------
 DROP TABLE IF EXISTS `sys_job_log`;
 DROP TABLE IF EXISTS `sys_job_log`;
-CREATE TABLE `sys_job_log`  (
-  `job_log_id` bigint(0) NOT NULL COMMENT '任务日志ID',
-  `job_id` bigint(0) NOT NULL COMMENT '任务id',
-  `job_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '任务名称',
-  `job_group` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '任务组名',
-  `job_order` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '组内执行顺利,值越大执行优先级越高,最大值9,最小值1',
+CREATE TABLE `sys_job_log` (
+  `job_log_id` bigint NOT NULL COMMENT '任务日志ID',
+  `job_id` bigint NOT NULL COMMENT '任务id',
+  `job_name` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '任务名称',
+  `job_group` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '任务组名',
+  `job_order` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '组内执行顺利,值越大执行优先级越高,最大值9,最小值1',
   `job_type` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '1' COMMENT '1、java类;2、spring bean名称;3、rest调用;4、jar调用;9其他',
   `job_type` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL DEFAULT '1' COMMENT '1、java类;2、spring bean名称;3、rest调用;4、jar调用;9其他',
-  `execute_path` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT 'job_type=3时,rest调用地址,仅支持post协议;job_type=4时,jar路径;其它值为空',
-  `class_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT 'job_type=1时,类完整路径;job_type=2时,spring bean名称;其它值为空',
-  `method_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '任务方法',
-  `method_params_value` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '参数值',
-  `cron_expression` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT 'cron执行表达式',
-  `job_message` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '日志信息',
-  `job_log_status` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '0' COMMENT '执行状态(0正常 1失败)',
-  `execute_time` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '执行时间',
-  `exception_info` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT '' COMMENT '异常信息',
-  `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  `execute_path` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'job_type=3时,rest调用地址,仅支持post协议;job_type=4时,jar路径;其它值为空',
+  `class_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'job_type=1时,类完整路径;job_type=2时,spring bean名称;其它值为空',
+  `method_name` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '任务方法',
+  `method_params_value` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '参数值',
+  `cron_expression` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT 'cron执行表达式',
+  `job_message` varchar(500) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '日志信息',
+  `job_log_status` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '0' COMMENT '执行状态(0正常 1失败)',
+  `execute_time` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '执行时间',
+  `exception_info` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '' COMMENT '异常信息',
+  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   PRIMARY KEY (`job_log_id`) USING BTREE
   PRIMARY KEY (`job_log_id`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务执行日志表' ROW_FORMAT = Dynamic;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务执行日志表';
 
 
 -- ----------------------------
 -- ----------------------------
 -- Records of sys_job_log
 -- Records of sys_job_log
 -- ----------------------------
 -- ----------------------------
+BEGIN;
+INSERT INTO `sys_job_log` (`job_log_id`, `job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `job_message`, `job_log_status`, `execute_time`, `exception_info`, `create_time`) VALUES (1770673019899953153, 1770672839586824194, '循环过期机具添加预扣款', 'recycleMachineSchedule', '1', '2', '', 'SpringBeanTaskDemo', 'demoMethod', '', '0 0 * * * ?', NULL, '0', '3', '', '2024-03-21 12:45:20');
+INSERT INTO `sys_job_log` (`job_log_id`, `job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `job_message`, `job_log_status`, `execute_time`, `exception_info`, `create_time`) VALUES (1770673338105020417, 1770672839586824194, '循环过期机具添加预扣款', 'recycleMachineSchedule', '1', '2', '', 'demo', 'demoMethod', '', '0 0 * * * ?', '执行失败', '1', '3', '定时任务spring bean反射异常方法未找到,执行任务:demo', '2024-03-21 12:46:36');
+INSERT INTO `sys_job_log` (`job_log_id`, `job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `job_message`, `job_log_status`, `execute_time`, `exception_info`, `create_time`) VALUES (1770673483433459713, 1770672839586824194, '循环过期机具添加预扣款', 'recycleMachineSchedule', '1', '2', '', 'SpringBeanTaskDemo', 'demoMethod', '', '0 0 * * * ?', NULL, '0', '0', '', '2024-03-21 12:47:11');
+INSERT INTO `sys_job_log` (`job_log_id`, `job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `job_message`, `job_log_status`, `execute_time`, `exception_info`, `create_time`) VALUES (1770674149912559617, 1770672839586824194, '循环过期机具添加预扣款', 'recycleMachineSchedule', '1', '2', '', 'demo', 'demoMethod', '', '0 0 * * * ?', '执行失败', '1', '6', '定时任务spring bean反射异常方法未找到,执行任务:demo', '2024-03-21 12:49:50');
+INSERT INTO `sys_job_log` (`job_log_id`, `job_id`, `job_name`, `job_group`, `job_order`, `job_type`, `execute_path`, `class_name`, `method_name`, `method_params_value`, `cron_expression`, `job_message`, `job_log_status`, `execute_time`, `exception_info`, `create_time`) VALUES (1770678008139501569, 1770677976497672194, '循环过期机具添加预扣款', 'product', '1', '2', '', 'demo', 'demoMethod', 'xxx', '0 0 * * * ?', '执行成功', '0', '3', '', '2024-03-21 13:05:09');
+COMMIT;
 
 
 SET FOREIGN_KEY_CHECKS = 1;
 SET FOREIGN_KEY_CHECKS = 1;

+ 96 - 0
drone/.drone-test.yml

@@ -93,6 +93,102 @@ trigger:
       - pull_request
       - pull_request
       - push
       - push
 
 
+---
+kind: pipeline
+type: docker
+name: kxs-quartz-test
+
+volumes: # 声明数据卷
+  - name: mvn_repo # 数据卷名称
+    # Host Volume, 挂载到宿主机上的卷轴
+    host:
+      # 宿主机的绝对路径
+      path: /home/ABServer/cache/mvn_repo
+  - name: mvn_config
+    host:
+      path: /home/ABServer/config/mvn/
+  - name: targetDir
+    host:
+      path: /kxs-quartz
+
+clone:
+  disable: false # 启用代码拉取
+
+steps:
+  - name: build-project
+    image: maven:3.9.4-amazoncorretto-17
+    pull: if-not-exists
+    depends_on: [clone] # 依赖的步骤
+    volumes: # 挂载数据卷
+      - name: mvn_repo # 数据卷名称
+        path: /usr/share/maven/repo # 容器内目录 绝对路径
+      - name: targetDir
+        path: /drone/src/dist/
+      - name: mvn_config
+        path: /usr/share/maven/conf/
+    commands: # 执行命令
+      - mvn clean package -Dmaven.test.skip=true -P test
+      - cp /drone/src/kxs-quartz/target/*.jar /drone/src/dist/ && cp -r /drone/src/kxs-quartz/target/lib /drone/src/dist/ && cp -r /drone/src/kxs-quartz/target/config /drone/src/dist/ # 复制文件
+    when:
+      status:
+        - success # 当前步骤成功时执行
+  - name: scp-project
+    image: appleboy/drone-scp
+    pull: if-not-exists
+    depends_on: [build-project] # 依赖的步骤
+    volumes: # 挂载数据卷
+      - name: targetDir # 数据卷名称
+        path: /kxs-quartz # 容器内目录 绝对路径
+    settings:
+      host:
+        from_secret: host
+      username:
+        from_secret: username
+      password:
+        from_secret: userpwd
+      port: 22
+      command_timeout: 2m
+      target: /home/ABServer/deploy-ready/
+      source:
+        - echo ====开始拷贝=======
+        - /kxs-quartz/*.jar
+        - /kxs-quartz/lib
+        - /kxs-quartz/config
+        - echo ====结束拷贝=======
+      when:
+        status:
+          - success # 当前步骤成功时执行
+
+  - name: deploy-project
+    image: appleboy/drone-ssh
+    pull: if-not-exists
+    depends_on: [scp-project] # 依赖的步骤
+    settings:
+      host:
+        from_secret: host
+      username:
+        from_secret: username
+      password:
+        from_secret: userpwd
+      port: 22
+      command_timeout: 2m
+      script:
+        - echo ====开始部署=======
+        - cd /home/ABServer/
+        - cp -r /home/ABServer/deploy-ready/kxs-quartz /home/ABServer/webroot/
+        - docker restart kxs-quartz
+        # - docker restart nodeServer1
+        - echo ====部署成功=======
+
+trigger:
+  branch:
+    include:
+      - test-quartz
+  event:
+    include:
+      - pull_request
+      - push
+
 ---
 ---
 kind: pipeline
 kind: pipeline
 type: docker
 type: docker

+ 9 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java

@@ -97,4 +97,13 @@ public interface RemoteKxsProductService {
 	 */
 	 */
 	@GetExchange("/machine/loadRecoverableData")
 	@GetExchange("/machine/loadRecoverableData")
 	R<Integer> loadRecoverableData(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
 	R<Integer> loadRecoverableData(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
+
+	/**
+	 * 循环过期机具添加预扣款
+	 *
+	 * @param from  调用标志
+	 * @param param 调用参数
+	 */
+	@GetExchange("/product-job/recycleMachineSchedule")
+	void recycleMachineSchedule(@RequestParam("param") String param, @RequestHeader(SecurityConstants.FROM) String from);
 }
 }

+ 24 - 41
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/task/KxsProductTask.java

@@ -4,6 +4,7 @@ import cn.hutool.crypto.symmetric.AES;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.nacos.api.config.annotation.NacosValue;
 import com.alibaba.nacos.api.config.annotation.NacosValue;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
+import com.kxs.common.security.annotation.Inner;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachineDeduct;
 import com.kxs.product.api.model.KxsMachineDeduct;
 import com.kxs.product.biz.config.KxsOldConfigProperties;
 import com.kxs.product.biz.config.KxsOldConfigProperties;
@@ -23,6 +24,10 @@ import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -35,28 +40,19 @@ import java.util.List;
  * @author 没秃顶的码农
  * @author 没秃顶的码农
  * @date 2024-03-13
  * @date 2024-03-13
  */
  */
-@Component
-@EnableAsync
-@EnableScheduling
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @Slf4j
 @Slf4j
-@EnableConfigurationProperties(KxsOldConfigProperties.class)
+@RestController
+@RequestMapping("product-job")
 public class KxsProductTask {
 public class KxsProductTask {
 
 
-    private final KxsOldConfigProperties kxsOldConfigProperties;
 
 
     private final KxsMachineMapper kxsMachineMapper;
     private final KxsMachineMapper kxsMachineMapper;
 
 
     private final KxsMachineDeductMapper kxsMachineDeductMapper;
     private final KxsMachineDeductMapper kxsMachineDeductMapper;
 
 
-    private final RedisTemplate<String, Object> redisTemplate;
-
     private final RemoteOldService remoteOldService;
     private final RemoteOldService remoteOldService;
 
 
-    private static final String LOCK = "task-job-lock";
-
-    private static final String KEY = "distributed-locks";
-
     private final AES cryptoOldAes;
     private final AES cryptoOldAes;
 
 
     /**
     /**
@@ -64,39 +60,26 @@ public class KxsProductTask {
      * 一个小时执行一次
      * 一个小时执行一次
      *
      *
      */
      */
-    @Async(value = "getAsyncExecutor")
-    @Scheduled(fixedDelay = 1000 * 60 * 60 )
-    @RefreshScope
-    public void recycleMachineSchedule() {
-        Boolean lock = false;
-        try {
-            //分布式锁
-            lock = redisTemplate.opsForValue().setIfAbsent(KEY, LOCK);
-            if (Boolean.TRUE.equals(lock) && kxsOldConfigProperties.getRecycleEnable()) {
+    @Inner
+    @GetMapping("/recycleMachineSchedule")
+    public void recycleMachineSchedule(@RequestParam("param") String para)  {
+        LocalDateTime endDay = LocalDate.now().minusDays(30).atStartOfDay();
+        List<KxsMachine> machines = kxsMachineMapper.selectExpireDeductList(endDay);
 
 
-                LocalDateTime endDay = LocalDate.now().minusDays(30).atStartOfDay();
-                List<KxsMachine> machines = kxsMachineMapper.selectExpireDeductList(endDay);
-
-                for (KxsMachine machine : machines) {
-                    HashMap<String, Object> param = new HashMap<>();
-                    HashMap<String, Object> data = new HashMap<>();
-                    data.put("PosSn", machine.getPosSn());
+        for (KxsMachine machine : machines) {
+            HashMap<String, Object> param = new HashMap<>();
+            HashMap<String, Object> data = new HashMap<>();
+            data.put("PosSn", machine.getPosSn());
 //                    String body  = cryptoOldAes.encryptHex(JSON.toJSONString(data));
 //                    String body  = cryptoOldAes.encryptHex(JSON.toJSONString(data));
-                    param.put("value", JSON.toJSONString(data));
-                    R result = remoteOldService.savePosAdvance(param);
-                    if(result.getStatus() == 1){
-                        log.info("查询数据:{}", machines);
+            param.put("value", JSON.toJSONString(data));
+            R result = remoteOldService.savePosAdvance(param);
+            if(result.getStatus() == 1){
+                log.info("查询数据:{}", machines);
 
 
-                        KxsMachineDeduct machineDeduct = new KxsMachineDeduct();
-                        machineDeduct.setPosSn(machine.getPosSn());
-                        machineDeduct.setRemark("已添加预扣款");
-                        kxsMachineDeductMapper.insert(machineDeduct);
-                    }
-                }
-            }
-        } finally {
-            if (Boolean.TRUE.equals(lock)) {
-                redisTemplate.delete(KEY);
+                KxsMachineDeduct machineDeduct = new KxsMachineDeduct();
+                machineDeduct.setPosSn(machine.getPosSn());
+                machineDeduct.setRemark("已添加预扣款");
+                kxsMachineDeductMapper.insert(machineDeduct);
             }
             }
         }
         }
     }
     }

+ 102 - 0
kxs-quartz/pom.xml

@@ -64,13 +64,115 @@
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-undertow</artifactId>
             <artifactId>spring-boot-starter-undertow</artifactId>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-product-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-system-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-user-api</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <!--打包java路径下的静态文件-->
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
         <plugins>
         <plugins>
+            <!--该插件的作用是打包spring-boot的jar包-->
             <plugin>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <!--不排除的话,systemScope的依赖包会自动被此插件打包进xxx.jar\BOOT-INF\lib,和外部依赖产生冲突 -->
+                    <includeSystemScope>false</includeSystemScope>
+                    <skip>false</skip>
+                    <!--分离Jar包-->
+                    <layout>ZIP</layout>
+                    <includes>
+                        <include>
+                            <groupId>nothing</groupId>
+                            <artifactId>nothing</artifactId>
+                        </include>
+                    </includes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- 该插件的作用是复制依赖的jar包到指定的文件夹里 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- 该插件的作用是复制指定的文件 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <!-- 复制配置文件 -->
+                    <execution>
+                        <id>copy-resources</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <resources>
+                                <!--复制资源文件到外部,注意这里先不做filtering处理,防止某些静态文件损坏-->
+                                <resource>
+                                    <filtering>false</filtering>
+                                    <directory>src/main/resources</directory>
+                                    <includes>
+                                        <include>**/*</include>
+                                    </includes>
+                                </resource>
+                                <!--仅针对配置文件filtering处理(占位符@@等)-->
+                                <resource>
+                                    <directory>src/main/resources</directory>
+                                    <filtering>true</filtering>
+                                    <includes>
+                                        <include>*.xml</include>
+                                        <include>*.yml</include>
+                                        <include>*.properties</include>
+                                    </includes>
+                                </resource>
+                            </resources>
+                            <outputDirectory>${project.build.directory}/config</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
             </plugin>
             </plugin>
         </plugins>
         </plugins>
     </build>
     </build>

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/KxsQuartzApplication.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/KxsQuartzApplication.java

@@ -1,4 +1,4 @@
-package com.kxs.sky.daemon.quartz;
+package com.kxs.daemon.quartz;
 
 
 import com.kxs.common.security.annotation.EnableAuthResourceServer;
 import com.kxs.common.security.annotation.EnableAuthResourceServer;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.SpringApplication;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/AutowireCapableBeanJobFactory.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/AutowireCapableBeanJobFactory.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
 import org.quartz.JobKey;
 import org.quartz.JobKey;
 import org.quartz.spi.TriggerFiredBundle;
 import org.quartz.spi.TriggerFiredBundle;

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/SkyInitQuartzJob.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyInitQuartzJob.java

@@ -15,11 +15,11 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.service.SysJobService;
-import com.kxs.sky.daemon.quartz.util.TaskUtil;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.service.SysJobService;
+import com.kxs.daemon.quartz.util.TaskUtil;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.Scheduler;
 import org.quartz.Scheduler;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/SkyQuartzConfig.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzConfig.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
 import org.quartz.Calendar;
 import org.quartz.Calendar;
 import org.quartz.JobDetail;
 import org.quartz.JobDetail;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/SkyQuartzCustomizerConfig.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzCustomizerConfig.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
 import org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer;
 import org.springframework.boot.autoconfigure.quartz.SchedulerFactoryBeanCustomizer;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/SkyQuartzFactory.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzFactory.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.DisallowConcurrentExecution;

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/config/SkyQuartzInvokeFactory.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/config/SkyQuartzInvokeFactory.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.config;
+package com.kxs.daemon.quartz.config;
 
 
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.event.SysJobEvent;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.event.SysJobEvent;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/constants/JobTypeQuartzEnum.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/constants/JobTypeQuartzEnum.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.constants;
+package com.kxs.daemon.quartz.constants;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/constants/SkyQuartzEnum.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/constants/SkyQuartzEnum.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.constants;
+package com.kxs.daemon.quartz.constants;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;

+ 7 - 7
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/controller/SysJobController.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/controller/SysJobController.java

@@ -1,5 +1,5 @@
 
 
-package com.kxs.sky.daemon.quartz.controller;
+package com.kxs.daemon.quartz.controller;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -9,12 +9,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.log.annotation.SysLog;
 import com.kxs.common.log.annotation.SysLog;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
-import com.kxs.sky.daemon.quartz.service.SysJobLogService;
-import com.kxs.sky.daemon.quartz.service.SysJobService;
-import com.kxs.sky.daemon.quartz.util.TaskUtil;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.service.SysJobLogService;
+import com.kxs.daemon.quartz.service.SysJobService;
+import com.kxs.daemon.quartz.util.TaskUtil;
 import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
 import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/controller/SysJobLogController.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/controller/SysJobLogController.java

@@ -15,14 +15,14 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.controller;
+package com.kxs.daemon.quartz.controller;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
-import com.kxs.sky.daemon.quartz.service.SysJobLogService;
+import com.kxs.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.service.SysJobLogService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/entity/SysJob.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/entity/SysJob.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.entity;
+package com.kxs.daemon.quartz.entity;
 
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/entity/SysJobLog.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/entity/SysJobLog.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.entity;
+package com.kxs.daemon.quartz.entity;
 
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/event/SysJobEvent.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobEvent.java

@@ -15,9 +15,9 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.event;
+package com.kxs.daemon.quartz.event;
 
 
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;
 import org.quartz.Trigger;
 import org.quartz.Trigger;

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/event/SysJobListener.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobListener.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.event;
+package com.kxs.daemon.quartz.event;
 
 
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.util.TaskInvokUtil;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.util.TaskInvokUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.Trigger;
 import org.quartz.Trigger;

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/event/SysJobLogEvent.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobLogEvent.java

@@ -15,9 +15,9 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.event;
+package com.kxs.daemon.quartz.event;
 
 
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.entity.SysJobLog;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Getter;
 
 

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/event/SysJobLogListener.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/event/SysJobLogListener.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.event;
+package com.kxs.daemon.quartz.event;
 
 
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
-import com.kxs.sky.daemon.quartz.service.SysJobLogService;
+import com.kxs.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.service.SysJobLogService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.event.EventListener;
 import org.springframework.context.event.EventListener;

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/exception/TaskException.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/exception/TaskException.java

@@ -15,7 +15,7 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.exception;
+package com.kxs.daemon.quartz.exception;
 
 
 /**
 /**
  * 定时任务异常
  * 定时任务异常

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/mapper/SysJobLogMapper.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/mapper/SysJobLogMapper.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.mapper;
+package com.kxs.daemon.quartz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.entity.SysJobLog;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
 /**
 /**

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/mapper/SysJobMapper.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/mapper/SysJobMapper.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.mapper;
+package com.kxs.daemon.quartz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.entity.SysJob;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
 /**
 /**

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/service/SysJobLogService.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/SysJobLogService.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.service;
+package com.kxs.daemon.quartz.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.entity.SysJobLog;
 
 
 /**
 /**
  * 定时任务执行日志表
  * 定时任务执行日志表

+ 2 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/service/SysJobService.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/SysJobService.java

@@ -15,10 +15,10 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.service;
+package com.kxs.daemon.quartz.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.entity.SysJob;
 
 
 /**
 /**
  * 定时任务调度表
  * 定时任务调度表

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/service/impl/SysJobLogServiceImpl.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/impl/SysJobLogServiceImpl.java

@@ -15,12 +15,12 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.service.impl;
+package com.kxs.daemon.quartz.service.impl;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
-import com.kxs.sky.daemon.quartz.mapper.SysJobLogMapper;
-import com.kxs.sky.daemon.quartz.service.SysJobLogService;
+import com.kxs.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.mapper.SysJobLogMapper;
+import com.kxs.daemon.quartz.service.SysJobLogService;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/service/impl/SysJobServiceImpl.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/service/impl/SysJobServiceImpl.java

@@ -15,12 +15,12 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.service.impl;
+package com.kxs.daemon.quartz.service.impl;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.mapper.SysJobMapper;
-import com.kxs.sky.daemon.quartz.service.SysJobService;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.mapper.SysJobMapper;
+import com.kxs.daemon.quartz.service.SysJobService;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;

+ 43 - 0
kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/ProductBeanTask.java

@@ -0,0 +1,43 @@
+package com.kxs.daemon.quartz.task;
+
+import com.kxs.common.core.constant.SecurityConstants;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.product.api.feign.RemoteKxsProductService;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * 产品模块 Bean 任务
+ *
+ * @author 没秃顶的码农
+ * @date 2024-03-21
+ */
+@Slf4j
+@Component("productBeanTask")
+@RequiredArgsConstructor
+public class ProductBeanTask {
+
+    private final RemoteKxsProductService remoteKxsProductService;
+
+    /**
+     *  循环过期机具添加预扣款
+     */
+    @SneakyThrows
+    public String recycleMachineSchedule(String para) {
+        log.info("循环过期机具添加预扣款:{},输入参数{}", LocalDateTime.now(), para);
+        try {
+            remoteKxsProductService.recycleMachineSchedule(para, SecurityConstants.FROM_IN);
+            return SkyQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
+
+        }catch (Exception e){
+            log.error(e.getLocalizedMessage());
+        }
+        return SkyQuartzEnum.JOB_LOG_STATUS_FAIL.getType();
+    }
+}

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/task/RestTaskDemo.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/RestTaskDemo.java

@@ -1,4 +1,4 @@
-package com.kxs.sky.daemon.quartz.task;
+package com.kxs.daemon.quartz.task;
 
 
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.annotation.Inner;
 import com.kxs.common.security.annotation.Inner;

+ 4 - 2
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/task/SpringBeanTaskDemo.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/SpringBeanTaskDemo.java

@@ -15,11 +15,13 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.task;
+package com.kxs.daemon.quartz.task;
 
 
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;

+ 55 - 0
kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/UserBeanTask.java

@@ -0,0 +1,55 @@
+package com.kxs.daemon.quartz.task;
+
+import com.kxs.common.core.constant.SecurityConstants;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.product.api.feign.RemoteKxsProductService;
+import com.kxs.user.api.feign.RemoteKxsUserService;
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * 用户模块 Bean 任务
+ *
+ * @author 没秃顶的码农
+ * @date 2024-03-21
+ */
+@Slf4j
+@Component("userjob")
+@RequiredArgsConstructor
+public class UserBeanTask {
+
+
+    private final RemoteKxsUserService remoteKxsUserService;
+
+    /**
+     *  自动表创建收支明细表任务
+     */
+    @SneakyThrows
+    public String automaticTableCreationTasks() {
+        try {
+            log.info("自动表创建任务:{}", LocalDateTime.now());
+            remoteKxsUserService.automaticTableCreationTasks(SecurityConstants.FROM_IN);
+            return SkyQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
+
+        }catch (Exception e){
+            log.error(e.getLocalizedMessage());
+        }
+        return SkyQuartzEnum.JOB_LOG_STATUS_FAIL.getType();
+    }
+
+    /**
+     *  用户欠款扣除定时任务
+     * 1.扫创客合伙人可提现额度,若有合伙人可提现额度,则扣除可提现额度,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+     * 2.扫创客盟主可提现余额,若有盟主可提现余额,则扣除可提现余额,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+     */
+    @SneakyThrows
+    public String userTotalDebtSub(String para) {
+        remoteKxsUserService.userTotalDebtSub(SecurityConstants.FROM_IN);
+        log.info("用户欠款扣除定时任务:{},输入参数{}", LocalDateTime.now(), para);
+        return SkyQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
+    }
+}

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/ITaskInvoke.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/ITaskInvoke.java

@@ -1,7 +1,7 @@
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
-import com.kxs.sky.daemon.quartz.exception.TaskException;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.entity.SysJob;
 
 
 /**
 /**
  * 定时任务反射实现接口类
  * 定时任务反射实现接口类

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/JarTaskInvoke.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/JarTaskInvoke.java

@@ -15,11 +15,11 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/JavaClassTaskInvoke.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/JavaClassTaskInvoke.java

@@ -15,12 +15,12 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/RestTaskInvoke.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/RestTaskInvoke.java

@@ -15,12 +15,12 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.http.HttpUtil;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/SpringBeanTaskInvoke.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/SpringBeanTaskInvoke.java

@@ -15,14 +15,14 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.core.util.SpringContextHolder;
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.exception.TaskException;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ReflectionUtils;
 import org.springframework.util.ReflectionUtils;

+ 3 - 3
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/TaskInvokFactory.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskInvokFactory.java

@@ -1,9 +1,9 @@
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.core.util.SpringContextHolder;
-import com.kxs.sky.daemon.quartz.constants.JobTypeQuartzEnum;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.constants.JobTypeQuartzEnum;
+import com.kxs.daemon.quartz.exception.TaskException;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 
 
 /**
 /**

+ 7 - 7
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/TaskInvokUtil.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskInvokUtil.java

@@ -1,12 +1,12 @@
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.text.CharSequenceUtil;
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.exception.TaskException;
-import com.kxs.sky.daemon.quartz.service.SysJobService;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
-import com.kxs.sky.daemon.quartz.entity.SysJobLog;
-import com.kxs.sky.daemon.quartz.event.SysJobLogEvent;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.exception.TaskException;
+import com.kxs.daemon.quartz.service.SysJobService;
+import com.kxs.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.entity.SysJobLog;
+import com.kxs.daemon.quartz.event.SysJobLogEvent;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 4 - 4
kxs-quartz/src/main/java/com/kxs/sky/daemon/quartz/util/TaskUtil.java → kxs-quartz/src/main/java/com/kxs/daemon/quartz/util/TaskUtil.java

@@ -15,11 +15,11 @@
  * Author: LXQ (609827073@qq.com)
  * Author: LXQ (609827073@qq.com)
  */
  */
 
 
-package com.kxs.sky.daemon.quartz.util;
+package com.kxs.daemon.quartz.util;
 
 
-import com.kxs.sky.daemon.quartz.constants.SkyQuartzEnum;
-import com.kxs.sky.daemon.quartz.config.SkyQuartzFactory;
-import com.kxs.sky.daemon.quartz.entity.SysJob;
+import com.kxs.daemon.quartz.constants.SkyQuartzEnum;
+import com.kxs.daemon.quartz.config.SkyQuartzFactory;
+import com.kxs.daemon.quartz.entity.SysJob;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.quartz.*;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;

+ 19 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java

@@ -108,4 +108,23 @@ public interface RemoteKxsUserService {
 	 */
 	 */
 	@PostExchange("/userAccount/userAmountChange")
 	@PostExchange("/userAccount/userAmountChange")
 	R<Boolean> userAmountChange(@RequestBody KxsUserAmountLog userAmount, @RequestHeader(SecurityConstants.FROM) String from);
 	R<Boolean> userAmountChange(@RequestBody KxsUserAmountLog userAmount, @RequestHeader(SecurityConstants.FROM) String from);
+
+	/**
+	 * 自动建表任务
+	 *
+	 * @param from       调用标志
+	 */
+	@GetExchange("/user-job/automaticTableCreationTasks")
+	void automaticTableCreationTasks(@RequestHeader(SecurityConstants.FROM) String from);
+
+	/**
+	 * 每天凌晨执行:
+	 * 1.扫创客合伙人可提现额度,若有合伙人可提现额度,则扣除可提现额度,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+	 * 2.扫创客盟主可提现余额,若有盟主可提现余额,则扣除可提现余额,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+	 *
+	 * @param from 调用标志
+	 */
+	@GetExchange("/user-job/userTotalDebtSub")
+	void userTotalDebtSub(@RequestHeader(SecurityConstants.FROM) String from);
+
 }
 }

+ 18 - 11
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/task/KxsUserTaskJob.java

@@ -2,15 +2,13 @@ package com.kxs.user.biz.task;
 
 
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
-import com.kxs.common.mybatis.handler.MonthTableNameHandler;
+import com.kxs.common.security.annotation.Inner;
 import com.kxs.user.biz.mapper.KxsUserAmountLogMapper;
 import com.kxs.user.biz.mapper.KxsUserAmountLogMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 import java.time.LocalDate;
 import java.time.LocalDate;
 
 
@@ -20,11 +18,10 @@ import java.time.LocalDate;
  * @author 没秃顶的码农
  * @author 没秃顶的码农
  * @date 2024-03-13
  * @date 2024-03-13
  */
  */
-@Component
-@EnableAsync
-@EnableScheduling
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @Slf4j
 @Slf4j
+@RestController
+@RequestMapping("user-job")
 public class KxsUserTaskJob {
 public class KxsUserTaskJob {
 
 
     private final KxsUserAmountLogMapper kxsUserAmountLogMapper;
     private final KxsUserAmountLogMapper kxsUserAmountLogMapper;
@@ -34,10 +31,20 @@ public class KxsUserTaskJob {
      * 自动表创建任务
      * 自动表创建任务
      * 每个月15号建立下个月的收支日志表
      * 每个月15号建立下个月的收支日志表
      */
      */
-    @Async(value = "getAsyncExecutor")
-    @Scheduled(cron = "0 15 10 15 * ?")
+    @Inner
+    @GetMapping("/automaticTableCreationTasks")
     public void automaticTableCreationTasks() {
     public void automaticTableCreationTasks() {
         String thisMoth = LocalDateTimeUtil.format(LocalDate.now().plusMonths(1L), DatePattern.SIMPLE_MONTH_PATTERN);
         String thisMoth = LocalDateTimeUtil.format(LocalDate.now().plusMonths(1L), DatePattern.SIMPLE_MONTH_PATTERN);
         kxsUserAmountLogMapper.automaticTableCreationTasks("kxs_user_amount_log_" +thisMoth);
         kxsUserAmountLogMapper.automaticTableCreationTasks("kxs_user_amount_log_" +thisMoth);
     }
     }
+
+    /**
+     * 每天凌晨执行:
+     * 1.扫创客合伙人可提现额度,若有合伙人可提现额度,则扣除可提现额度,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+     * 2.扫创客盟主可提现余额,若有盟主可提现余额,则扣除可提现余额,最大扣除金额=欠款总金额,扣除后减少欠款总金额,同时在前端增加扣除记录,备注为「预借款项还款」
+     */
+    @Inner
+    @GetMapping("/userTotalDebtSub")
+    public void userTotalDebtSub(){
+    }
 }
 }

+ 1 - 3
kxs-user/kxs-user-biz/src/test/java/com/kxs/user/biz/ImportData.java

@@ -1,6 +1,7 @@
 package com.kxs.user.biz;
 package com.kxs.user.biz;
 
 
 import com.kxs.user.biz.mapper.old.TradeDaySummaryMapper;
 import com.kxs.user.biz.mapper.old.TradeDaySummaryMapper;
+import com.kxs.user.biz.service.KxsUserAddressService;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -16,7 +17,4 @@ import java.util.List;
 @SpringBootTest
 @SpringBootTest
 public class ImportData {
 public class ImportData {
 
 
-    @Autowired
-    private TradeDaySummaryMapper tradeDaySummaryMapper;
-
 }
 }