test: 可以使用责任树进行测试

dev.data.processing
面包骑士 2024-10-02 10:36:16 +08:00
parent eb37fb5072
commit 469eedacb5
25 changed files with 208 additions and 148 deletions

View File

@ -19,6 +19,8 @@ import java.util.List;
public enum CacheNameEnums { public enum CacheNameEnums {
FAULT("fault", "故障"), FAULT("fault", "故障"),
FENCE("fence", "围栏"), FENCE("fence", "围栏"),
STORAGE("storage", "持久化"),
REALTIME("realTime", "实时信息"),
WARMING("warming", "预警"); WARMING("warming", "预警");
private final String code; private final String code;

View File

@ -1,9 +1,6 @@
package com.muyu.data.processing.domain; package com.muyu.data.processing.domain;
import com.muyu.common.core.enums.ClassType;
import lombok.*; import lombok.*;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable; import java.io.Serializable;
@ -22,7 +19,7 @@ import java.io.Serializable;
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class KafkaData implements Serializable { public class BasicData implements Serializable {
private String key; private String key;
private String label; private String label;

View File

@ -1,22 +0,0 @@
package com.muyu.data.processing.domain;
import lombok.*;
/**
* 1
*
* @Author:
* @Name: Temporary1
* @Description: 1
* @CreatedDate: 2024/9/30 7:26
* @FilePath: com.muyu.data.processing.domain
*/
@Data
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Temporary1 {
private String test;
}

View File

@ -5,8 +5,9 @@ import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.nacos.shaded.com.google.common.collect.Lists; import com.alibaba.nacos.shaded.com.google.common.collect.Lists;
import com.muyu.common.kafka.constants.KafkaConstants; import com.muyu.common.kafka.constants.KafkaConstants;
import com.muyu.data.processing.domain.KafkaData; import com.muyu.data.processing.domain.BasicData;
import com.muyu.data.processing.service.DataProcessingService; import com.muyu.data.processing.service.DataProcessingService;
import com.muyu.data.processing.strategy.core.StartStrategy;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecord;
@ -17,6 +18,7 @@ import org.springframework.stereotype.Component;
import java.time.Duration; import java.time.Duration;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
@ -34,7 +36,7 @@ public class KafkaConsumerService implements InitializingBean {
@Resource @Resource
private KafkaConsumer kafkaConsumer; private KafkaConsumer kafkaConsumer;
@Resource @Resource
private DataProcessingService service; private StartStrategy startStrategy;
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
@ -51,12 +53,19 @@ public class KafkaConsumerService implements InitializingBean {
String originalMsg = (String) consumerRecord.value(); String originalMsg = (String) consumerRecord.value();
log.info("从Kafka中消费的原始数据: " + originalMsg); log.info("从Kafka中消费的原始数据: " + originalMsg);
//2.把消费数据转换为DTO对象 //2.把消费数据转换为DTO对象
List<KafkaData> dataList = JSONUtil.toList(originalMsg, KafkaData.class); List<BasicData> dataList = JSONUtil.toList(originalMsg, BasicData.class);
log.info("从Kafka中消费的实体数据: " + dataList); log.info("从Kafka中消费的实体数据: " + dataList);
service.strategyCheck(dataList); // 执行策略
startStrategy.applyStrategy(getDataMap(dataList));
} }
} }
}); });
thread.start(); thread.start();
} }
private HashMap<String, BasicData> getDataMap(List<BasicData> dataList) {
HashMap<String, BasicData> basicDataHashMap = new HashMap<>();
dataList.forEach(data -> basicDataHashMap.put(data.getKey(), data));
return basicDataHashMap;
}
} }

View File

@ -1,7 +1,7 @@
package com.muyu.data.processing.mapper; package com.muyu.data.processing.mapper;
import com.muyu.data.processing.domain.IotDbData; import com.muyu.data.processing.domain.IotDbData;
import com.muyu.data.processing.domain.KafkaData; import com.muyu.data.processing.domain.BasicData;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -26,7 +26,7 @@ public interface DataProcessingMapper{
Integer insIotDbData(@Param("key") String key, @Param("value") String value); Integer insIotDbData(@Param("key") String key, @Param("value") String value);
void strategyCheck(@Param("dataList") List<KafkaData> dataList); void strategyCheck(@Param("dataList") List<BasicData> dataList);
Integer insIotDbDataVo(IotDbData build); Integer insIotDbDataVo(IotDbData build);
} }

