WfCourseAdjustTask.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.xjrsoft.module.job;
  2. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  3. import com.xjrsoft.common.enums.DeleteMark;
  4. import com.xjrsoft.common.enums.EnabledMark;
  5. import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
  6. import com.xjrsoft.common.utils.VoToColumnUtil;
  7. import com.xjrsoft.module.courseTable.service.ICourseTableService;
  8. import com.xjrsoft.module.schedule.entity.WfCourseAdjust;
  9. import com.xjrsoft.module.schedule.service.IWfCourseAdjustService;
  10. import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.camunda.bpm.engine.history.HistoricProcessInstance;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.scheduling.annotation.Scheduled;
  15. import org.springframework.stereotype.Component;
  16. import java.util.List;
  17. /**
  18. * 每过10分钟定时处理没有处理成功的调课或者顶课流程
  19. * @author dzx
  20. * @date 2025/3/3
  21. */
  22. @Component
  23. @Slf4j
  24. public class WfCourseAdjustTask {
  25. @Autowired
  26. private IWfCourseAdjustService wfCourseAdjustService;
  27. @Autowired
  28. private ICourseTableService courseTableService;
  29. @Scheduled(cron = "0 */10 * * * ?")
  30. public void execute() {
  31. List<WfCourseAdjust> list = wfCourseAdjustService.list(
  32. new MPJLambdaWrapper<WfCourseAdjust>()
  33. .select(WfCourseAdjust::getId)
  34. .select(WfCourseAdjust.class, x -> VoToColumnUtil.fieldsToColumns(WfCourseAdjust.class).contains(x.getProperty()))
  35. .innerJoin(WorkflowFormRelation.class, WorkflowFormRelation::getFormKeyValue, WfCourseAdjust::getId)
  36. .eq(WorkflowFormRelation::getCurrentState, HistoricProcessInstance.STATE_COMPLETED)
  37. .eq(WfCourseAdjust::getDeleteMark, DeleteMark.NODELETE.getCode())
  38. .eq(WfCourseAdjust::getEnabledMark, EnabledMark.ENABLED.getCode())
  39. );
  40. for (WfCourseAdjust wfCourseAdjust : list) {
  41. String sql = "SELECT * FROM course_table t1" +
  42. " INNER JOIN course_table_bak t2 ON t1.id = t2.id" +
  43. " WHERE t2.wf_course_adjust_id = " + wfCourseAdjust.getId() +
  44. " AND t1.course_id = t2.course_id" +
  45. " AND t1.course_name = t2.course_name" +
  46. " AND t1.site_id = t2.site_id" +
  47. " AND t1.teacher_name = t2.teacher_name";
  48. if(SqlRunnerAdapter.db().selectList(sql).isEmpty()){
  49. continue;
  50. }
  51. courseTableService.adjustCourse(wfCourseAdjust);
  52. }
  53. }
  54. }