1.骑行线路更新
This commit is contained in:
parent
daaba224af
commit
e95769e375
|
@ -1,24 +1,25 @@
|
||||||
package com.ruoyi.web.controller.iot.receive;
|
package com.ruoyi.web.controller.iot.receive;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.ruoyi.common.constant.IotConstants;
|
import com.ruoyi.common.constant.IotConstants;
|
||||||
import com.ruoyi.common.constant.ServiceConstants;
|
import com.ruoyi.common.constant.ServiceConstants;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.CommonUtil;
|
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.onenet.Token;
|
||||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||||
import com.ruoyi.system.domain.AsDevice;
|
import com.ruoyi.system.domain.*;
|
||||||
import com.ruoyi.system.domain.EtAdminOrder;
|
|
||||||
import com.ruoyi.system.domain.EtModel;
|
|
||||||
import com.ruoyi.system.domain.EtOperatingArea;
|
|
||||||
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.service.*;
|
||||||
import com.ruoyi.web.controller.iot.domain.BodyObj;
|
import com.ruoyi.web.controller.iot.domain.BodyObj;
|
||||||
import com.ruoyi.web.controller.iot.domain.LogEntry;
|
import com.ruoyi.web.controller.iot.domain.LogEntry;
|
||||||
import com.ruoyi.web.controller.iot.util.Util;
|
import com.ruoyi.web.controller.iot.util.Util;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
import org.locationtech.jts.geom.Geometry;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -60,6 +61,9 @@ public class ReceiveController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IEtOrderService etOrderService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 功能描述:第三方平台数据接收。<p>
|
* 功能描述:第三方平台数据接收。<p>
|
||||||
|
@ -152,8 +156,36 @@ public class ReceiveController {
|
||||||
log.info("超出营运区发送断电命令:" +logEntry.getDevName());
|
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.低于电量(%)不得骑行,声音播报 */
|
/** 5.低于电量(%)不得骑行,声音播报 */
|
||||||
if(electricQuantity <= model.getLowBatteryReminder()){
|
if(electricQuantity <= model.getLowBatteryReminder()){
|
||||||
|
@ -195,8 +227,12 @@ public class ReceiveController {
|
||||||
throw new ServiceException("车辆状态更新失败");
|
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{
|
}else{
|
||||||
log.info("更新定位失败:" +logEntry.getDevName());
|
log.info("更新定位失败:" +logEntry.getDevName());
|
||||||
|
|
|
@ -214,4 +214,9 @@ public interface IAsDeviceService extends IService<AsDevice>
|
||||||
* 判断是否在运营时间内
|
* 判断是否在运营时间内
|
||||||
*/
|
*/
|
||||||
Boolean isOperatingTime(String sn);
|
Boolean isOperatingTime(String sn);
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 是否靠近运营区边界
|
||||||
|
// */
|
||||||
|
// boolean isCloseToTheBoundary(String sn, EtOperatingArea area);
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,7 +160,10 @@ public interface IEtOrderService
|
||||||
*/
|
*/
|
||||||
List<RechargeVo> rechargeList(EtOrder etOrder);
|
List<RechargeVo> rechargeList(EtOrder etOrder);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前正在骑行中的订单
|
||||||
|
*/
|
||||||
|
EtOrder getCurrentOrder(String sn);
|
||||||
|
|
||||||
|
|
||||||
// public partnerBill();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1271,4 +1271,27 @@ public class AsDeviceServiceImpl extends ServiceImpl<AsDeviceMapper, AsDevice> i
|
||||||
}
|
}
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否靠近边界
|
||||||
|
*/
|
||||||
|
// @Override
|
||||||
|
// public boolean isCloseToTheBoundary(String sn, EtOperatingArea area) {
|
||||||
|
// Boolean isClose = false;
|
||||||
|
// AsDevice device = asDeviceMapper.selectAsDeviceBySn(sn);
|
||||||
|
// String latitude = device.getLatitude();
|
||||||
|
// String longitude = device.getLongitude();
|
||||||
|
// Geometry geometry = GeoUtils.fromWkt(area.getBoundary());
|
||||||
|
//
|
||||||
|
// double distanceToBoundary = GeoUtils.distanceToBoundary(longitude, latitude, geometry);
|
||||||
|
// if(distanceToBoundary <= 3.0) {
|
||||||
|
// log.info("车辆【{}】靠近【{}】运营边界",sn,area.getAreaName());
|
||||||
|
// isClose = true;
|
||||||
|
// }else{
|
||||||
|
// log.info("车辆【{}】为靠近靠近【{}】运营边界",sn,area.getAreaName());
|
||||||
|
// }
|
||||||
|
// return isClose;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -260,6 +260,25 @@ public class EtOrderServiceImpl implements IEtOrderService
|
||||||
return rechargeVoList;
|
return rechargeVoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前正在骑行中的订单
|
||||||
|
* @param sn
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public EtOrder getCurrentOrder(String sn) {
|
||||||
|
if(ObjectUtil.isNotNull(asDeviceService.selectAsDeviceBySn(sn))){
|
||||||
|
EtOrder etOrder = new EtOrder();
|
||||||
|
etOrder.setSn(sn);
|
||||||
|
etOrder.setStatus(ServiceConstants.ORDER_STATUS_RIDING);
|
||||||
|
List<EtOrder> etOrders = etOrderMapper.selectEtOrderList(etOrder);
|
||||||
|
if(ObjectUtil.isNotEmpty(etOrders)){
|
||||||
|
return etOrders.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private boolean toBePaid(String[] statusList) {
|
private boolean toBePaid(String[] statusList) {
|
||||||
boolean hasOne = false;
|
boolean hasOne = false;
|
||||||
boolean hasThree = false;
|
boolean hasThree = false;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user