EvaluateTask.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.xjrsoft.module.job;
  2. import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
  3. import com.xjrsoft.common.utils.DateUtils;
  4. import com.xjrsoft.common.utils.SqlRunnerAdapterUtil;
  5. import com.xjrsoft.module.evaluate.entity.EvaluateManage;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.scheduling.annotation.Async;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Component;
  10. import java.util.Date;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * 自动生成评价提交记录
  15. */
  16. @Component
  17. @Slf4j
  18. public class EvaluateTask {
  19. /**
  20. * 需要重复评价的,每天凌晨1点自动生成新的评价提交记录
  21. */
  22. @Async
  23. @Scheduled(cron = "0 0 1 * * ?")
  24. public void addSubmitRecord() {
  25. System.out.printf("定时新增评价提交记录:%s", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
  26. try {
  27. //先查出所有进行中的需要重复评价的评价管理
  28. String listEvaluateManageSql = "select t.id, t.create_frequency from evaluate_manage t where t.is_auto_create = 1 and t.status = 1";
  29. List<Map<String, Object>> evaluateManageList = SqlRunnerAdapter.db().selectList(listEvaluateManageSql, EvaluateManage.class);
  30. for (Map<String, Object> evaluateManageMap : evaluateManageList) {
  31. EvaluateManage evaluateManage = SqlRunnerAdapterUtil.convertMapToEntity(evaluateManageMap, EvaluateManage.class);
  32. //TODO 根据评价的频率进行新增
  33. //默认每天新增根据评价管理id
  34. String insertSubmitScoreSql = "insert into evaluate_submit_record (id, evaluate_manage_id, evaluate_executer_id, create_date, evaluated_object, evaluated_object_id, status)" +
  35. " (SELECT" +
  36. " UUID()," +
  37. " t.evaluate_manage_id," +
  38. " t.id," +
  39. " NOW()," +
  40. " if(t2.evaluate_type='dm_evaluate_class', 'class', 'teacher')," +
  41. " t.evaluate_object_id," +
  42. " 0" +
  43. " FROM evaluate_executer t" +
  44. " LEFT JOIN evaluate_manage t1 ON (t1.id = t.evaluate_manage_id)" +
  45. " LEFT JOIN evaluate_template t2 ON (t2.id = t1.evaluate_template_id)" +
  46. " WHERE t.delete_mark = 0" +
  47. " AND t.evaluate_manage_id = " + evaluateManage.getId() + ")";
  48. SqlRunnerAdapter.db().insert(insertSubmitScoreSql);
  49. }
  50. } catch (Exception e) {
  51. log.error(e.getMessage(), "定时新增评价提交记录");
  52. }
  53. }
  54. }