package com.jiayue.ipfcst.console.service; import com.alibaba.fastjson.JSON; import com.jiayue.ipfcst.BaseTest; import com.jiayue.ipfcst.common.data.abst.equipmentstatus.AbstractEquipmentStatusData; import com.jiayue.ipfcst.common.data.entity.PowerStationStatusData; import com.jiayue.ipfcst.common.data.entity.WindTurbineStatusData; import com.jiayue.ipfcst.console.util.RedisUtils; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.*; public class PowerStationDataTest extends BaseTest { @Autowired PowerStationDataPackerContainer powerStationDataPackerContainer; @Autowired RedisUtils redisUtils; private final Random random = new Random(); @Test public void packages() throws Exception { for (; ; ) { PowerStationStatusData a = powerStationDataPackerContainer.getDataPacker("Q00002").packageData(BigDecimal.valueOf(0.4)); System.out.println(JSON.toJSONString(a)); Thread.sleep(20000L); } } @Test public void save() throws Exception { WindTurbineStatusData data = new WindTurbineStatusData(); data.setStationCode("Q00001"); data.setId(1); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(2); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(3); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(5); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(7); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(12); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(14); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(16); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); data.setId(17); data.setActivePower(BigDecimal.valueOf(random.nextFloat()).multiply(BigDecimal.valueOf(1000))); saveEquipmentStatusData("FJ-" + data.getStationCode() + "-" + data.getId(), data); } public void saveEquipmentStatusData(String key, AbstractEquipmentStatusData equipmentStatusData) throws IllegalAccessException { Field[] f1 = equipmentStatusData.getClass().getDeclaredFields(); Field[] f2 = AbstractEquipmentStatusData.class.getDeclaredFields(); List l = Arrays.asList(f1); l.addAll(Arrays.asList(f2)); Map m = new HashMap<>(); Object o; for (Field f : l) { f.setAccessible(true); o = f.get(equipmentStatusData); m.put(f.getName(), o.toString()); } redisUtils.hmset(key, m); } }