SysImportPatentJobService.java 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package cn.cslg.pas.service.quartzService;
  2. import cn.cslg.pas.common.core.base.Cycle;
  3. import cn.cslg.pas.common.utils.DateUtils2;
  4. import cn.cslg.pas.common.utils.utilVO.CheckDateConditionVO;
  5. import cn.cslg.pas.common.utils.utilVO.NowDateFirstMessVO;
  6. import cn.cslg.pas.domain.business.ImportTaskCondition;
  7. import cn.cslg.pas.domain.business.PatentProject;
  8. import cn.cslg.pas.service.MailSendService;
  9. import cn.cslg.pas.service.business.ImportTaskConditionService;
  10. import cn.cslg.pas.service.business.ImportTaskService;
  11. import cn.cslg.pas.service.business.PatentProjectService;
  12. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  13. import lombok.RequiredArgsConstructor;
  14. import org.quartz.DisallowConcurrentExecution;
  15. import org.quartz.JobDataMap;
  16. import org.quartz.JobExecutionContext;
  17. import org.quartz.JobExecutionException;
  18. import org.springframework.scheduling.quartz.QuartzJobBean;
  19. import org.springframework.stereotype.Service;
  20. import java.time.LocalDate;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.stream.Collectors;
  24. @DisallowConcurrentExecution
  25. @RequiredArgsConstructor
  26. @Service
  27. public class SysImportPatentJobService extends QuartzJobBean {
  28. private final ImportTaskConditionService importTaskConditionService;
  29. private final ImportTaskService importTaskService;
  30. private final PatentProjectService patentProjectService;
  31. private final MailSendService mailSendService;
  32. @Override
  33. public void executeInternal(JobExecutionContext context) throws JobExecutionException {
  34. mailSendService.sendSysCycleStartEmail("系统监控任务开始");
  35. System.out.println("task start");
  36. this.addChinesePatent();
  37. }
  38. public void addChinesePatent() {
  39. List<String> cycles =this.getCnCycles();
  40. LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
  41. queryWrapper.eq(PatentProject::getIfUpdate, true);
  42. if(cycles!=null&&cycles.size()>0){
  43. queryWrapper.in(PatentProject::getUpdateCycle,cycles);
  44. }
  45. List<PatentProject> patentProjects = patentProjectService.list(queryWrapper);
  46. if (patentProjects != null && patentProjects.size() != 0) {
  47. List<Integer> projectId = patentProjects.stream().map(PatentProject::getProjectId).collect(Collectors.toList());
  48. //根据id查询检索条件
  49. LambdaQueryWrapper<ImportTaskCondition> queryWrapper1 = new LambdaQueryWrapper<>();
  50. queryWrapper1.in(ImportTaskCondition::getProjectId, projectId);
  51. queryWrapper1.eq(ImportTaskCondition::getIfCycle, true)
  52. .eq(ImportTaskCondition::getIfUpdate, true);
  53. List<ImportTaskCondition> importTaskConditions = importTaskConditionService.list(queryWrapper1);
  54. importTaskConditions.forEach(item -> {
  55. PatentProject project = patentProjects.stream().filter(t -> t.getProjectId().equals(item.getProjectId())).findFirst().orElse(null);
  56. importTaskService.addImportTaskByCondition(item, project);
  57. });
  58. }
  59. }
  60. public List<String> getCnCycles() {
  61. CheckDateConditionVO checkDateConditionVO = DateUtils2.checkDateCycleCondition(null);
  62. Boolean ifMeetMonth = checkDateConditionVO.getIfMeetMonth();
  63. Boolean ifMeetQuarter = checkDateConditionVO.getIfMeetQuarter();
  64. Boolean ifMeetYear = checkDateConditionVO.getIfMeetYear();
  65. List<String> cycles = new ArrayList<>();
  66. cycles.add(Cycle.WEEK);
  67. if (ifMeetMonth != null && ifMeetMonth) {
  68. cycles.add(Cycle.MONTH);
  69. }
  70. if (ifMeetQuarter != null && ifMeetQuarter) {
  71. cycles.add(Cycle.QUARTER);
  72. }
  73. if (ifMeetYear != null && ifMeetYear) {
  74. cycles.add(Cycle.YEAR);
  75. }
  76. return cycles;
  77. }
  78. }