From 50350c428347d68ea1c8fa4fcc7633e4dc2550bc Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 17 十月 2025 16:55:04 +0800
Subject: [PATCH] 修改bug

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |  169 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 155 insertions(+), 14 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
index c625cf3..d5fc58a 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -5,22 +5,25 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.supersavedriving.driver.core.util.ToolUtil;
 import com.supersavedriving.driver.modular.system.dao.OrderMapper;
 import com.supersavedriving.driver.modular.system.model.*;
 import com.supersavedriving.driver.modular.system.service.*;
 import com.supersavedriving.driver.modular.system.util.*;
 import com.supersavedriving.driver.modular.system.util.GaoDe.MapUtil;
+import com.supersavedriving.driver.modular.system.util.GaoDe.model.District;
 import com.supersavedriving.driver.modular.system.util.MallBook.model.*;
 import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
 import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.EmployeeUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.OrderUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.AddAccountInfoRequest;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
+import com.supersavedriving.driver.modular.system.util.zhenglian.ZhengLianUtil;
+import com.supersavedriving.driver.modular.system.util.zhenglian.model.TradeTerminalInfo;
+import com.supersavedriving.driver.modular.system.util.zhenglian.model.ZLUserInfo;
 import com.supersavedriving.driver.modular.system.warpper.*;
-import com.supersavedriving.driver.core.util.ToolUtil;
-import com.supersavedriving.driver.modular.system.util.GaoDe.model.District;
-import com.supersavedriving.driver.modular.system.util.juhe.WeatherUtil;
-import com.supersavedriving.driver.modular.system.util.PushUtil;
-import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
-import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
-import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -37,6 +40,8 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
 import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -246,9 +251,23 @@
             order.setState(null == order.getDriverId() ? 101 : 102);
         }
         order.setStatus(1);
-
         this.insert(order);
         driverService.updateById(driver);
+        if(null != appUser && null != order.getDriverId()){
+            BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+            //调三方订单中心创建行程单
+            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+            request.setOrderNo("DJ" + order.getId());
+            request.setCustomerId(appUser.getOnconUUID());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(branchOffice.getEnterCode());
+            request.setServiceType(5);
+            String travelItinerary = OrderUtil.createTravelItinerary(request);
+            order.setTravelId(travelItinerary);
+            this.updateById(order);
+        }
+
+
         //推送状态
         if(null != order.getDriverId()){
             //推动订单数据
@@ -757,7 +776,7 @@
         List<HallOrderList> lists = new ArrayList<>();
         hallOrderLists.forEach(hallOrderList -> {
             if(ToolUtil.isEmpty(hallOrderList.getAvatar())){
-                hallOrderList.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
+                hallOrderList.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
             }
             hallOrderList.setCurrentDistance(0D);
             if(ToolUtil.isNotEmpty(value)){
@@ -894,6 +913,7 @@
             order.setState(102);
             order.setOrderTakingTime(new Date());
             this.updateById(order);
+
             redisUtil.unlock(orderId.toString());
 
             if(null != order.getUserId()){
@@ -901,6 +921,27 @@
                 appUser.setCancelCount(0);
                 appUser.setIsException(1);
                 appUserService.updateById(appUser);
+                BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+                if(null == order.getTravelId()){
+                    //调三方订单中心创建行程单
+                    CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+                    request.setOrderNo("DJ" + order.getId());
+                    request.setCustomerId(appUser.getOnconUUID());
+                    request.setDriverId(driver.getEmpId().toString());
+                    request.setSupplierShopId(branchOffice.getEnterCode());
+                    request.setServiceType(5);
+                    String travelItinerary = OrderUtil.createTravelItinerary(request);
+                    order.setTravelId(travelItinerary);
+                    this.updateById(order);
+                }else{
+                    //中台修改订单状态
+                    ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                    request.setOrderId(order.getTravelId());
+                    request.setStatus(getState(order.getState()));
+                    request.setDriverId(driver.getEmpId().toString());
+                    request.setSupplierShopId(branchOffice.getEnterCode());
+                    OrderUtil.modifyTravelItinerary(request);
+                }
             }
 
             driver.setServerStatus(2);
@@ -988,7 +1029,7 @@
         orderInfoWarpper.setBalance(null == appUser ? 0D : appUser.getAccountBalance());
         orderInfoWarpper.setCurrentDistance(0D);
         if(ToolUtil.isEmpty(orderInfoWarpper.getAvatar())){
-            orderInfoWarpper.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
+            orderInfoWarpper.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
         }
         String value = redisUtil.getValue("daijia:DRIVER" + uid);
         orderInfoWarpper.setPickUpTime(0);
@@ -999,6 +1040,17 @@
             Map<String, String> distance1 = MapUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value, 0);
             orderInfoWarpper.setPickUpTime(Integer.valueOf(distance1.get("duration")) / 60);
         }
+
+        Map<String, String> distance = MapUtil.getDistance(order.getStartLng() + "," + order.getStartLat(), order.getEndLng() + "," + order.getEndLat(), 1);
+        if(null != distance){
+            Double d = Double.valueOf(distance.get("distance")) / 1000;
+            orderInfoWarpper.setEstimatedMileage(d);
+            orderInfoWarpper.setEstimatedTime(Double.valueOf(Integer.valueOf(distance.get("duration")) / 60));
+            Driver driver = driverService.selectById(uid);
+            Order orderPrice = getOrderPrice(1, d, 0, order, "", driver.getBranchOfficeId());
+            orderInfoWarpper.setEstimatedPrice(orderPrice.getEstimatedPrice());
+        }
+
         orderInfoWarpper.setDriverId(order.getDriverId());
         return orderInfoWarpper;
     }
@@ -1122,6 +1174,18 @@
         }
         this.updateAllColumnById(order);
 
