wisdomisite-java/src/main/java/com/zhgd/xmgl/task/DevTestDataTask.java

246 lines
11 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.task;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhgd.xmgl.modules.bigdevice.entity.Lifter;
import com.zhgd.xmgl.modules.bigdevice.entity.LifterCurrentData;
import com.zhgd.xmgl.modules.bigdevice.entity.Tower;
import com.zhgd.xmgl.modules.bigdevice.entity.TowerCurrentData;
import com.zhgd.xmgl.modules.bigdevice.mapper.LifterMapper;
import com.zhgd.xmgl.modules.bigdevice.mapper.TowerMapper;
import com.zhgd.xmgl.modules.bigdevice.service.ILifterCurrentDataService;
import com.zhgd.xmgl.modules.bigdevice.service.ITowerCurrentDataService;
import com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformCurrentData;
import com.zhgd.xmgl.modules.discharging.entity.DischargingPlatformDev;
import com.zhgd.xmgl.modules.discharging.mapper.DischargingPlatformDevMapper;
import com.zhgd.xmgl.modules.discharging.service.IDischargingPlatformCurrentDataService;
import com.zhgd.xmgl.modules.environment.entity.DustNoiseData;
import com.zhgd.xmgl.modules.environment.entity.EnvironmentDev;
import com.zhgd.xmgl.modules.environment.mapper.EnvironmentDevMapper;
import com.zhgd.xmgl.modules.environment.service.IDustNoiseDataService;
import lombok.extern.log4j.Log4j;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
* @program: wisdomSite
* @description: 自动创建设备测试数据
* @author: Mr.Peng
* @create: 2021-06-28 16:54
**/
@Log4j
@Component
public class DevTestDataTask {
@Autowired
private IDustNoiseDataService dustNoiseDataService;
@Autowired
private EnvironmentDevMapper environmentDevMapper;
@Autowired
private IDischargingPlatformCurrentDataService dischargingPlatformCurrentDataService;
@Autowired
private DischargingPlatformDevMapper dischargingPlatformDevMapper;
@Autowired
private TowerMapper towerMapper;
@Autowired
private ITowerCurrentDataService towerCurrentDataService;
@Autowired
private LifterMapper lifterMapper;
@Autowired
private ILifterCurrentDataService lifterCurrentDataService;
/**
* 创建扬尘数据
*/
@Scheduled(cron = "0 0/9 * * * ?")
@SchedulerLock(name = "createEnvironmentData", lockAtMostFor = 1000 * 60 * 3, lockAtLeastFor = 1000 * 60 * 1)
public void createEnvironmentData() {
try {
QueryWrapper<EnvironmentDev> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(EnvironmentDev::getCreateDataType, 1);
List<EnvironmentDev> list = environmentDevMapper.selectList(queryWrapper);
Random random = new Random();
if (list != null && list.size() > 0) {
for (EnvironmentDev dev : list) {
DustNoiseData dustNoiseData = new DustNoiseData();
dustNoiseData.setProjectSn(dev.getProjectSn());
dustNoiseData.setDeviceId(dev.getDeviceId());
dustNoiseData.setPm10(getRandomNum());
dustNoiseData.setPm25(getRandomNum());
dustNoiseData.setNoise(getRandomNum());
dustNoiseData.setTsp(getRandomNum());
dustNoiseData.setTemperature(getRandomNum(20, 5));
dustNoiseData.setHumidity(getRandomNum(60, 6));
dustNoiseData.setWindspeed(getFloatRandomNum());
dustNoiseData.setWinddirection(random.nextInt(10) + "");
dustNoiseData.setVoltage(getRandomNum());
dustNoiseDataService.insertDustNoiseData(dustNoiseData, dev);
EnvironmentDev tempenvironmentDev = new EnvironmentDev();
tempenvironmentDev.setId(dev.getId());
tempenvironmentDev.setRealTime(new Date());
environmentDevMapper.updateById(tempenvironmentDev);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建卸料平台数据
*/
@Scheduled(cron = "0 0/9 * * * ?")
@SchedulerLock(name = "createDischargingPlatformData", lockAtMostFor = 1000 * 60 * 3, lockAtLeastFor = 1000 * 60 * 1)
public void createDischargingPlatformData() {
try {
QueryWrapper<DischargingPlatformDev> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DischargingPlatformDev::getCreateDataType, 1);
List<DischargingPlatformDev> list = dischargingPlatformDevMapper.selectList(queryWrapper);
if (list != null && list.size() > 0) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (DischargingPlatformDev dev : list) {
DischargingPlatformCurrentData platformCurrentData = new DischargingPlatformCurrentData();
platformCurrentData.setProjectSn(dev.getProjectSn());
platformCurrentData.setDevSn(dev.getDevSn());
//random.nextDouble()
platformCurrentData.setLoading(getFloatRandomNum() + "");
platformCurrentData.setXDipAngle("0");
platformCurrentData.setYDipAngle("0");
platformCurrentData.setDisplacement("0");
platformCurrentData.setReciveTime(sdf.format(new Date()));
dischargingPlatformCurrentDataService.save(platformCurrentData);
DischargingPlatformDev tempDischargingPlatformDev = new DischargingPlatformDev();
tempDischargingPlatformDev.setId(dev.getId());
tempDischargingPlatformDev.setRealTime(new Date());
dischargingPlatformDevMapper.updateById(tempDischargingPlatformDev);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建塔吊数据
*/
@Scheduled(cron = "0 0/10 * * * ?")
//@Scheduled(cron = "0/5 * * * * ?")
@SchedulerLock(name = "createTowerData", lockAtMostFor = 1000 * 60 * 5, lockAtLeastFor = 1000 * 60 * 2)
public void createTowerData() {
try {
QueryWrapper<Tower> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Tower::getCreateDataType, 1);
List<Tower> list = towerMapper.selectList(queryWrapper);
Random random = new Random();
if (list != null && list.size() > 0) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (Tower dev : list) {
TowerCurrentData currentData = new TowerCurrentData();
currentData.setProjectSn(dev.getProjectSn());
currentData.setDevSn(dev.getDevSn());
currentData.setLoading(getDoubleRandomNum(10).toString());
currentData.setLoadRatio(getDoubleRandomNum(0).toString());
currentData.setTorque(getRandomNum().toString());
currentData.setAngle((random.nextInt(50) + 50) + "");
currentData.setAngle(getDoubleRandomNum(20).toString());
currentData.setHeight(getDoubleRandomNum(30).toString());
currentData.setWindspeed(getDoubleRandomNum(10).toString());
currentData.setRate("2");
2023-07-29 14:41:03 +08:00
Date date = new Date();
currentData.setStartTime(date);
currentData.setReciveTime(date);
2023-02-16 15:28:15 +08:00
towerCurrentDataService.save(currentData);
Tower tempTower = new Tower();
tempTower.setId(dev.getId());
2023-07-29 14:41:03 +08:00
tempTower.setRealTime(date);
2023-02-16 15:28:15 +08:00
towerMapper.updateById(tempTower);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建塔吊数据
*/
@Scheduled(cron = "0 0/9 * * * ?")
@SchedulerLock(name = "createLifterData", lockAtMostFor = 1000 * 60 * 3, lockAtLeastFor = 1000 * 60 * 1)
public void createLifterData() {
try {
QueryWrapper<Lifter> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Lifter::getCreateDataType, 1);
List<Lifter> list = lifterMapper.selectList(queryWrapper);
Random random = new Random();
if (list != null && list.size() > 0) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (Lifter dev : list) {
LifterCurrentData currentData = new LifterCurrentData();
currentData.setProjectSn(dev.getProjectSn());
currentData.setDevSn(dev.getDevSn());
currentData.setHeight(getDoubleRandomNum(40).toString());
currentData.setType("0");
currentData.setMaxLoad("500");
currentData.setLoading(getDoubleRandomNum(80).toString());
currentData.setLoadRatio(random.nextInt(4) + "");
currentData.setRealFlag("0");
currentData.setBiasAngle("0");
currentData.setBrakingDistance("0");
currentData.setRunningState(1);
currentData.setSpeed(getDoubleRandomNum(0).toString());
currentData.setStartTime(sdf.format(new Date()));
currentData.setReciveTime(sdf.format(new Date()));
currentData.setIsOnline(1);
lifterCurrentDataService.save(currentData);
Lifter tempLifter = new Lifter();
tempLifter.setId(dev.getId());
tempLifter.setRealTime(new Date());
lifterMapper.updateById(tempLifter);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
2023-08-02 17:59:49 +08:00
public static Double getRandomNum(int startNum, int randomNum) {
2023-02-16 15:28:15 +08:00
Random random = new Random();
DecimalFormat df = new DecimalFormat("0.00");
2023-08-02 17:59:49 +08:00
return Double.valueOf(df.format(startNum + random.nextInt(randomNum) + random.nextDouble()));
2023-02-16 15:28:15 +08:00
}
2023-08-02 17:59:49 +08:00
public static Double getRandomNum() {
2023-02-16 15:28:15 +08:00
Random random = new Random();
DecimalFormat df = new DecimalFormat("0.00");
2023-08-02 17:59:49 +08:00
return Double.valueOf(df.format(20 + random.nextInt(30) + random.nextDouble()));
2023-02-16 15:28:15 +08:00
}
public static Double getDoubleRandomNum(int num) {
Random random = new Random();
DecimalFormat df = new DecimalFormat("0.00");
if (num == 0) {
return Double.valueOf(df.format(random.nextDouble()));
} else {
return Double.valueOf(df.format(random.nextInt(num) + random.nextDouble()));
}
}
2023-08-02 17:59:49 +08:00
public static Double getFloatRandomNum() {
2023-02-16 15:28:15 +08:00
Random random = new Random();
DecimalFormat df = new DecimalFormat("0.0");
2023-08-02 17:59:49 +08:00
return Double.valueOf(df.format(random.nextDouble()));
2023-02-16 15:28:15 +08:00
}
public static void main(String[] args) {
log.info(getRandomNum(10, 15));
}
}