| | |
| | | public void saveOrderPosition(DriverPositionWarpper driverPositionWarpper) throws Exception { |
| | | Integer orderId = driverPositionWarpper.getOrderId(); |
| | | Order order = orderService.selectById(orderId); |
| | | if(order.getState() != 105){ |
| | | if(order.getState() != 105 && order.getState() != 401){ |
| | | return; |
| | | } |
| | | Integer orderType = driverPositionWarpper.getOrderType(); |
| | |
| | | String toLonLat = orderPositionWarpper1.getLon() + "," + orderPositionWarpper1.getLat(); |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(fromLonLat, toLonLat); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | |
| | | // long timeMillis = System.currentTimeMillis(); |
| | | // long time = orderPositionWarpper1.getInsertTime().getTime(); |
| | | // long t = timeMillis - time; |
| | | // if(wgs84 >= 200 && t <= 8){//排除位置漂移 |
| | | // return; |
| | | // } |
| | | |
| | | if(wgs84 >= 50){//5秒165米 |
| | | OrderPositionWarpper orderPositionWarpper = new OrderPositionWarpper(); |
| | | BeanUtils.copyProperties(driverPositionWarpper, orderPositionWarpper); |
| | |
| | | Order order = orderService.selectById(driverPositionWarpper.getOrderId()); |
| | | Double wgs84 = distance.get("WGS84"); |
| | | Integer num = map.get(order.getId().toString()); |
| | | |
| | | // long timeMillis = System.currentTimeMillis(); |
| | | // long time = orderPositionWarpper.getInsertTime().getTime(); |
| | | // long t = timeMillis - time; |
| | | // if(wgs84 >= 200 && t <= 8){//排除位置漂移 |
| | | // return; |
| | | // } |
| | | |
| | | if(50 < wgs84){//5秒165米 |
| | | order.setActualMileage(order.getActualMileage() + wgs84.intValue()); |
| | | orderService.updateById(order); |
| | |
| | | } |
| | | } |
| | | } |
| | | if(50 >= wgs84 && 12 <= (null == num ? 0 : num)){//1分钟(5秒上传一次数据) |
| | | |
| | | if(50 >= wgs84 && 3 <= (null == num ? 0 : num)){//20秒(5秒上传一次数据) |
| | | Integer integer = map.get(order.getId().toString()); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer++); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer + 1); |
| | | //进入等待状态 |
| | | if(order.getState() == 401){ |
| | | return; |
| | | } |
| | | ProcessOperationsWarpper processOperationsWarpper = new ProcessOperationsWarpper(); |
| | | processOperationsWarpper.setOrderId(order.getId()); |
| | | processOperationsWarpper.setState(401); |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(50 >= wgs84 && 12 > (null == num ? 0 : num)){ |
| | | if(50 >= wgs84 && 3 > (null == num ? 0 : num)){ |
| | | Integer integer = map.get(order.getId().toString()); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer++); |
| | | map.put(order.getId().toString(), null == integer ? 0 : integer + 1); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void initMap(Long orderId) throws Exception { |
| | | map.put(orderId.toString(), 0); |
| | | } |
| | | |
| | | } |