+        if(null != order.getTravelId()){
+            Driver driver = driverService.selectById(order.getDriverId());
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+            request.setOrderId(order.getTravelId());
+            request.setStatus(getState(order.getState()));
+            BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(branchOffice.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request);
+        }
+
         //推送订单状态
         pushUtil.pushOrderStatus(order.getDriverId(), 2, order.getId(), order.getState());
         if(null != order.getUserId()){
@@ -1168,7 +1232,8 @@
                         .where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') "));
                 city = null != weatherCity ? weatherCity.getId().toString() : "";
             }
-            boolean badWeather = WeatherUtil.isBadWeather(city);
+//            boolean badWeather = WeatherUtil.isBadWeather(city);
+            boolean badWeather = false;
             if(badWeather){
                 Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8");
                 if(num8 > 0){
@@ -1323,6 +1388,17 @@
         }
         this.updateById(order);
 
+        if(null != order.getTravelId()){
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+            request.setOrderId(order.getTravelId());
+            request.setStatus(getState(order.getState()));
+            BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(branchOffice.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request);
+        }
+
 
         orderTransfer.setOrderId(orderId);
         orderTransfer.setOldDriverId(order.getDriverId());
@@ -1349,6 +1425,35 @@
         }
 
         return ResultUtil.success();
+    }
+
+
+    private Integer getState(Integer state){
+        switch (state){
+            case 101://待接单
+                return 1;
+            case 102://已接单
+                return 2;
+            case 103://前往预约点
+                return 3;
+            case 104://到达预约点
+                return 4;
+            case 105://开始服务
+                return 5;
+            case 106://到达目的地
+                return 6;
+            case 107://待支付
+                return 7;
+            case 108://待评价
+                return 8;
+            case 109://已完成
+                return 9;
+            case 201://转单中
+                return 11;
+            case 301://已取消
+                return 10;
+        }
+        return null;
     }
 
 
@@ -1419,6 +1524,18 @@
         order.setState(order.getOldState());
         order.setOldState(null);
         this.updateAllColumnById(order);
+        Driver driver = driverService.selectById(order.getDriverId());
+
+        if(null != order.getTravelId()){
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+            request.setOrderId(order.getTravelId());
+            request.setStatus(getState(order.getState()));
+            BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(branchOffice.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request);
+        }
 
         OrderTransfer orderTransfer = orderTransferService.selectOne(new EntityWrapper<OrderTransfer>().eq("orderId", orderId)
                 .eq("status", 1).isNull("successTime").orderBy("createTime desc limit 0, 1"));
@@ -1453,6 +1570,20 @@
 
         order.setState(301);
         this.updateById(order);
+
+        Driver driver = driverService.selectById(order.getDriverId());
+        if(null != order.getTravelId()){
+            //中台修改订单状态
+            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+            request.setOrderId(order.getTravelId());
+            request.setStatus(getState(order.getState()));
+            BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+            request.setDriverId(driver.getEmpId().toString());
+            request.setSupplierShopId(branchOffice.getEnterCode());
+            OrderUtil.modifyTravelItinerary(request);
+        }
+
+
         redisUtil.delSetValue("orderService", orderId.toString());
 
         CancelOrder cancelOrder = new CancelOrder();
@@ -1463,7 +1594,6 @@
         cancelOrder.setStatus(1);
         cancelOrder.setCreateTime(new Date());
         cancelOrderService.insert(cancelOrder);
-        Driver driver = driverService.selectById(order.getDriverId());
         if(null != driver){
             driver.setServerStatus(1);
             driverService.updateById(driver);
@@ -1571,13 +1701,14 @@
                 order.setPayType(3);
             }
 
+            Driver driver = driverService.selectById(order.getDriverId());
             if(payType == 2 && state == 108){
                 order.setPayTime(new Date());
                 if(null != order.getCouponId()){
                     UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
                     Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
 
-                    Driver driver = driverService.selectById(order.getDriverId());
+
                     AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                     accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
                     accountChangeDetail.setUserType(2);
@@ -1635,9 +1766,19 @@
             }
             this.updateById(order);
 
+            if(null != order.getTravelId()){
+                //中台修改订单状态
+                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                request.setOrderId(order.getTravelId());
+                request.setStatus(getState(order.getState()));
+                BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId());
+                request.setDriverId(driver.getEmpId().toString());
+                request.setSupplierShopId(branchOffice.getEnterCode());
+                OrderUtil.modifyTravelItinerary(request);
+            }
+
             if((payType == 1 && state == 107) || (payType == 2 && state == 108)){
                 //修改司机状态和积分
-                Driver driver = driverService.selectById(order.getDriverId());
                 driver.setServerStatus(1);
                 driverService.updateById(driver);
             }

--
Gitblit v1.7.1