SysImportPatentJobService.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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.NowDateFirstMessVO;
  5. import cn.cslg.pas.domain.business.ImportTaskCondition;
  6. import cn.cslg.pas.domain.business.PatentProject;
  7. import cn.cslg.pas.service.MailSendService;
  8. import cn.cslg.pas.service.business.ImportTaskConditionService;
  9. import cn.cslg.pas.service.business.ImportTaskService;
  10. import cn.cslg.pas.service.business.PatentProjectService;
  11. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  12. import lombok.RequiredArgsConstructor;
  13. import org.quartz.DisallowConcurrentExecution;
  14. import org.quartz.JobDataMap;
  15. import org.quartz.JobExecutionContext;
  16. import org.quartz.JobExecutionException;
  17. import org.springframework.scheduling.quartz.QuartzJobBean;
  18. import java.time.LocalDate;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. @DisallowConcurrentExecution
  23. @RequiredArgsConstructor
  24. public class SysImportPatentJobService extends QuartzJobBean {
  25. private final ImportTaskConditionService importTaskConditionService;
  26. private final ImportTaskService importTaskService;
  27. private final PatentProjectService patentProjectService;
  28. private final MailSendService mailSendService;
  29. @Override
  30. public void executeInternal(JobExecutionContext context) throws JobExecutionException {
  31. mailSendService.sendSysCycleStartEmail();
  32. NowDateFirstMessVO messVO = DateUtils2.getNowDateFirstMessage(null);
  33. Boolean isFirstDayOfWeek = messVO.getIsFirstDayOfWeek();
  34. Boolean isFirstDayOfMonth = messVO.getIsFirstDayOfMonth();
  35. Boolean isFirstDayOfQuarter = messVO.getIsFirstDayOfQuarter();
  36. Boolean isFirstDayOfYear = messVO.getIsFirstDayOfYear();
  37. List<String> cycles = new ArrayList<>();
  38. if (isFirstDayOfWeek != null && isFirstDayOfWeek) {
  39. cycles.add(Cycle.WEEK);
  40. }
  41. if (isFirstDayOfMonth != null && isFirstDayOfMonth) {
  42. cycles.add(Cycle.MONTH);
  43. }
  44. if (isFirstDayOfQuarter != null && isFirstDayOfQuarter) {
  45. cycles.add(Cycle.QUARTER);
  46. }
  47. if (isFirstDayOfYear != null && isFirstDayOfYear) {
  48. cycles.add(Cycle.YEAR);
  49. }
  50. if (cycles.size() <= 0) {
  51. return;
  52. }
  53. LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
  54. queryWrapper.eq(PatentProject::getIfUpdate, true)
  55. .in(PatentProject::getUpdateCycle, cycles);
  56. List<PatentProject> patentProjects = patentProjectService.list(queryWrapper);
  57. if (patentProjects != null && patentProjects.size() != 0) {
  58. List<Integer> projectId = patentProjects.stream().map(PatentProject::getProjectId).collect(Collectors.toList());
  59. //根据id查询检索条件
  60. LambdaQueryWrapper<ImportTaskCondition> queryWrapper1 = new LambdaQueryWrapper<>();
  61. queryWrapper1.in(ImportTaskCondition::getProjectId, projectId);
  62. queryWrapper1.eq(ImportTaskCondition::getIfCycle, true)
  63. .eq(ImportTaskCondition::getIfUpdate, true);
  64. List<ImportTaskCondition> importTaskConditions = importTaskConditionService.list(queryWrapper1);
  65. importTaskConditions.forEach(item -> {
  66. importTaskService.addImportTaskByCondition(item);
  67. });
  68. }
  69. }
  70. private void addProjectCycleTask(Integer projectId) {
  71. LambdaQueryWrapper<PatentProject> queryWrapper = new LambdaQueryWrapper<>();
  72. queryWrapper.eq(PatentProject::getIfUpdate, true)
  73. .eq(PatentProject::getUpdateCycle, "");
  74. //根据id查询检索条件
  75. LambdaQueryWrapper<ImportTaskCondition> queryWrapper2 = new LambdaQueryWrapper<>();
  76. queryWrapper2.eq(ImportTaskCondition::getProjectId, projectId);
  77. queryWrapper2.eq(ImportTaskCondition::getIfCycle, true)
  78. .eq(ImportTaskCondition::getIfUpdate, true);
  79. List<ImportTaskCondition> importTaskConditions = importTaskConditionService.list(queryWrapper2);
  80. importTaskConditions.forEach(item -> {
  81. importTaskService.addImportTaskByCondition(item);
  82. });
  83. }
  84. }