zj
2024-06-03 287ac389edd047696d956afafdb855a93830bc0c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package com.nq.utils.task.index;
 
import com.nq.service.IStockIndexService;
import com.nq.service.IUserService;
import com.nq.utils.DateTimeUtil;
import com.nq.utils.stock.BuyAndSellUtils;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
 
@Component
public class ForceSellIndexTask {
    private static final Logger log = LoggerFactory.getLogger(ForceSellIndexTask.class);
 
 
    @Autowired
    IUserService iUserService;
    @Autowired
    IStockIndexService iStockIndexService;
 
 
    private static final String am_begin = "9:30";
 
    private static final String am_end = "11:30";
 
    private static final String pm_begin = "13:00";
 
    private static final String pm_end = "15:00";
 
 
@Scheduled(cron = "0 0/3 9-15 ? * MON-FRI")
    public void banlanceUserIndexPositionTaskV1() {
        boolean am = false;
        boolean pm = false;
        try {
            am = BuyAndSellUtils.isTransTime("9:30", "11:30");
            pm = BuyAndSellUtils.isTransTime("13:00", "15:00");
        } catch (Exception e) {
            log.error("執行定時任務(指數)出錯,e = {}", e);
        }
 
        log.info("當前 am = {}  pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
        if (am || pm) {
            log.info("=====掃描用戶(指數)持倉執行,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
            dotask();
            log.info("=====掃描用戶(指數)持倉結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
        } else {
            log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平指數)定時任務");
        }
    }
 
 
    public void dotask() {
        this.iUserService.ForceSellIndexTask();
    }
 
    /*指數強平提醒推送消息,每分鐘檢測一次*/
@Scheduled(cron = "0 0/3 9-15 ? * MON-FRI")
    public void banlanceUserIndexPositionMessage() {
        boolean am = false;
        boolean pm = false;
        try {
            am = BuyAndSellUtils.isTransTime("9:30", "11:30");
            pm = BuyAndSellUtils.isTransTime("13:00", "15:00");
        } catch (Exception e) {
            log.error("執行定時任務(指數)出錯,e = {}", e);
        }
 
        log.info("當前 am = {}  pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
        if (am || pm) {
            log.info("=====掃描用戶(指數)持倉執行,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
            this.iUserService.ForceSellIndexsMessageTask();
            log.info("=====掃描用戶(指數)持倉結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
        } else {
            log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平指數)定時任務");
        }
    }
 
    /*指數分時圖k線定時任務*/
@Scheduled(cron = "0 0/1 9-15 * * ?")
    public void zs1() {
        boolean am = false;
        boolean pm = false;
        try {
            am = BuyAndSellUtils.isTransTime("9:29", "11:31");
            pm = BuyAndSellUtils.isTransTime("12:59", "15:00");
        } catch (Exception e) {
            log.error("= {}", e);
        }
        log.info("zs1-am = {}  pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm));
        if (am || pm) {
            log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
            this.iUserService.zs1();
            log.info("====={} =====", DateTimeUtil.dateToStr(new Date()));
        }
    }
    //美股和港股指数 每天0点5分执行
    @Scheduled(cron = "0 5 0 ? * MON-FRI")
 
    public void otherIndexTask() {
        log.info("====={美港指数同步开始} =====", DateTimeUtil.dateToStr(new Date()));
        this.iStockIndexService.otherIndexTask();
        log.info("====={美港指数同步结束} =====", DateTimeUtil.dateToStr(new Date()));
    }
 
 
}