From a2979b5df06744de80c6be6218260e2fa701cce2 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 10 Jan 2024 20:27:42 +0800
Subject: [PATCH] 新增标签任务处理
---
src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.xml | 39 +++
src/main/java/org/springblade/modules/task/service/impl/TaskCampusReportingEventServiceImpl.java | 6
src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java | 66 +++++
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java | 15 +
src/main/java/org/springblade/xxljob/service/IJobInfoService.java | 26 ++
src/main/java/org/springblade/xxljob/entity/JobInfoEntity.java | 134 ++++++++++++
src/main/java/org/springblade/xxljob/dto/JobInfoDTO.java | 18 +
src/main/java/org/springblade/xxljob/service/impl/JobInfoServiceImpl.java | 26 ++
src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.java | 27 ++
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml | 19 +
src/main/java/org/springblade/xxljob/vo/JobInfoVO.java | 18 +
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java | 8
src/main/java/org/springblade/modules/place/service/IPlaceService.java | 9
src/main/java/org/springblade/modules/task/service/ITaskService.java | 8
src/main/java/org/springblade/xxljob/controller/JobInfoController.java | 109 +++++++++
src/main/java/org/springblade/modules/task/entity/TaskCampusReportingEventEntity.java | 34 ++
src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java | 54 ++++
src/main/java/org/springblade/modules/place/vo/PlaceVO.java | 6
src/main/java/org/springblade/xxljob/wrapper/JobInfoWrapper.java | 34 +++
19 files changed, 648 insertions(+), 8 deletions(-)
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
index 24b859a..649c88e 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -108,4 +108,12 @@
* @return
*/
List<PlaceEntity> placeAndRelHandle();
+
+ /**
+ * 根据标签编号集合查询对应的场所
+ * @param stringList
+ * @return
+ */
+ List<PlaceVO> getPlaceListByParam(@Param("list") List<String> stringList,
+ @Param("color") String color);
}
diff --git a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
index 4b69ba0..37d6417 100644
--- a/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
+++ b/src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -184,4 +184,23 @@
and jp.is_deleted = 0
and jp.source !=3
</select>
+
+ <!--根据标签编号集合查询对应的场所-->
+ <select id="getPlaceListByParam" resultType="org.springblade.modules.place.vo.PlaceVO">
+ select jp.* from jczz_place jp
+ left join jczz_place_poi_label jppl on jppl.place_id = jp.id
+ where jp.is_deleted = 0 and jppl.type = 3
+ and jppl.color = #{color}
+ <choose>
+ <when test="list!=null and list.size()>0">
+ and jppl.poi_code in
+ <foreach collection="list" item="id" separator="," open="(" close=")">
+ #{id}
+ </foreach>
+ </when>
+ <otherwise>
+ and jppl.poi_code in ('')
+ </otherwise>
+ </choose>
+ </select>
</mapper>
diff --git a/src/main/java/org/springblade/modules/place/service/IPlaceService.java b/src/main/java/org/springblade/modules/place/service/IPlaceService.java
index ed10cab..bcb325e 100644
--- a/src/main/java/org/springblade/modules/place/service/IPlaceService.java
+++ b/src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -17,6 +17,7 @@
package org.springblade.modules.place.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.ibatis.annotations.Param;
import org.springblade.common.node.TreeStringNode;
import org.springblade.modules.place.entity.PlaceEntity;
import org.springblade.modules.place.excel.PlaceAndRelExcel;
@@ -121,4 +122,12 @@
* @return
*/
Object placeAndRelHandle();
+
+ /**
+ * 根据标签编号集合查询对应的场所
+ * @param stringList
+ * @param color
+ * @return
+ */
+ List<PlaceVO> getPlaceListByParam(List<String> stringList,String color);
}
diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index 368740a..937b49a 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -542,6 +542,10 @@
placeVO.setGrid(gridVO);
place.setGridId(gridVO.getId());
}
+ // 设置详情信息
+ QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("is_deleted",0).eq("place_id",placeVO.getId());
+ placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper));
} else {
// 通过定位点落面分析网格位置,反向推出社区派出所相关数据
@@ -841,4 +845,15 @@
}
return null;
}
+
+ /**
+ * 根据标签编号集合查询对应的场所
+ * @param stringList
+ * @param color
+ * @return
+ */
+ @Override
+ public List<PlaceVO> getPlaceListByParam(List<String> stringList,String color) {
+ return baseMapper.getPlaceListByParam(stringList,color);
+ }
}
diff --git a/src/main/java/org/springblade/modules/place/vo/PlaceVO.java b/src/main/java/org/springblade/modules/place/vo/PlaceVO.java
index 3e94687..3d2df87 100644
--- a/src/main/java/org/springblade/modules/place/vo/PlaceVO.java
+++ b/src/main/java/org/springblade/modules/place/vo/PlaceVO.java
@@ -24,6 +24,7 @@
import org.springblade.core.tool.node.INode;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springblade.modules.place.entity.PlaceExtEntity;
import org.springblade.modules.place.entity.PlacePoiLabel;
import java.util.ArrayList;
@@ -112,4 +113,9 @@
* 详情id(维护)
*/
private Long placeExtId;
+
+ /**
+ * 门牌地址信息
+ */
+ private PlaceExtEntity placeExtEntity;
}
diff --git a/src/main/java/org/springblade/modules/task/entity/TaskCampusReportingEventEntity.java b/src/main/java/org/springblade/modules/task/entity/TaskCampusReportingEventEntity.java
index c92394f..93a41a9 100644
--- a/src/main/java/org/springblade/modules/task/entity/TaskCampusReportingEventEntity.java
+++ b/src/main/java/org/springblade/modules/task/entity/TaskCampusReportingEventEntity.java
@@ -16,14 +16,14 @@
*/
package org.springblade.modules.task.entity;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -214,6 +214,32 @@
@TableField("fo_image_urls")
private String foImageUrls;
+ /**
+ * 创建时间
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty("创建时间")
+ @TableField(fill = FieldFill.INSERT)
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @ApiModelProperty("创建人")
+ @TableField(fill = FieldFill.INSERT)
+ private Long createUser;
+
+ /**
+ * 来源: 1:主动上报 2:系统自动下发
+ */
+ @ApiModelProperty(value = "来源: 1:主动上报 2:系统自动下发")
+ private Integer source;
+
+ /**
+ * 是否已删除 0:否 1:是
+ */
@ApiModelProperty("是否已删除")
private Integer isDeleted;
diff --git a/src/main/java/org/springblade/modules/task/service/ITaskService.java b/src/main/java/org/springblade/modules/task/service/ITaskService.java
index 9098b40..3faf77f 100644
--- a/src/main/java/org/springblade/modules/task/service/ITaskService.java
+++ b/src/main/java/org/springblade/modules/task/service/ITaskService.java
@@ -70,4 +70,12 @@
Boolean removeTask(TaskEntity task);
IPage<TaskVO> getBailReportingPage(IPage<TaskVO> page, TaskVO task);
+
+ /**
+ * 根据类型创建任务
+ * @param reportType 任务/事件类型
+ * @param color 参数
+ * @return
+ */
+ boolean createTaskJob(Integer reportType, String color);
}
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskCampusReportingEventServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskCampusReportingEventServiceImpl.java
index b86a423..f89b723 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskCampusReportingEventServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskCampusReportingEventServiceImpl.java
@@ -27,6 +27,8 @@
import org.springblade.modules.task.service.ITaskCampusReportingEventService;
import org.springblade.modules.task.service.ITaskService;
import org.springblade.modules.task.vo.TaskCampusReportingEventVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -41,8 +43,10 @@
@Service
public class TaskCampusReportingEventServiceImpl extends ServiceImpl<TaskCampusReportingEventMapper, TaskCampusReportingEventEntity> implements ITaskCampusReportingEventService {
- @Resource
+ @Autowired
+ @Lazy
private ITaskService taskService;
+
@Override
public IPage<TaskCampusReportingEventVO> selectTaskCampusReportingEventPage(IPage<TaskCampusReportingEventVO> page, TaskCampusReportingEventVO taskCampusReportingEvent) {
return page.setRecords(baseMapper.selectTaskCampusReportingEventPage(page, taskCampusReportingEvent));
diff --git a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
index 85c64c4..73c5687 100644
--- a/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
+++ b/src/main/java/org/springblade/modules/task/service/impl/TaskServiceImpl.java
@@ -17,16 +17,22 @@
package org.springblade.modules.task.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.constant.DictConstant;
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.category.entity.CategoryEntity;
+import org.springblade.modules.category.service.ICategoryService;
import org.springblade.modules.house.service.IHouseRentalService;
import org.springblade.modules.house.service.IHouseholdService;
import org.springblade.modules.house.vo.HouseRentalTenantVO;
import org.springblade.modules.place.service.IPlaceExtService;
+import org.springblade.modules.place.service.IPlaceService;
+import org.springblade.modules.place.vo.PlaceVO;
import org.springblade.modules.system.entity.Dept;
import org.springblade.modules.system.service.IDeptService;
import org.springblade.modules.task.entity.*;
@@ -35,11 +41,13 @@
import org.springblade.modules.task.vo.TaskVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 任务表 服务实现类
@@ -50,8 +58,8 @@
@Service
public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, TaskEntity> implements ITaskService {
- // @Autowired
- // private ITaskReportForRepairsService iTaskReportForRepairsService;
+ @Autowired
+ private IPlaceService placeService;
@Autowired
private IHouseholdService iHouseholdService;
@@ -59,9 +67,14 @@
@Autowired
private IHouseRentalService iHouseRentalService;
-
@Autowired
private IDeptService deptService;
+
+ @Autowired
+ private ICategoryService categoryService;
+
+ @Autowired
+ private ITaskCampusReportingEventService taskCampusReportingEventService;
@Override
public IPage<TaskVO> selectTaskPage(IPage<TaskVO> page, TaskVO task) {
@@ -268,4 +281,51 @@
return update1;
}
+
+ /**
+ * 根据类型创建任务
+ * @param reportType 任务/事件类型
+ * @param color 参数
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean createTaskJob(Integer reportType, String color) {
+ boolean flag = false;
+ if (reportType==6){
+ // 校园安全自查,查询标签为教育的场所 parentNo = 1601
+ String parentNo = "1601";
+ QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>();
+ wrapper.eq("is_deleted",0).eq("parent_no",parentNo);
+ List<CategoryEntity> categoryEntityList = categoryService.list(wrapper);
+ // 取出编号集合
+ List<String> stringList = categoryEntityList.stream().map(categoryEntity -> categoryEntity.getCategoryNo()).collect(Collectors.toList());
+ // 根据编号集合查询对应的场所
+ List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,color);
+ // 生成任务
+ for (PlaceVO placeVO : placeVOList) {
+ TaskEntity taskEntity = new TaskEntity();
+ taskEntity.setType(1);
+ taskEntity.setName(DictConstant.CAMPUS_SECURITY_INSPECTION);
+ taskEntity.setFrequency(2);
+ taskEntity.setCreateTime(new Date());
+ taskEntity.setHouseCode(placeVO.getHouseCode());
+ taskEntity.setReportType(reportType);
+ // 新增
+ flag = save(taskEntity);
+ // 同时新增校园安全检查任务
+ TaskCampusReportingEventEntity campusReportingEventEntity = new TaskCampusReportingEventEntity();
+ campusReportingEventEntity.setTaskId(taskEntity.getId());
+ campusReportingEventEntity.setPlaceId(placeVO.getId());
+ campusReportingEventEntity.setCheckUserId(placeVO.getPrincipalUserId());
+ campusReportingEventEntity.setCheckUserName(placeVO.getPrincipal());
+ campusReportingEventEntity.setCheckTelephone(placeVO.getPrincipalPhone());
+ // 系统下发
+ campusReportingEventEntity.setSource(2);
+ // 新增
+ taskCampusReportingEventService.save(campusReportingEventEntity);
+ }
+ }
+ return flag;
+ }
}
diff --git a/src/main/java/org/springblade/xxljob/controller/JobInfoController.java b/src/main/java/org/springblade/xxljob/controller/JobInfoController.java
new file mode 100644
index 0000000..4d598f6
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/controller/JobInfoController.java
@@ -0,0 +1,109 @@
+package org.springblade.xxljob.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.xxljob.entity.JobInfoEntity;
+import org.springblade.xxljob.vo.JobInfoVO;
+import org.springblade.xxljob.wrapper.JobInfoWrapper;
+import org.springblade.xxljob.service.IJobInfoService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 调度任务信息表 控制器
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("blade-jobInfo/jobInfo")
+@Api(value = "调度任务信息表", tags = "调度任务信息表接口")
+public class JobInfoController extends BladeController {
+
+ private final IJobInfoService jobInfoService;
+
+ /**
+ * 调度任务信息表 详情
+ */
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 1)
+ @ApiOperation(value = "详情", notes = "传入jobInfo")
+ public R<JobInfoEntity> detail(JobInfoEntity jobInfo) {
+ JobInfoEntity detail = jobInfoService.getOne(Condition.getQueryWrapper(jobInfo));
+ return R.data(detail);
+ }
+ /**
+ * 调度任务信息表 分页
+ */
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 2)
+ @ApiOperation(value = "分页", notes = "传入jobInfo")
+ public R<IPage<JobInfoVO>> list(JobInfoEntity jobInfo, Query query) {
+ IPage<JobInfoEntity> pages = jobInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(jobInfo));
+ return R.data(JobInfoWrapper.build().pageVO(pages));
+ }
+
+ /**
+ * 调度任务信息表 自定义分页
+ */
+ @GetMapping("/page")
+ @ApiOperationSupport(order = 3)
+ @ApiOperation(value = "分页", notes = "传入jobInfo")
+ public R<IPage<JobInfoVO>> page(JobInfoVO jobInfo, Query query) {
+ IPage<JobInfoVO> pages = jobInfoService.selectJobInfoPage(Condition.getPage(query), jobInfo);
+ return R.data(pages);
+ }
+
+ /**
+ * 调度任务信息表 新增
+ */
+ @PostMapping("/save")
+ @ApiOperationSupport(order = 4)
+ @ApiOperation(value = "新增", notes = "传入jobInfo")
+ public R save(@Valid @RequestBody JobInfoEntity jobInfo) {
+ return R.status(jobInfoService.save(jobInfo));
+ }
+
+ /**
+ * 调度任务信息表 修改
+ */
+ @PostMapping("/update")
+ @ApiOperationSupport(order = 5)
+ @ApiOperation(value = "修改", notes = "传入jobInfo")
+ public R update(@Valid @RequestBody JobInfoEntity jobInfo) {
+ return R.status(jobInfoService.updateById(jobInfo));
+ }
+
+ /**
+ * 调度任务信息表 新增或修改
+ */
+ @PostMapping("/submit")
+ @ApiOperationSupport(order = 6)
+ @ApiOperation(value = "新增或修改", notes = "传入jobInfo")
+ public R submit(@Valid @RequestBody JobInfoEntity jobInfo) {
+ return R.status(jobInfoService.saveOrUpdate(jobInfo));
+ }
+
+ /**
+ * 调度任务信息表 删除
+ */
+ @PostMapping("/remove")
+ @ApiOperationSupport(order = 7)
+ @ApiOperation(value = "逻辑删除", notes = "传入ids")
+ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+ return R.status(jobInfoService.deleteLogic(Func.toLongList(ids)));
+ }
+
+
+}
diff --git a/src/main/java/org/springblade/xxljob/dto/JobInfoDTO.java b/src/main/java/org/springblade/xxljob/dto/JobInfoDTO.java
new file mode 100644
index 0000000..16e35b7
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/dto/JobInfoDTO.java
@@ -0,0 +1,18 @@
+package org.springblade.xxljob.dto;
+
+import org.springblade.xxljob.entity.JobInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 调度任务信息表 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JobInfoDTO extends JobInfoEntity {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/xxljob/entity/JobInfoEntity.java b/src/main/java/org/springblade/xxljob/entity/JobInfoEntity.java
new file mode 100644
index 0000000..20b7556
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/entity/JobInfoEntity.java
@@ -0,0 +1,134 @@
+package org.springblade.xxljob.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 调度任务信息表 实体类
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+@Data
+@TableName("xxl_job_info")
+@ApiModel(value = "JobInfo对象", description = "调度任务信息表")
+@EqualsAndHashCode(callSuper = true)
+public class JobInfoEntity extends TenantEntity {
+
+ /**
+ * 执行器主键ID
+ */
+ @ApiModelProperty(value = "执行器主键ID")
+ private Integer jobGroup;
+ /**
+ *
+ */
+ @ApiModelProperty(value = "")
+ private String jobDesc;
+ /**
+ *
+ */
+ @ApiModelProperty(value = "")
+ private Date addTime;
+ /**
+ * 作者
+ */
+ @ApiModelProperty(value = "作者")
+ private String author;
+ /**
+ * 报警邮件
+ */
+ @ApiModelProperty(value = "报警邮件")
+ private String alarmEmail;
+ /**
+ * 调度类型
+ */
+ @ApiModelProperty(value = "调度类型")
+ private String scheduleType;
+ /**
+ * 调度配置,值含义取决于调度类型
+ */
+ @ApiModelProperty(value = "调度配置,值含义取决于调度类型")
+ private String scheduleConf;
+ /**
+ * 调度过期策略
+ */
+ @ApiModelProperty(value = "调度过期策略")
+ private String misfireStrategy;
+ /**
+ * 执行器路由策略
+ */
+ @ApiModelProperty(value = "执行器路由策略")
+ private String executorRouteStrategy;
+ /**
+ * 执行器任务handler
+ */
+ @ApiModelProperty(value = "执行器任务handler")
+ private String executorHandler;
+ /**
+ * 执行器任务参数
+ */
+ @ApiModelProperty(value = "执行器任务参数")
+ private String executorParam;
+ /**
+ * 阻塞处理策略
+ */
+ @ApiModelProperty(value = "阻塞处理策略")
+ private String executorBlockStrategy;
+ /**
+ * 任务执行超时时间,单位秒
+ */
+ @ApiModelProperty(value = "任务执行超时时间,单位秒")
+ private Integer executorTimeout;
+ /**
+ * 失败重试次数
+ */
+ @ApiModelProperty(value = "失败重试次数")
+ private Integer executorFailRetryCount;
+ /**
+ * GLUE类型
+ */
+ @ApiModelProperty(value = "GLUE类型")
+ private String glueType;
+ /**
+ * GLUE源代码
+ */
+ @ApiModelProperty(value = "GLUE源代码")
+ private String glueSource;
+ /**
+ * GLUE备注
+ */
+ @ApiModelProperty(value = "GLUE备注")
+ private String glueRemark;
+ /**
+ * GLUE更新时间
+ */
+ @ApiModelProperty(value = "GLUE更新时间")
+ private Date glueUpdatetime;
+ /**
+ * 子任务ID,多个逗号分隔
+ */
+ @ApiModelProperty(value = "子任务ID,多个逗号分隔")
+ private String childJobid;
+ /**
+ * 调度状态:0-停止,1-运行
+ */
+ @ApiModelProperty(value = "调度状态:0-停止,1-运行")
+ private Byte triggerStatus;
+ /**
+ * 上次调度时间
+ */
+ @ApiModelProperty(value = "上次调度时间")
+ private Long triggerLastTime;
+ /**
+ * 下次调度时间
+ */
+ @ApiModelProperty(value = "下次调度时间")
+ private Long triggerNextTime;
+
+}
diff --git a/src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java b/src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java
new file mode 100644
index 0000000..014dfe2
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java
@@ -0,0 +1,54 @@
+package org.springblade.xxljob.jobhandler;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.context.XxlJobHelper;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.modules.task.service.ITaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 三色标签定时任务执行器
+ * @author zhongrj
+ * @date 2024-01-10
+ */
+@Component
+public class LabelHandleJob {
+
+ private static Logger logger = LoggerFactory.getLogger(LabelHandleJob.class);
+
+ @Autowired
+ private ITaskService taskService;
+
+ /**
+ * 校园安全自查定时任务-绿色
+ */
+ @XxlJob("campusSecurityJobHandler")
+ public void campusSecurityJobHandler (String param){
+ XxlJobHelper.log("开始执行任务...");
+ JSONObject jsonParam = JSON.parseObject(param);
+ String color = jsonParam.getString("color");
+ // 校园安全检查
+ Integer reportType = 6;
+ // 根据类型创建任务
+ boolean result = taskService.createTaskJob(reportType,color);
+ XxlJobHelper.log("任务响应结果..." + result);
+ // 创建外呼短信发送任务记录
+ XxlJobHelper.log("结束自动创建任务...");
+ }
+
+}
diff --git a/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.java b/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.java
new file mode 100644
index 0000000..c1e82af
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.java
@@ -0,0 +1,27 @@
+package org.springblade.xxljob.mapper;
+
+import org.springblade.xxljob.entity.JobInfoEntity;
+import org.springblade.xxljob.vo.JobInfoVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 调度任务信息表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+public interface JobInfoMapper extends BaseMapper<JobInfoEntity> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param jobInfo
+ * @return
+ */
+ List<JobInfoVO> selectJobInfoPage(IPage page, JobInfoVO jobInfo);
+
+
+}
diff --git a/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.xml b/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.xml
new file mode 100644
index 0000000..572270e
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.xml
@@ -0,0 +1,39 @@
+<?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="org.springblade.xxljob.mapper.JobInfoMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="jobInfoResultMap" type="org.springblade.xxljob.entity.JobInfoEntity">
+ <result column="id" property="id"/>
+ <result column="job_group" property="jobGroup"/>
+ <result column="job_desc" property="jobDesc"/>
+ <result column="add_time" property="addTime"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="author" property="author"/>
+ <result column="alarm_email" property="alarmEmail"/>
+ <result column="schedule_type" property="scheduleType"/>
+ <result column="schedule_conf" property="scheduleConf"/>
+ <result column="misfire_strategy" property="misfireStrategy"/>
+ <result column="executor_route_strategy" property="executorRouteStrategy"/>
+ <result column="executor_handler" property="executorHandler"/>
+ <result column="executor_param" property="executorParam"/>
+ <result column="executor_block_strategy" property="executorBlockStrategy"/>
+ <result column="executor_timeout" property="executorTimeout"/>
+ <result column="executor_fail_retry_count" property="executorFailRetryCount"/>
+ <result column="glue_type" property="glueType"/>
+ <result column="glue_source" property="glueSource"/>
+ <result column="glue_remark" property="glueRemark"/>
+ <result column="glue_updatetime" property="glueUpdatetime"/>
+ <result column="child_jobid" property="childJobid"/>
+ <result column="trigger_status" property="triggerStatus"/>
+ <result column="trigger_last_time" property="triggerLastTime"/>
+ <result column="trigger_next_time" property="triggerNextTime"/>
+ </resultMap>
+
+
+ <select id="selectJobInfoPage" resultMap="jobInfoResultMap">
+ select * from xxl_job_info where is_deleted = 0
+ </select>
+
+
+</mapper>
diff --git a/src/main/java/org/springblade/xxljob/service/IJobInfoService.java b/src/main/java/org/springblade/xxljob/service/IJobInfoService.java
new file mode 100644
index 0000000..1833113
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/service/IJobInfoService.java
@@ -0,0 +1,26 @@
+package org.springblade.xxljob.service;
+
+import org.springblade.xxljob.entity.JobInfoEntity;
+import org.springblade.xxljob.vo.JobInfoVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 调度任务信息表 服务类
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+public interface IJobInfoService extends BaseService<JobInfoEntity> {
+
+ /**
+ * 自定义分页
+ *
+ * @param page
+ * @param jobInfo
+ * @return
+ */
+ IPage<JobInfoVO> selectJobInfoPage(IPage<JobInfoVO> page, JobInfoVO jobInfo);
+
+
+}
diff --git a/src/main/java/org/springblade/xxljob/service/impl/JobInfoServiceImpl.java b/src/main/java/org/springblade/xxljob/service/impl/JobInfoServiceImpl.java
new file mode 100644
index 0000000..7fba17b
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/service/impl/JobInfoServiceImpl.java
@@ -0,0 +1,26 @@
+package org.springblade.xxljob.service.impl;
+
+import org.springblade.xxljob.entity.JobInfoEntity;
+import org.springblade.xxljob.vo.JobInfoVO;
+import org.springblade.xxljob.mapper.JobInfoMapper;
+import org.springblade.xxljob.service.IJobInfoService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 调度任务信息表 服务实现类
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+@Service
+public class JobInfoServiceImpl extends BaseServiceImpl<JobInfoMapper, JobInfoEntity> implements IJobInfoService {
+
+ @Override
+ public IPage<JobInfoVO> selectJobInfoPage(IPage<JobInfoVO> page, JobInfoVO jobInfo) {
+ return page.setRecords(baseMapper.selectJobInfoPage(page, jobInfo));
+ }
+
+
+}
diff --git a/src/main/java/org/springblade/xxljob/vo/JobInfoVO.java b/src/main/java/org/springblade/xxljob/vo/JobInfoVO.java
new file mode 100644
index 0000000..1a7ecbe
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/vo/JobInfoVO.java
@@ -0,0 +1,18 @@
+package org.springblade.xxljob.vo;
+
+import org.springblade.xxljob.entity.JobInfoEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 调度任务信息表 视图实体类
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JobInfoVO extends JobInfoEntity {
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/src/main/java/org/springblade/xxljob/wrapper/JobInfoWrapper.java b/src/main/java/org/springblade/xxljob/wrapper/JobInfoWrapper.java
new file mode 100644
index 0000000..2cce7b3
--- /dev/null
+++ b/src/main/java/org/springblade/xxljob/wrapper/JobInfoWrapper.java
@@ -0,0 +1,34 @@
+package org.springblade.xxljob.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.xxljob.entity.JobInfoEntity;
+import org.springblade.xxljob.vo.JobInfoVO;
+import java.util.Objects;
+
+/**
+ * 调度任务信息表 包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ * @since 2024-01-10
+ */
+public class JobInfoWrapper extends BaseEntityWrapper<JobInfoEntity, JobInfoVO> {
+
+ public static JobInfoWrapper build() {
+ return new JobInfoWrapper();
+ }
+
+ @Override
+ public JobInfoVO entityVO(JobInfoEntity jobInfo) {
+ JobInfoVO jobInfoVO = Objects.requireNonNull(BeanUtil.copy(jobInfo, JobInfoVO.class));
+
+ //User createUser = UserCache.getUser(jobInfo.getCreateUser());
+ //User updateUser = UserCache.getUser(jobInfo.getUpdateUser());
+ //jobInfoVO.setCreateUserName(createUser.getName());
+ //jobInfoVO.setUpdateUserName(updateUser.getName());
+
+ return jobInfoVO;
+ }
+
+
+}
--
Gitblit v1.9.3