EntrustTask.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.xc.utils.task.index;
  2. import com.xc.dao.StockMapper;
  3. import com.xc.pojo.IndexInfo;
  4. import com.xc.service.DbStockService;
  5. import com.xc.service.IUserPositionService;
  6. import com.xc.utils.DateTimeUtil;
  7. import com.xc.utils.stock.BuyAndSellUtils;
  8. import com.xc.utils.thread.ThreadUtil;
  9. import com.xc.vo.stock.StockListVO;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.scheduling.annotation.Scheduled;
  15. import org.springframework.stereotype.Component;
  16. import java.math.BigDecimal;
  17. import java.util.Date;
  18. import java.util.List;
  19. @Component
  20. public class EntrustTask {
  21. private static final Logger log = LoggerFactory.getLogger(EntrustTask.class);
  22. // private static final String am_begin = "9:30";
  23. //
  24. // private static final String am_end = "11:30";
  25. //
  26. // private static final String pm_begin = "13:00";
  27. //
  28. // private static final String pm_end = "23:00";
  29. @Autowired
  30. IUserPositionService iUserPositionService;
  31. @Autowired
  32. private StockMapper stockMapper;
  33. @Autowired
  34. DbStockService dbStockService;
  35. // 星期一到星期五的每天9点到15点触发 每3分钟触发一次
  36. @Scheduled(cron = "*/3 * * * * ?")
  37. public void toEntrust() {
  38. boolean am = true;
  39. boolean pm = true;
  40. // try {
  41. // // 开市时间要获取DB中的
  42. // am = BuyAndSellUtils.isTransTime(am_begin, am_end);
  43. // pm = BuyAndSellUtils.isTransTime(pm_begin, pm_end);
  44. // } catch (Exception e) {
  45. // log.error("执行定时任务出错,e = {}", e);
  46. // }
  47. // log.info("当前 am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
  48. if (am || pm) {
  49. log.info("=====定时任务===计算委托==开始,当前时间 {} =====", DateTimeUtil.dateToStr(new Date()));
  50. doTask();
  51. log.info("=====定时任务===计算委托==结束,当前时间 {} =====", DateTimeUtil.dateToStr(new Date()));
  52. } else {
  53. log.info("当前时间不为周一至周五,或者不在交易时间内,不执行(委托)定时任务");
  54. }
  55. }
  56. private void doTask() {
  57. try {
  58. ThreadUtil.executeInThread(obj -> {
  59. iUserPositionService.fulfill();
  60. });
  61. } catch (Exception e) {
  62. // 数据库不存在
  63. log.info("数据库不存在");
  64. }
  65. }
  66. }