diff --git a/njzscloud-common/njzscloud-common-sshtunnel/pom.xml b/njzscloud-common/njzscloud-common-sshtunnel/pom.xml new file mode 100644 index 0000000..0b47583 --- /dev/null +++ b/njzscloud-common/njzscloud-common-sshtunnel/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + + com.njzscloud + njzscloud-common + 0.0.1 + + + njzscloud-common-sshtunnel + jar + + njzscloud-common-sshtunnel + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/njzscloud-common/njzscloud-common-ws/src/main/java/com/njzscloud/common/ws/support/TokenHandshakeInterceptor.java b/njzscloud-common/njzscloud-common-ws/src/main/java/com/njzscloud/common/ws/support/TokenHandshakeInterceptor.java index 5788400..6c753d1 100644 --- a/njzscloud-common/njzscloud-common-ws/src/main/java/com/njzscloud/common/ws/support/TokenHandshakeInterceptor.java +++ b/njzscloud-common/njzscloud-common-ws/src/main/java/com/njzscloud/common/ws/support/TokenHandshakeInterceptor.java @@ -1,5 +1,6 @@ package com.njzscloud.common.ws.support; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.security.support.Token; @@ -40,7 +41,7 @@ public class TokenHandshakeInterceptor implements HandshakeInterceptor { if (resolved == null) return false; Long uid = resolved.get_0(); String cid = resolved.get_1(); - attributes.put(Constants.SESSION_ATTRIBUTE_TOKEN, authorization); + attributes.put(Constants.SESSION_ATTRIBUTE_TOKEN, StrUtil.isBlank(authorization) ? cid : authorization); attributes.put(Constants.SESSION_ATTRIBUTE_CID, cid); attributes.put(Constants.SESSION_ATTRIBUTE_UID, uid); return true; @@ -65,6 +66,7 @@ public class TokenHandshakeInterceptor implements HandshakeInterceptor { } private Tuple2 resolve(String tokenStr) { + if (StrUtil.isBlank(tokenStr)) return Tuple2.create(0L, IdUtil.fastSimpleUUID()); UserDetail userDetail = SecurityUtil.parseToken(tokenStr); if (userDetail == null) return null; Token token = userDetail.getToken(); diff --git a/njzscloud-common/pom.xml b/njzscloud-common/pom.xml index cee45f2..f5a963d 100644 --- a/njzscloud-common/pom.xml +++ b/njzscloud-common/pom.xml @@ -30,6 +30,7 @@ njzscloud-common-wechat njzscloud-common-localizer njzscloud-common-ws + njzscloud-common-sshtunnel diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/biz/service/BizCompanyService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/biz/service/BizCompanyService.java index d077034..199e58a 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/biz/service/BizCompanyService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/biz/service/BizCompanyService.java @@ -93,6 +93,8 @@ public class BizCompanyService extends ServiceImpl records = resultPage.getRecords(); if (records.isEmpty()) { - if (errCount >= 20) { - log.error("查询历史轨迹异常, 订单ID: {}, 时间: {}", orderId, startTime); + if (errCount >= 200) { + log.error("暂无实时数据, 订单ID: {}, 时间: {}", orderId, startTime); Websocket.publish(new WsMsg() .setEvent("down/truck_location_track/realtime") .setData(R.failed(ExceptionMsg.SYS_ERR_MSG, "暂无实时数据")) diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java index c06381e..7de5bfe 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/controller/OrderInfoController.java @@ -189,6 +189,12 @@ public class OrderInfoController { return R.success(); } + @GetMapping("/gps_test") + public R gpsTest(@RequestParam("sn") String sn, @RequestParam(value = "count", required = false, defaultValue = "1000") int count) { + orderInfoService.gpsTest(sn, count); + return R.success(); + } + /** * 取消订单 * diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/result/OrderPagingResult.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/result/OrderPagingResult.java index 9b67648..6e29f05 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/result/OrderPagingResult.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/pojo/result/OrderPagingResult.java @@ -48,6 +48,7 @@ public class OrderPagingResult { private String sn; private String projectName; private LocalDateTime checkTime; + private LocalDateTime transTime; private LocalDateTime assignmentTransTime; private LocalDateTime assignmentDriverTime; private LocalDateTime driverConfirmTime; diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java index d51e767..055a96b 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/order/service/OrderInfoService.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.img.ImgUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrConfig; @@ -68,6 +69,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; import static com.njzscloud.supervisory.constant.Constant.CERTIFICATE_SN_CODE; @@ -93,7 +95,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .eq("a.order_status", OrderStatus.YiYuYue) .isNull("a.trans_company_id ") ; @@ -266,9 +268,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .in("a.order_status", OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan, OrderStatus.YiJieDan) ; return; @@ -306,9 +307,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .in("a.order_status", OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang) ; return; @@ -349,9 +349,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .eq("a.order_status", OrderStatus.YiWanCheng) ; return; @@ -374,9 +373,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .eq("a.order_status", OrderStatus.YiQuXiao) ; return; @@ -388,9 +386,8 @@ public class OrderInfoService extends ServiceImpl roles = userDetail.getRoles(); if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { Long stationId = orderPagingSearchParam.getStationId(); - Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点")); ew - .eq("a.station_id", stationId) + .eq(stationId != null && stationId > 0, "a.station_id", stationId) .ne("a.auto_order", 3) ; return; @@ -660,7 +657,8 @@ public class OrderInfoService extends ServiceImpl Exceptions.clierr("当前订单已分配清运公司,无需重复分配")); @@ -728,7 +726,7 @@ public class OrderInfoService extends ServiceImpl Exceptions.clierr("数量必须大于0且小于等于1000")); + OrderInfoEntity orderInfo = this.getOne(Wrappers.lambdaQuery(OrderInfoEntity.class).eq(OrderInfoEntity::getSn, sn)); + Assert.notNull(orderInfo, () -> Exceptions.clierr("订单不存在")); + Page page = truckLocationTrackService.page(new Page<>(1, count), Wrappers.lambdaQuery(TruckLocationTrackEntity.class) + .eq(TruckLocationTrackEntity::getOrderId, 1982687926996865026L) + .orderByAsc(TruckLocationTrackEntity::getLocationTime) + ); + List records = page.getRecords(); + if (CollUtil.isEmpty(records)) { + Assert.notNull(orderInfo, () -> Exceptions.clierr("无数据")); + } + + test_thread = new Thread(() -> { + for (TruckLocationTrackEntity record : records) { + if (!test_thread_running.get()) { + break; + } + truckLocationTrackService.save(new TruckLocationTrackEntity() + .setOrderId(orderInfo.getId()) + .setTruckId(record.getTruckId()) + .setTerminalId(record.getTerminalId()) + .setLatitude(record.getLatitude()) + .setLongitude(record.getLongitude()) + .setAltitude(record.getAltitude()) + .setSpeed(record.getSpeed()) + .setLocationTime(LocalDateTime.now()) + .setDirection(record.getDirection()) + .setOverspeed(record.getOverspeed()) + .setCompensate(record.getCompensate())); + ThreadUtil.sleep(1000); + } + log.info("{} 数据导入完成", orderInfo.getSn()); + }); + test_thread_running.set(true); + test_thread.start(); + + } } diff --git a/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml b/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml index bc2d75c..e57a965 100644 --- a/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/order/OrderInfoMapper.xml @@ -49,6 +49,7 @@ a.deleted, a.cargo_place_id, a.car_in_out_id, + a.trans_time, a.site_photos, b.province, b.city,