From b112d242575fe96123b1e8dad434f46e6d2bb3d1 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 03 Jun 2023 17:57:15 +0800
Subject: [PATCH] 巡查,智能外呼定时任务相关代码抽离修改

---
 skjcmanager/skjcmanager-service-api/pom.xml                                                                                         |    1 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java               |   47 ++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/launch/SmLauncherServiceImpl.java          |   48 +++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.xml                |    4 
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java       |   19 +
 skjcmanager/skjcmanager-ops/pom.xml                                                                                                 |    1 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application.yml                                               |    0 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java             |    0 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfo.java                     |    2 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml                                                                          |   17 +
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.java               |   10 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/impl/XxlJobInfoServiceImpl.java    |   12 
 skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml                                                                              |    6 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/vo/XxlJobInfoVO.java                       |    4 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/Dockerfile                                                                       |    0 
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml             |    2 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfoType.java                 |    2 
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java               |   37 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallImplImplClient.java         |   56 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml                                               |   34 +-
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java                   |    2 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/OutCallXxlJob.java              |   64 ++++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/JobApplication.java                                 |    6 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-dev.yml                                           |   33 ++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/logback.xml                                                   |    0 
 skjcmanager/skjcmanager-service/pom.xml                                                                                             |    1 
 /dev/null                                                                                                                           |  282 -----------------
 skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecordDetail.java  |    5 
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClient.java         |   50 +++
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TaskXxlJobController.java       |    8 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-prod.yml                                          |   31 +
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClientFallback.java |   21 +
 skjcmanager/skjcmanager-service-api/skjcmanager-xxljob-api/pom.xml                                                                  |   17 +
 skjcmanager/pom.xml                                                                                                                 |    1 
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java               |    0 
 skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java             |    1 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java                   |   85 +++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml                                              |   34 +-
 skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/IXxlJobInfoService.java            |    6 
 39 files changed, 598 insertions(+), 351 deletions(-)

diff --git a/skjcmanager/pom.xml b/skjcmanager/pom.xml
index cc862b9..78fca4f 100644
--- a/skjcmanager/pom.xml
+++ b/skjcmanager/pom.xml
@@ -39,6 +39,7 @@
         <module>skjcmanager-plugin-api</module>
         <module>skjcmanager-service</module>
         <module>skjcmanager-service-api</module>
+        <module>skjcmanager-xxljob-api</module>
     </modules>
 
     <dependencyManagement>
diff --git a/skjcmanager/skjcmanager-ops/pom.xml b/skjcmanager/skjcmanager-ops/pom.xml
index 64702ba..0cde01f 100644
--- a/skjcmanager/skjcmanager-ops/pom.xml
+++ b/skjcmanager/skjcmanager-ops/pom.xml
@@ -22,7 +22,6 @@
         <module>skjcmanager-report</module>
         <module>skjcmanager-resource</module>
         <module>skjcmanager-swagger</module>
-        <module>skjcmanager-xxljob</module>
         <module>skjcmanager-xxljob-admin</module>
     </modules>
 
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
deleted file mode 100644
index 7df7683..0000000
--- a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package cn.gistack.job.executor.config;
-
-import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * xxl-job config
- *
- * @author xuxueli 2017-04-28
- */
-@Configuration(proxyBeanMethods = false)
-public class XxlJobConfig {
-	private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
-
-	@Value("${xxl.job.admin.addresses}")
-	private String adminAddresses;
-
-	@Value("${xxl.job.executor.appname}")
-	private String appName;
-
-	@Value("${xxl.job.executor.ip}")
-	private String ip;
-
-	@Value("${xxl.job.executor.port}")
-	private int port;
-
-	@Value("${xxl.job.accessToken}")
-	private String accessToken;
-
-	@Value("${xxl.job.executor.logpath}")
-	private String logPath;
-
-	@Value("${xxl.job.executor.logretentiondays}")
-	private int logRetentionDays;
-
-
-	@Bean
-	public XxlJobSpringExecutor xxlJobExecutor() {
-		logger.info(">>>>>>>>>>> xxl-job config init.");
-		XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
-		xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
-		xxlJobSpringExecutor.setAppName(appName);
-		xxlJobSpringExecutor.setIp(ip);
-		xxlJobSpringExecutor.setPort(port);
-		xxlJobSpringExecutor.setAccessToken(accessToken);
-		xxlJobSpringExecutor.setLogPath(logPath);
-		xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
-
-		return xxlJobSpringExecutor;
-	}
-
-	/**
-	 * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
-	 *
-	 *      1、引入依赖:
-	 *          <dependency>
-	 *             <groupId>org.springframework.cloud</groupId>
-	 *             <artifactId>spring-cloud-commons</artifactId>
-	 *             <version>${version}</version>
-	 *         </dependency>
-	 *
-	 *      2、配置文件,或者容器启动变量
-	 *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
-	 *
-	 *      3、获取IP
-	 *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
-	 */
-
-
-}
diff --git a/skjcmanager/skjcmanager-service-api/pom.xml b/skjcmanager/skjcmanager-service-api/pom.xml
index a32c0c9..3241790 100644
--- a/skjcmanager/skjcmanager-service-api/pom.xml
+++ b/skjcmanager/skjcmanager-service-api/pom.xml
@@ -23,6 +23,7 @@
         <module>skjcmanager-user-api</module>
         <module>skjcmanager-sm-api</module>
         <module>skjcmanager-alerts-api</module>
+        <module>skjcmanager-xxljob-api</module>
     </modules>
 
     <dependencies>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecordDetail.java b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecordDetail.java
