package quant.rich.emoney.entity.sqlite; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.springframework.util.CollectionUtils; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; import lombok.experimental.Accessors; import quant.rich.emoney.mybatis.typehandler.CommaListTypeHandler; import quant.rich.emoney.mybatis.typehandler.JsonStringTypeHandler; @Data @Accessors(chain = true) @TableName(value = "plan", autoResultMap = true) public class Plan { /** * 键 ID */ @TableId(type = IdType.AUTO) private String planId; /** * 计划任务表达式 */ private String cronExpr; /** * 计划名称 */ private String planName; /** * 指标代码 */ private String indexCode; /** * 需要抓取的指标周期 */ @TableField(typeHandler = CommaListTypeHandler.class) private List periods; /** * 参数 */ @TableField(typeHandler = JsonStringTypeHandler.class) private JsonNode params; /** * 是否启用 */ private Boolean enabled; /** * 交易日检查,若为 true,则任务执行时判断当日是否为交易日,若是则不执行任务, * 反之无论是否为交易日都执行 */ private Boolean openDayCheck; /** * 设置抓取周期并去重 * @param periods * @return */ public Plan setPeriods(List periods) { if (CollectionUtils.isEmpty(periods)) { this.periods = Collections.emptyList(); return this; } Set hashSet = new HashSet<>(); periods.forEach(s -> { if (StringUtils.isNotBlank(s)) { hashSet.add(s.trim()); } }); this.periods = new ArrayList<>(hashSet); return this; } /** * 获取抓取周期。已去重 * @return */ public List getPeriods() { setPeriods(periods); return periods; } }