From e95769e37524bef18965cafe025e664991075373 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Wed, 29 May 2024 15:12:52 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=AA=91=E8=A1=8C=E7=BA=BF=E8=B7=AF=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/receive/ReceiveController.java | 50 ++++++++++++++++--- .../system/service/IAsDeviceService.java | 5 ++ .../ruoyi/system/service/IEtOrderService.java | 5 +- .../service/impl/AsDeviceServiceImpl.java | 23 +++++++++ .../service/impl/EtOrderServiceImpl.java | 19 +++++++ 5 files changed, 94 insertions(+), 8 deletions(-) diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java index e2979e7..7fb480d 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java @@ -1,24 +1,25 @@ package com.ruoyi.web.controller.iot.receive; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.common.constant.IotConstants; import com.ruoyi.common.constant.ServiceConstants; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.CommonUtil; +import com.ruoyi.common.utils.map.GeoUtils; import com.ruoyi.common.utils.onenet.Token; import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.system.domain.AsDevice; -import com.ruoyi.system.domain.EtAdminOrder; -import com.ruoyi.system.domain.EtModel; -import com.ruoyi.system.domain.EtOperatingArea; +import com.ruoyi.system.domain.*; import com.ruoyi.system.service.*; import com.ruoyi.web.controller.iot.domain.BodyObj; import com.ruoyi.web.controller.iot.domain.LogEntry; import com.ruoyi.web.controller.iot.util.Util; import lombok.SneakyThrows; +import org.locationtech.jts.geom.Geometry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -60,6 +61,9 @@ public class ReceiveController { @Autowired private ISysUserService sysUserService; + @Autowired + private IEtOrderService etOrderService; + /** * 功能描述:第三方平台数据接收。
@@ -152,8 +156,36 @@ public class ReceiveController {
log.info("超出营运区发送断电命令:" +logEntry.getDevName());
}
}
- /** todo 4.行程线路添加,更新订单中的trip_route字段 */
+ /** TODO 4.行程线路添加,更新订单中的trip_route字段 */
+ Integer status = value.getStatus();
+ if(status == 1){//上电运行
+ log.info("上电运行:" +logEntry.getDevName());
+ //获取当前正在骑行中的订单
+ EtOrder etOrder = etOrderService.getCurrentOrder(device.getSn());
+ JSONArray jsonArray;
+ if(StrUtil.isNotBlank(etOrder.getTripRouteStr())){
+ jsonArray = JSON.parseArray(etOrder.getTripRouteStr());
+ }else{
+ jsonArray = new JSONArray();
+ }
+ JSONArray newPoint = new JSONArray();
+ newPoint.add(value.getLon());
+ newPoint.add(value.getLat());
+ jsonArray.add(newPoint);
+ jsonArray.toJSONString();
+ log.info("更新行程jsonArray:" +jsonArray.toJSONString());
+ etOrder.setTripRouteStr(jsonArray.toJSONString());
+ Geometry geometry = GeoUtils.toGeometry(jsonArray.toJSONString());
+ String wkt = GeoUtils.wkt(geometry);
+ etOrder.setTripRoute(wkt);
+ int updateEtOrder = etOrderService.updateEtOrder(etOrder);
+ if (updateEtOrder > 0) {
+ log.info("更新行程线路成功==========================>" +logEntry.getDevName());
+ }else{
+ log.info("更新行程线路失败==========================>" +logEntry.getDevName());
+ }
+ }
/** 5.低于电量(%)不得骑行,声音播报 */
if(electricQuantity <= model.getLowBatteryReminder()){
@@ -195,8 +227,12 @@ public class ReceiveController {
throw new ServiceException("车辆状态更新失败");
}
}
- /** todo 7.运营边界判断 几米判断? 5 */
-
+// /** TODO 7.运营边界判断 几米判断? 3 播报运营边界 play2@ 是否靠近运营区边界*/
+// boolean isCloseToTheBoundary = asDeviceService.isCloseToTheBoundary(device.getSn(), area);
+// if(isCloseToTheBoundary){
+// //发送超出营运区播报指令
+// asDeviceService.sendCommand(device.getMac(), Token.getToken(),IotConstants.COMMAND_PLAY2,"靠近营运边界播报");
+// }
}else{
log.info("更新定位失败:" +logEntry.getDevName());
diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java b/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java
index 4355b53..1b798c7 100644
--- a/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java
+++ b/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java
@@ -214,4 +214,9 @@ public interface IAsDeviceService extends IService