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); } 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> 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); } 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); } } 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; } 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; 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); } 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)); 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; } } src/main/java/org/springblade/xxljob/controller/JobInfoController.java
New file @@ -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))); } } src/main/java/org/springblade/xxljob/dto/JobInfoDTO.java
New file @@ -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; } src/main/java/org/springblade/xxljob/entity/JobInfoEntity.java
New file @@ -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; } src/main/java/org/springblade/xxljob/jobhandler/LabelHandleJob.java
New file @@ -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("结束自动创建任务..."); } } src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.java
New file @@ -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); } src/main/java/org/springblade/xxljob/mapper/JobInfoMapper.xml
New file @@ -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> src/main/java/org/springblade/xxljob/service/IJobInfoService.java
New file @@ -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); } src/main/java/org/springblade/xxljob/service/impl/JobInfoServiceImpl.java
New file @@ -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)); } } src/main/java/org/springblade/xxljob/vo/JobInfoVO.java
New file @@ -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; } src/main/java/org/springblade/xxljob/wrapper/JobInfoWrapper.java
New file @@ -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; } }