From 5430ccbd452a660bb55ba58d7d5e13ac8c6e7170 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 26 五月 2023 15:19:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderPositionServiceImpl.java | 37 ++++++++++++++++++++++++++----------- 1 files changed, 26 insertions(+), 11 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 3fded99..707e8a4 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 @@ -49,7 +49,7 @@ public void saveOrderPosition(DriverPositionWarpper driverPositionWarpper) throws Exception { Integer orderId = driverPositionWarpper.getOrderId(); Integer orderType = driverPositionWarpper.getOrderType(); - File file = new File(filePath + orderId + "_" + orderType + ".json"); + File file = new File(filePath + orderId + ".json"); if(!file.exists()){ file.getParentFile().mkdirs(); file.createNewFile(); @@ -59,14 +59,29 @@ OrderPositionWarpper orderPositionWarpper = orderPositionWarppers.get(orderPositionWarppers.size() - 1); saveOrderMileage(driverPositionWarpper, orderPositionWarpper); } - OrderPositionWarpper orderPositionWarpper = new OrderPositionWarpper(); - BeanUtils.copyProperties(driverPositionWarpper, orderPositionWarpper); - orderPositionWarpper.setInsertTime(new Date()); - orderPositionWarppers.add(orderPositionWarpper); + //大于50米才存储有效定位数据 + 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){ + OrderPositionWarpper orderPositionWarpper = new OrderPositionWarpper(); + BeanUtils.copyProperties(driverPositionWarpper, orderPositionWarpper); + orderPositionWarpper.setInsertTime(new Date()); + orderPositionWarppers.add(orderPositionWarpper); + } + }else{ + OrderPositionWarpper orderPositionWarpper = new OrderPositionWarpper(); + BeanUtils.copyProperties(driverPositionWarpper, orderPositionWarpper); + orderPositionWarpper.setInsertTime(new Date()); + orderPositionWarppers.add(orderPositionWarpper); + } //写入相应的文件 PrintWriter out = new PrintWriter(new FileWriter(file)); - out.write(JSON.toJSONString(driverPositionWarpper)); + out.write(JSON.toJSONString(orderPositionWarppers)); out.flush(); out.close(); } @@ -86,6 +101,7 @@ Integer num = map.get(order.getId().toString()); if(50 < wgs84){ order.setActualMileage(order.getActualMileage() + wgs84.intValue()); + orderService.updateById(order); map.put(order.getId().toString(), 0); if(order.getState() == 401){//定位变动,自动开始服务 @@ -98,11 +114,10 @@ e.printStackTrace(); } } - } if(50 >= wgs84 && 12 <= (null == num ? 0 : num)){//1分钟(5秒上传一次数据) Integer integer = map.get(order.getId().toString()); - map.put(order.getId().toString(), integer++); + map.put(order.getId().toString(), null == integer ? 0 : integer++); //进入等待状态 ProcessOperationsWarpper processOperationsWarpper = new ProcessOperationsWarpper(); processOperationsWarpper.setOrderId(order.getId()); @@ -112,11 +127,10 @@ } catch (Exception e) { e.printStackTrace(); } - } if(50 >= wgs84 && 12 > (null == num ? 0 : num)){ Integer integer = map.get(order.getId().toString()); - map.put(order.getId().toString(), integer++); + map.put(order.getId().toString(), null == integer ? 0 : integer++); } } @@ -133,8 +147,9 @@ @Override public List<OrderPositionWarpper> queryPosition(Integer orderId, Integer orderType) throws Exception { //将数据存储到文件中 - File file = new File(filePath + orderId + "_" + orderType + ".txt"); + File file = new File(filePath + orderId + ".json"); if(!file.exists()){ + System.err.println("不存在"); return new ArrayList<>(); } //读取文件(字符流) -- Gitblit v1.7.1