feature: 添加备选基站
This commit is contained in:
commit
b6418ffeae
@ -17,7 +17,7 @@ public interface RtcmClient {
|
|||||||
@GetMapping(value = "/get_device_info")
|
@GetMapping(value = "/get_device_info")
|
||||||
public HttpResp getDeviceInfo(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "cmd") String cmd);
|
public HttpResp getDeviceInfo(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "cmd") String cmd);
|
||||||
@PostMapping("/device_param_changed")
|
@PostMapping("/device_param_changed")
|
||||||
HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId,@RequestParam(name = "oldParentId") String oldParentId);
|
HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId,@RequestParam(name = "oldParentId") String oldParentId, @RequestParam("oldParentId1") String oldParentId1);
|
||||||
|
|
||||||
@PostMapping("/group_param_changed")
|
@PostMapping("/group_param_changed")
|
||||||
HttpResp groupParamChanged();
|
HttpResp groupParamChanged();
|
||||||
|
|||||||
@ -48,6 +48,7 @@ public class GnssDevice {
|
|||||||
private String fwddeviceid; //推送的设备名
|
private String fwddeviceid; //推送的设备名
|
||||||
private String name;
|
private String name;
|
||||||
private String parentid;
|
private String parentid;
|
||||||
|
private String parentid1;
|
||||||
private Integer devicetype;
|
private Integer devicetype;
|
||||||
private String tenantname;
|
private String tenantname;
|
||||||
private String project_id;
|
private String project_id;
|
||||||
|
|||||||
@ -22,6 +22,7 @@ public class GnssDeviceJoin {
|
|||||||
private String fwddeviceid; //推送的设备名
|
private String fwddeviceid; //推送的设备名
|
||||||
private String name;
|
private String name;
|
||||||
private String parentid;
|
private String parentid;
|
||||||
|
private String parentid1;
|
||||||
private Integer devicetype;
|
private Integer devicetype;
|
||||||
private String tenantname;
|
private String tenantname;
|
||||||
private String project_id;
|
private String project_id;
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -60,11 +61,17 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
// 推送基站数据
|
// 推送基站数据
|
||||||
if(deviceBs.getOpMode() == GnssDevice.OP_MODE_USE) {
|
if(deviceBs.getOpMode() == GnssDevice.OP_MODE_USE) {
|
||||||
byte[] forwardBytes = message.getSrcData();
|
byte[] forwardBytes = message.getSrcData();
|
||||||
// 要求快速转发,因此用缓存,不要每次都查数据库
|
// 获取使用该基站(包括作为主基站和备选基站)的所有测站
|
||||||
List<Device> deviceList = deviceService.findByParentId(id);
|
List<Device> primaryDevices = deviceService.findByParentId(id);
|
||||||
//logger.debug("base station {} has {} rovers: ", message.getId(),deviceList.size());
|
List<Device> backupDevices = deviceService.findByParentId1(id);
|
||||||
|
|
||||||
|
// 合并两个列表
|
||||||
|
List<Device> allDevices = new ArrayList<>();
|
||||||
|
allDevices.addAll(primaryDevices);
|
||||||
|
allDevices.addAll(backupDevices);
|
||||||
|
|
||||||
DeviceChannel deviceChannel = null;
|
DeviceChannel deviceChannel = null;
|
||||||
for (Device device : deviceList) {
|
for (Device device : allDevices) {
|
||||||
if (device.getOpMode() != GnssDevice.OP_MODE_USE) continue;
|
if (device.getOpMode() != GnssDevice.OP_MODE_USE) continue;
|
||||||
if (device.getFixedNum()>0 && device.getGnssSampleRate()>1
|
if (device.getFixedNum()>0 && device.getGnssSampleRate()>1
|
||||||
&& (deviceBs.getD3xxCount()%device.getGnssSampleRate()) != 0) {
|
&& (deviceBs.getD3xxCount()%device.getGnssSampleRate()) != 0) {
|
||||||
@ -72,6 +79,23 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String deviceId = device.getDeviceId();
|
String deviceId = device.getDeviceId();
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
|
||||||
|
// 检查该设备是否应该接收此基站的数据
|
||||||
|
String primaryBaseId = device.getParentId();
|
||||||
|
String backupBaseId = device.getParentId1();
|
||||||
|
|
||||||
|
// 如果当前基站是该设备的备选基站,需要检查主基站是否离线
|
||||||
|
if (id.equals(backupBaseId)) {
|
||||||
|
Device primaryBase = deviceService.findByDeviceId(primaryBaseId);
|
||||||
|
// 如果主基站仍然在线,则跳过备选基站的数据
|
||||||
|
if (primaryBase != null && isBaseStationOnline(primaryBase)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>>>>>>> 3f0aa45 (添加备选基站)
|
||||||
// 获取设备通道并发送数据
|
// 获取设备通道并发送数据
|
||||||
if(device.getDataChannelType() == Device.CHANNEL_TYPE_UDP) {
|
if(device.getDataChannelType() == Device.CHANNEL_TYPE_UDP) {
|
||||||
deviceChannel = OnlineChannels.INSTANCE.getDataChannel(deviceId);
|
deviceChannel = OnlineChannels.INSTANCE.getDataChannel(deviceId);
|
||||||
@ -79,6 +103,7 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
deviceChannel = OnlineChannels.INSTANCE.getConfigChannel(deviceId);
|
deviceChannel = OnlineChannels.INSTANCE.getConfigChannel(deviceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
// 读取数据库中model字段,判断基站类型
|
// 读取数据库中model字段,判断基站类型
|
||||||
Short baseStationModel = deviceBs.getModel();
|
Short baseStationModel = deviceBs.getModel();
|
||||||
// 如果model为null,使用默认值0
|
// 如果model为null,使用默认值0
|
||||||
@ -96,6 +121,11 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
ByteBuf buf = Unpooled.buffer();
|
ByteBuf buf = Unpooled.buffer();
|
||||||
buf.writeBytes(forwardBytes);
|
buf.writeBytes(forwardBytes);
|
||||||
deviceChannel.writeAndFlush(buf);
|
deviceChannel.writeAndFlush(buf);
|
||||||
|
=======
|
||||||
|
if(deviceChannel != null && deviceChannel.isOnline()) {
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("forward d331 rtcm from {} to device {}", id, deviceId);
|
||||||
|
>>>>>>> 3f0aa45 (添加备选基站)
|
||||||
}
|
}
|
||||||
} else if (baseStationModel == 0) {
|
} else if (baseStationModel == 0) {
|
||||||
//logger.info("Base station model is 0 for device: {}", deviceId);
|
//logger.info("Base station model is 0 for device: {}", deviceId);
|
||||||
@ -297,4 +327,24 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
public Class<?> getMessageType() {
|
public Class<?> getMessageType() {
|
||||||
return D331RtcmMessage.class;
|
return D331RtcmMessage.class;
|
||||||
}
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
}
|
}
|
||||||
|
=======
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断住基站是否在线
|
||||||
|
* @param baseStation 基站
|
||||||
|
* @return 是否在线
|
||||||
|
*/
|
||||||
|
|
||||||
|
private boolean isBaseStationOnline(Device baseStation){
|
||||||
|
if(baseStation == null) return false;
|
||||||
|
|
||||||
|
LocalDateTime now =LocalDateTime.now();
|
||||||
|
return baseStation.getLastRxTime() !=null &&
|
||||||
|
baseStation.getLastRxTime().isAfter(now.minusMinutes(30));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
>>>>>>> 3f0aa45 (添加备选基站)
|
||||||
|
|||||||
@ -0,0 +1,109 @@
|
|||||||
|
package com.imdroid.sideslope.sal;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.imdroid.secapi.dto.GnssDevice;
|
||||||
|
import com.imdroid.secapi.dto.GnssDeviceMapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*
|
||||||
|
* @author LiGang
|
||||||
|
*/
|
||||||
|
@Component(value = "db")
|
||||||
|
public class DbDeviceServiceImpl implements DeviceService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GnssDeviceMapper gnssDeviceRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Device findByDeviceId(String deviceId) {
|
||||||
|
GnssDevice gnssDevice = gnssDeviceRepository.queryByDeviceId(deviceId);
|
||||||
|
if (gnssDevice == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Device device = new Device();
|
||||||
|
device.setTenantId(gnssDevice.getTenantid());
|
||||||
|
device.setDeviceId(gnssDevice.getDeviceid());
|
||||||
|
device.setDeviceType(gnssDevice.getDevicetype());
|
||||||
|
device.setModel(gnssDevice.getModel());
|
||||||
|
device.setParentId(gnssDevice.getParentid());
|
||||||
|
device.setParentId1(gnssDevice.getParentid1());
|
||||||
|
device.setName(gnssDevice.getName());
|
||||||
|
device.setProjectId(gnssDevice.getProject_id());
|
||||||
|
device.setCalcGroupId(gnssDevice.getCalc_group_id());
|
||||||
|
device.setOpMode(gnssDevice.getOpmode());
|
||||||
|
device.setFwdId(gnssDevice.getFwd_group_id());
|
||||||
|
device.setIPose(gnssDevice.getIpose());
|
||||||
|
device.setIPosn(gnssDevice.getIposn());
|
||||||
|
device.setIPosd(gnssDevice.getIposd());
|
||||||
|
device.setEcefx(gnssDevice.getEcefx());
|
||||||
|
device.setEcefy(gnssDevice.getEcefy());
|
||||||
|
device.setEcefz(gnssDevice.getEcefz());
|
||||||
|
device.setLoggingmode(gnssDevice.getLoggingmode());
|
||||||
|
device.setIccid(gnssDevice.getIccid());
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> findByParentId(String parentId) {
|
||||||
|
QueryWrapper<GnssDevice> query = new QueryWrapper();
|
||||||
|
query.eq("parentid", parentId);
|
||||||
|
List<GnssDevice> gnssDeviceList = gnssDeviceRepository.selectList(query);
|
||||||
|
List<Device> deviceList = new ArrayList<>(gnssDeviceList.size());
|
||||||
|
for (GnssDevice gnssDevice : gnssDeviceList) {
|
||||||
|
Device device = new Device();
|
||||||
|
device.setDeviceId(gnssDevice.getDeviceid());
|
||||||
|
device.setDeviceType(gnssDevice.getDevicetype());
|
||||||
|
device.setParentId(gnssDevice.getParentid());
|
||||||
|
device.setParentId1(gnssDevice.getParentid1());
|
||||||
|
device.setName(gnssDevice.getName());
|
||||||
|
device.setProjectId(gnssDevice.getProject_id());
|
||||||
|
device.setCalcGroupId(gnssDevice.getCalc_group_id());
|
||||||
|
device.setOpMode(gnssDevice.getOpmode());
|
||||||
|
device.setFwdId(gnssDevice.getFwd_group_id());
|
||||||
|
device.setIPose(gnssDevice.getIpose());
|
||||||
|
device.setIPosn(gnssDevice.getIposn());
|
||||||
|
device.setIPosd(gnssDevice.getIposd());
|
||||||
|
device.setEcefx(gnssDevice.getEcefx());
|
||||||
|
device.setEcefy(gnssDevice.getEcefy());
|
||||||
|
device.setEcefz(gnssDevice.getEcefz());
|
||||||
|
deviceList.add(device);
|
||||||
|
}
|
||||||
|
return deviceList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> findByParentId1(String parentId1) {
|
||||||
|
QueryWrapper<GnssDevice> query = new QueryWrapper<>();
|
||||||
|
query.eq("parentid1", parentId1);
|
||||||
|
List<GnssDevice> gnssDeviceList = gnssDeviceRepository.selectList(query);
|
||||||
|
List<Device> deviceList = new ArrayList<>(gnssDeviceList.size());
|
||||||
|
|
||||||
|
for (GnssDevice gnssDevice : gnssDeviceList) {
|
||||||
|
Device device = new Device();
|
||||||
|
device.setDeviceId(gnssDevice.getDeviceid());
|
||||||
|
device.setDeviceType(gnssDevice.getDevicetype());
|
||||||
|
device.setParentId(gnssDevice.getParentid());
|
||||||
|
device.setParentId1(gnssDevice.getParentid1()); // 添加备选基站ID
|
||||||
|
device.setName(gnssDevice.getName());
|
||||||
|
device.setProjectId(gnssDevice.getProject_id());
|
||||||
|
device.setCalcGroupId(gnssDevice.getCalc_group_id());
|
||||||
|
device.setOpMode(gnssDevice.getOpmode());
|
||||||
|
device.setFwdId(gnssDevice.getFwd_group_id());
|
||||||
|
device.setIPose(gnssDevice.getIpose());
|
||||||
|
device.setIPosn(gnssDevice.getIposn());
|
||||||
|
device.setIPosd(gnssDevice.getIposd());
|
||||||
|
device.setEcefx(gnssDevice.getEcefx());
|
||||||
|
device.setEcefy(gnssDevice.getEcefy());
|
||||||
|
device.setEcefz(gnssDevice.getEcefz());
|
||||||
|
deviceList.add(device);
|
||||||
|
}
|
||||||
|
return deviceList;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
package com.imdroid.sideslope.sal;
|
||||||
|
|
||||||
|
import com.google.common.cache.Cache;
|
||||||
|
import com.google.common.cache.CacheBuilder;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Layton
|
||||||
|
* @date 2023/2/3 20:46
|
||||||
|
*/
|
||||||
|
@Component(value = "local")
|
||||||
|
public class LocalDeviceServiceImpl implements DeviceService {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
|
/*static RemovalListener<String, Device> removalListener = new RemovalListener<String, Device>() {
|
||||||
|
public void onRemoval(RemovalNotification<String, Device> removal) {
|
||||||
|
|
||||||
|
}
|
||||||
|
};*/
|
||||||
|
private static final Cache<String, Device> deviceCache = CacheBuilder.newBuilder().
|
||||||
|
expireAfterAccess(20, TimeUnit.MINUTES).build();
|
||||||
|
|
||||||
|
private static final Cache<String, List<Device>> subDeviceCache = CacheBuilder.newBuilder().
|
||||||
|
expireAfterAccess(10, TimeUnit.MINUTES).build();
|
||||||
|
|
||||||
|
@Resource(name = "db")
|
||||||
|
private DeviceService delegate;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Device findByDeviceId(String deviceId) {
|
||||||
|
Device device = deviceCache.getIfPresent(deviceId);
|
||||||
|
if (device == null) {
|
||||||
|
device = delegate.findByDeviceId(deviceId);
|
||||||
|
if (device != null) {
|
||||||
|
deviceCache.put(deviceId, device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> findByParentId(String parentId) {
|
||||||
|
List<Device> device = subDeviceCache.getIfPresent(parentId);
|
||||||
|
if (device == null) {
|
||||||
|
logger.debug("base station {} refresh: "+parentId);
|
||||||
|
device = delegate.findByParentId(parentId);
|
||||||
|
if (device != null) {
|
||||||
|
subDeviceCache.put(parentId, device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Device> findByParentId1(String parentId1) {
|
||||||
|
if (parentId1 == null || parentId1.trim().isEmpty()){
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
List<Device> device = subDeviceCache.getIfPresent("backup_" + parentId1); // 使用前缀区分备选基站的缓存
|
||||||
|
if (device == null) {
|
||||||
|
logger.debug("backup base station {} refresh: " + parentId1);
|
||||||
|
device = delegate.findByParentId1(parentId1);
|
||||||
|
if (device != null) {
|
||||||
|
subDeviceCache.put("backup_" + parentId1, device);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return device;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refresh(String deviceId, String oldParentId){
|
||||||
|
Device device = deviceCache.getIfPresent(deviceId);
|
||||||
|
if (device != null) {
|
||||||
|
if(device.getParentId()!=null) {
|
||||||
|
subDeviceCache.invalidate(device.getParentId());
|
||||||
|
if(oldParentId!=null && !oldParentId.equals(device.getParentId())){
|
||||||
|
subDeviceCache.invalidate(oldParentId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(device.getParentId1() != null || !device.getParentId1().trim().isEmpty()){
|
||||||
|
subDeviceCache.invalidate("back_"+device.getParentId1());
|
||||||
|
}
|
||||||
|
deviceCache.invalidate(deviceId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -36,6 +36,7 @@ public class Device {
|
|||||||
private String deviceId;
|
private String deviceId;
|
||||||
|
|
||||||
private String parentId;
|
private String parentId;
|
||||||
|
private String parentId1;
|
||||||
private String projectId;
|
private String projectId;
|
||||||
private String fwdId;
|
private String fwdId;
|
||||||
|
|
||||||
|
|||||||
@ -11,4 +11,6 @@ public interface DeviceService {
|
|||||||
Device findByDeviceId(String deviceId);
|
Device findByDeviceId(String deviceId);
|
||||||
|
|
||||||
List<Device> findByParentId(String parentId);
|
List<Device> findByParentId(String parentId);
|
||||||
|
|
||||||
|
List<Device> findByParentId1(String parentId1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import javax.servlet.http.HttpSession;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class GnssDeviceController extends BasicController{
|
public class GnssDeviceController extends BasicController{
|
||||||
@ -143,6 +144,11 @@ public class GnssDeviceController extends BasicController{
|
|||||||
if (StringUtils.hasText(parentid)) {
|
if (StringUtils.hasText(parentid)) {
|
||||||
queryWrapper.like("parentid", parentid);
|
queryWrapper.like("parentid", parentid);
|
||||||
}
|
}
|
||||||
|
//备选基站
|
||||||
|
String parentid1 = search.getString("parentid1");
|
||||||
|
if (StringUtils.hasText(parentid1)){
|
||||||
|
queryWrapper.like("parentid1", parentid1);
|
||||||
|
}
|
||||||
//项目号
|
//项目号
|
||||||
String project_id = search.getString("project_id");
|
String project_id = search.getString("project_id");
|
||||||
if (StringUtils.hasText(project_id)) {
|
if (StringUtils.hasText(project_id)) {
|
||||||
@ -253,7 +259,9 @@ public class GnssDeviceController extends BasicController{
|
|||||||
OpLogManager.OP_OBJ_DEVICE,
|
OpLogManager.OP_OBJ_DEVICE,
|
||||||
device.getDeviceid() + " update: " + diff);
|
device.getDeviceid() + " update: " + diff);
|
||||||
device.setUpdatetime(LocalDateTime.now());
|
device.setUpdatetime(LocalDateTime.now());
|
||||||
if(!old_device.getGroup_id().equals(device.getGroup_id())){
|
if(!old_device.getGroup_id().equals(device.getGroup_id())||
|
||||||
|
!old_device.getParentid().equals(device.getParentid())||
|
||||||
|
!Objects.equals(old_device.getParentid1(),device.getParentid1())){
|
||||||
device.setSyn(false);
|
device.setSyn(false);
|
||||||
}
|
}
|
||||||
if(diff.contains("has_battery")){
|
if(diff.contains("has_battery")){
|
||||||
@ -280,7 +288,7 @@ public class GnssDeviceController extends BasicController{
|
|||||||
} else {
|
} else {
|
||||||
// 更新组参数的关联个数
|
// 更新组参数的关联个数
|
||||||
updateBasicGroupAssociatedNum(device,old_device);
|
updateBasicGroupAssociatedNum(device,old_device);
|
||||||
rtcmClient.deviceParamChanged(device.getDeviceid(), device.getParentid());
|
rtcmClient.deviceParamChanged(device.getDeviceid(), device.getParentid(), device.getParentid1());
|
||||||
return HttpResult.ok();
|
return HttpResult.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -402,7 +410,7 @@ public class GnssDeviceController extends BasicController{
|
|||||||
if (num == 0) {
|
if (num == 0) {
|
||||||
return HttpResult.failed();
|
return HttpResult.failed();
|
||||||
} else{
|
} else{
|
||||||
rtcmClient.deviceParamChanged(del_id, null);
|
rtcmClient.deviceParamChanged(del_id, null, null);
|
||||||
return HttpResult.ok();
|
return HttpResult.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,6 +30,12 @@
|
|||||||
<input type="text" name="parentid" autocomplete="off" class="layui-input">
|
<input type="text" name="parentid" autocomplete="off" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label">备选基站号</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" name="parentid1" autocomplete="off" class="layui-input">
|
||||||
|
</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-inline">
|
<div class="layui-input-inline">
|
||||||
@ -144,6 +150,7 @@
|
|||||||
{field: 'group_id', title: '基本参数组', width: 60, sort: true},
|
{field: 'group_id', title: '基本参数组', width: 60, sort: true},
|
||||||
{field: 'calc_group_id', title: '解算参数组', width: 60, sort: true},
|
{field: 'calc_group_id', title: '解算参数组', width: 60, sort: true},
|
||||||
{field: 'parentid', title: '基站编号', width: 80, sort: true},
|
{field: 'parentid', title: '基站编号', width: 80, sort: true},
|
||||||
|
{field: 'parentid1', title: '备选基站', width: 80, sort: true},
|
||||||
{field: 'tenantname', title: '所属组织', width: 120},
|
{field: 'tenantname', title: '所属组织', width: 120},
|
||||||
{field: 'fwd_group_id', title: '推送组', width: 80},
|
{field: 'fwd_group_id', title: '推送组', width: 80},
|
||||||
{field: 'fwd_group_id2', title: '推送2', width: 80},
|
{field: 'fwd_group_id2', title: '推送2', width: 80},
|
||||||
|
|||||||
@ -89,6 +89,12 @@
|
|||||||
<input type="number" name="parentid" id="parentid" th:field="*{parentid}" placeholder="请输入关联基准站编号" value="" class="layui-input">
|
<input type="number" name="parentid" id="parentid" th:field="*{parentid}" placeholder="请输入关联基准站编号" value="" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-inline" >
|
||||||
|
<label class="layui-form-label">备选基站</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="number" name="parentid1" id="parentid1" placeholder="请输入备选基准站编号" value="" class="layui-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item" id="ecef_div">
|
<div class="layui-form-item" id="ecef_div">
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
@ -320,7 +326,6 @@
|
|||||||
}
|
}
|
||||||
layui.form.render();
|
layui.form.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user