package com.muyu.data.processing.strategy.core;



import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.abstractStrategyRouter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;

/**
 * 开始节点
 *
 * @Author: 胡杨
 * @Name: StartStrategy
 * @Description: 策略路由实现
 * @CreatedDate: 2024/9/28 上午10:39
 * @FilePath: com.muyu.data.processing.strategy.impl
 *                              开始节点
 *                                 ↓
 *                             基础校验节点
 *                                 ↓
 *                              路由节点    ←      ←        ←        ←      ←    ←
 *          ↙           ↙          ↓       ↘       ↘
 *     数据处理节点 预警处理节点 故障处理节点 围栏处理节点 实时数据数据处理节点              ↑
 *         ↓           ↓          ↓        ↓           ↓
 *  数据持久化处理节点 预警判断节点 故障判断节点 围栏判断节点 实时数据处理节点               ↑
 *         ↓           ↓          ↓        ↓           ↓
 *         ↓     预警通知节点 故障通知节点 围栏通知节点       ↓                        ↑
 *         ↓           ↘          ↓        ↙           ↙
 *         ↓                      ↓                                             ↑
 *         →      →     →      路由节点     →      →     →       →      →     →
 *                                ↓
 *                             结束节点
 */

@Slf4j
@Component
public class StartStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2> {
    @Override
    protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
        return param -> {
            log.info("车辆VIN :{},开始数据处理...", param.get("VIN").getValue());
            return new BasicStrategy();
        };
    }

}