View File

@ -1,8 +1,7 @@
package com.muyu.data.processing.service; package com.muyu.data.processing.service;
import com.muyu.data.processing.domain.IotDbData; import com.muyu.data.processing.domain.BasicData;
import com.muyu.data.processing.domain.KafkaData;
import java.util.List; import java.util.List;
@ -25,7 +24,7 @@ public interface DataProcessingService{
*/ */
List<String> selectStorageGroup(); List<String> selectStorageGroup();
void strategyCheck(List<KafkaData> dataList); void strategyCheck(List<BasicData> dataList);
Integer insIotDbData(String key, String value); Integer insIotDbData(String key, String value);
} }

View File

@ -4,7 +4,7 @@ package com.muyu.data.processing.service.impl;
import javax.annotation.Resource; import javax.annotation.Resource;
import com.muyu.data.processing.domain.IotDbData; import com.muyu.data.processing.domain.IotDbData;
import com.muyu.data.processing.domain.KafkaData; import com.muyu.data.processing.domain.BasicData;
import com.muyu.data.processing.strategy.core.StartStrategy; import com.muyu.data.processing.strategy.core.StartStrategy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -39,8 +39,8 @@ public class DataProcessingServiceImpl implements DataProcessingService {
} }
@Override @Override
public void strategyCheck(List<KafkaData> dataList) { public void strategyCheck(List<BasicData> dataList) {
HashMap<String, KafkaData> kafkaDataHashMap = new HashMap<>(); HashMap<String, BasicData> kafkaDataHashMap = new HashMap<>();
dataList.forEach(data -> kafkaDataHashMap.put(data.getKey(), data)); dataList.forEach(data -> kafkaDataHashMap.put(data.getKey(), data));
// Result<String[]> result = rootStrategy.applyStrategy(kafkaDataHashMap); // Result<String[]> result = rootStrategy.applyStrategy(kafkaDataHashMap);
// String[] data = result.getData(); // String[] data = result.getData();

View File

@ -1,6 +1,7 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +21,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class DataProcessStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class DataStorageProcessStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new DataStorageStrategy(); return param-> new DataStorageStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("持久化数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -21,15 +23,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FaultJudgmentStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FaultJudgmentStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new FaultAlarmStrategy(); return param-> new FaultAlarmStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("故障判断节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FaultProcessingStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FaultProcessingStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new FaultJudgmentStrategy(); return param-> new FaultJudgmentStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("故障数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -21,15 +23,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FenceJudgmentStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FenceJudgmentStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new FenceAlarmStrategy(); return param-> new FenceAlarmStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("围栏数据判断节点通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -19,15 +21,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FenceProcessingStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FenceProcessingStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new FenceJudgmentStrategy(); return param-> new FenceJudgmentStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("围栏数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -21,15 +23,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class RealTimeJudgmentStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class RealTimeJudgmentStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new RealTimeAlarmStrategy(); return param-> new RealTimeAlarmStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("实时数据判断节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -19,15 +21,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class RealTimeProcessingStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class RealTimeProcessingStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new RealTimeJudgmentStrategy(); return param-> new RealTimeJudgmentStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("实时数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -21,15 +23,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class WarningJudgmentStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class WarningJudgmentStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new WarningAlarmStrategy(); return param-> new WarningAlarmStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("预警数据判断节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.branch; package com.muyu.data.processing.strategy.branch;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -19,15 +21,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class WarningProcessingStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class WarningProcessingStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param-> new WarningJudgmentStrategy(); return param-> new WarningJudgmentStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("预警数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,9 @@
package com.muyu.data.processing.strategy.core; package com.muyu.data.processing.strategy.core;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.common.caffeine.enums.CacheNameEnums;
import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -19,15 +22,20 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class BasicStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class BasicStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("开始执行基础校验节点。。。");
basicDataMap.put(CacheNameEnums.WARMING.getCode(), BasicData.builder().key("test").build());
basicDataMap.put(CacheNameEnums.FAULT.getCode(), BasicData.builder().key("test").build());
basicDataMap.put(CacheNameEnums.REALTIME.getCode(), BasicData.builder().key("test").build());
log.info("基础校验节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.core; package com.muyu.data.processing.strategy.core;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -18,9 +20,10 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class EndStrategy implements StrategyHandler<Temporary1, Temporary2> { public class EndStrategy implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
log.info("结束节点已通过。。。");
return null; return null;
} }
} }

View File

@ -1,9 +1,12 @@
package com.muyu.data.processing.strategy.core; package com.muyu.data.processing.strategy.core;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.common.caffeine.enums.CacheNameEnums;
import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
import com.muyu.data.processing.strategy.branch.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -19,21 +22,37 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class RoutingStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class RoutingStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { private final static HashMap<String, StrategyHandler<HashMap<String, BasicData>, Temporary2>> map = new HashMap<>();
return new StrategyMapper<Temporary1, Temporary2>() { static{
@Override map.put(CacheNameEnums.WARMING.getCode(), new WarningProcessingStrategy());
public StrategyHandler<Temporary1, Temporary2> getHandler(Temporary1 param) { map.put(CacheNameEnums.REALTIME.getCode(), new RealTimeProcessingStrategy());
// 编写路由规则 map.put(CacheNameEnums.FENCE.getCode(), new FenceProcessingStrategy());
return null; map.put(CacheNameEnums.FAULT.getCode(), new FaultProcessingStrategy());
} map.put(CacheNameEnums.STORAGE.getCode(), new DataStorageProcessStrategy());
};
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return applyStrategy(temporary1); return param -> {
// 编写路由规则
List<String> codes = CacheNameEnums.getCodes();
for (String code : codes) {
if(param.containsKey(code)){
return map.get(code);
}
}
// 默认返回结束节点
return new EndStrategy();
};
};
@Override
public Temporary2 apply(HashMap<String, BasicData> stringListHashMap) {
log.info("路由节点已通过。。。");
return applyStrategy(stringListHashMap);
} }
} }

View File

@ -1,10 +1,14 @@
package com.muyu.data.processing.strategy.core; package com.muyu.data.processing.strategy.core;
import com.muyu.data.processing.domain.Temporary1;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
/** /**
* *
@ -34,9 +38,9 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class StartStrategy extends abstractStrategyRouter<Temporary1, Temporary2> { public class StartStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new BasicStrategy(); return param -> new BasicStrategy();
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.leaves; package com.muyu.data.processing.strategy.leaves;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class DataStorageStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class DataStorageStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("数据持久化节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.leaves; package com.muyu.data.processing.strategy.leaves;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FaultAlarmStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FaultAlarmStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("故障报警节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.leaves; package com.muyu.data.processing.strategy.leaves;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class FenceAlarmStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class FenceAlarmStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("围栏报警节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.leaves; package com.muyu.data.processing.strategy.leaves;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class RealTimeAlarmStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class RealTimeAlarmStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("实时数据处理节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }

View File

@ -1,6 +1,8 @@
package com.muyu.data.processing.strategy.leaves; package com.muyu.data.processing.strategy.leaves;
import com.muyu.data.processing.domain.Temporary1; import com.muyu.data.processing.domain.BasicData;
import java.util.HashMap;
import java.util.List;
import com.muyu.data.processing.domain.Temporary2; import com.muyu.data.processing.domain.Temporary2;
import com.muyu.data.processing.strategy.StrategyHandler; import com.muyu.data.processing.strategy.StrategyHandler;
import com.muyu.data.processing.strategy.abstractStrategyRouter; import com.muyu.data.processing.strategy.abstractStrategyRouter;
@ -20,15 +22,16 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class WarningAlarmStrategy extends abstractStrategyRouter<Temporary1, Temporary2> public class WarningAlarmStrategy extends abstractStrategyRouter<HashMap<String, BasicData>, Temporary2>
implements StrategyHandler<Temporary1, Temporary2> { implements StrategyHandler<HashMap<String, BasicData>, Temporary2> {
@Override @Override
protected StrategyMapper<Temporary1, Temporary2> registerStrategy() { protected StrategyMapper<HashMap<String, BasicData>, Temporary2> registerStrategy() {
return param -> new RoutingStrategy(); return param -> new RoutingStrategy();
} }
@Override @Override
public Temporary2 apply(Temporary1 temporary1) { public Temporary2 apply(HashMap<String, BasicData> basicDataMap) {
return applyStrategy(temporary1); log.info("预警报警节点已通过。。。");
return applyStrategy(basicDataMap);
} }
} }