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,