From 0655cf0891c66ed11c72e135b86432cbcaf9959c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 20 七月 2023 15:07:44 +0800 Subject: [PATCH] 修改重复收款和优化计算距离及存储有效位置信息的逻辑 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java index 707e8a4..45792f6 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java @@ -48,6 +48,10 @@ @Override public void saveOrderPosition(DriverPositionWarpper driverPositionWarpper) throws Exception { Integer orderId = driverPositionWarpper.getOrderId(); + Order order = orderService.selectById(orderId); + if(order.getState() != 105){ + return; + } Integer orderType = driverPositionWarpper.getOrderType(); File file = new File(filePath + orderId + ".json"); if(!file.exists()){ @@ -59,14 +63,14 @@ OrderPositionWarpper orderPositionWarpper = orderPositionWarppers.get(orderPositionWarppers.size() - 1); saveOrderMileage(driverPositionWarpper, orderPositionWarpper); } - //大于50米才存储有效定位数据 + //大于100米才存储有效定位数据 if(orderPositionWarppers.size() > 0){ OrderPositionWarpper orderPositionWarpper1 = orderPositionWarppers.get(orderPositionWarppers.size() - 1); String fromLonLat = driverPositionWarpper.getLon() + "," + driverPositionWarpper.getLat(); String toLonLat = orderPositionWarpper1.getLon() + "," + orderPositionWarpper1.getLat(); Map<String, Double> distance = GeodesyUtil.getDistance(fromLonLat, toLonLat); Double wgs84 = distance.get("WGS84"); - if(wgs84 >= 50){ + if(wgs84 >= 50 && wgs84 <= 165){//5秒165米 OrderPositionWarpper orderPositionWarpper = new OrderPositionWarpper(); BeanUtils.copyProperties(driverPositionWarpper, orderPositionWarpper); orderPositionWarpper.setInsertTime(new Date()); @@ -99,7 +103,7 @@ Order order = orderService.selectById(driverPositionWarpper.getOrderId()); Double wgs84 = distance.get("WGS84"); Integer num = map.get(order.getId().toString()); - if(50 < wgs84){ + if(50 < wgs84 && wgs84 <= 165){//5秒165米 order.setActualMileage(order.getActualMileage() + wgs84.intValue()); orderService.updateById(order); map.put(order.getId().toString(), 0); -- Gitblit v1.7.1