123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package com.example.demo.service;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.example.demo.domain.entity.QrtzTask;
- import com.example.demo.domain.entity.QrtzTaskDetail;
- import com.example.demo.model.dto.WebQueryDTO;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.quartz.DisallowConcurrentExecution;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.quartz.QuartzJobBean;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.List;
- /**
- * 定义任务
- */
- @DisallowConcurrentExecution
- public class WebUploadJob extends QuartzJobBean {
- private static final Log logger = LogFactory.getLog(WebUploadJob.class);
- @Autowired
- private QrTaskService qrTaskService;
- @Autowired
- private QrTaskDetailService qrTaskDetailService;
- @Autowired
- private UploadFromWebService uploadFromWebService;
- @Override
- public void executeInternal(JobExecutionContext context) throws JobExecutionException {
- //查找是否有任务正在进行
- LambdaQueryWrapper<QrtzTaskDetail> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(QrtzTaskDetail::getTaskDetailState, Arrays.asList(1, 7, 8));
- List<QrtzTaskDetail> qrtzTaskDetailList = qrTaskDetailService.list(queryWrapper);
- //当无任务在进行时
- if (qrtzTaskDetailList.size() == 0) {
- LambdaQueryWrapper<QrtzTaskDetail> getDoingWrapper = new LambdaQueryWrapper<>();
- getDoingWrapper.eq(QrtzTaskDetail::getTaskDetailState, 0)
- .orderByAsc(QrtzTaskDetail::getTaskOrder).last("limit 1");
- QrtzTaskDetail qrtzTaskDetail = qrTaskDetailService.getOne(getDoingWrapper);
- if (qrtzTaskDetail != null) {
- qrtzTaskDetail.setTaskDetailState(1);
- qrtzTaskDetail.setStartTime(new Date());
- qrtzTaskDetail.updateById();
- logger.info("上传任务" + "信息是" + qrtzTaskDetail);
- QrtzTask qrtzTask = qrTaskService.getById(qrtzTaskDetail.getTaskId());
- qrtzTask.setTaskState(1);
- qrtzTask.updateById();
- String[] cells = qrtzTask.getConfigCells().split(",");
- List<String> conCells = new ArrayList<>(Arrays.asList(cells));
- WebQueryDTO webQueryDTO = new WebQueryDTO();
- webQueryDTO.setConCells(conCells);
- webQueryDTO.setWebConfigId(qrtzTask.getConfigId());
- webQueryDTO.setConditions(qrtzTask.getConditions());
- webQueryDTO.setProjectId(qrtzTask.getProjectId());
- webQueryDTO.setTaskId(qrtzTaskDetail.getId());
- try {
- uploadFromWebService.getPatentStar(webQueryDTO);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
|