From bf174ea0bf750cf0818bc7b3472cbdc7485fdf18 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 11 十月 2025 14:29:44 +0800
Subject: [PATCH] 修改bug

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java |  202 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 190 insertions(+), 12 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..f74b4e8 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()){
             //推动订单数据
@@ -751,6 +770,43 @@
      */
     @Override
     public List<HallOrderList> queryOrderHall(Integer uid, Integer pageNum, Integer pageSize) throws Exception {
+        Driver driver = driverService.selectById(uid);
+        //获取证联数据
+        if(null == driver.getCustId() || 0 == driver.getAccOpenFlag()){
+            TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
+            tradeTerminalInfo.setTerminal("1");
+            InetAddress inetAddress = InetAddress.getLocalHost();
+            String ip = inetAddress.getHostAddress();
+            tradeTerminalInfo.setIp(ip);
+            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
+            byte[] mac = networkInterface.getHardwareAddress();
+            StringBuilder macAddress = new StringBuilder();
+            for (int i = 0; i < mac.length; i++) {
+                macAddress.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
+            }
+
+            tradeTerminalInfo.setMac(macAddress.toString());
+            ZLUserInfo userInfo = ZhengLianUtil.getUserInfo(driver.getEmpId().toString(), tradeTerminalInfo);
+            if(null != userInfo){
+                driver.setCustId(userInfo.getCustId());
+                driver.setAccOpenFlag(userInfo.getAccOpenFlag());
+                driverService.updateById(driver);
+            }
+        }
+        //同步到中台
+        if(null != driver.getAccOpenFlag() && 1 == driver.getAccOpenFlag() && 0 == driver.getIsSynchronous()){
+            AddAccountInfoRequest request = new AddAccountInfoRequest();
+            request.setCustId(driver.getCustId());
+            request.setAccountNo(driver.getEmpId().toString());
+            request.setAccountName(driver.getName());
+            request.setMobile(driver.getPhone());
+            Integer status = EmployeeUtil.addAccountInfo(request);
+            if(0 == status){
+                driver.setIsSynchronous(1);
+                driverService.updateById(driver);
+            }
+        }
+
         pageNum = (pageNum - 1) * pageSize;
         String value = redisUtil.getValue("daijia:DRIVER" + uid);
         List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize);
@@ -894,6 +950,7 @@
             order.setState(102);
             order.setOrderTakingTime(new Date());
             this.updateById(order);
+
             redisUtil.unlock(orderId.toString());
 
             if(null != order.getUserId()){
@@ -901,6 +958,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);
@@ -999,6 +1077,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 +1211,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 +1269,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 +1425,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 +1462,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 +1561,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 +1607,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 +1631,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 +1738,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 +1803,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