From 8df590a7ade285f4947b49a5b364aa2e56db4c95 Mon Sep 17 00:00:00 2001 From: weidong Date: Mon, 22 Jan 2024 09:19:44 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=92=8C=E7=AE=80=E5=8D=95=E6=9D=83=E9=99=90?= =?UTF-8?q?=E7=AE=A1=E7=90=86=202=E3=80=81=E5=A2=9E=E5=8A=A0=E5=8F=96?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=80=BC=EF=BC=8C=E5=B9=B6=E5=9C=A8=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=97=B6=E5=87=8F=E5=8E=BB=E5=88=9D=E5=A7=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/imdroid/secapi/client/RtcmClient.java | 3 + .../com/imdroid/secapi/dto/GnssCalcData.java | 9 - .../com/imdroid/secapi/dto/GnssDevice.java | 4 + .../imdroid/beidou_fwd/service/TCPClient.java | 2 +- .../imdroid/beidou_fwd/task/Forwarder.java | 52 ++++- .../beidou_fwd/task/GXXfzForwarder.java | 4 +- .../imdroid/beidou_fwd/task/GZYForwarder.java | 5 +- .../beidou_fwd/task/KingMaForwarder.java | 3 +- .../src/main/resources/application.properties | 14 +- .../sideslope/calc/GNSSCalcFilterService.java | 42 ++-- .../calc/SingleLineGNSSCalcService.java | 4 - .../sideslope/sal/LocalDeviceServiceImpl.java | 6 + .../imdroid/sideslope/web/ApiController.java | 16 +- .../com/imdroid/beidou/auth/SessionUtils.java | 2 +- .../java/com/imdroid/beidou/common/Role.java | 2 + .../controller/GnssCalcDataController.java | 4 +- .../controller/GnssDeviceController.java | 23 ++ .../beidou/controller/GnssFwdController.java | 19 +- .../controller/GnssGroupController.java | 14 +- .../beidou/controller/GnssMsgController.java | 4 +- .../controller/GnssMsgStatusController.java | 4 +- .../controller/GnssMsgTrxController.java | 4 +- .../controller/GnssRawDataController.java | 4 +- .../controller/GnssStatusController.java | 5 + .../beidou/controller/IndexController.java | 12 +- .../beidou/controller/LoginController.java | 4 +- .../beidou/controller/TenantController.java | 13 +- .../beidou/controller/UserController.java | 102 ++++++++- .../beidou/controller/WarningController.java | 9 +- .../java/com/imdroid/beidou/entity/User.java | 7 +- .../beidou/service/CommonExcelService.java | 6 +- .../beidou/service/ServiceEnvInit.java | 6 +- sec-beidou/src/main/resources/db/schema.sql | 10 +- .../src/main/resources/static/api/init.json | 2 +- .../resources/static/api/init_enterprise.json | 95 +++++++++ .../src/main/resources/templates/index.html | 21 +- .../resources/templates/page/fwd_records.html | 3 +- .../templates/page/gnss_data_calc.html | 2 + .../templates/page/gnss_dev_cfg.html | 5 +- .../templates/page/gnss_group_cfg.html | 8 +- .../resources/templates/page/gnss_msg.html | 4 +- .../templates/page/gnss_msg_status.html | 4 +- .../templates/page/gnss_msg_trx.html | 4 +- .../resources/templates/page/gnss_status.html | 9 +- .../templates/page/table/gnss_add_dev.html | 199 ++++++++++++------ .../templates/page/table/user_add.html | 139 ++++++++++++ .../resources/templates/page/tenant_cfg.html | 4 +- .../resources/templates/page/user_cfg.html | 88 ++------ .../resources/templates/page/warning.html | 7 +- .../resources/templates/page/warning_cfg.html | 3 +- 50 files changed, 739 insertions(+), 276 deletions(-) create mode 100644 sec-beidou/src/main/resources/static/api/init_enterprise.json create mode 100644 sec-beidou/src/main/resources/templates/page/table/user_add.html diff --git a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java index 20f989dc..5bde2c1d 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java +++ b/sec-api/src/main/java/com/imdroid/secapi/client/RtcmClient.java @@ -8,4 +8,7 @@ import org.springframework.web.bind.annotation.RequestParam; public interface RtcmClient { @PostMapping("/config") HttpResp config(@RequestParam(name = "deviceId") String deviceId, @RequestParam(name = "configuration") String configData); + + @PostMapping("/device_param_changed") + HttpResp deviceParamChanged(@RequestParam(name = "deviceId") String deviceId); } diff --git a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssCalcData.java b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssCalcData.java index 470bc857..61758b17 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssCalcData.java +++ b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssCalcData.java @@ -55,15 +55,6 @@ public class GnssCalcData { @ExcelProperty("惯导位置天") Double r9250d; - @ExcelProperty("融合位置东") - Double resulte; - - @ExcelProperty("融合位置北") - Double resultn; - - @ExcelProperty("融合位置天") - Double resultd; - @ExcelProperty("相对北斗位置东") Double rb562e; diff --git a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java index 20f9f660..1a504b53 100644 --- a/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java +++ b/sec-api/src/main/java/com/imdroid/secapi/dto/GnssDevice.java @@ -31,6 +31,7 @@ public class GnssDevice { private LocalDateTime updatetime; private String updateuser; private String deviceid; + private String fwddeviceid; //推送的设备名 private String name; private String parentid; private Integer devicetype; @@ -41,6 +42,9 @@ public class GnssDevice { private String fwd_group_id; private Boolean syn; //组参数是否同步 private String pictures; + private Double b562e; //初始位置 + private Double b562n; //初始位置 + private Double b562d; //初始位置 public String getObjectName(){ return "gnssdevice"; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/TCPClient.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/TCPClient.java index 5bfbf8f0..317bf114 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/TCPClient.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/service/TCPClient.java @@ -98,7 +98,7 @@ public class TCPClient { channel.writeAndFlush(sendBuffer).addListener(future -> { if (future.isSuccess()) { logger.info("send to xfz server succeed."); - sendBuffer.release(); + //sendBuffer.release(); // writeAndFlush后就释放了 } else { logger.info("send to xfz server failed."); } diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java index 417f8b62..6a240c91 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java @@ -14,6 +14,7 @@ import java.util.concurrent.ConcurrentHashMap; public class Forwarder { String name; String description; + Integer tenantId; @Autowired private GnssDeviceMapper deviceMapper; @@ -29,9 +30,10 @@ public class Forwarder { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - void init(String name, String desc){ + void init(String name, String desc, Integer tenantId){ this.name = name; this.description = desc; + this.tenantId = tenantId; QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("name",name); GnssGroupFwd gnssGroupFwd = fwdMapper.selectOne(queryWrapper); @@ -72,12 +74,21 @@ public class Forwarder { gnssQueryWrapper.eq("deviceid",device.getDeviceid()); gnssQueryWrapper.ge("createtime",sendAfterTime); gnssQueryWrapper.orderByDesc("createtime"); - List records = gnssDataMapper.selectList(gnssQueryWrapper); - for(GnssCalcData record:records) { - if (record.getEnabled()) { - recordsToSend.add(record); - break; + gnssQueryWrapper.eq("enabled",true); + gnssQueryWrapper.isNotNull("rb562e"); + gnssQueryWrapper.last("limit 1"); + GnssCalcData record = gnssDataMapper.selectOne(gnssQueryWrapper); + if(record!=null) { + // 替换成推送用的名字和数值 + if(device.getB562e()!=null && + device.getB562n()!=null && + device.getB562d()!=null){ + record.setRb562e(record.getRb562e()-device.getB562e()); + record.setRb562n(record.getRb562n()-device.getB562n()); + record.setRb562d(record.getRb562d()-device.getB562d()); } + if(device.getFwddeviceid()!=null) record.setDeviceid(device.getFwddeviceid()); + recordsToSend.add(record); } } @@ -91,7 +102,7 @@ public class Forwarder { // 记录推送 FwdRecord fwdRecord = new FwdRecord(); fwdRecord.setProject_id(entry.getKey()); - fwdRecord.setTenantid(1); + fwdRecord.setTenantid(tenantId); fwdRecord.setDevicenum((short) entry.getValue().size()); fwdRecord.setStarttime(nowTime); fwdRecord.setEndtime(nowTime); @@ -114,14 +125,24 @@ public class Forwarder { List fwdRecordsList = fwdRecordsMapper.selectList(queryWrapper); // 2.检索这个这个时间段的解算结果,如果有数据则单个终端转发,标志记录为已补传 for(FwdRecord fwdRecord:fwdRecordsList){ + // 查找device + QueryWrapper deviceQueryWrapper = new QueryWrapper<>(); + deviceQueryWrapper.eq("fwd_group_id", fwdGroupId); + deviceQueryWrapper.eq("deviceid", fwdRecord.getDeviceid()); + GnssDevice device = deviceMapper.selectOne(deviceQueryWrapper); + if(device == null) continue; + + // 查找位置记录 QueryWrapper calcDataQueryWrapper = new QueryWrapper<>(); calcDataQueryWrapper.eq("deviceid", fwdRecord.getDeviceid()); calcDataQueryWrapper.ge("createtime", fwdRecord.getStarttime()); calcDataQueryWrapper.le("createtime", fwdRecord.getEndtime()); calcDataQueryWrapper.orderByAsc("createtime"); + calcDataQueryWrapper.eq("enabled",true); + calcDataQueryWrapper.isNotNull("rb562e"); List calcDataList = gnssDataMapper.selectList(calcDataQueryWrapper); // 推送记录 - if(sendBatch(fwdRecord.getProject_id(),calcDataList)>0) { + if(sendBatch(device, fwdRecord.getProject_id(), calcDataList)>0) { // 记录推送结果 fwdRecord.setState(FwdRecord.STATE_FWD_DONE); fwdRecordsMapper.updateById(fwdRecord); @@ -129,16 +150,25 @@ public class Forwarder { } } - int sendBatch(String projectId, List records){ + int sendBatch(GnssDevice device, String projectId, List records){ if(records.size() == 0) return 0; LocalDateTime lastTime = records.get(0).getCreatetime(); for(GnssCalcData calcData:records){ - if(calcData.getEnabled() && - calcData.getCreatetime().isAfter(lastTime.plusMinutes(28))){ + if(calcData.getCreatetime().isAfter(lastTime.plusMinutes(28))){ // 推送 lastTime = calcData.getCreatetime(); + // 替换推送名和值 + if(device.getFwddeviceid()!=null) + calcData.setDeviceid(device.getFwddeviceid()); + if(device.getB562e()!=null && + device.getB562n()!=null && + device.getB562d()!=null){ + calcData.setRb562e(calcData.getRb562e()-device.getB562e()); + calcData.setRb562n(calcData.getRb562n()-device.getB562n()); + calcData.setRb562d(calcData.getRb562d()-device.getB562d()); + } } else{ calcData.setEnabled(false);//借用来表示不推送,不会保存到数据库 diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java index 205d1ebb..25e685d5 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java @@ -37,7 +37,7 @@ public class GXXfzForwarder extends Forwarder{ @PostConstruct void registerMe(){ - init(FORWARDER_NAME, "TCP "+host+":"+port); + init(FORWARDER_NAME, "TCP "+host+":"+port,1); xfzTcpClient = new TCPClient(); xfzTcpClient.init(host, port); xfzTcpClient.start(); @@ -48,6 +48,7 @@ public class GXXfzForwarder extends Forwarder{ */ @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 private void forwardGnss() { + logger.info("forwardGnss"); forwardCurrentGnss(FORWARDER_NAME); } @@ -70,7 +71,6 @@ public class GXXfzForwarder extends Forwarder{ xfzTcpMessage.setData(dataList); for(GnssCalcData locationRecord: records) { - if(!locationRecord.getEnabled() || locationRecord.getRb562e()==null) continue; XFZData.Data data = new XFZData.Data(); dataList.add(data); data.setDataTime(locationRecord.getCreatetime().format(dateFormatter)); diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java index a4c43f87..6a92cb69 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java @@ -33,14 +33,14 @@ public class GZYForwarder extends Forwarder{ @PostConstruct void registerMe(){ - init(FORWARDER_NAME, host+":"+port); + init(FORWARDER_NAME, host+":"+port,2); udpClient = new UDPClient(); udpClient.init(host, port); } /** * 每半小时转发GNSS解算结果 */ - @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 + @Scheduled(cron = "0 0/5 * * * ?") // 每30分钟执行一次 private void forwardGnss() { forwardCurrentGnss(FORWARDER_NAME); } @@ -61,7 +61,6 @@ public class GZYForwarder extends Forwarder{ for(GnssCalcData locationRecord: records) { - if(!locationRecord.getEnabled() || locationRecord.getRb562e()==null) continue; GZYData.Data tranData = new GZYData.Data(); tranData.setCollectTime(locationRecord.getCreatetime().format(formatter)); double n = NumberUtils.scale(locationRecord.getRb562n(), 2); diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java index 4118da2a..8ef5d1b6 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java @@ -43,7 +43,7 @@ public class KingMaForwarder extends Forwarder{ @PostConstruct void registerMe(){ - init(FORWARDER_NAME, data_host); + init(FORWARDER_NAME, data_host,3); } /** * 每半小时转发GNSS解算结果 @@ -101,7 +101,6 @@ public class KingMaForwarder extends Forwarder{ List dataList = new ArrayList<>(records.size()); for(GnssCalcData locationRecord: records) { - if(!locationRecord.getEnabled() || locationRecord.getRb562e()==null) continue; KingMaData data = new KingMaData(); data.setDataTime(locationRecord.getCreatetime().toString()); data.setProjectId(projectId); diff --git a/sec-beidou-fwd/src/main/resources/application.properties b/sec-beidou-fwd/src/main/resources/application.properties index fe99a451..e111e1a1 100644 --- a/sec-beidou-fwd/src/main/resources/application.properties +++ b/sec-beidou-fwd/src/main/resources/application.properties @@ -21,13 +21,15 @@ app.format.datetime = yyyy-MM-dd HH:mm:ss mybatis-plus.configuration.map-underscore-to-camel-case=false -xfz.server.host = 171.106.48.63 -xfz.server.port = 52000 -#xfz.server.host = 115.236.153.174 -#xfz.server.port = 31035 +#xfz.server.host = 171.106.48.63 +#xfz.server.port = 52000 +xfz.server.host = 115.236.153.174 +xfz.server.port = 31035 -gzy.server.host = 8.134.84.223 -gzy.server.port = 8088 +#gzy.server.host = 8.134.84.223 +#gzy.server.port = 8088 +gzy.server.host = 127.0.0.1 +gzy.server.port = 18088 kingma.server.login_user = ceshi kingma.server.login_pwd = ceshi!123 diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java index 21c01332..38680e71 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/GNSSCalcFilterService.java @@ -65,6 +65,7 @@ public class GNSSCalcFilterService { // 平滑处理 calcFilterLocation(locationRecord, filterCycle, groupCalc.getXy_threshold(), groupCalc.getZ_threshold()); + repository.insert(locationRecord); // 更新平滑周期 @@ -101,6 +102,7 @@ public class GNSSCalcFilterService { query.eq("deviceid", deviceId); query.ge("createtime", filterAfterTime.format(dateFormatter)); query.le("createtime", newRecordTime.format(dateFormatter)); + //query.eq("enabled", true);// 坏点参与比较,不参与滤波 query.orderByDesc("createtime"); List gnssDeviceLocationRecords = repository.selectList(query); @@ -174,21 +176,20 @@ public class GNSSCalcFilterService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("deviceid", deviceId); queryWrapper.le("createtime",cmpTime.format(dateFormatter)); - queryWrapper.last("limit 3"); + queryWrapper.eq("enabled",true); + queryWrapper.isNotNull("rb562e"); + queryWrapper.last("limit 1"); queryWrapper.orderByDesc("createtime"); - List gnssCalcDataList = repository.selectList(queryWrapper); - for (GnssCalcData gnssCalcData:gnssCalcDataList) { - if (gnssCalcData.getEnabled() && gnssCalcData.getRb562e() != null) { - double gapE = Math.abs(gnssCalcData.getRb562e() - curCalcData.getRb562e()); - double gapN = Math.abs(gnssCalcData.getRb562n() - curCalcData.getRb562n()); - if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) { - VaryFilterCycle varyCycle1 = new VaryFilterCycle(); - varyCycle1.startTime = now; - varyCycle1.filterCycleHour = groupCalc.getFilter_min_hour(); - autoCycleDevices.put(deviceId, varyCycle1); - logger.info(deviceId + ": filter cycle change to " + varyCycle1.filterCycleHour); - } - break; + GnssCalcData gnssCalcData = repository.selectOne(queryWrapper); + if (gnssCalcData != null) { + double gapE = Math.abs(gnssCalcData.getRb562e() - curCalcData.getRb562e()); + double gapN = Math.abs(gnssCalcData.getRb562n() - curCalcData.getRb562n()); + if (gapE >= groupCalc.getAuto_threshold() || gapN >= groupCalc.getAuto_threshold()) { + VaryFilterCycle varyCycle1 = new VaryFilterCycle(); + varyCycle1.startTime = now; + varyCycle1.filterCycleHour = groupCalc.getFilter_min_hour(); + autoCycleDevices.put(deviceId, varyCycle1); + logger.info(deviceId + ": filter cycle change to " + varyCycle1.filterCycleHour); } } } @@ -206,19 +207,18 @@ public class GNSSCalcFilterService { query.eq("deviceid", deviceId); query.le("createtime", beforTime.format(dateFormatter)); query.ge("createtime", afterTime.format(dateFormatter)); + //query.eq("enabled",true); //好点坏点重新判断 query.orderByAsc("createtime"); LocalDateTime lastTime = afterTime; List calcDataListToUpdate = repository.selectList(query); for(GnssCalcData calcData:calcDataListToUpdate){ - if(calcData.getEnabled()) { - calcFilterLocation(calcData, groupCalc.getFilter_hour(), - groupCalc.getXy_threshold(), groupCalc.getZ_threshold()); - repository.updateById(calcData); - lastTime = calcData.getCreatetime(); - logger.info(deviceId + " update rb562"); - } + calcFilterLocation(calcData, groupCalc.getFilter_hour(), + groupCalc.getXy_threshold(), groupCalc.getZ_threshold()); + repository.updateById(calcData); + lastTime = calcData.getCreatetime(); + logger.info(deviceId + " update rb562"); } return lastTime; } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java index 517c92ec..b4e27c20 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/SingleLineGNSSCalcService.java @@ -169,10 +169,6 @@ public class SingleLineGNSSCalcService implements GNSSDataCalcService { locationRecord.setB562n(b562Result[1] * 10); locationRecord.setB562d(b562Result[2] * 10); - locationRecord.setResulte(result[0]); - locationRecord.setResultn(result[1]); - locationRecord.setResultd(result[2]); - if(r9250Result!=null) { locationRecord.setR9250e(r9250Result[0]); locationRecord.setR9250n(r9250Result[1]); diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java index 8746fbaf..c7eacb8d 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/sal/LocalDeviceServiceImpl.java @@ -48,4 +48,10 @@ public class LocalDeviceServiceImpl implements DeviceService { return device; } + public void refresh(String deviceId){ + Device device = delegate.findByDeviceId(deviceId); + if (device != null) { + deviceCache.put(deviceId, device); + } + } } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java index 84fb293b..d52198b5 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/web/ApiController.java @@ -1,6 +1,7 @@ package com.imdroid.sideslope.web; import com.imdroid.secapi.client.HttpResp; +import com.imdroid.sideslope.sal.LocalDeviceServiceImpl; import com.imdroid.sideslope.server.DeviceChannel; import com.imdroid.sideslope.server.OnlineChannels; import com.imdroid.common.util.DataTypeUtil; @@ -8,6 +9,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -25,6 +27,9 @@ public class ApiController { private final Logger logger = LoggerFactory.getLogger(ApiController.class); + @Autowired + LocalDeviceServiceImpl localDeviceService; + @PostMapping(value = "/config") public HttpResp config(String deviceId, String configuration) { Map status = new HashMap<>(); @@ -53,14 +58,15 @@ public class ApiController { return resp; } - /*@RequestMapping(value = "/clean-tilt") - public HttpResp config(String deviceId) { - // 清空指定设备的惯导值 - gnssCalcService.cleanTiltByDeviceId(deviceId); + @PostMapping("/device_param_changed") + public HttpResp deviceParamChanged(String deviceId) { + // 更新设备缓存 + localDeviceService.refresh(deviceId); + HttpResp resp = new HttpResp(); resp.setResponseMessage("succeed"); return resp; - }*/ + } private static byte[] getBinaryData(ConfigDataTypeEnum dataTypeEnum, String text) { if (dataTypeEnum == ConfigDataTypeEnum.HEX) { diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/auth/SessionUtils.java b/sec-beidou/src/main/java/com/imdroid/beidou/auth/SessionUtils.java index 8081b782..d0160a87 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/auth/SessionUtils.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/auth/SessionUtils.java @@ -26,7 +26,7 @@ public class SessionUtils { public static void setCurrentUser(HttpServletRequest request, User user, Tenant tenant) { HttpSession session = request.getSession(); session.setAttribute(SESSION_CURRENT_USER, user.getName()); - session.setAttribute(SESSION_TENANT_ID, user.getTenant_id()); + session.setAttribute(SESSION_TENANT_ID, user.getTenantid()); session.setAttribute(SESSION_TENANT_NAME, tenant.getName()); session.setAttribute(SESSION_ROLE, user.getRole()); session.setAttribute(SESSION_CURRENT_USER_ID, user.getId()); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/common/Role.java b/sec-beidou/src/main/java/com/imdroid/beidou/common/Role.java index c4455859..dacc0951 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/common/Role.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/common/Role.java @@ -9,7 +9,9 @@ package com.imdroid.beidou.common; */ public class Role { + public static final String SUPER_ADMIN = "SUPER_ADMIN"; public static final String ADMIN = "ADMIN"; + public static final String MANAGER = "MANAGER"; public static final String USER = "USER"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java index ad0ad22e..44c1f83d 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssCalcDataController.java @@ -6,6 +6,7 @@ import com.imdroid.beidou.service.CommonExcelService; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -22,7 +23,8 @@ public class GnssCalcDataController extends BasicController implements CommonExc GnssCalcDataMapper dataMapper; @RequestMapping("/page/gnss_data_calc") - public String gnssData() { + public String gnssData(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_data_calc"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java index 2c9ffd50..1226e8bc 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssDeviceController.java @@ -38,6 +38,8 @@ public class GnssDeviceController extends BasicController{ TenantMapper tenantMapper; @Autowired private GnssStatusMapper gnssStatusMapper; + @Autowired + GnssCalcDataMapper gnssCalcDataMapper; @Autowired RtcmClient rtcmClient; @@ -158,10 +160,31 @@ public class GnssDeviceController extends BasicController{ } else { // 更新组参数的关联个数 updateBasicGroupAssociatedNum(device,old_device); + rtcmClient.deviceParamChanged(device.getDeviceid()); return HttpResult.ok(); } } + @PostMapping("/gnss/device/init_loc") + @ResponseBody + public JSONObject initLoc(@RequestParam String deviceid){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("deviceid",deviceid); + queryWrapper.eq("enabled",1); + queryWrapper.orderByDesc("createtime"); + queryWrapper.last("limit 1"); + queryWrapper.isNotNull("rb562e"); + GnssCalcData calcData = gnssCalcDataMapper.selectOne(queryWrapper); + if(calcData != null){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("b562e",calcData.getRb562e()); + jsonObject.put("b562n",calcData.getRb562n()); + jsonObject.put("b562d",calcData.getRb562d()); + return jsonObject; + } + return null; + } + void updateBasicGroupAssociatedNum(GnssDevice newCfg, GnssDevice oldCfg){ updateBasicGroupAssociatedNum(newCfg.getGroup_id()); updateCalcGroupAssociatedNum(newCfg.getCalc_group_id()); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssFwdController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssFwdController.java index fbe2e711..b0b0d037 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssFwdController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssFwdController.java @@ -4,13 +4,18 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.imdroid.beidou.auth.SessionUtils; +import com.imdroid.beidou.entity.Tenant; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpSession; + @Controller -public class GnssFwdController { +public class GnssFwdController extends BasicController{ @Autowired GnssGroupFwdMapper gnssGroupFwdMapper; @Autowired @@ -18,12 +23,14 @@ public class GnssFwdController { /********* 推送页面 *********/ @RequestMapping("/page/fwd_agents") - public String fwdAgents() { + public String fwdAgents(Model m, HttpSession session) { + initModel(m, session); return "/page/fwd_agents"; } @RequestMapping("/page/fwd_records") - public String fwdRecords() { + public String fwdRecords(Model m, HttpSession session) { + initModel(m, session); return "/page/fwd_records"; } @@ -44,10 +51,14 @@ public class GnssFwdController { @RequestMapping("/fwd/records") @ResponseBody - public JSONObject listRecords(int page, int limit) { + public JSONObject listRecords(HttpSession session, int page, int limit) { Page pageable = new Page<>(page, limit); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("starttime"); + Integer tenantId = (Integer) session.getAttribute(SessionUtils.SESSION_TENANT_ID); + if (tenantId != null && tenantId != Tenant.SAAS_PROVIDER_ID) { + queryWrapper.eq("tenantid", tenantId); + } IPage cs = fwdRecordMapper.selectPage(pageable, queryWrapper); JSONObject jsonObject = new JSONObject(); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssGroupController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssGroupController.java index 2cd5bf32..4b183186 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssGroupController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssGroupController.java @@ -7,10 +7,13 @@ import com.imdroid.beidou.common.HttpResult; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpSession; + @Controller -public class GnssGroupController { +public class GnssGroupController extends BasicController { @Autowired GnssGroupMapper gnssGroupMapper; @Autowired @@ -21,17 +24,20 @@ public class GnssGroupController { /********* 推送页面 *********/ @RequestMapping("/page/table/gnss_add_group") - public String gnssAddGroup() { + public String gnssAddGroup(Model m, HttpSession session) { + initModel(m, session); return "/page/table/gnss_add_group"; } @RequestMapping("/page/table/gnss_add_group_calc") - public String gnssAddCalcGroup() { + public String gnssAddCalcGroup(Model m, HttpSession session) { + initModel(m, session); return "/page/table/gnss_add_group_calc"; } @RequestMapping("/page/gnss_group_cfg") - public String gnssGroupCfg() { + public String gnssGroupCfg(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_group_cfg"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgController.java index 50a2331e..07d6ca18 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgController.java @@ -6,6 +6,7 @@ import com.imdroid.beidou.service.CommonExcelService; import com.imdroid.secapi.dto.*; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -24,7 +25,8 @@ public class GnssMsgController extends BasicController implements CommonExcelSer /**** 推送页面 *****/ @RequestMapping("/page/gnss_msg") - public String gnssMsg(){ + public String gnssMsg(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_msg"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgStatusController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgStatusController.java index d4a220e7..8bb039c4 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgStatusController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgStatusController.java @@ -7,6 +7,7 @@ import com.imdroid.secapi.dto.GnssStatusMsg; import com.imdroid.secapi.dto.GnssStatusMsgMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -27,7 +28,8 @@ public class GnssMsgStatusController extends BasicController implements CommonEx private final GnssStatusMsgMapper statusMsgMapper; @RequestMapping("/page/gnss_msg_status") - public String gnssStatusMsg() { + public String gnssStatusMsg(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_msg_status"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgTrxController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgTrxController.java index c3182849..7ec09fe7 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgTrxController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssMsgTrxController.java @@ -7,6 +7,7 @@ import com.imdroid.secapi.dto.GnssTrxMsg; import com.imdroid.secapi.dto.GnssTrxMsgMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -27,7 +28,8 @@ public class GnssMsgTrxController extends BasicController implements CommonExcel private final GnssTrxMsgMapper trxMsgMapper; @RequestMapping("/page/gnss_msg_trx") - public String gnssTrxMsg(){ + public String gnssTrxMsg(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_msg_trx"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssRawDataController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssRawDataController.java index 47c9f568..365ed2b6 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssRawDataController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssRawDataController.java @@ -9,6 +9,7 @@ import com.imdroid.secapi.dto.GnssRawData; import com.imdroid.secapi.dto.GnssRawDataMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -20,7 +21,8 @@ public class GnssRawDataController extends BasicController{ @Autowired GnssRawDataMapper dataMapper; @RequestMapping("/page/gnss_data_raw") - public String gnssDataRaw() { + public String gnssDataRaw(Model m, HttpSession session) { + initModel(m, session); return "/page/gnss_data_raw"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssStatusController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssStatusController.java index f5db2022..0b3bdb45 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssStatusController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/GnssStatusController.java @@ -101,4 +101,9 @@ public class GnssStatusController extends BasicController implements CommonExcel public boolean isJoinSelect() { return true; } + + @Override + public String tenantIdField() { + return "d.tenantid"; + } } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java index 1ff72f2c..c179e3b5 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/IndexController.java @@ -1,23 +1,29 @@ package com.imdroid.beidou.controller; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import javax.servlet.http.HttpSession; + @Controller public class IndexController extends BasicController{ @RequestMapping("/") - public String index0() { + public String index0(Model m, HttpSession session) { + initModel(m, session); return "/index"; } @RequestMapping("/index") - public String index() { + public String index(Model m, HttpSession session) { + initModel(m, session); return "/index"; } @RequestMapping("/page/device_overview") - public String deviceOverview() { + public String deviceOverview(Model m, HttpSession session) { + initModel(m, session); return "/page/device_overview"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/LoginController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/LoginController.java index c0852dd3..586b9e5f 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/LoginController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/LoginController.java @@ -59,7 +59,7 @@ public class LoginController { if (user == null) { return HttpResult.fail(HttpResult.HTTP_RSP_USER_NOT_EXIST, "用户不存在"); } - Tenant tenant = tenantMapper.selectById(user.getTenant_id()); + Tenant tenant = tenantMapper.selectById(user.getTenantid()); SessionUtils.setCurrentUser(request, user, tenant); return HttpResult.success(buildMiniUser(user, tenant)); @@ -72,7 +72,7 @@ public class LoginController { if (!bCryptPasswordEncoderUtil.matches(userLoginVO.getPassword(), user.getPassword())) { return HttpResult.fail("用户名或密码错误"); } - Tenant tenant = tenantMapper.selectById(user.getTenant_id()); + Tenant tenant = tenantMapper.selectById(user.getTenantid()); SessionUtils.setCurrentUser(request, user, tenant); //response.sendRedirect("/index"); //发这条没用,会导致login.html收不到应答,也跳转不了 HttpResult rsp = HttpResult.success(null); diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/TenantController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/TenantController.java index 857eb91e..9c793a0a 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/TenantController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/TenantController.java @@ -5,18 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.imdroid.beidou.common.HttpResult; -import com.imdroid.beidou.data.vo.device.DeviceInstallVO; -import com.imdroid.beidou.data.vo.device.DeviceListVO; -import com.imdroid.beidou.data.vo.device.DeviceStatusVO; import com.imdroid.beidou.entity.Tenant; import com.imdroid.beidou.entity.TenantMapper; -import com.imdroid.secapi.client.RtcmClient; -import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.util.StringUtils; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpSession; @@ -38,12 +31,14 @@ public class TenantController extends BasicController{ } @RequestMapping("/sys/tenant/add") - public String addTenant(Model m){ + public String addTenant(Model m, HttpSession session) { + initModel(m, session); return "/page/table/tenant_add"; } @RequestMapping("/sys/tenant/edit") - public String editTenant(Model m){ + public String editTenant(Model m, HttpSession session) { + initModel(m, session); return "/page/table/tenant_add"; } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/UserController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/UserController.java index af7c63a2..3ca580c3 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/UserController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/UserController.java @@ -1,28 +1,124 @@ package com.imdroid.beidou.controller; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.imdroid.beidou.common.HttpResult; +import com.imdroid.beidou.entity.Tenant; +import com.imdroid.beidou.entity.TenantMapper; import com.imdroid.beidou.entity.User; import com.imdroid.beidou.entity.UserMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpSession; +import java.util.List; @Controller public class UserController extends BasicController { - + @Value("${default_pwd}") + private String default_pwd; @Autowired UserMapper userMapper; - + @Autowired + TenantMapper tenantMapper; /**** 推送页面 *****/ @RequestMapping("/page/user_pwd") - public String warning() throws Exception { + public String userPwd() throws Exception { return "/page/user_pwd"; } + @RequestMapping("/sys/user") + public String listUser(Model m, HttpSession session) { + initModel(m, session); + return "/page/user_cfg"; + } + + @RequestMapping("/sys/user/add") + public String addUser(Model m, HttpSession session){ + initModel(m, session); + + List tenants = tenantMapper.selectList(null); + m.addAttribute("tenant_list", tenants); + + return "/page/table/user_add"; + } + + @RequestMapping("/sys/user/edit") + public String editUser(Model m, HttpSession session){ + initModel(m, session); + List tenants = tenantMapper.selectList(null); + m.addAttribute("tenant_list", tenants); + return "/page/table/user_add"; + } + + /**** 推送数据 *****/ + @RequestMapping("/sys/user/list") + @ResponseBody + public JSONObject list(HttpSession session, int page, int limit, String searchParams) { + Page pageable = new Page<>(page, limit); + QueryWrapper queryWrapper = new QueryWrapper<>(); + + IPage cs = userMapper.selectPage(pageable, queryWrapper); + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", 0); + jsonObject.put("msg", ""); + jsonObject.put("count", cs.getTotal()); + jsonObject.put("data", cs.getRecords()); + return jsonObject; + } + + @PostMapping("/sys/user/update") + @ResponseBody + public String update(HttpSession session, @RequestBody JSONObject object) throws Exception { + // 从请求参数中创建对象 + User userNew = JSONObject.toJavaObject(object,User.class); + QueryWrapper tenantQueryWrapper = new QueryWrapper<>(); + tenantQueryWrapper.eq("name", userNew.getTenantname()); + Tenant tenant = tenantMapper.selectOne(tenantQueryWrapper); + if(tenant==null) return HttpResult.result(2, "invalid tenant"); + userNew.setTenantid(tenant.getId()); + + // 检测该对象是否已存在 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("name", userNew.getName()); + queryWrapper.eq("tenantname",userNew.getTenantname()); + queryWrapper.last("limit 1"); + User userOld = userMapper.selectOne(queryWrapper); + //新增或更新 + int num = 0; + if(null != userOld) { + userNew.setId(userOld.getId()); + num = userMapper.updateById(userNew); + } + else{ + userNew.setPwd(new BCryptPasswordEncoder().encode(default_pwd)); + num = userMapper.insert(userNew); //id自增 + } + if (num == 0) { + return HttpResult.failed(); + } else { + return HttpResult.ok(); + } + } + + @PostMapping("/sys/user/delete") + @ResponseBody + public String delete(@RequestParam String name) throws Exception { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("name",name); + int num = userMapper.delete(wrapper); + if (num == 0) { + return HttpResult.failed(); + } else return HttpResult.ok(); + } + /**** 推送数据 *****/ @PostMapping("/personal/update_pwd") @ResponseBody diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/controller/WarningController.java b/sec-beidou/src/main/java/com/imdroid/beidou/controller/WarningController.java index 829c1700..a348445d 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/controller/WarningController.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/controller/WarningController.java @@ -6,13 +6,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.imdroid.beidou.common.HttpResult; -import com.imdroid.beidou.entity.Tenant; import com.imdroid.beidou.service.CommonExcelService; import com.imdroid.secapi.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.PostConstruct; @@ -46,12 +44,14 @@ public class WarningController extends BasicController implements CommonExcelSer /**** 推送页面 *****/ @RequestMapping("/page/warning") - public String warning() throws Exception { + public String warning(Model m, HttpSession session) { + initModel(m, session); return "/page/warning"; } @RequestMapping("/page/warning_cfg") - public String warningCfg() { + public String warningCfg(Model m, HttpSession session) { + initModel(m, session); return "/page/warning_cfg"; } @@ -75,7 +75,6 @@ public class WarningController extends BasicController implements CommonExcelSer * @param session HttpSession * @param request HttpServletRequest * @param response HttpServletResponse - * @throws Exception */ @RequestMapping("/warning/export") @ResponseBody diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/entity/User.java b/sec-beidou/src/main/java/com/imdroid/beidou/entity/User.java index 0fa21b9a..70f5cf9f 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/entity/User.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/entity/User.java @@ -16,13 +16,14 @@ public class User { @TableId(value = "id", type = IdType.AUTO) private Long id; - int tenant_id; + Integer tenantid; + String tenantname; private String name; private String pwd; String role; - private boolean locked; + private Boolean locked; private String nickname; - private boolean init_pwd=true; + private Boolean init_pwd=true; private String mobile; private String avatar_url; private String openid; diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/service/CommonExcelService.java b/sec-beidou/src/main/java/com/imdroid/beidou/service/CommonExcelService.java index cba906fb..800709eb 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/service/CommonExcelService.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/service/CommonExcelService.java @@ -84,6 +84,10 @@ public interface CommonExcelService { return false; } + default String tenantIdField() { + return "tenantid"; + } + /** * 分页查询 * @@ -100,7 +104,7 @@ public interface CommonExcelService { Integer tenantId = (Integer) session.getAttribute(SessionUtils.SESSION_TENANT_ID); if (tenantId != null && tenantId != Tenant.SAAS_PROVIDER_ID) { - queryWrapper.eq("tenantid", tenantId); + queryWrapper.eq(tenantIdField(), tenantId); } // 条件查询 diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/service/ServiceEnvInit.java b/sec-beidou/src/main/java/com/imdroid/beidou/service/ServiceEnvInit.java index a563a2a3..d13674fe 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/service/ServiceEnvInit.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/service/ServiceEnvInit.java @@ -1,6 +1,7 @@ package com.imdroid.beidou.service; +import com.imdroid.beidou.common.Role; import com.imdroid.beidou.entity.Tenant; import com.imdroid.beidou.entity.TenantMapper; import com.imdroid.beidou.entity.User; @@ -58,8 +59,9 @@ public class ServiceEnvInit implements ApplicationRunner { user.setId(0L); user.setName(default_user_name); user.setPwd(bCryptPasswordEncoderUtil.encode(default_pwd)); - user.setRole("ADMIN"); - user.setTenant_id(Tenant.SAAS_PROVIDER_ID); + user.setRole(Role.SUPER_ADMIN); + user.setTenantid(Tenant.SAAS_PROVIDER_ID); + user.setTenantname(Tenant.SAAS_PROVIDER_NAME); userMapper.insert(user); } diff --git a/sec-beidou/src/main/resources/db/schema.sql b/sec-beidou/src/main/resources/db/schema.sql index a67051b2..163a6286 100644 --- a/sec-beidou/src/main/resources/db/schema.sql +++ b/sec-beidou/src/main/resources/db/schema.sql @@ -1,6 +1,7 @@ CREATE TABLE IF NOT EXISTS `UserCfg` ( `id` bigint(20) AUTO_INCREMENT, - `tenant_id` int DEFAULT 0, + `tenantid` int DEFAULT 0, + `tenantname` varchar(100) NOT NULL, `name` varchar(20) NOT NULL, `pwd` varchar(64) NOT NULL, `role` varchar(24) NOT NULL, @@ -42,6 +43,7 @@ CREATE TABLE IF NOT EXISTS `gnssdevices` ( `updatetime` datetime DEFAULT NULL, `updateuser` varchar(50) DEFAULT NULL, `deviceid` varchar(20) NOT NULL, + `fwddeviceid` varchar(40) NOT NULL, `name` varchar(50) NOT NULL, `parentid` varchar(20) DEFAULT NULL, `devicetype` smallint DEFAULT 0, @@ -52,6 +54,9 @@ CREATE TABLE IF NOT EXISTS `gnssdevices` ( `fwd_group_id` varchar(64) DEFAULT NULL, `syn` bit(1) DEFAULT 0 COMMENT '是否已同步', `pictures` varchar(100) DEFAULT NULL, + `b562e` double DEFAULT NULL COMMENT '初始位置东E', + `b562n` double DEFAULT NULL COMMENT '初始位置北N', + `b562d` double DEFAULT NULL COMMENT '初始位置天D', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; @@ -132,9 +137,6 @@ CREATE TABLE IF NOT EXISTS `gnssdevicelocationrecords` ( `r9250e` double DEFAULT NULL, `r9250n` double DEFAULT NULL, `r9250d` double DEFAULT NULL, - `resulte` double DEFAULT NULL, - `resultn` double DEFAULT NULL, - `resultd` double DEFAULT NULL, `rb562e` double DEFAULT NULL COMMENT '相对北斗位置东E', `rb562d` double DEFAULT NULL COMMENT '相对北斗位置北N', `rb562n` double DEFAULT NULL COMMENT '相对北斗位置天D', diff --git a/sec-beidou/src/main/resources/static/api/init.json b/sec-beidou/src/main/resources/static/api/init.json index 055ba01d..1beda685 100644 --- a/sec-beidou/src/main/resources/static/api/init.json +++ b/sec-beidou/src/main/resources/static/api/init.json @@ -147,7 +147,7 @@ }, { "title": "用户管理", - "href": "", + "href": "sys/user", "icon": "fa fa-user", "target": "_self" }, diff --git a/sec-beidou/src/main/resources/static/api/init_enterprise.json b/sec-beidou/src/main/resources/static/api/init_enterprise.json new file mode 100644 index 00000000..0a683edd --- /dev/null +++ b/sec-beidou/src/main/resources/static/api/init_enterprise.json @@ -0,0 +1,95 @@ +{ + "homeInfo": { + "title": "首页", + "href": "page/device_overview" + }, + "logoInfo": { + "title": "形变监测平台", + "image": "images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "设备管理", + "icon": "fa fa-address-book", + "href": "", + "target": "_self", + "child": [ + { + "title": "设备总览", + "href": "page/device_overview", + "icon": "fa fa-home", + "target": "_self" + }, + { + "title": "运行状态", + "href": "page/gnss_status", + "icon": "fa fa-tachometer", + "target": "_self" + }, + { + "title": "告警管理", + "href": "", + "icon": "fa fa-bell-o", + "target": "", + "child": [ + { + "title": "告警消息", + "href": "page/warning", + "icon": "fa fa-minus", + "target": "_self" + } + ] + }, + { + "title": "解算结果", + "href": "page/gnss_data_calc", + "icon": "fa fa-calculator", + "target": "_self" + }, + { + "title": "配置管理", + "href": "", + "icon": "fa fa-gear", + "target": "_self", + "child": [ + { + "title": "设备参数", + "href": "page/gnss_dev_cfg", + "icon": "fa fa-minus", + "target": "_self" + } + ] + }, + { + "title": "数据推送", + "href": "", + "icon": "fa fa-send-o", + "target": "_self", + "child": [ + { + "title": "推送记录", + "href": "page/fwd_records", + "icon": "fa fa-minus", + "target": "_self" + } + ] + } + ] + }, + { + "title": "系统管理", + "icon": "fa fa-lemon-o", + "href": "", + "target": "_self", + "child": [ + { + "title": "操作日志", + "href": "", + "icon": "fa fa-pencil-square-o", + "target": "_self" + } + ] + } + ] +} \ No newline at end of file diff --git a/sec-beidou/src/main/resources/templates/index.html b/sec-beidou/src/main/resources/templates/index.html index d8512578..ef477754 100644 --- a/sec-beidou/src/main/resources/templates/index.html +++ b/sec-beidou/src/main/resources/templates/index.html @@ -58,7 +58,7 @@
  • - admin + admin
    修改密码 @@ -124,15 +124,22 @@ - diff --git a/sec-beidou/src/main/resources/templates/page/table/user_add.html b/sec-beidou/src/main/resources/templates/page/table/user_add.html new file mode 100644 index 00000000..a96bdc60 --- /dev/null +++ b/sec-beidou/src/main/resources/templates/page/table/user_add.html @@ -0,0 +1,139 @@ + + + + + 组织 + + + + + + + + + +
    + +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/sec-beidou/src/main/resources/templates/page/tenant_cfg.html b/sec-beidou/src/main/resources/templates/page/tenant_cfg.html index e141cac2..ee275f2e 100644 --- a/sec-beidou/src/main/resources/templates/page/tenant_cfg.html +++ b/sec-beidou/src/main/resources/templates/page/tenant_cfg.html @@ -60,13 +60,13 @@ table.on('toolbar(currentTableFilter)', function (obj) { if (obj.event === 'add') { var index = layer.open({ - title: '新增推送参数组', + title: '新增企业部门', type: 2, shade: 0.2, maxmin:true, shadeClose: true, area: ['100%', '100%'], - content: '../sys/tenant/add', + content: '../sys/tenant/add' }); $(window).on("resize", function () { layer.full(index); diff --git a/sec-beidou/src/main/resources/templates/page/user_cfg.html b/sec-beidou/src/main/resources/templates/page/user_cfg.html index c0cbeb5c..4edb8d6a 100644 --- a/sec-beidou/src/main/resources/templates/page/user_cfg.html +++ b/sec-beidou/src/main/resources/templates/page/user_cfg.html @@ -55,11 +55,10 @@ - - - - - - \ No newline at end of file diff --git a/sec-beidou/src/main/resources/templates/page/warning.html b/sec-beidou/src/main/resources/templates/page/warning.html index cb13a6d3..b78e3c50 100644 --- a/sec-beidou/src/main/resources/templates/page/warning.html +++ b/sec-beidou/src/main/resources/templates/page/warning.html @@ -88,11 +88,8 @@ table.render({ elem: '#currentTableId', url: '/warning/msg', - defaultToolbar: ['filter', 'exports', 'print', { - title: '提示', - layEvent: 'LAYTABLE_TIPS', - icon: 'layui-icon-tips' - }], + toolbar: '#toolbarDemo', //开启头部工具栏 + defaultToolbar: ['filter'], cols: [[ {field: 'createtime', title: '上报时间', width: '15%', templet: "
    {{layui.util.toDateString(d.createtime, 'yyyy-MM-dd HH:mm:ss')}}
    "}, {field: 'deviceid', title: '设备号'}, diff --git a/sec-beidou/src/main/resources/templates/page/warning_cfg.html b/sec-beidou/src/main/resources/templates/page/warning_cfg.html index 87520104..eac54b53 100644 --- a/sec-beidou/src/main/resources/templates/page/warning_cfg.html +++ b/sec-beidou/src/main/resources/templates/page/warning_cfg.html @@ -40,6 +40,7 @@ elem: '#currentTableId', url: '/warning/cfg', toolbar: '#toolbarTop', + defaultToolbar: [], cols: [[ {field: 'devicetype', title: '设备类型'}, {field: 'type', title: '告警类型'}, @@ -66,7 +67,7 @@ maxmin:true, shadeClose: true, area: ['100%', '100%'], - content: '../page/table/warning_add', + content: '../page/table/warning_add' }); $(window).on("resize", function () { layer.full(index);