package com.huimv.apiservice; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.huimv.apiservice.dao.IndoorEnvironmentDao; import com.huimv.apiservice.dao.OutdoorEnvironmentDao; import com.huimv.apiservice.dao.PigDao; import com.huimv.apiservice.dao.SowChildbirthDao; import com.huimv.apiservice.entity.IndoorEnvironmentEntity; import com.huimv.apiservice.entity.OutdoorEnvironmentEntity; import com.huimv.apiservice.entity.SowChildbirthEntity; import com.huimv.apiservice.entity.YearPigBaseEntity; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; @SpringBootTest class HuimvSmartApiserviceApplicationTests { @Autowired private IndoorEnvironmentDao indoorEnvironmentDao; @Autowired private OutdoorEnvironmentDao outdoorEnvironmentDao; @Autowired private PigDao pigDao; @Autowired private SowChildbirthDao sowChildbirthDao; @Test void contextLoads() { } @Test void createIndoorEnv() { DateTime today = DateUtil.beginOfDay(new Date()); System.out.println(today); // BigDecimal bigDecimal = new BigDecimal(Math.random() * 8 + 25).setScale(1, BigDecimal.ROUND_HALF_UP); // double temperature = bigDecimal.doubleValue(); // BigDecimal bigDecimal2 = new BigDecimal(Math.random() * 0.3 + 0.3).setScale(2, BigDecimal.ROUND_HALF_UP); // double humidity = bigDecimal2.doubleValue(); // System.out.println(temperature + " " + humidity); Date collectTime = today; List gas = new ArrayList<>(); gas.add("优"); gas.add("良"); gas.add("轻度"); gas.add("中度"); gas.add("重度"); gas.add("严重"); Random random = new Random(); List list = new ArrayList<>(); for (int i = 0; i < 288; i++) { IndoorEnvironmentEntity entity = new IndoorEnvironmentEntity(); entity.setDate(today); entity.setPigstyId(1); BigDecimal bigDecimal = new BigDecimal(Math.random() * 3 + 23).setScale(1, BigDecimal.ROUND_HALF_UP); double temperature = bigDecimal.doubleValue(); entity.setTemperature(temperature); BigDecimal bigDecimal2 = new BigDecimal(Math.random() * 0.3 + 0.3).setScale(2, BigDecimal.ROUND_HALF_UP); double humidity = bigDecimal2.doubleValue(); entity.setHumidity(humidity); entity.setGas(gas.get(random.nextInt(5))); entity.setCollectTime(collectTime); collectTime = DateUtil.offsetMinute(collectTime,5); System.out.println(entity); list.add(entity); } indoorEnvironmentDao.batchInsertData(list); } @Test void createOutdoorEnv() { DateTime today = DateUtil.beginOfDay(new Date()); System.out.println(today); // BigDecimal bigDecimal = new BigDecimal(Math.random() * 8 + 25).setScale(1, BigDecimal.ROUND_HALF_UP); // double temperature = bigDecimal.doubleValue(); // BigDecimal bigDecimal2 = new BigDecimal(Math.random() * 0.3 + 0.3).setScale(2, BigDecimal.ROUND_HALF_UP); // double humidity = bigDecimal2.doubleValue(); // System.out.println(temperature + " " + humidity); Date collectTime = today; List gas = new ArrayList<>(); gas.add("优"); gas.add("良"); gas.add("轻度"); gas.add("中度"); gas.add("重度"); gas.add("严重"); Random random = new Random(); List list = new ArrayList<>(); for (int i = 0; i < 288; i++) { OutdoorEnvironmentEntity entity = new OutdoorEnvironmentEntity(); entity.setDate(today); BigDecimal bigDecimal = new BigDecimal(Math.random() * 3 + 23).setScale(1, BigDecimal.ROUND_HALF_UP); double temperature = bigDecimal.doubleValue(); entity.setTemperature(temperature); BigDecimal bigDecimal2 = new BigDecimal(Math.random() * 0.3 + 0.3).setScale(2, BigDecimal.ROUND_HALF_UP); double humidity = bigDecimal2.doubleValue(); entity.setHumidity(humidity); entity.setGas(gas.get(random.nextInt(4))); entity.setCollectTime(collectTime); collectTime = DateUtil.offsetMinute(collectTime,5); list.add(entity); } outdoorEnvironmentDao.batchInsertData(list); } @Test void createPigData() { String[] breeds = {"黑猪","金华两头乌","杜巴嘉","巴嘉","杜洛克","嘉兴黑猪","大白猪"}; String[] originPlace = {"金华","杭州"}; List all = new ArrayList<>(); List mothers = new ArrayList<>(); List fathers = new ArrayList<>(); Random random = new Random(); for (int i = 5; i < 2001; i++) { YearPigBaseEntity entity = new YearPigBaseEntity(); String number = String.valueOf(i); String earTag = "N00000".substring(0, 6 - number.length()) + number; entity.setEartag(earTag); int dayAge = random.nextInt(200) + 50; entity.setDayAge(dayAge); entity.setUnitId(random.nextInt(4) + 1); BigDecimal bigDecimal = new BigDecimal(dayAge); BigDecimal weight = bigDecimal.multiply(new BigDecimal(0.8)).setScale(2, BigDecimal.ROUND_HALF_UP); entity.setWeight(weight.doubleValue()); entity.setBreed(breeds[random.nextInt(breeds.length)]); String sex = i % 2 == 0 ? "公" : "母"; entity.setSex(sex); if (dayAge >= 150 && "母".equals(sex)) { mothers.add(entity); } if (dayAge >= 150 && "公".equals(sex)) { fathers.add(entity); } entity.setBirthday(DateUtil.offsetDay(DateUtil.date(),i % 200)); entity.setOriginPlace(originPlace[random.nextInt(2)]); //System.out.println(entity.getDayAge() + " " + " " + entity.getUnitId() + " " + entity.getWeight()); entity.setPigstyId(random.nextInt(4) + 1); entity.setPeriodId(1); entity.setInFenceTime(DateUtil.offsetDay(DateUtil.parseDate("2021-01-01"),random.nextInt(91) - 30)); all.add(entity); } for (YearPigBaseEntity yearPigBaseEntity : all) { if (yearPigBaseEntity.getDayAge() < 150) { yearPigBaseEntity.setMotherEartag(mothers.get(random.nextInt(mothers.size())).getEartag()); yearPigBaseEntity.setFatherEartag(fathers.get(random.nextInt(fathers.size())).getEartag()); } } pigDao.batchInsertData(all); List sowChildbirthEntityList = new ArrayList<>(); for (YearPigBaseEntity mother : mothers) { SowChildbirthEntity entity = new SowChildbirthEntity(); entity.setEartag(mother.getEartag()); entity.setChildbirthWeight(mother.getWeight()); entity.setPregnancyDate(DateUtil.offsetMonth(mother.getInFenceTime(),3)); entity.setChildbirthCount(random.nextInt(10) + 5); sowChildbirthEntityList.add(entity); } sowChildbirthDao.batchInsertData(sowChildbirthEntityList); } }