From e46b648749b8ba9cde852b7bc965ef602ca57da4 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期三, 11 九月 2024 10:43:13 +0800 Subject: [PATCH] 修改bug --- DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 51 ++++++++++++++++++++++----------------------------- 1 files changed, 22 insertions(+), 29 deletions(-) diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 7ddb337..debbc89 100644 --- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -313,29 +313,6 @@ } } }).start(); -// OrderPosition orderPosition = new OrderPosition(); -// orderPosition.setOrderId(orderId); -// orderPosition.setOrderType(1); -// orderPosition.setDriverId(orderPrivateCar.getDriverId()); -// orderPosition.setLat(lat.toString()); -// orderPosition.setLon(lon.toString()); -// orderPosition.setAltitude("0"); -// orderPosition.setDirectionAngle("0"); -// //先计算里程,在存储最新位置 -// orderPosition.setInsertTime(new Date()); -// //将数据存储到文件中 -// List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderPosition.getOrderId(), orderPosition.getOrderType()); -// File file = new File(filePath + orderPosition.getOrderId() + "_" + orderPosition.getOrderType() + ".txt"); -// if(!file.exists()){ -// file.getParentFile().mkdirs(); -// file.createNewFile(); -// } -// //写入相应的文件 -// PrintWriter out = new PrintWriter(new FileWriter(file)); -// orderPositions.add(orderPosition); -// out.write(JSON.toJSONString(orderPositions)); -// out.flush(); -// out.close(); break; case 6://结束服务(专车可以返回继续服务)不修改状态 orderPrivateCar.setGetoffLon(lon); @@ -412,8 +389,8 @@ toLonLat = fromLonLat; } } - System.err.println("======服务里程======"+sum); - orderPrivateCar.setMileage(sum); + + //存储轨迹 // 将数据存储到文件中 File file = new File(filePath + orderId + "_" + 1 + ".txt"); if(!file.exists()){ @@ -425,7 +402,20 @@ out.write(JSON.toJSONString(orderPositions)); out.flush(); out.close(); - + + + //获取预估里程,使用预估里程作为行驶里程计算金额 + String origins = orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(); + String destination = orderPrivateCar.getGetoffLon() + "," + orderPrivateCar.getGetoffLat(); + Map<String, String> distance = gdMapElectricFenceUtil.getDistance(origins, destination, 1); + Double distance1 = Double.valueOf(distance.get("distance")); + if(distance1 - sum > 1000){ + orderPrivateCar.setMileage(distance1); + orderPrivateCar.setIsAbnormal(1); + }else{ + orderPrivateCar.setMileage(sum); + orderPrivateCar.setIsAbnormal(0); + } break; } this.updateById(orderPrivateCar); @@ -461,6 +451,9 @@ @Override public ResultUtil confirmFees(Integer orderId, Integer type, Double parkingFee, Double crossingFee) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(orderId); + if(orderPrivateCar.getState() != 5){ + return ResultUtil.error("异常操作,请刷新订单"); + } if(orderPrivateCar.getArriveTime()==null){ orderPrivateCar.setArriveTime(orderPrivateCar.getStartServiceTime()); } @@ -609,10 +602,10 @@ this.updateById(orderPrivateCar); return true;//第一条数据不作处理,直接存储 } - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(now, old, 0);//直线距离 + Map<String, Double> distance = GeodesyUtil.getDistance(now, old);//直线距离 if(null != distance){ - String distance1 = distance.get("distance"); - if(Double.valueOf(distance1) > 50 && orderPrivateCar.getState()==5/* && orderPosition.getInsertTime().getTime()>=orderPrivateCar.getBoardingTime().getTime()*/){//大于50米表示在移动 + Double distance1 = distance.get("WGS84"); + if(distance1 > 50 && orderPrivateCar.getState()==5){//大于50米表示在移动 orderPrivateCar.setMileage(new BigDecimal(orderPrivateCar.getMileage()).add(new BigDecimal(distance1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); this.updateById(orderPrivateCar); return true; -- Gitblit v1.7.1