index e426f54..b5fbdee 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecordDetail.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-alerts-api/src/main/java/cn/gistack/alerts/alarmRule/entity/AlarmRecordDetail.java
@@ -50,6 +50,11 @@
 	private String reservoirNumber;
 
 	/**
+	 * 告警人员电话
+	 */
+	private String phone;
+
+	/**
 	 * 告警内容
 	 */
 	private String alarmContent;
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClient.java
new file mode 100644
index 0000000..9789930
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClient.java
@@ -0,0 +1,50 @@
+package cn.gistack.sm.intelligentCall.feign;
+
+import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import java.util.List;
+
+/**
+ * 智能外呼任务 feign
+ * @author zhongrj
+ */
+@FeignClient(
+	value = "blade-sm",
+	fallback = IAttResManagePersonClientFallback.class
+)
+public interface OutCallClient {
+
+	String API_PREFIX = "/client";
+	String CREATE_OUT_CALL_TASK_JOB_HANDLER = API_PREFIX + "/createOutCallTaskJobHandler";
+	String TEST_OUT_CALL = API_PREFIX + "/testOutCall";
+
+	/**
+	 * 智能外呼定时创建任务执行器
+	 * @param isOver
+	 * @param taskScheduleTime
+	 * @param personNumber
+	 * @param day
+	 * @return
+	 */
+	@GetMapping(CREATE_OUT_CALL_TASK_JOB_HANDLER)
+	Object createOutCallTaskJobHandler(@RequestParam("isOver") String isOver,
+											   @RequestParam("taskScheduleTime") String taskScheduleTime,
+											   @RequestParam("personNumber") String personNumber,
+											   @RequestParam("day") String day);
+
+	/**
+	 * 测试
+	 * @param isOver
+	 * @param taskScheduleTime
+	 * @param personNumber
+	 * @param day
+	 * @return
+	 */
+	@GetMapping(TEST_OUT_CALL)
+	Object testOutCall(@RequestParam("isOver") String isOver,
+					   @RequestParam("taskScheduleTime") String taskScheduleTime,
+					   @RequestParam("personNumber") String personNumber,
+					   @RequestParam("day") String day);
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClientFallback.java
new file mode 100644
index 0000000..7caddb4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallClientFallback.java
@@ -0,0 +1,21 @@
+package cn.gistack.sm.intelligentCall.feign;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * 智能外呼Feign失败配置
+ * @author zhongrj
+ * @date 2023/6/3
+ */
+@Component
+public class OutCallClientFallback implements OutCallClient {
+	@Override
+	public Object createOutCallTaskJobHandler(String isOver, String taskScheduleTime, String personNumber, String day) {
+		return null;
+	}
+
+	@Override
+	public Object testOutCall(String isOver, String taskScheduleTime, String personNumber, String day) {
+		return null;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java
new file mode 100644
index 0000000..0000302
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClient.java
@@ -0,0 +1,37 @@
+package cn.gistack.sm.patrol.feign;
+
+import cn.gistack.sm.sjztmd.feign.IAttResManagePersonClientFallback;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 巡查任务 feign
+ * @author zhongrj
+ */
+@FeignClient(
+	value = "blade-sm",
+	fallback = IAttResManagePersonClientFallback.class
+)
+public interface PatrolTaskClient {
+
+	String API_PREFIX = "/client";
+	String CREATE_TASK_JOB_HANDLER = API_PREFIX + "/createTaskJobHandler";
+
+	/**
+	 * 给巡查责任人定时创建任务执行器
+	 * @param processDefinitionId
+	 * @param taskType
+	 * @param title
+	 * @param content
+	 * @return
+	 */
+	@GetMapping(CREATE_TASK_JOB_HANDLER)
+	List<Integer> createTaskJobHandler(@RequestParam("processDefinitionId") String processDefinitionId,
+									   @RequestParam("taskType") String taskType,
+									   @RequestParam("title") String title,
+									   @RequestParam("content") String content);
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java
new file mode 100644
index 0000000..7f79808
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskClientFallback.java
@@ -0,0 +1,19 @@
+package cn.gistack.sm.patrol.feign;
+
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+/**
+ * @ClassName Feign失败配置
+ * @Author zhongrj
+ * @Date 2023/6/3
+ * @Version 1.0
+ */
+@Component
+public class PatrolTaskClientFallback implements PatrolTaskClient {
+
+	@Override
+	public List<Integer> createTaskJobHandler(String processDefinitionId, String taskType, String title, String content) {
+		return null;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-xxljob-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-xxljob-api/pom.xml
new file mode 100644
index 0000000..58e84f8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-xxljob-api/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>cn.gistack</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-xxljob-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service/pom.xml b/skjcmanager/skjcmanager-service/pom.xml
index 4ac8be3..a65cd63 100644
--- a/skjcmanager/skjcmanager-service/pom.xml
+++ b/skjcmanager/skjcmanager-service/pom.xml
@@ -23,6 +23,7 @@
         <module>skjcmanager-user</module>
         <module>skjcmanager-sm</module>
         <module>skjcmanager-alerts</module>
+        <module>skjcmanager-xxljob</module>
     </modules>
 
     <dependencies>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
index fc9ef38..1a1b1c3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/alarmRule/mapper/AlarmRuleMapper.xml
@@ -27,7 +27,7 @@
     <!--通过id查询-->
     <select id="getAlarmRuleDetailList" resultType="cn.gistack.alerts.alarmRule.vo.AlarmRuleDetailVO">
         select sard.*,sst.content as alarmContent
-        from sm_alarm_rule_detail sard left join sm_sms_template sst on sard.template_id = sst.template_id
+        from sm_alarm_rule_detail sard left join sm_sms_template sst on sard.template_id = sst.id
         where sard.alarm_rule_id = #{id}
     </select>
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
index b4be00b..1a8ec13 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -102,6 +102,7 @@
 
 			SmsRecord smsRecord = new SmsRecord();
 			if (null != smsResult){
+				alarmRecordDetail.setPhone(list.get(0));
 				// 设置手机号
 				request.setUserNumber(list.get(0));
 				// 内容处理
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
index b17b751..f5c96e6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/pom.xml
@@ -57,12 +57,6 @@
             <artifactId>skjcmanager-alerts-api</artifactId>
             <version>3.0.1.RELEASE</version>
         </dependency>
-        <!--Job-->
-        <dependency>
-            <groupId>com.xuxueli</groupId>
-            <artifactId>xxl-job-core</artifactId>
-            <version>2.1.2</version>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallImplImplClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallImplImplClient.java
new file mode 100644
index 0000000..053fbe3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/feign/OutCallImplImplClient.java
@@ -0,0 +1,56 @@
+package cn.gistack.sm.intelligentCall.feign;
+
+import cn.gistack.sm.intelligentCall.service.CallService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+import java.util.*;
+
+/**
+ * Feign实现类
+ * @author zhongrj
+ * @date 2023-06-03
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@Slf4j
+public class OutCallImplImplClient implements OutCallClient {
+
+	private final CallService callService;
+
+	@Override
+	@GetMapping(CREATE_OUT_CALL_TASK_JOB_HANDLER)
+	public Object createOutCallTaskJobHandler(String isOver, String taskScheduleTime, String personNumber, String day) {
+		Map<String, Object> map = new HashMap<>();
+		map.put("isOver",isOver);
+		map.put("taskScheduleTime",taskScheduleTime);
+		map.put("personNumber",personNumber);
+		map.put("day",day);
+		// 创建定时任务并返回
+		return callService.createCallTaskByParam(map);
+	}
+
+	/**
+	 * 测试
+	 * @param isOver
+	 * @param taskScheduleTime
+	 * @param personNumber
+	 * @param day
+	 * @return
+	 */
+	@Override
+	public Object testOutCall(String isOver, String taskScheduleTime, String personNumber, String day) {
+		Map<String, Object> map = new HashMap<>();
+		map.put("isOver",isOver);
+		map.put("taskScheduleTime",taskScheduleTime);
+		map.put("personNumber",personNumber);
+		map.put("day",day);
+		// 创建定时任务并返回
+		return "测试返回成功";
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskXxlJobController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskXxlJobController.java
deleted file mode 100644
index 67fa12c..0000000
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/controller/PatrolTaskXxlJobController.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package cn.gistack.sm.patrol.controller;
-
-import cn.gistack.sm.patrol.entity.PatrolGroup;
-import cn.gistack.sm.patrol.entity.PatrolTask;
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
-import cn.gistack.sm.xxljob.service.IXxlJobInfoService;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springblade.core.boot.ctrl.BladeController;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
-import org.springblade.core.tool.api.R;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-
-
-/**
- * @PROJECT_NAME: skjcmanager
- * @DESCRIPTION: 定时任务
- * @USER: aix
- * @DATE: 2023/5/15 14:53
- */
-@Slf4j
-@Api(tags="定时任务")
-@RestController
-@RequestMapping("/patrol/patrolTaskJob")
-@AllArgsConstructor
-public class PatrolTaskXxlJobController extends BladeController {
-
-	private IXxlJobInfoService xxlJobInfoService;
-
-	@ApiOperation(value="定时任务-分页列表查询", notes="定时任务-分页列表查询")
-	@GetMapping(value = "/list")
-	public R list(XxlJobInfo xxlJobInfo, Query query) {
-		IPage<XxlJobInfo> pageList = xxlJobInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(xxlJobInfo));
-		return R.data(pageList);
-	}
-
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@ApiOperation(value = "定时任务-通过id查询", notes = "定时任务-通过id查询")
-	@GetMapping(value = "/queryById")
-	public R queryById(@RequestParam(name = "id", required = true) String id) {
-		XxlJobInfo xxlJobInfo = xxlJobInfoService.getById(id);
-		return R.data(xxlJobInfo);
-	}
-
-	/**
-	 * 添加
-	 */
-	@ApiOperation(value="定时任务-添加", notes="定时任务-添加")
-	@PostMapping(value = "/add")
-	public R add(@RequestBody XxlJobInfo xxlJobInfo) {
-		return R.data(xxlJobInfoService.save(xxlJobInfo));
-	}
-
-	/**
-	 * 编辑
-	 * @return
-	 */
-	@ApiOperation(value="定时任务-编辑", notes="定时任务-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public R edit(@RequestBody XxlJobInfo xxlJobInfo) {
-		return R.data(xxlJobInfoService.updateById(xxlJobInfo));
-	}
-
-	/**
-	 * 通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@ApiOperation(value="定时任务-通过id删除", notes="定时任务-通过id删除")
-	@PostMapping(value = "/delete")
-	public R delete(@RequestParam(name="id",required=true) String id) {
-		return R.data(xxlJobInfoService.removeById(id));
-	}
-
-	/**
-	 * 批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@ApiOperation(value="定时任务-批量删除", notes="定时任务-批量删除")
-	@PostMapping(value = "/deleteBatch")
-	public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		return R.data(xxlJobInfoService.removeByIds(Arrays.asList(ids.split(","))));
-	}
-
-}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
new file mode 100644
index 0000000..62e617c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/patrol/feign/PatrolTaskImplClient.java
@@ -0,0 +1,85 @@
+package cn.gistack.sm.patrol.feign;
+
+import cn.gistack.sm.intelligentCall.service.CallService;
+import cn.gistack.sm.patrol.entity.PatrolTask;
+import cn.gistack.sm.patrol.service.IPatrolTaskService;
+import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
+import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * @ClassName SM服务Feign实现类
+ * @Description TODO
+ * @Author zhongrj
+ * @Date 2023-06-03
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@Slf4j
+public class PatrolTaskImplClient implements PatrolTaskClient {
+
+	private final IPatrolTaskService patrolTaskService;
+
+	private final IAttResManagePersonService attResManagePersonService;
+
+	/**
+	 * 给巡查责任人定时创建任务执行器
+	 * @param processDefinitionId
+	 * @param taskType
+	 * @param title
+	 * @param content
+	 * @return
+	 */
+	@Override
+	@GetMapping(CREATE_TASK_JOB_HANDLER)
+	public List<Integer> createTaskJobHandler(String processDefinitionId,
+											  String taskType,
+											  String title,
+											  String content) {
+		List<PatrolResponsiblePerson> patrolResponsiblePersonList =  attResManagePersonService.getPatrolResponsiblePersonAll();
+		AtomicInteger failureCount = new AtomicInteger();
+		patrolResponsiblePersonList.forEach(item -> {
+			log.info("当前创建任务对象:" + JSON.toJSONString(item));
+			try {
+				PatrolTask patrolTask = new PatrolTask();
+				patrolTask.setProcessDefinitionId(processDefinitionId);
+				patrolTask.setToUserId(item.getUserId());
+				patrolTask.setProjectId(item.getResGuid());
+				patrolTask.setReservoirName(item.getName());
+				// 开始时间-结束时间
+				patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00"));
+				patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59"));
+				// 标题格式 月-日 水库名称 每日巡检任务
+				patrolTask.setTitle(DateUtil.format(new Date(),"MM-dd") + item.getName() + "-" + title);
+				patrolTask.setContent(DateUtil.format(new Date(),"yyyyMMdd") +content);
+				patrolTask.setTaskType(taskType);
+				// 创建任务
+				patrolTaskService.startProcess(patrolTask);
+			} catch (Exception e) {
+				log.error("创建任务失败对象:"  + JSON.toJSONString(item));
+				failureCount.getAndIncrement();
+			}
+
+		});
+		List<Integer> list = new ArrayList<>();
+		list.add(patrolResponsiblePersonList.size());
+		list.add(failureCount.get());
+		// 返回
+		return list;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/jobhandler/SampleXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/jobhandler/SampleXxlJob.java
deleted file mode 100644
index 66bbd97..0000000
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/jobhandler/SampleXxlJob.java
+++ /dev/null
@@ -1,282 +0,0 @@
-package cn.gistack.sm.xxljob.jobhandler;
-
-import cn.gistack.sm.intelligentCall.service.CallService;
-import cn.gistack.sm.patrol.entity.PatrolTask;
-import cn.gistack.sm.patrol.service.IPatrolTaskService;
-import cn.gistack.sm.sjztmd.entity.PatrolResponsiblePerson;
-import cn.gistack.sm.sjztmd.service.IAttResManagePersonService;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.IJobHandler;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xxl.job.core.log.XxlJobLogger;
-import com.xxl.job.core.util.ShardingUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springblade.core.tool.utils.DateUtil;
-import org.springframework.stereotype.Component;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * @PROJECT_NAME: skjcmanager
- * @DESCRIPTION: 执行器相关
- * @USER: aix
- * @DATE: 2023/5/13 14:53
- */
-@Component
-public class SampleXxlJob {
-	private static final Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
-
-	private final IPatrolTaskService patrolTaskService;
-
-	private final IAttResManagePersonService attResManagePersonService;
-
-	private final CallService callService;
-
-	public SampleXxlJob(IPatrolTaskService patrolTaskService, IAttResManagePersonService attResManagePersonService, CallService callService) {
-		this.patrolTaskService = patrolTaskService;
-		this.attResManagePersonService = attResManagePersonService;
-		this.callService = callService;
-	}
-
-	/**
-	 * 1、简单任务示例(Bean模式)
-	 */
-	@XxlJob("demoJobHandler")
-	public ReturnT<String> demoJobHandler(String param) throws Exception {
-		XxlJobLogger.log("<span style='color:red'>XXL-JOB-BLADE_SM, Hello World.</span>");
-
-		for (int i = 0; i < 5; i++) {
-			XxlJobLogger.log("beat at:" + i);
-			TimeUnit.SECONDS.sleep(2);
-		}
-		return ReturnT.SUCCESS;
-	}
-
-	/**
-	 * 智能外呼任务创建定时执行器
-	 * @param param
-	 * @return
-	 * @throws Exception
-	 */
-	@XxlJob("outCallCreateTaskHandle")
-	public ReturnT<String> outCallCreateTaskHandle(String param){
-		XxlJobLogger.log("开始执行任务...");
-		JSONObject jsonParam = JSON.parseObject(param);
-		Map<String, Object> map = new HashMap<>();
-		map.put("isOver",jsonParam.getString("isOver"));
-		map.put("taskScheduleTime",jsonParam.getString("taskScheduleTime"));
-		map.put("personNumber",jsonParam.getString("personNumber"));
-		map.put("day",jsonParam.getString("day"));
-		// 创建外呼任务
-		Object result = callService.createCallTaskByParam(map);
-		XxlJobLogger.log("任务响应结果:" + result);
-		XxlJobLogger.log("结束自动创建任务...");
-		return ReturnT.SUCCESS;
-	}
-
-	/**
-	 * 给巡查责任人定时创建任务执行器
-	 * @param param
-	 * @return
-	 * @throws Exception
-	 */
-	@XxlJob("createTaskJobHandler")
-	public ReturnT<String> createTaskJobHandler(String param) throws Exception {
-		XxlJobLogger.log("开始自动创建任务...");
-		JSONObject jsonParam = JSON.parseObject(param);
-		String processDefinitionId = jsonParam.getString("processDefinitionId");
-		final String taskType = jsonParam.getString("taskType");
-		final String title = jsonParam.getString("title");
-		final String content = jsonParam.getString("content");
-		List<PatrolResponsiblePerson> patrolResponsiblePersonList =  attResManagePersonService.getPatrolResponsiblePersonAll();
-		AtomicInteger failureCount = new AtomicInteger();
-		int successCount = 0;
-		patrolResponsiblePersonList.forEach(item -> {
-			XxlJobLogger.log("当前创建任务对象:" + JSON.toJSONString(item));
-			try {
-				PatrolTask patrolTask = new PatrolTask();
-				patrolTask.setProcessDefinitionId(processDefinitionId);
-				patrolTask.setToUserId(item.getUserId());
-				patrolTask.setProjectId(item.getResGuid());
-				patrolTask.setReservoirName(item.getName());
-				// 开始时间-结束时间
-				patrolTask.setStartTime(DateUtil.format(new Date(),"yyyy-MM-dd 00:00:00"));
-				patrolTask.setEndTime(DateUtil.format(new Date(),"yyyy-MM-dd 23:59:59"));
-				// 标题格式 月-日 水库名称 每日巡检任务
-				patrolTask.setTitle(DateUtil.format(new Date(),"MM-dd") + item.getName() + "-" + title);
-				patrolTask.setContent(DateUtil.format(new Date(),"yyyyMMdd") +content);
-				patrolTask.setTaskType(taskType);
-				// 创建任务
-				patrolTaskService.startProcess(patrolTask);
-			} catch (Exception e) {
-				XxlJobLogger.log("创建任务失败对象:"  + JSON.toJSONString(item));
-				failureCount.getAndIncrement();
-			}
-
-		});
-
-		XxlJobLogger.log("结束自动创建任务...");
-		XxlJobLogger.log("总数量:<span style='color:red'>" + patrolResponsiblePersonList.size() + "</span> ... 失败数量:<span style='color:red'>" + failureCount + "</span> ");
-		return ReturnT.SUCCESS;
-	}
-
-	/**
-	 * 2、分片广播任务
-	 */
-	@XxlJob("shardingJobHandler")
-	public ReturnT<String> shardingJobHandler(String param) throws Exception {
-
-		// 分片参数
-		ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
-		XxlJobLogger.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardingVO.getIndex(), shardingVO.getTotal());
-
-		// 业务逻辑
-		for (int i = 0; i < shardingVO.getTotal(); i++) {
-			if (i == shardingVO.getIndex()) {
-				XxlJobLogger.log("第 {} 片, 命中分片开始处理", i);
-			} else {
-				XxlJobLogger.log("第 {} 片, 忽略", i);
-			}
-		}
-
-		return ReturnT.SUCCESS;
-	}
-
-
-	/**
-	 * 3、命令行任务
-	 */
-	@XxlJob("commandJobHandler")
-	public ReturnT<String> commandJobHandler(String param) throws Exception {
-		String command = param;
-		int exitValue = -1;
-
-		BufferedReader bufferedReader = null;
-		try {
-			// command process
-			Process process = Runtime.getRuntime().exec(command);
-			BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());
-			bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
-
-			// command log
-			String line;
-			while ((line = bufferedReader.readLine()) != null) {
-				XxlJobLogger.log(line);
-			}
-
-			// command exit
-			process.waitFor();
-			exitValue = process.exitValue();
-		} catch (Exception e) {
-			XxlJobLogger.log(e);
-		} finally {
-			if (bufferedReader != null) {
-				bufferedReader.close();
-			}
-		}
-
-		if (exitValue == 0) {
-			return IJobHandler.SUCCESS;
-		} else {
-			return new ReturnT<String>(IJobHandler.FAIL.getCode(), "command exit value(" + exitValue + ") is failed");
-		}
-	}
-
-
-	/**
-	 * 4、跨平台Http任务
-	 */
-	@XxlJob("httpJobHandler")
-	public ReturnT<String> httpJobHandler(String param) throws Exception {
-
-		// request
-		HttpURLConnection connection = null;
-		BufferedReader bufferedReader = null;
-		try {
-			// connection
-			URL realUrl = new URL(param);
-			connection = (HttpURLConnection) realUrl.openConnection();
-
-			// connection setting
-			connection.setRequestMethod("GET");
-			connection.setDoOutput(true);
-			connection.setDoInput(true);
-			connection.setUseCaches(false);
-			connection.setReadTimeout(5 * 1000);
-			connection.setConnectTimeout(3 * 1000);
-			connection.setRequestProperty("connection", "Keep-Alive");
-			connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
-			connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
-
-			// do connection
-			connection.connect();
-
-			//Map<String, List<String>> map = connection.getHeaderFields();
-
-			// valid StatusCode
-			int statusCode = connection.getResponseCode();
-			if (statusCode != 200) {
-				throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
-			}
-
-			// result
-			bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
-			StringBuilder result = new StringBuilder();
-			String line;
-			while ((line = bufferedReader.readLine()) != null) {
-				result.append(line);
-			}
-			String responseMsg = result.toString();
-
-			XxlJobLogger.log(responseMsg);
-			return ReturnT.SUCCESS;
-		} catch (Exception e) {
-			XxlJobLogger.log(e);
-			return ReturnT.FAIL;
-		} finally {
-			try {
-				if (bufferedReader != null) {
-					bufferedReader.close();
-				}
-				if (connection != null) {
-					connection.disconnect();
-				}
-			} catch (Exception e2) {
-				XxlJobLogger.log(e2);
-			}
-		}
-
-	}
-
-	/**
-	 * 5、生命周期任务示例:任务初始化与销毁时,支持自定义相关逻辑;
-	 */
-	@XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")
-	public ReturnT<String> demoJobHandler2(String param) throws Exception {
-		XxlJobLogger.log("XXL-JOB, Hello World.");
-		return ReturnT.SUCCESS;
-	}
-
-	public void init() {
-		logger.info("init");
-	}
-
-	public void destroy() {
-		logger.info("destory");
-	}
-
-
-}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
index 81562f2..1a376d5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-dev.yml
@@ -41,20 +41,20 @@
           password: ${blade.datasource.dev.xxljob.password}
   main:
     allow-circular-references: true
-xxl:
-  job:
-    accessToken: ''
-    admin:
-      ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
-      addresses: http://127.0.0.1:7009/xxl-job-admin
-    executor:
-      ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
-      appname: blade-xxljob
-      ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
-      ip: 127.0.0.1
-      ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
-      logpath: ../data/applogs/xxl-job/jobhandler
-      ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
-      logretentiondays: -1
-      ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
-      port: 7018
+#xxl:
+#  job:
+#    accessToken: ''
+#    admin:
+#      ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
+#      addresses: http://127.0.0.1:7009/xxl-job-admin
+#    executor:
+#      ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
+#      appname: blade-xxljob
+#      ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
+#      ip: 127.0.0.1
+#      ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
+#      logpath: ../data/applogs/xxl-job/jobhandler
+#      ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
+#      logretentiondays: -1
+#      ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
+#      port: 7018
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
index 2448d65..d461dd4 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/application-prod.yml
@@ -39,20 +39,20 @@
           password: ${blade.datasource.prod.xxljob.password}
   main:
     allow-circular-references: true
-xxl:
-  job:
-    accessToken: ''
-    admin:
-      ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
-      addresses: http://127.0.0.1:7009/xxl-job-admin
-    executor:
-      ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
-      appname: blade-xxljob
-      ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
-      ip: 127.0.0.1
-      ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
-      logpath: ../data/applogs/xxl-job/jobhandler
-      ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
-      logretentiondays: -1
-      ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
-      port: 7018
+#xxl:
+#  job:
+#    accessToken: ''
+#    admin:
+#      ### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
+#      addresses: http://127.0.0.1:7009/xxl-job-admin
+#    executor:
+#      ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
+#      appname: blade-xxljob
+#      ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
+#      ip: 127.0.0.1
+#      ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
+#      logpath: ../data/applogs/xxl-job/jobhandler
+#      ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
+#      logretentiondays: -1
+#      ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
+#      port: 7018
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/Dockerfile
similarity index 100%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/Dockerfile
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
similarity index 79%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
index 9681e2c..6ac8e6a 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/pom.xml
@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <artifactId>skjcmanager-ops</artifactId>
+        <artifactId>skjcmanager-service</artifactId>
         <groupId>cn.gistack</groupId>
         <version>3.0.1.RELEASE</version>
     </parent>
@@ -20,6 +20,16 @@
             <artifactId>skjcmanager-common</artifactId>
             <version>${bladex.project.version}</version>
         </dependency>
+        <!--开启多数据源-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-auto</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-core-cloud</artifactId>
@@ -33,6 +43,11 @@
             <groupId>com.xuxueli</groupId>
             <artifactId>xxl-job-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.gistack</groupId>
+            <artifactId>skjcmanager-sm-api</artifactId>
+            <version>3.0.1.RELEASE</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/JobApplication.java
similarity index 83%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/JobApplication.java
index 60307d5..b98fdac 100644
--- a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/JobApplication.java
@@ -14,11 +14,13 @@
  *  this software without specific prior written permission.
  *  Author: Chill 庄骞 (smallchill@163.com)
  */
-package cn.gistack.job.executor;
+package cn.gistack.job;
 
 import cn.gistack.common.constant.LauncherConstant;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springblade.core.cloud.client.BladeCloudApplication;
 import org.springblade.core.launch.BladeApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 
 /**
  * Job启动器
@@ -26,6 +28,8 @@
  * @author Chill
  */
 @BladeCloudApplication
+@EnableFeignClients({"cn.gistack"})
+@MapperScan({"org.springblade.**.mapper.**","cn.gistack.job.**.mapper.**"})
 public class JobApplication {
 
 	public static void main(String[] args) {
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/config/XxlJobConfig.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
similarity index 97%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/config/XxlJobConfig.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
index e268b71..c78e531 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/config/XxlJobConfig.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
@@ -1,4 +1,4 @@
-package cn.gistack.sm.xxljob.config;
+package cn.gistack.job.executor.config;
 
 import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
 import org.slf4j.Logger;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TaskXxlJobController.java
similarity index 94%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TaskXxlJobController.java
index c1f598b..b25c7e5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TaskXxlJobController.java
@@ -1,8 +1,8 @@
-package cn.gistack.sm.xxljob.controller;
+package cn.gistack.job.executor.controller;
 
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
-import cn.gistack.sm.xxljob.service.IXxlJobInfoService;
-import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+import cn.gistack.job.executor.entity.XxlJobInfo;
+import cn.gistack.job.executor.service.IXxlJobInfoService;
+import cn.gistack.job.executor.vo.XxlJobInfoVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java
similarity index 100%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfo.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfo.java
similarity index 97%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfo.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfo.java
index 6c6a7d7..1ac15c1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfo.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfo.java
@@ -1,4 +1,4 @@
-package cn.gistack.sm.xxljob.entity;
+package cn.gistack.job.executor.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfoType.java
similarity index 89%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfoType.java
index 00fac22..e161e92 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/entity/XxlJobInfoType.java
@@ -1,4 +1,4 @@
-package cn.gistack.sm.xxljob.entity;
+package cn.gistack.job.executor.entity;
 
 import lombok.Data;
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/OutCallXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/OutCallXxlJob.java
new file mode 100644
index 0000000..2f653f9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/OutCallXxlJob.java
@@ -0,0 +1,64 @@
+package cn.gistack.job.executor.jobhandler;
+
+import cn.gistack.sm.intelligentCall.feign.OutCallClient;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 智能外呼定时任务执行器
+ * @author zhongrj
+ * @date 2023-06-03
+ */
+@Component
+public class OutCallXxlJob {
+
+	@Autowired
+	private OutCallClient outCallClient;
+
+	/**
+	 * 智能外呼定时创建任务执行器
+	 * @param param
+	 * @return
+	 * @throws Exception
+	 */
+	@XxlJob("createOutCallTaskJobHandler")
+	public ReturnT<String> createOutCallTaskJobHandler(String param){
+		XxlJobLogger.log("开始执行任务...");
+		JSONObject jsonParam = JSON.parseObject(param);
+		String isOver = jsonParam.getString("isOver");
+		String taskScheduleTime = jsonParam.getString("taskScheduleTime");
+		String personNumber = jsonParam.getString("personNumber");
+		String day = jsonParam.getString("day");
+		// 创建外呼任务
+		Object result = outCallClient.createOutCallTaskJobHandler(isOver,taskScheduleTime,personNumber, day);
+		XxlJobLogger.log("任务响应结果:" + result);
+		XxlJobLogger.log("结束自动创建任务...");
+		return ReturnT.SUCCESS;
+	}
+
+	/**
+	 * 测试
+	 * @param param
+	 * @return
+	 * @throws Exception
+	 */
+	@XxlJob("testOutCall")
+	public ReturnT<String> testOutCall(String param){
+		XxlJobLogger.log("开始执行任务...");
+		JSONObject jsonParam = JSON.parseObject(param);
+		String isOver = jsonParam.getString("isOver");
+		String taskScheduleTime = jsonParam.getString("taskScheduleTime");
+		String personNumber = jsonParam.getString("personNumber");
+		String day = jsonParam.getString("day");
+		// 创建外呼任务
+		Object result = outCallClient.testOutCall(isOver,taskScheduleTime,personNumber, day);
+		XxlJobLogger.log("任务响应结果:" + result);
+		XxlJobLogger.log("结束自动创建任务...");
+		return ReturnT.SUCCESS;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java
new file mode 100644
index 0000000..bcfb89e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/PatrolXxlJob.java
@@ -0,0 +1,47 @@
+package cn.gistack.job.executor.jobhandler;
+
+import cn.gistack.sm.patrol.feign.PatrolTaskClient;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+/**
+ * 巡查任务定时任务执行器
+ * @author zhongrj
+ * @date 2023-06-03
+ */
+@Component
+public class PatrolXxlJob {
+
+	@Autowired
+	private PatrolTaskClient patrolTasClient;
+
+	/**
+	 * 给巡查责任人定时创建任务执行器
+	 * @param param
+	 * @return
+	 * @throws Exception
+	 */
+	@XxlJob("createTaskJobHandler")
+	public ReturnT<String> createTaskJobHandler(String param){
+		XxlJobLogger.log("开始自动创建任务...");
+		JSONObject jsonParam = JSON.parseObject(param);
+		String processDefinitionId = jsonParam.getString("processDefinitionId");
+		String taskType = jsonParam.getString("taskType");
+		String title = jsonParam.getString("title");
+		String content = jsonParam.getString("content");
+		// 远程调用
+		List<Integer> taskJobHandler = patrolTasClient.createTaskJobHandler(processDefinitionId, taskType, title, content);
+		// 打印响应数据
+		XxlJobLogger.log("结束自动创建任务...");
+		XxlJobLogger.log("总数量:<span style='color:red'>" + taskJobHandler.get(0) + "</span> ... 失败数量:<span style='color:red'>" + taskJobHandler.get(1)  + "</span> ");
+		return ReturnT.SUCCESS;
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java
similarity index 100%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/launch/SmLauncherServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/launch/SmLauncherServiceImpl.java
new file mode 100644
index 0000000..6f434f5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/launch/SmLauncherServiceImpl.java
@@ -0,0 +1,48 @@
+package cn.gistack.job.executor.launch;
+
+import cn.gistack.common.constant.LauncherConstant;
+import org.springblade.core.auto.service.AutoService;
+import org.springblade.core.launch.service.LauncherService;
+import org.springblade.core.launch.utils.PropsUtil;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+import java.util.Properties;
+
+/**
+ * 启动参数拓展
+ *
+ * @author smallchil
+ */
+@AutoService(LauncherService.class)
+public class SmLauncherServiceImpl implements LauncherService {
+
+	@Override
+	public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) {
+		Properties props = System.getProperties();
+		// 通用注册
+		PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", LauncherConstant.nacosAddr(profile));
+		PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile));
+
+
+		PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile));
+		PropsUtil.setProperty(props, "spring.zipkin.base-url", LauncherConstant.zipkinAddr(profile));
+		//开启多数据源
+		PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "true");
+
+		// 开启elk日志
+		// PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile));
+
+		// seata注册地址
+		// PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile));
+		// seata注册group格式
+		// PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName));
+		// seata配置服务group
+		// PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE);
+		// seata注册模式配置
+		// PropsUtil.setProperty(props, "seata.registry.type", LauncherConstant.NACOS_MODE);
+		// PropsUtil.setProperty(props, "seata.registry.nacos.server-addr", LauncherConstant.nacosAddr(profile));
+		// PropsUtil.setProperty(props, "seata.config.type", LauncherConstant.NACOS_MODE);
+		// PropsUtil.setProperty(props, "seata.config.nacos.server-addr", LauncherConstant.nacosAddr(profile));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.java
similarity index 69%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.java
index 4a030e8..05df119 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.java
@@ -1,8 +1,8 @@
-package cn.gistack.sm.xxljob.mapper;
+package cn.gistack.job.executor.mapper;
 
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
-import cn.gistack.sm.xxljob.entity.XxlJobInfoType;
-import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+import cn.gistack.job.executor.entity.XxlJobInfo;
+import cn.gistack.job.executor.entity.XxlJobInfoType;
+import cn.gistack.job.executor.vo.XxlJobInfoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -31,5 +31,5 @@
 	 * @param xxlJobInfoType
 	 * @return
 	 */
-	Integer insertXxlJobInfoType(@Param("xxlJobInfoType")XxlJobInfoType xxlJobInfoType);
+	Integer insertXxlJobInfoType(@Param("xxlJobInfoType") XxlJobInfoType xxlJobInfoType);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.xml
similarity index 86%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.xml
index 630f8d3..feff18d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/mapper/XxlJobInfoMapper.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.gistack.sm.xxljob.mapper.XxlJobInfoMapper">
+<mapper namespace="cn.gistack.job.executor.mapper.XxlJobInfoMapper">
 
     <!--自定义分页查询定时任务列表信息-->
-    <select id="selectXxlJobPage" resultType="cn.gistack.sm.xxljob.vo.XxlJobInfoVO">
+    <select id="selectXxlJobPage" resultType="cn.gistack.job.executor.vo.XxlJobInfoVO">
         select xji.* from YWXT_JOB.xxl_job_info xji
         left join YWXT.xxl_job_info_type xjit on xji.id = xjit.xxl_job_info_id
         where 1=1
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/IXxlJobInfoService.java
similarity index 83%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/IXxlJobInfoService.java
index cb0803a..2c5685e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/IXxlJobInfoService.java
@@ -1,7 +1,7 @@
-package cn.gistack.sm.xxljob.service;
+package cn.gistack.job.executor.service;
 
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
-import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+import cn.gistack.job.executor.entity.XxlJobInfo;
+import cn.gistack.job.executor.vo.XxlJobInfoVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/impl/XxlJobInfoServiceImpl.java
similarity index 82%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/impl/XxlJobInfoServiceImpl.java
index 1be5f8b..8502f4c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/service/impl/XxlJobInfoServiceImpl.java
@@ -1,10 +1,10 @@
-package cn.gistack.sm.xxljob.service.impl;
+package cn.gistack.job.executor.service.impl;
 
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
-import cn.gistack.sm.xxljob.entity.XxlJobInfoType;
-import cn.gistack.sm.xxljob.mapper.XxlJobInfoMapper;
-import cn.gistack.sm.xxljob.service.IXxlJobInfoService;
-import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+import cn.gistack.job.executor.entity.XxlJobInfo;
+import cn.gistack.job.executor.entity.XxlJobInfoType;
+import cn.gistack.job.executor.mapper.XxlJobInfoMapper;
+import cn.gistack.job.executor.service.IXxlJobInfoService;
+import cn.gistack.job.executor.vo.XxlJobInfoVO;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/vo/XxlJobInfoVO.java
similarity index 69%
rename from skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/vo/XxlJobInfoVO.java
index d113510..4893a0f 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/vo/XxlJobInfoVO.java
@@ -1,6 +1,6 @@
-package cn.gistack.sm.xxljob.vo;
+package cn.gistack.job.executor.vo;
 
-import cn.gistack.sm.xxljob.entity.XxlJobInfo;
+import cn.gistack.job.executor.entity.XxlJobInfo;
 import lombok.Data;
 
 /**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..8f769e3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-dev.yml
@@ -0,0 +1,33 @@
+#多数据源配置
+spring:
+  #排除DruidDataSourceAutoConfigure
+  autoconfigure:
+    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+  datasource:
+    dynamic:
+      #设置默认的数据源或者数据源组,默认值即为master
+      primary: master
+      datasource:
+        ## 业务默认数据源
+        master:
+          url: ${blade.datasource.dev.url}
+          username: ${blade.datasource.dev.username}
+          password: ${blade.datasource.dev.password}
+        ##中台数据源
+        zt:
+          url: ${blade.datasource.dev.zt.url}
+          username: ${blade.datasource.dev.zt.username}
+          password: ${blade.datasource.dev.zt.password}
+        # 智能外呼数据库
+        ztznwh:
+          url: ${blade.datasource.dev.ztznwh.url}
+          username: ${blade.datasource.dev.ztznwh.username}
+          password: ${blade.datasource.dev.ztznwh.password}
+        ## 定时器数据源
+        xxljob:
+          url: ${blade.datasource.dev.xxljob.url}
+          username: ${blade.datasource.dev.xxljob.username}
+          password: ${blade.datasource.dev.xxljob.password}
+  main:
+    allow-circular-references: true
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..069ea55
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application-prod.yml
@@ -0,0 +1,31 @@
+#多数据源配置
+spring:
+  #排除DruidDataSourceAutoConfigure
+  autoconfigure:
+    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
+  datasource:
+    dynamic:
+      #设置默认的数据源或者数据源组,默认值即为master
+      primary: master
+      datasource:
+        master:
+          url: ${blade.datasource.prod.url}
+          username: ${blade.datasource.prod.username}
+          password: ${blade.datasource.prod.password}
+        zt:
+          url: ${blade.datasource.prod.zt.url}
+          username: ${blade.datasource.prod.zt.username}
+          password: ${blade.datasource.prod.zt.password}
+        # 智能外呼数据库
+        ztznwh:
+          url: ${blade.datasource.prod.ztznwh.url}
+          username: ${blade.datasource.prod.ztznwh.username}
+          password: ${blade.datasource.prod.ztznwh.password}
+        ## 定时器数据源
+        xxljob:
+          url: ${blade.datasource.prod.xxljob.url}
+          username: ${blade.datasource.prod.xxljob.username}
+          password: ${blade.datasource.prod.xxljob.password}
+  main:
+    allow-circular-references: true
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application.yml
similarity index 100%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/application.yml
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml b/skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/logback.xml
similarity index 100%
rename from skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml
rename to skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/resources/logback.xml

--
Gitblit v1.9.3