package com.ycwl.basic.task; import cn.hutool.core.date.DateUtil; import com.ycwl.basic.biz.TemplateBiz; import com.ycwl.basic.mapper.FaceMapper; import com.ycwl.basic.mapper.FaceSampleMapper; import com.ycwl.basic.mapper.TemplateMapper; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.task.resp.SearchFaceRespVo; import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.service.task.TaskFaceService; import com.ycwl.basic.service.task.impl.TaskTaskServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; @EnableScheduling @Component public class VideoTaskGenerator { @Autowired private FaceMapper faceMapper; @Autowired private TaskFaceService taskFaceService; @Autowired private ScenicRepository scenicRepository; @Autowired private TemplateMapper templateMapper; @Autowired private TemplateBiz templateBiz; @Autowired private FaceSampleMapper faceSampleMapper; @Autowired private TaskTaskServiceImpl taskTaskService; @Scheduled(cron = "0 0 18 * * *") public void generateVideoTask() { // 指定,获取指定日期的未完成人脸样本,并生成任务 Long scenicId = 3946669713328836608L; Long templateId = 3947461229940969472L; FaceReqQuery query = new FaceReqQuery(); query.setScenicId(scenicId); query.setStartTime(DateUtil.beginOfDay(new Date())); query.setEndTime(DateUtil.endOfDay(new Date())); List list = faceMapper.list(query); list.stream().parallel().forEach(face -> { taskFaceService.searchFace(face.getId()); boolean canAutoGenerate = templateBiz.determineTemplateCanAutoGenerate(templateId, face.getId(), false); if (canAutoGenerate) { taskTaskService.autoCreateTaskByFaceId(face.getId()); } }); } }