From 9122bbc2defd1bbef5dcfaaf906651489ad1095d Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 22 May 2023 14:46:11 +0800
Subject: [PATCH] 定时任务查询,新增定时任务关联,智能外呼定时任务创建

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java |   56 ++++++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml                |   22 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java            |   23 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java                 |   29 ++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java    |   46 ++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java                       |   20 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java               |   20 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java       |  126 ++++++++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/jobhandler/SampleXxlJob.java               |   29 ++++
 9 files changed, 358 insertions(+), 13 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
index ac9d460..2c16f77 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -377,20 +377,52 @@
 		}
 		// 先取差集
 		List<Scene> sceneList = totalList.stream().filter(item -> !list.contains(item.getPhone())).collect(Collectors.toList());
-		// 再随机抽取对应人员手机号
-		Set<Scene> hashSet = new HashSet<>();
-		Random random =new Random();
-		for(int i=0;i<sceneList.size();i++){
-			// 获取随机数作为下标索引
-			int num = random.nextInt(sceneList.size());
-			// 保存到 hashSet ,保证唯一
-			hashSet.add(sceneList.get(num));
-			// 数量达到预期设定退出循环
-			if (hashSet.size()==personNumber){
-				break;
+		// 如果差集数量不够 预定的数量(超汛情况),则从未超汛情况数据中补齐预定的数量
+		if (sceneList.size()<personNumber){
+			Map<String, Object> map = new HashMap<>();
+			map.put("isOver",0);
+			// 查询未超汛的数据
+			JSONArray jsonArray = getZtWaterMangerData(map);
+			// 过滤得到手机号集合(排查手机号为null的数据)
+			List<Scene> sceneListNoOver = filterJsonToList(jsonArray);
+			// 取差集
+			List<Scene> differenceSceneListNoOver = sceneListNoOver.stream().filter(item -> !list.contains(item.getPhone())).collect(Collectors.toList());
+			// 再随机抽取对应人员手机号
+			Set<Scene> hashSet = new HashSet<>();
+			// 先将超汛的加入集合
+			for (Scene scene : sceneList) {
+				hashSet.add(scene);
 			}
+			// 未超汛的补充
+			personNumber = personNumber - sceneList.size();
+			Random random = new Random();
+			for (int i = 0; i < differenceSceneListNoOver.size(); i++) {
+				// 获取随机数作为下标索引
+				int num = random.nextInt(differenceSceneListNoOver.size());
+				// 保存到 hashSet ,保证唯一
+				hashSet.add(differenceSceneListNoOver.get(num));
+				// 数量达到预期设定退出循环
+				if (hashSet.size() == personNumber) {
+					break;
+				}
+			}
+			return hashSet;
+		}else {
+			// 再随机抽取对应人员手机号
+			Set<Scene> hashSet = new HashSet<>();
+			Random random = new Random();
+			for (int i = 0; i < sceneList.size(); i++) {
+				// 获取随机数作为下标索引
+				int num = random.nextInt(sceneList.size());
+				// 保存到 hashSet ,保证唯一
+				hashSet.add(sceneList.get(num));
+				// 数量达到预期设定退出循环
+				if (hashSet.size() == personNumber) {
+					break;
+				}
+			}
+			return hashSet;
 		}
-		return hashSet;
 	}
 
 	/**
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java
new file mode 100644
index 0000000..6f387f4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/controller/TaskXxlJobController.java
@@ -0,0 +1,126 @@
+package cn.gistack.sm.xxljob.controller;
+
+import cn.gistack.sm.xxljob.entity.XxlJobInfo;
+import cn.gistack.sm.xxljob.service.IXxlJobInfoService;
+import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+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.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;
+
+/**
+ * @author zhongrj
+ * @date 2023-05-22
+ */
+@Slf4j
+@Api(tags="定时任务")
+@RestController
+@AllArgsConstructor
+@RequestMapping("/xxl-job/xxl-job")
+public class TaskXxlJobController {
+
+	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);
+	}
+
+	/**
+	 * 自定义分页查询定时任务列表信息
+	 * @param xxlJobInfo
+	 * @param query
+	 * @return
+	 */
+	@ApiOperation(value="定时任务-自定义分页查询定时任务列表信息", notes="定时任务-自定义分页查询定时任务列表信息")
+	@GetMapping(value = "/page")
+	public R selectXxlJobPage(XxlJobInfoVO xxlJobInfo, Query query) {
+		IPage<XxlJobInfoVO> pageList = xxlJobInfoService.selectXxlJobPage(Condition.getPage(query), 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));
+	}
+
+	/**
+	 * 添加-自定义
+	 */
+	@ApiOperation(value="定时任务-添加", notes="定时任务-添加")
+	@PostMapping(value = "/save")
+	public R save(@RequestBody XxlJobInfoVO xxlJobInfo) {
+		return R.data(xxlJobInfoService.saveXxlJob(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));
+	}
+
+	/**
+	 * 编辑--自定义
+	 * @return
+	 */
+	@ApiOperation(value="定时任务-编辑", notes="定时任务-编辑")
+	@RequestMapping(value = "/update", method = {RequestMethod.PUT,RequestMethod.POST})
+	public R update(@RequestBody XxlJobInfoVO xxlJobInfo) {
+		return R.data(xxlJobInfoService.updateXxlJobById(xxlJobInfo));
+	}
+
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@ApiOperation(value="定时任务-通过id删除", notes="定时任务-通过id删除")
+	@DeleteMapping(value = "/delete")
+	public R delete(@RequestParam(name="id",required=true) String id) {
+		return R.data(xxlJobInfoService.removeById(id));
+	}
+
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@ApiOperation(value="定时任务-批量删除", notes="定时任务-批量删除")
+	@DeleteMapping(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/xxljob/entity/XxlJobInfoType.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java
new file mode 100644
index 0000000..00fac22
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/entity/XxlJobInfoType.java
@@ -0,0 +1,29 @@
+package cn.gistack.sm.xxljob.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 任务信息类型关联信息
+ * @author zhongrj
+ * @date 2023-05-22
+ */
+@Data
+public class XxlJobInfoType implements Serializable {
+
+	/**
+	 * 主键id
+	 */
+	private Integer id;
+
+	/**
+	 * 任务信息id
+	 */
+	private Integer xxlJobInfoId;
+
+	/**
+	 * 任务类型名称
+	 */
+	private String typeName;
+}
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
index d2b8e28..649ee02 100644
--- 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
@@ -1,5 +1,6 @@
 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;
@@ -22,7 +23,9 @@
 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;
 
@@ -40,9 +43,12 @@
 
 	private final IAttResManagePersonService attResManagePersonService;
 
-	public SampleXxlJob(IPatrolTaskService patrolTaskService, IAttResManagePersonService attResManagePersonService) {
+	private final CallService callService;
+
+	public SampleXxlJob(IPatrolTaskService patrolTaskService, IAttResManagePersonService attResManagePersonService, CallService callService) {
 		this.patrolTaskService = patrolTaskService;
 		this.attResManagePersonService = attResManagePersonService;
+		this.callService = callService;
 	}
 
 	/**
@@ -60,6 +66,27 @@
 	}
 
 	/**
+	 * 智能外呼任务创建定时执行器
+	 * @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"));
+		// 创建外呼任务
+		callService.createCallTaskByParam(map);
+		XxlJobLogger.log("结束自动创建任务...");
+		return ReturnT.SUCCESS;
+	}
+
+	/**
 	 * 给巡查责任人定时创建任务执行器
 	 * @param param
 	 * @return
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java
index a5c26d7..4a030e8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.java
@@ -1,7 +1,13 @@
 package cn.gistack.sm.xxljob.mapper;
 
 import cn.gistack.sm.xxljob.entity.XxlJobInfo;
+import cn.gistack.sm.xxljob.entity.XxlJobInfoType;
+import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @PROJECT_NAME: skjcmanager
@@ -12,4 +18,18 @@
 public interface XxlJobInfoMapper extends BaseMapper<XxlJobInfo> {
 
 
+	/**
+	 * 自定义分页查询定时任务列表信息
+	 * @param xxlJobInfo
+	 * @param page
+	 * @return
+	 */
+    List<XxlJobInfoVO> selectXxlJobPage(IPage<XxlJobInfoVO> page,@Param("xxlJobInfo") XxlJobInfoVO xxlJobInfo);
+
+	/**
+	 * 新增 xxlJobInfoType 信息
+	 * @param xxlJobInfoType
+	 * @return
+	 */
+	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-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml
index f65e043..630f8d3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/mapper/XxlJobInfoMapper.xml
@@ -2,5 +2,27 @@
 <!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">
 
+    <!--自定义分页查询定时任务列表信息-->
+    <select id="selectXxlJobPage" resultType="cn.gistack.sm.xxljob.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
+        <if test="xxlJobInfo.typeName!=null and xxlJobInfo.typeName!=''">
+            and xjit.type_name = #{xxlJobInfo.typeName}
+        </if>
+        <if test="xxlJobInfo.author!=null and xxlJobInfo.author!=''">
+            and xji.author like concat(concat('%',#{xxlJobInfo.author}),'%')
+        </if>
+        <if test="xxlJobInfo.triggerStatus!=null">
+            and xji.trigger_status = #{xxlJobInfo.triggerStatus}
+        </if>
+    </select>
+
+    <!--自定义新增-->
+    <insert id="insertXxlJobInfoType">
+        insert into YWXT.xxl_job_info_type(xxl_job_info_id,type_name)
+        values
+        (#{xxlJobInfoType.xxlJobInfoId},#{xxlJobInfoType.typeName})
+    </insert>
 
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java
index 0365803..cb0803a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/IXxlJobInfoService.java
@@ -1,6 +1,8 @@
 package cn.gistack.sm.xxljob.service;
 
 import cn.gistack.sm.xxljob.entity.XxlJobInfo;
+import cn.gistack.sm.xxljob.vo.XxlJobInfoVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -11,4 +13,25 @@
  */
 public interface IXxlJobInfoService extends IService<XxlJobInfo> {
 
+	/**
+	 * 自定义新增定时任务
+	 * @param xxlJobInfo
+	 * @return
+	 */
+    Object saveXxlJob(XxlJobInfoVO xxlJobInfo);
+
+	/**
+	 * 自定义修改定时任务
+	 * @param xxlJobInfo
+	 * @return
+	 */
+	Object updateXxlJobById(XxlJobInfoVO xxlJobInfo);
+
+	/**
+	 * 自定义分页查询定时任务列表信息
+	 * @param xxlJobInfo
+	 * @param page
+	 * @return
+	 */
+	IPage<XxlJobInfoVO> selectXxlJobPage(IPage<XxlJobInfoVO> page, XxlJobInfoVO xxlJobInfo);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java
index 5c70bb3..1be5f8b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/service/impl/XxlJobInfoServiceImpl.java
@@ -1,9 +1,12 @@
 package cn.gistack.sm.xxljob.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 com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
@@ -17,4 +20,47 @@
 @DS("xxljob")
 public class XxlJobInfoServiceImpl extends ServiceImpl<XxlJobInfoMapper, XxlJobInfo> implements IXxlJobInfoService {
 
+	/**
+	 * 自定义新增定时任务
+	 * @param xxlJobInfo
+	 * @return
+	 */
+	@Override
+	public Object saveXxlJob(XxlJobInfoVO xxlJobInfo) {
+		boolean flag = false;
+		boolean save = save(xxlJobInfo);
+		if (save){
+			XxlJobInfoType xxlJobInfoType = new XxlJobInfoType();
+			xxlJobInfoType.setXxlJobInfoId(xxlJobInfo.getId());
+			xxlJobInfoType.setTypeName(xxlJobInfo.getTypeName());
+			// 插入成功则
+			Integer insert = baseMapper.insertXxlJobInfoType(xxlJobInfoType);
+			if (insert >0){
+				flag = true;
+			}
+		}
+		return flag;
+	}
+
+	/**
+	 * 自定义修改定时任务
+	 * @param xxlJobInfo
+	 * @return
+	 */
+	@Override
+	public Object updateXxlJobById(XxlJobInfoVO xxlJobInfo) {
+		boolean update = updateById(xxlJobInfo);
+		return update;
+	}
+
+	/**
+	 * 自定义分页查询定时任务列表信息
+	 * @param xxlJobInfo
+	 * @param page
+	 * @return
+	 */
+	@Override
+	public IPage<XxlJobInfoVO> selectXxlJobPage(IPage<XxlJobInfoVO> page, XxlJobInfoVO xxlJobInfo) {
+		return page.setRecords(baseMapper.selectXxlJobPage(page,xxlJobInfo));
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java
new file mode 100644
index 0000000..d113510
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/xxljob/vo/XxlJobInfoVO.java
@@ -0,0 +1,20 @@
+package cn.gistack.sm.xxljob.vo;
+
+import cn.gistack.sm.xxljob.entity.XxlJobInfo;
+import lombok.Data;
+
+/**
+ * xxljobvo
+ * @author zhongrj
+ * @date 2023-05-22
+ */
+@Data
+public class XxlJobInfoVO extends XxlJobInfo {
+
+	/**
+	 * xxl-job 类型名称
+	 */
+	private String typeName;
+
+
+}

--
Gitblit v1.9.3