package com.nq.utils.task.stock;
|
|
|
import com.nq.service.IUserIndexPositionService;
|
import com.nq.service.IUserService;
|
import com.nq.service.UserPendingorderService;
|
import com.nq.utils.DateTimeUtil;
|
import com.nq.utils.stock.BuyAndSellUtils;
|
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;
|
|
import java.util.Date;
|
|
|
@Component
|
public class ForceSellTask {
|
|
private static final Logger log = LoggerFactory.getLogger(ForceSellTask.class);
|
|
|
@Autowired
|
IUserService iUserService;
|
@Autowired
|
UserPendingorderService userPendingorderService;
|
@Autowired
|
IUserIndexPositionService iUserIndexPositionService;
|
|
|
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 banlanceUserPositionTaskV1() {
|
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.ForceSellTask();
|
}
|
/*用戶持倉單-單支股票盈虧-強平定時*/
|
// @Scheduled(cron = "0 0/1 * * * *")
|
@Scheduled(cron = "0 0/1 9-15 ? * MON-FRI")
|
public void stockProfitLossOneTask() {
|
boolean am = false;
|
boolean pm = false;
|
//todo 測試完成需要關閉註釋
|
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.ForceSellOneStockTask();
|
log.info("=====掃描單支股票盈虧結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
|
} else {
|
log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平)單支股票盈虧定時任務");
|
}
|
|
}
|
|
/**
|
* 用户持仓单-单支股票止损止盈线-强平定时
|
*/
|
@Scheduled(cron = "0 0/1 * ? * MON-FRI")
|
public void stockProfitLossOneTaskV2() {
|
// boolean am = false;
|
// boolean pm = false;
|
// //todo 測試完成需要關閉註釋
|
// 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.ForceSellOneStockTaskV2();
|
log.info("=====掃描單支股票盈虧結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
|
// } else {
|
// log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平)單支股票盈虧定時任務");
|
}
|
|
|
/**
|
* 用户指数持仓单-指数止损止盈线-强平定时
|
*/
|
@Scheduled(cron = "0 0/1 * ? * MON-FRI")
|
public void indexPosition() {
|
// boolean am = false;
|
// boolean pm = false;
|
// //todo 測試完成需要關閉註釋
|
// 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.iUserIndexPositionService.indexPositiontask();
|
log.info("=====掃描單支指数盈虧結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
|
// } else {
|
// log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平)指数止盈止损定時任務");
|
// }
|
|
}
|
/**
|
* 挂单定时任务
|
*
|
*/
|
@Scheduled(cron = "0 0/1 * ? * MON-FRI")
|
public void orderTask() {
|
boolean am = false;
|
boolean pm = false;
|
boolean ln = false;
|
//todo 測試完成需要關閉註釋
|
try {
|
am = BuyAndSellUtils.isTransTime("9:30", "16:00");
|
pm = BuyAndSellUtils.isTransTime("21:30", "23:59");
|
ln= BuyAndSellUtils.isTransTime("0:00", "5:00");
|
} catch (Exception e) {
|
log.error("執行定時任務出錯,e = {}", e);
|
}
|
|
log.info("挂单当前 am = {} pm = {} ln = {}", Boolean.valueOf(am), Boolean.valueOf(pm),Boolean.valueOf(ln));
|
if (am || pm||ln) {
|
log.info("=====掃描挂單執行,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
this.userPendingorderService.orderTask();
|
log.info("=====掃描挂單結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
} else {
|
log.info("當前時間不為周一至周五,或者不在交易時間內,不執行<< 挂单 >>定時任務");
|
}
|
|
}
|
|
/*用戶股票持倉單-強平提醒推送消息定時*/
|
@Scheduled(cron = "0 0/1 * * * *")
|
public void banlanceUserPositionMessage() {
|
|
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.ForceSellMessageTask();
|
|
log.info("=====掃描用戶持倉結束,當前時間 {} =====", DateTimeUtil.dateToStr(new Date()));
|
|
} else {
|
|
log.info("當前時間不為周一至周五,或者不在交易時間內,不執行(強平)提醒推送消息任務");
|
|
}
|
|
}
|
|
|
}
|