1、优化自适应周期的判断
2、修改位置的字段名:初始位置ipos,相对位置rpos,辅助计算位置aux 3、修改状态按部门搜索的bug
This commit is contained in:
parent
f70ef35096
commit
dcd6c2f73d
@ -37,13 +37,13 @@ public class GnssCalcData {
|
|||||||
@ExcelProperty("更新时间")
|
@ExcelProperty("更新时间")
|
||||||
LocalDateTime updatetime;
|
LocalDateTime updatetime;
|
||||||
|
|
||||||
@ExcelProperty("北斗位置东")
|
@ExcelProperty("原始位置东")
|
||||||
Double b562e;
|
Double b562e;
|
||||||
|
|
||||||
@ExcelProperty("北斗位置北")
|
@ExcelProperty("原始位置北")
|
||||||
Double b562n;
|
Double b562n;
|
||||||
|
|
||||||
@ExcelProperty("北斗位置天")
|
@ExcelProperty("原始位置天")
|
||||||
Double b562d;
|
Double b562d;
|
||||||
|
|
||||||
@ExcelProperty("惯导位置东")
|
@ExcelProperty("惯导位置东")
|
||||||
@ -55,14 +55,23 @@ public class GnssCalcData {
|
|||||||
@ExcelProperty("惯导位置天")
|
@ExcelProperty("惯导位置天")
|
||||||
Double r9250d;
|
Double r9250d;
|
||||||
|
|
||||||
@ExcelProperty("相对北斗位置东")
|
@ExcelProperty("相对位置东")
|
||||||
Double rb562e;
|
Double rpose;
|
||||||
|
|
||||||
@ExcelProperty("相对北斗位置北")
|
@ExcelProperty("相对位置北")
|
||||||
Double rb562n;
|
Double rposn;
|
||||||
|
|
||||||
@ExcelProperty("相对北斗位置天")
|
@ExcelProperty("相对位置天")
|
||||||
Double rb562d;
|
Double rposd;
|
||||||
|
|
||||||
|
@ExcelProperty("辅助位置东")
|
||||||
|
Double auxe;
|
||||||
|
|
||||||
|
@ExcelProperty("辅助位置北")
|
||||||
|
Double auxn;
|
||||||
|
|
||||||
|
@ExcelProperty("辅助位置天")
|
||||||
|
Double auxd;
|
||||||
|
|
||||||
@ExcelProperty("平均延迟")
|
@ExcelProperty("平均延迟")
|
||||||
Integer pps;
|
Integer pps;
|
||||||
|
|||||||
@ -43,9 +43,9 @@ public class GnssDevice {
|
|||||||
private String fwd_group_id2;
|
private String fwd_group_id2;
|
||||||
private Boolean syn; //组参数是否同步
|
private Boolean syn; //组参数是否同步
|
||||||
private String pictures;
|
private String pictures;
|
||||||
private Double b562e; //初始位置
|
private Double ipose; //初始位置
|
||||||
private Double b562n; //初始位置
|
private Double iposn; //初始位置
|
||||||
private Double b562d; //初始位置
|
private Double iposd; //初始位置
|
||||||
|
|
||||||
public String getObjectName(){
|
public String getObjectName(){
|
||||||
return "gnssdevice";
|
return "gnssdevice";
|
||||||
|
|||||||
@ -79,17 +79,17 @@ public class Forwarder {
|
|||||||
gnssQueryWrapper.ge("createtime",sendAfterTime);
|
gnssQueryWrapper.ge("createtime",sendAfterTime);
|
||||||
gnssQueryWrapper.orderByDesc("createtime");
|
gnssQueryWrapper.orderByDesc("createtime");
|
||||||
gnssQueryWrapper.eq("enabled",true);
|
gnssQueryWrapper.eq("enabled",true);
|
||||||
gnssQueryWrapper.isNotNull("rb562e");
|
gnssQueryWrapper.isNotNull("rpose");
|
||||||
gnssQueryWrapper.last("limit 1");
|
gnssQueryWrapper.last("limit 1");
|
||||||
GnssCalcData record = gnssDataMapper.selectOne(gnssQueryWrapper);
|
GnssCalcData record = gnssDataMapper.selectOne(gnssQueryWrapper);
|
||||||
if(record!=null) {
|
if(record!=null) {
|
||||||
// 替换成推送用的名字和数值
|
// 替换成推送用的名字和数值
|
||||||
if(device.getB562e()!=null &&
|
if(device.getIpose()!=null &&
|
||||||
device.getB562n()!=null &&
|
device.getIposn()!=null &&
|
||||||
device.getB562d()!=null){
|
device.getIposd()!=null){
|
||||||
record.setRb562e(record.getRb562e()-device.getB562e());
|
record.setRpose(record.getRpose()-device.getIpose());
|
||||||
record.setRb562n(record.getRb562n()-device.getB562n());
|
record.setRposn(record.getRposn()-device.getIposn());
|
||||||
record.setRb562d(record.getRb562d()-device.getB562d());
|
record.setRposd(record.getRposd()-device.getIposd());
|
||||||
}
|
}
|
||||||
if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
|
if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
|
||||||
record.setDeviceid(device.getFwddeviceid());
|
record.setDeviceid(device.getFwddeviceid());
|
||||||
@ -158,7 +158,7 @@ public class Forwarder {
|
|||||||
calcDataQueryWrapper.le("createtime", fwdRecord.getEndtime());
|
calcDataQueryWrapper.le("createtime", fwdRecord.getEndtime());
|
||||||
calcDataQueryWrapper.orderByAsc("createtime");
|
calcDataQueryWrapper.orderByAsc("createtime");
|
||||||
calcDataQueryWrapper.eq("enabled",true);
|
calcDataQueryWrapper.eq("enabled",true);
|
||||||
calcDataQueryWrapper.isNotNull("rb562e");
|
calcDataQueryWrapper.isNotNull("rpose");
|
||||||
List<GnssCalcData> calcDataList = gnssDataMapper.selectList(calcDataQueryWrapper);
|
List<GnssCalcData> calcDataList = gnssDataMapper.selectList(calcDataQueryWrapper);
|
||||||
// 推送记录
|
// 推送记录
|
||||||
int sendNum = sendBatch(device, fwdRecord.getProject_id(), calcDataList);
|
int sendNum = sendBatch(device, fwdRecord.getProject_id(), calcDataList);
|
||||||
@ -192,12 +192,12 @@ public class Forwarder {
|
|||||||
if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
|
if(useFwdId && device.getFwddeviceid()!=null && device.getFwddeviceid().trim().length()>0) {
|
||||||
calcData.setDeviceid(device.getFwddeviceid());
|
calcData.setDeviceid(device.getFwddeviceid());
|
||||||
}
|
}
|
||||||
if(device.getB562e()!=null &&
|
if(device.getIpose()!=null &&
|
||||||
device.getB562n()!=null &&
|
device.getIposn()!=null &&
|
||||||
device.getB562d()!=null){
|
device.getIposd()!=null){
|
||||||
calcData.setRb562e(calcData.getRb562e()-device.getB562e());
|
calcData.setRpose(calcData.getRpose()-device.getIpose());
|
||||||
calcData.setRb562n(calcData.getRb562n()-device.getB562n());
|
calcData.setRposn(calcData.getRposn()-device.getIposn());
|
||||||
calcData.setRb562d(calcData.getRb562d()-device.getB562d());
|
calcData.setRposd(calcData.getRposd()-device.getIposd());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
@ -96,9 +96,9 @@ public class GXXfzForwarder extends Forwarder{
|
|||||||
data.setDevNum(locationRecord.getDeviceid());
|
data.setDevNum(locationRecord.getDeviceid());
|
||||||
data.setDevtype("GNSS");
|
data.setDevtype("GNSS");
|
||||||
// 单位由mm转化为m
|
// 单位由mm转化为m
|
||||||
data.setX(NumberUtils.scale(locationRecord.getRb562e() * 0.001, 5));
|
data.setX(NumberUtils.scale(locationRecord.getRpose() * 0.001, 5));
|
||||||
data.setY(NumberUtils.scale(locationRecord.getRb562n() * 0.001, 5));
|
data.setY(NumberUtils.scale(locationRecord.getRposn() * 0.001, 5));
|
||||||
data.setZ(NumberUtils.scale(locationRecord.getRb562d() * 0.001, 5));
|
data.setZ(NumberUtils.scale(locationRecord.getRposd() * 0.001, 5));
|
||||||
sendNum++;
|
sendNum++;
|
||||||
}
|
}
|
||||||
String json = "#" + GsonUtil.toJson(xfzTcpMessage) + "!";
|
String json = "#" + GsonUtil.toJson(xfzTcpMessage) + "!";
|
||||||
|
|||||||
@ -63,9 +63,9 @@ public class GZYForwarder extends Forwarder{
|
|||||||
for(GnssCalcData locationRecord: records) {
|
for(GnssCalcData locationRecord: records) {
|
||||||
GZYData.Data tranData = new GZYData.Data();
|
GZYData.Data tranData = new GZYData.Data();
|
||||||
tranData.setCollectTime(locationRecord.getCreatetime().format(formatter));
|
tranData.setCollectTime(locationRecord.getCreatetime().format(formatter));
|
||||||
double n = NumberUtils.scale(locationRecord.getRb562n(), 2);
|
double n = NumberUtils.scale(locationRecord.getRposn(), 2);
|
||||||
double e = NumberUtils.scale(locationRecord.getRb562e(), 2);
|
double e = NumberUtils.scale(locationRecord.getRpose(), 2);
|
||||||
double d = NumberUtils.scale(locationRecord.getRb562d(), 2);
|
double d = NumberUtils.scale(locationRecord.getRposd(), 2);
|
||||||
tranData.setX(n);
|
tranData.setX(n);
|
||||||
tranData.setY(e);
|
tranData.setY(e);
|
||||||
tranData.setZ(d);
|
tranData.setZ(d);
|
||||||
|
|||||||
@ -106,7 +106,7 @@ public class KingMaForwarder extends Forwarder{
|
|||||||
data.setProjectId(projectId);
|
data.setProjectId(projectId);
|
||||||
data.setPointId(locationRecord.getDeviceid());
|
data.setPointId(locationRecord.getDeviceid());
|
||||||
data.setFlag(1);
|
data.setFlag(1);
|
||||||
data.setPhys(new KingMaData.Phys(locationRecord.getRb562e(),locationRecord.getRb562n(),locationRecord.getRb562d()));
|
data.setPhys(new KingMaData.Phys(locationRecord.getRpose(),locationRecord.getRposn(),locationRecord.getRposd()));
|
||||||
dataList.add(data);
|
dataList.add(data);
|
||||||
sendNum++;
|
sendNum++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,7 +63,7 @@ public class GNSSCalcFilterService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 平滑处理
|
// 平滑处理
|
||||||
calcFilterLocation(locationRecord, filterCycle,
|
calcFilterLocation(locationRecord, filterCycle, groupCalc.getFilter_min_hour(),
|
||||||
groupCalc.getXy_threshold(), groupCalc.getZ_threshold());
|
groupCalc.getXy_threshold(), groupCalc.getZ_threshold());
|
||||||
|
|
||||||
repository.insert(locationRecord);
|
repository.insert(locationRecord);
|
||||||
@ -92,12 +92,14 @@ public class GNSSCalcFilterService {
|
|||||||
/**
|
/**
|
||||||
* 计算东北天的最近融合数据的加权平均, 刘畅20230725 copy 自 avgEND; id>20, 滤波参数6h 或 25h
|
* 计算东北天的最近融合数据的加权平均, 刘畅20230725 copy 自 avgEND; id>20, 滤波参数6h 或 25h
|
||||||
*/
|
*/
|
||||||
public boolean calcFilterLocation(GnssCalcData newRecord, int filterCycleHour, float xyThreshold, float zThreshold){
|
public boolean calcFilterLocation(GnssCalcData newRecord, int filterCycleHour, int minCycleHour,
|
||||||
|
float xyThreshold, float zThreshold){
|
||||||
String deviceId = newRecord.getDeviceid();
|
String deviceId = newRecord.getDeviceid();
|
||||||
// 选取[newRecordTime-filterCycleHour, newRcordTime]之间的记录做平滑
|
// 选取[newRecordTime-filterCycleHour, newRcordTime]之间的记录做平滑
|
||||||
// 如果这个时间段的记录数少于FILTER_MIN_RECORD_NUM,本次不做平滑
|
// 如果这个时间段的记录数少于FILTER_MIN_RECORD_NUM,本次不做平滑
|
||||||
LocalDateTime newRecordTime = newRecord.getCreatetime();
|
LocalDateTime newRecordTime = newRecord.getCreatetime();
|
||||||
LocalDateTime filterAfterTime = newRecordTime.minusHours(filterCycleHour);
|
LocalDateTime filterAfterTime = newRecordTime.minusHours(filterCycleHour);
|
||||||
|
LocalDateTime minCycleTime = newRecordTime.minusHours(minCycleHour);
|
||||||
QueryWrapper<GnssCalcData> query = new QueryWrapper<>();
|
QueryWrapper<GnssCalcData> query = new QueryWrapper<>();
|
||||||
query.eq("deviceid", deviceId);
|
query.eq("deviceid", deviceId);
|
||||||
query.ge("createtime", filterAfterTime.format(dateFormatter));
|
query.ge("createtime", filterAfterTime.format(dateFormatter));
|
||||||
@ -130,20 +132,35 @@ public class GNSSCalcFilterService {
|
|||||||
double sumE = newRecord.getB562e();
|
double sumE = newRecord.getB562e();
|
||||||
double sumN = newRecord.getB562n();
|
double sumN = newRecord.getB562n();
|
||||||
double sumD = newRecord.getB562d();
|
double sumD = newRecord.getB562d();
|
||||||
|
double msumE = sumE;
|
||||||
|
double msumN = sumN;
|
||||||
|
double msumD = sumD;
|
||||||
int count = 1;
|
int count = 1;
|
||||||
|
int minCount = 1;
|
||||||
|
|
||||||
for (GnssCalcData record : gnssDeviceLocationRecords) {
|
for (GnssCalcData record : gnssDeviceLocationRecords) {
|
||||||
if (record.getEnabled()) {//只选取好点参与滤波
|
if (record.getEnabled()) {//只选取好点参与滤波
|
||||||
sumE += record.getB562e();
|
sumE += record.getB562e();
|
||||||
sumN += record.getB562n();
|
sumN += record.getB562n();
|
||||||
sumD += record.getB562d();
|
sumD += record.getB562d();
|
||||||
count++;
|
count++;
|
||||||
|
// 计算短周期
|
||||||
|
if(record.getCreatetime().isAfter(minCycleTime)){
|
||||||
|
msumE = sumE;
|
||||||
|
msumN = sumN;
|
||||||
|
msumD = sumD;
|
||||||
|
minCount = count;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.info(deviceId + " filter records num: " + count);
|
logger.info(deviceId + " filter records num: " + count+", min cycle num: "+minCount);
|
||||||
if (count >= FILTER_MIN_RECORD_NUM) {
|
if (count >= FILTER_MIN_RECORD_NUM) {
|
||||||
newRecord.setRb562e(NumberUtils.scaleTwo(sumE / count));
|
newRecord.setRpose(NumberUtils.scaleTwo(sumE / count));
|
||||||
newRecord.setRb562n(NumberUtils.scaleTwo(sumN / count));
|
newRecord.setRposn(NumberUtils.scaleTwo(sumN / count));
|
||||||
newRecord.setRb562d(NumberUtils.scaleTwo(sumD / count));
|
newRecord.setRposd(NumberUtils.scaleTwo(sumD / count));
|
||||||
|
newRecord.setAuxe(NumberUtils.scaleTwo(msumE / minCount));
|
||||||
|
newRecord.setAuxn(NumberUtils.scaleTwo(msumN / minCount));
|
||||||
|
newRecord.setAuxd(NumberUtils.scaleTwo(msumD / minCount));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,13 +194,13 @@ public class GNSSCalcFilterService {
|
|||||||
queryWrapper.eq("deviceid", deviceId);
|
queryWrapper.eq("deviceid", deviceId);
|
||||||
queryWrapper.le("createtime",cmpTime.format(dateFormatter));
|
queryWrapper.le("createtime",cmpTime.format(dateFormatter));
|
||||||
queryWrapper.eq("enabled",true);
|
queryWrapper.eq("enabled",true);
|
||||||
queryWrapper.isNotNull("rb562e");
|
queryWrapper.isNotNull("rpose");
|
||||||
queryWrapper.last("limit 1");
|
queryWrapper.last("limit 1");
|
||||||
queryWrapper.orderByDesc("createtime");
|
queryWrapper.orderByDesc("createtime");
|
||||||
GnssCalcData gnssCalcData = repository.selectOne(queryWrapper);
|
GnssCalcData gnssCalcData = repository.selectOne(queryWrapper);
|
||||||
if (gnssCalcData != null) {
|
if (gnssCalcData != null) {
|
||||||
double gapE = Math.abs(gnssCalcData.getRb562e() - curCalcData.getRb562e());
|
double gapE = Math.abs(gnssCalcData.getAuxe() - curCalcData.getAuxe());
|
||||||
double gapN = Math.abs(gnssCalcData.getRb562n() - curCalcData.getRb562n());
|
double gapN = Math.abs(gnssCalcData.getAuxn() - curCalcData.getAuxn());
|
||||||
if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) {
|
if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) {
|
||||||
VaryFilterCycle varyCycle1 = new VaryFilterCycle();
|
VaryFilterCycle varyCycle1 = new VaryFilterCycle();
|
||||||
varyCycle1.startTime = now;
|
varyCycle1.startTime = now;
|
||||||
@ -195,7 +212,7 @@ public class GNSSCalcFilterService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalDateTime updateRb562(String deviceId, LocalDateTime afterTime){
|
public LocalDateTime updateRpos(String deviceId, LocalDateTime afterTime){
|
||||||
// 获取平滑参数
|
// 获取平滑参数
|
||||||
Device gnssDevice = gnssDeviceRepository.findByDeviceId(deviceId);
|
Device gnssDevice = gnssDeviceRepository.findByDeviceId(deviceId);
|
||||||
if(gnssDevice == null) return afterTime;
|
if(gnssDevice == null) return afterTime;
|
||||||
@ -214,11 +231,11 @@ public class GNSSCalcFilterService {
|
|||||||
|
|
||||||
List<GnssCalcData> calcDataListToUpdate = repository.selectList(query);
|
List<GnssCalcData> calcDataListToUpdate = repository.selectList(query);
|
||||||
for(GnssCalcData calcData:calcDataListToUpdate){
|
for(GnssCalcData calcData:calcDataListToUpdate){
|
||||||
calcFilterLocation(calcData, groupCalc.getFilter_hour(),
|
calcFilterLocation(calcData, groupCalc.getFilter_hour(), groupCalc.getFilter_min_hour(),
|
||||||
groupCalc.getXy_threshold(), groupCalc.getZ_threshold());
|
groupCalc.getXy_threshold(), groupCalc.getZ_threshold());
|
||||||
repository.updateById(calcData);
|
repository.updateById(calcData);
|
||||||
lastTime = calcData.getCreatetime();
|
lastTime = calcData.getCreatetime();
|
||||||
logger.info(deviceId + " update rb562");
|
logger.info(deviceId + " update rpos");
|
||||||
}
|
}
|
||||||
return lastTime;
|
return lastTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -96,7 +96,7 @@ public class MultiLineGNSSCalcService {
|
|||||||
// 计算上轮结果
|
// 计算上轮结果
|
||||||
calcService.calSingleDone(deviceId, tenantId, lastDate);
|
calcService.calSingleDone(deviceId, tenantId, lastDate);
|
||||||
// 重算最近的
|
// 重算最近的
|
||||||
lastDate = gnssCalcFilterService.updateRb562(deviceId,lastDate);
|
lastDate = gnssCalcFilterService.updateRpos(deviceId,lastDate);
|
||||||
// 记录转发表更新为upload done
|
// 记录转发表更新为upload done
|
||||||
FwdRecord fwdRecord = fwdRecordMap.get(deviceId);
|
FwdRecord fwdRecord = fwdRecordMap.get(deviceId);
|
||||||
if(fwdRecord != null){
|
if(fwdRecord != null){
|
||||||
|
|||||||
@ -111,6 +111,12 @@
|
|||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
<artifactId>logback-classic</artifactId>
|
<artifactId>logback-classic</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.imdroid</groupId>
|
||||||
|
<artifactId>sec-common</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.imdroid.beidou.controller;
|
|||||||
import com.imdroid.beidou.common.Role;
|
import com.imdroid.beidou.common.Role;
|
||||||
import com.imdroid.beidou.entity.TenantMapper;
|
import com.imdroid.beidou.entity.TenantMapper;
|
||||||
import com.imdroid.beidou.entity.Tenant;
|
import com.imdroid.beidou.entity.Tenant;
|
||||||
|
import com.imdroid.common.util.NumberUtils;
|
||||||
import com.imdroid.secapi.client.RtcmClient;
|
import com.imdroid.secapi.client.RtcmClient;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@ -191,13 +192,13 @@ public class GnssDeviceController extends BasicController{
|
|||||||
queryWrapper.eq("enabled",1);
|
queryWrapper.eq("enabled",1);
|
||||||
queryWrapper.orderByDesc("createtime");
|
queryWrapper.orderByDesc("createtime");
|
||||||
queryWrapper.last("limit 1");
|
queryWrapper.last("limit 1");
|
||||||
queryWrapper.isNotNull("rb562e");
|
queryWrapper.isNotNull("rpose");
|
||||||
GnssCalcData calcData = gnssCalcDataMapper.selectOne(queryWrapper);
|
GnssCalcData calcData = gnssCalcDataMapper.selectOne(queryWrapper);
|
||||||
if(calcData != null){
|
if(calcData != null){
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("b562e",calcData.getRb562e());
|
jsonObject.put("ipose", NumberUtils.scaleTwo(calcData.getRpose()));
|
||||||
jsonObject.put("b562n",calcData.getRb562n());
|
jsonObject.put("iposn",NumberUtils.scaleTwo(calcData.getRposn()));
|
||||||
jsonObject.put("b562d",calcData.getRb562d());
|
jsonObject.put("iposd",NumberUtils.scaleTwo(calcData.getRposd()));
|
||||||
return jsonObject;
|
return jsonObject;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -55,9 +55,9 @@ CREATE TABLE IF NOT EXISTS `gnssdevices` (
|
|||||||
`fwd_group_id2` varchar(64) DEFAULT NULL,
|
`fwd_group_id2` varchar(64) DEFAULT NULL,
|
||||||
`syn` bit(1) DEFAULT 0 COMMENT '是否已同步',
|
`syn` bit(1) DEFAULT 0 COMMENT '是否已同步',
|
||||||
`pictures` varchar(100) DEFAULT NULL,
|
`pictures` varchar(100) DEFAULT NULL,
|
||||||
`b562e` double DEFAULT NULL COMMENT '初始位置东E',
|
`ipose` double DEFAULT NULL COMMENT '初始位置东E',
|
||||||
`b562n` double DEFAULT NULL COMMENT '初始位置北N',
|
`iposn` double DEFAULT NULL COMMENT '初始位置北N',
|
||||||
`b562d` double DEFAULT NULL COMMENT '初始位置天D',
|
`iposd` double DEFAULT NULL COMMENT '初始位置天D',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
@ -138,9 +138,12 @@ CREATE TABLE IF NOT EXISTS `gnssdevicelocationrecords` (
|
|||||||
`r9250e` double DEFAULT NULL,
|
`r9250e` double DEFAULT NULL,
|
||||||
`r9250n` double DEFAULT NULL,
|
`r9250n` double DEFAULT NULL,
|
||||||
`r9250d` double DEFAULT NULL,
|
`r9250d` double DEFAULT NULL,
|
||||||
`rb562e` double DEFAULT NULL COMMENT '相对北斗位置东E',
|
`rpose` double DEFAULT NULL COMMENT '相对位置东E',
|
||||||
`rb562d` double DEFAULT NULL COMMENT '相对北斗位置北N',
|
`rposn` double DEFAULT NULL COMMENT '相对位置北N',
|
||||||
`rb562n` double DEFAULT NULL COMMENT '相对北斗位置天D',
|
`rposd` double DEFAULT NULL COMMENT '相对位置天D',
|
||||||
|
`auxe` double DEFAULT NULL COMMENT '中间过程东E',
|
||||||
|
`auxn` double DEFAULT NULL COMMENT '中间过程北N',
|
||||||
|
`auxd` double DEFAULT NULL COMMENT '中间过程天D',
|
||||||
`pps` int DEFAULT NULL,
|
`pps` int DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `idx_deviceid_time` (`deviceid`,`createtime`) USING BTREE
|
KEY `idx_deviceid_time` (`deviceid`,`createtime`) USING BTREE
|
||||||
|
|||||||
@ -69,13 +69,34 @@
|
|||||||
<script src="../js/lay-module/echarts/echartsTheme.js" charset="utf-8"></script>
|
<script src="../js/lay-module/echarts/echartsTheme.js" charset="utf-8"></script>
|
||||||
<script src="../js/lay-module/echarts/echarts.js" charset="utf-8"></script>
|
<script src="../js/lay-module/echarts/echarts.js" charset="utf-8"></script>
|
||||||
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
<script src="../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
|
||||||
<script th:inline="none">
|
<script th:inline="javascript">
|
||||||
layui.use(['form', 'table','laydate','element'], function () {
|
layui.use(['form', 'table','laydate','element'], function () {
|
||||||
var $ = layui.$,
|
var $ = layui.$,
|
||||||
form = layui.form,
|
form = layui.form,
|
||||||
table = layui.table,
|
table = layui.table,
|
||||||
laydate = layui.laydate;
|
laydate = layui.laydate;
|
||||||
var searchDeviceId = false;
|
var searchDeviceId = false;
|
||||||
|
var data_cols = [
|
||||||
|
{field: 'deviceid', title: '设备号'},
|
||||||
|
{field: 'createtime', title: '产生时间', width:'18%', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||||
|
{field: 'updatetime', title: '上报时间', width:'18%', templet: "<div>{{d.updatetime==null?'':layui.util.toDateString(d.updatetime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
||||||
|
{field: 'b562e', title: '原始东', templet: "<div>{{d.b562e.toFixed(2)}}</div>"},
|
||||||
|
{field: 'b562n', title: '原始北', templet: "<div>{{d.b562n.toFixed(2)}}</div>"},
|
||||||
|
{field: 'b562d', title: '原始天', templet: "<div>{{d.b562d.toFixed(2)}}</div>"},
|
||||||
|
{field: 'rpose', title: '相对东', templet: "<div>{{d.rpose==null?'':d.rpose.toFixed(2)}}</div>"},
|
||||||
|
{field: 'rposn', title: '相对北', templet: "<div>{{d.rposn==null?'':d.rposn.toFixed(2)}}</div>"},
|
||||||
|
{field: 'rposd', title: '相对天', templet: "<div>{{d.rposd==null?'':d.rposd.toFixed(2)}}</div>"},
|
||||||
|
{field: 'auxe', title: '辅助东', templet: "<div>{{d.auxe==null?'':d.auxe.toFixed(2)}}</div>"},
|
||||||
|
{field: 'auxn', title: '辅助北', templet: "<div>{{d.auxn==null?'':d.auxn.toFixed(2)}}</div>"},
|
||||||
|
{field: 'auxd', title: '辅助天', templet: "<div>{{d.auxd==null?'':d.auxd.toFixed(2)}}</div>"},
|
||||||
|
{field: 'enabled', title: '有效',templet: '#enabledTrans'},
|
||||||
|
{field: 'pps', title: '平均延迟'}
|
||||||
|
];
|
||||||
|
if([[${role}]] != "ADMIN" && [[${role}]] != "SUPER_ADMIN") {
|
||||||
|
cfg_cols[9].hide = true;
|
||||||
|
cfg_cols[10].hide = true;
|
||||||
|
cfg_cols[11].hide = true;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 初始化表单,要加上,不然刷新部分组件可能会不加载
|
* 初始化表单,要加上,不然刷新部分组件可能会不加载
|
||||||
*/
|
*/
|
||||||
@ -95,19 +116,9 @@
|
|||||||
url: '/gnss/data/list_calc',
|
url: '/gnss/data/list_calc',
|
||||||
toolbar: '#toolbarDemo', //开启头部工具栏
|
toolbar: '#toolbarDemo', //开启头部工具栏
|
||||||
defaultToolbar: ['filter'],
|
defaultToolbar: ['filter'],
|
||||||
cols: [[
|
cols: [
|
||||||
{field: 'deviceid', title: '设备号'},
|
data_cols
|
||||||
{field: 'createtime', title: '产生时间', width:'18%', templet: "<div>{{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
],
|
||||||
{field: 'updatetime', title: '上报时间', width:'18%', templet: "<div>{{d.updatetime==null?'':layui.util.toDateString(d.updatetime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
|
|
||||||
{field: 'b562e', title: '原始东', templet: "<div>{{d.b562e.toFixed(2)}}</div>"},
|
|
||||||
{field: 'b562n', title: '原始北', templet: "<div>{{d.b562n.toFixed(2)}}</div>"},
|
|
||||||
{field: 'b562d', title: '原始天', templet: "<div>{{d.b562d.toFixed(2)}}</div>"},
|
|
||||||
{field: 'rb562e', title: '相对东', templet: "<div>{{d.rb562e==null?'':d.rb562e.toFixed(2)}}</div>"},
|
|
||||||
{field: 'rb562n', title: '相对北', templet: "<div>{{d.rb562n==null?'':d.rb562n.toFixed(2)}}</div>"},
|
|
||||||
{field: 'rb562d', title: '相对天', templet: "<div>{{d.rb562d==null?'':d.rb562d.toFixed(2)}}</div>"},
|
|
||||||
{field: 'enabled', title: '有效',templet: '#enabledTrans'},
|
|
||||||
{field: 'pps', title: '平均延迟'}
|
|
||||||
]],
|
|
||||||
limits: [10, 15, 20, 25, 50, 100],
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
limit: 15,
|
limit: 15,
|
||||||
page: true,
|
page: true,
|
||||||
@ -167,15 +178,15 @@
|
|||||||
var baseFD = 0;
|
var baseFD = 0;
|
||||||
|
|
||||||
for(var i=chartData.length-1; i>=0; i--){
|
for(var i=chartData.length-1; i>=0; i--){
|
||||||
if(chartData[i].rb562e!=null) {
|
if(chartData[i].rpose!=null) {
|
||||||
if(isBaseSet) {
|
if(isBaseSet) {
|
||||||
t[count] = chartData[i].createtime;
|
t[count] = chartData[i].createtime;
|
||||||
e[count] = chartData[i].b562e-baseE;
|
e[count] = chartData[i].b562e-baseE;
|
||||||
n[count] = chartData[i].b562n-baseN;
|
n[count] = chartData[i].b562n-baseN;
|
||||||
d[count] = chartData[i].b562d-baseD;
|
d[count] = chartData[i].b562d-baseD;
|
||||||
fe[count] = Number(chartData[i].rb562e) - baseFE;
|
fe[count] = Number(chartData[i].rpose) - baseFE;
|
||||||
fn[count] = Number(chartData[i].rb562n) - baseFN;
|
fn[count] = Number(chartData[i].rposn) - baseFN;
|
||||||
fd[count] = Number(chartData[i].rb562d) - baseFD;
|
fd[count] = Number(chartData[i].rposd) - baseFD;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -183,9 +194,9 @@
|
|||||||
baseE = Number(chartData[i].b562e);
|
baseE = Number(chartData[i].b562e);
|
||||||
baseN = Number(chartData[i].b562n);
|
baseN = Number(chartData[i].b562n);
|
||||||
baseD = Number(chartData[i].b562d);
|
baseD = Number(chartData[i].b562d);
|
||||||
baseFE = Number(chartData[i].rb562e);
|
baseFE = Number(chartData[i].rpose);
|
||||||
baseFN = Number(chartData[i].rb562n);
|
baseFN = Number(chartData[i].rposn);
|
||||||
baseFD = Number(chartData[i].rb562d);
|
baseFD = Number(chartData[i].rposd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<div class="layui-inline" th:if="${role=='SUPER_ADMIN' || role=='ADMIN'}">
|
<div class="layui-inline" th:if="${role=='SUPER_ADMIN' || role=='ADMIN'}">
|
||||||
<label class="layui-form-label">所属部门</label>
|
<label class="layui-form-label">所属部门</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<select name="n_tenantid" id="n_tenantid" lay-search="">
|
<select name="n_d.tenantid" id="n_d.tenantid" lay-search="">
|
||||||
<option value="">全部</option>
|
<option value="">全部</option>
|
||||||
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.id}"></option>
|
<option th:each="item : ${tenant_list}" th:text="${item.name}" th:value="${item.id}"></option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@ -126,21 +126,21 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">初始位置 东</label>
|
<label class="layui-form-label">初始位置(mm) 东</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input type="text" name="b562e" id="b562e" class="layui-input">
|
<input type="text" name="ipose" id="ipose" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">北</label>
|
<label class="layui-form-label">北</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input type="text" name="b562n" id="b562n" class="layui-input">
|
<input type="text" name="iposn" id="iposn" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">天</label>
|
<label class="layui-form-label">天</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input type="text" name="b562d" id="b562d" class="layui-input">
|
<input type="text" name="iposd" id="iposd" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -190,9 +190,9 @@
|
|||||||
'deviceid':$('#deviceid').val()
|
'deviceid':$('#deviceid').val()
|
||||||
},
|
},
|
||||||
success: function (result) {
|
success: function (result) {
|
||||||
$('#b562e').val(result.b562e);
|
$('#ipose').val(result.ipose);
|
||||||
$('#b562n').val(result.b562n);
|
$('#iposn').val(result.iposn);
|
||||||
$('#b562d').val(result.b562d);
|
$('#iposd').val(result.iposd);
|
||||||
},
|
},
|
||||||
error: function () {
|
error: function () {
|
||||||
console.log("ajax error");
|
console.log("ajax error");
|
||||||
@ -222,9 +222,9 @@
|
|||||||
$('#fwd_group_id2').val(data.fwd_group_id2);
|
$('#fwd_group_id2').val(data.fwd_group_id2);
|
||||||
$('#opmode').val(data.opmode);
|
$('#opmode').val(data.opmode);
|
||||||
$('#fwddeviceid').val(data.fwddeviceid);
|
$('#fwddeviceid').val(data.fwddeviceid);
|
||||||
$('#b562e').val(data.b562e);
|
$('#ipose').val(data.ipose);
|
||||||
$('#b562n').val(data.b562n);
|
$('#iposn').val(data.iposn);
|
||||||
$('#b562d').val(data.b562d);
|
$('#iposd').val(data.iposd);
|
||||||
form.render();
|
form.render();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user