Pu Zhibing
2 天以前 cb7e84fe6e40f3ce3ed1fe3fb3b4c0da8c847793
修改bug
12个文件已修改
785 ■■■■■ 已修改文件
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -530,9 +530,11 @@
                return ResultUtil.tokenErr();
            }
            Driver driver = driverService.selectById(uid);
            String areaCode = driver.getAreaCode();
            String areaCode = driver.getPlaceOfEmployment();
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>()
                    .eq("districtCode", areaCode)
                            .eq("state", 1)
                            .eq("remove", 0)
                    .eq("status", 2)
                    .last("LIMIT 1"));
            if(tDriverPromotionActivity!=null){
@@ -565,8 +567,8 @@
                accessToken = getAccessToken();
            }
            int index=0;
            if(ToolUtil.isEmpty(img)) {
            String urlLink = driver.getShareLink();
            if(ToolUtil.isEmpty(img) || ToolUtil.isEmpty(urlLink)) {
                RestTemplate rest = new RestTemplate();
//                String url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=" + accessToken;
                String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
@@ -574,7 +576,7 @@
                param.put("page", "pages/home/home");
                param.put("width", 430); //二维码尺寸
                param.put("scene", "driverId=" + uid); //二维码尺寸
                param.put("env_version", "trial"); //二维码尺寸
                param.put("env_version", "release"); //二维码尺寸
                HttpRequest post = HttpUtil.createPost(url);
                post.body(JSON.toJSONString(param));
@@ -584,7 +586,6 @@
                redisTemplate.opsForValue().set("DRIVER_WX_IMG" + uid, img,30, TimeUnit.DAYS);
            }
            String urlLink = driver.getShareLink();
            if(ToolUtil.isEmpty(urlLink)) {
                index=1;
                String url1 = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + accessToken;
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -260,7 +260,7 @@
        payManner as payManner,
        UNIX_TIMESTAMP(travelTime) as travelTime,
        remark as remark
        from t_order_private_car where driverId = #{driverId}
        from t_order_private_car where driverId = #{driverId} and recoveryOrder = 0
        <if test="state == 1">
            and state != 1
        </if>
@@ -318,7 +318,7 @@
        a.startLat as startLat,
        a.endLon as endLon,
        a.endLat as endLat,
        a.orderMoney as orderMoney,
        if(a.abnormal = 2 and a.abnormalStatus = 2, a.responsibilityMoney, a.orderMoney) as orderMoney,
        a.payManner as payManner,
        a.thankYouFee,
        a.trackId as trackId,
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -445,6 +445,38 @@
    private String promotionPhone;
    
    private String travelId;
    /**
     * 是否异常订单 1否 2是
     */
    @TableField("abnormal")
    private Integer abnormal;
    private Long promotionActivityId;
    /**
     * 中台是否已创建订单(0=否,1=是)
     */
    private Integer isCreated;
    /**
     * 是否是追缴单(0=否,1=是)
     */
    private Integer recoveryOrder;
    /**
     * 是否生成追缴单(0=否,1=是)
     */
    private Integer isGenerateRecoveryOrder;
    /**
     * 原始订单id
     */
    private Integer oldOrderId;
    private Integer abnormalStatus;
    private Integer responsibilityType;
    private BigDecimal responsibilityMoney;
    private String abnormalRemark;
    public String getPromotionUser() {
@@ -1206,7 +1238,87 @@
    public void setTravelId(String travelId) {
        this.travelId = travelId;
    }
    public Integer getAbnormal() {
        return abnormal;
    }
    public void setAbnormal(Integer abnormal) {
        this.abnormal = abnormal;
    }
    public Long getPromotionActivityId() {
        return promotionActivityId;
    }
    public void setPromotionActivityId(Long promotionActivityId) {
        this.promotionActivityId = promotionActivityId;
    }
    public Integer getIsCreated() {
        return isCreated;
    }
    public void setIsCreated(Integer isCreated) {
        this.isCreated = isCreated;
    }
    public Integer getRecoveryOrder() {
        return recoveryOrder;
    }
    public void setRecoveryOrder(Integer recoveryOrder) {
        this.recoveryOrder = recoveryOrder;
    }
    public Integer getIsGenerateRecoveryOrder() {
        return isGenerateRecoveryOrder;
    }
    public void setIsGenerateRecoveryOrder(Integer isGenerateRecoveryOrder) {
        this.isGenerateRecoveryOrder = isGenerateRecoveryOrder;
    }
    public Integer getOldOrderId() {
        return oldOrderId;
    }
    public void setOldOrderId(Integer oldOrderId) {
        this.oldOrderId = oldOrderId;
    }
    public Integer getAbnormalStatus() {
        return abnormalStatus;
    }
    public void setAbnormalStatus(Integer abnormalStatus) {
        this.abnormalStatus = abnormalStatus;
    }
    public Integer getResponsibilityType() {
        return responsibilityType;
    }
    public void setResponsibilityType(Integer responsibilityType) {
        this.responsibilityType = responsibilityType;
    }
    public BigDecimal getResponsibilityMoney() {
        return responsibilityMoney;
    }
    public void setResponsibilityMoney(BigDecimal responsibilityMoney) {
        this.responsibilityMoney = responsibilityMoney;
    }
    public String getAbnormalRemark() {
        return abnormalRemark;
    }
    public void setAbnormalRemark(String abnormalRemark) {
        this.abnormalRemark = abnormalRemark;
    }
    @Override
    public String toString() {
        return "OrderPrivateCar{" +
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -232,7 +232,6 @@
                driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
        orderPrivateCar.setState(2);
        orderPrivateCar.setSnatchOrderTime(new Date());
        //调用高德创建轨迹
//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
//        String track = gdFalconUtil.createTrack(s);
@@ -248,7 +247,7 @@
        // 是否推广订单
        Integer promotion = isPromotion(orderPrivateCar.getUserId());
        Integer promotion = isPromotion(orderPrivateCar.getUserId(), driver.getPlaceOfEmployment());
        if(null != promotion){
            orderPrivateCar.setPromotion(2);
            Driver driver1 = driverService.selectById(promotion);
@@ -277,18 +276,20 @@
            orderPrivateCar.setTravelId(travelItinerary);
        }else{
            //改派抢单
            Company company1 = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderPrivateCar.getTravelId());
            request1.setStatus(orderPrivateCar.getState());
            request1.setDriverId(driver.getEmpId().toString());
            if(2 == orderPrivateCar.getPromotion()){
                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request1.setPromoterId(driver1.getEmpId().toString());
            if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
                Company company1 = companyService.selectById(driver.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                request1.setOrderId(orderPrivateCar.getTravelId());
                request1.setStatus(orderPrivateCar.getState());
                request1.setDriverId(driver.getEmpId().toString());
                if(2 == orderPrivateCar.getPromotion()){
                    Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                    request1.setPromoterId(driver1.getEmpId().toString());
                }
                request1.setSupplierShopId(company1.getEnterCode());
                OrderUtil.modifyTravelItinerary(request1);
            }
            request1.setSupplierShopId(company1.getEnterCode());
            OrderUtil.modifyTravelItinerary(request1);
        }
        
        this.updateById(orderPrivateCar);
@@ -375,11 +376,11 @@
    }
    private Integer isPromotion(Integer userId){
    private Integer isPromotion(Integer userId, String code){
        UserInfo userInfo = userInfoMapper.selectById(userId);
        if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()>System.currentTimeMillis()){
            String registAreaCode = userInfo.getRegistAreaCode();
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1).eq("districtCode", registAreaCode).last(" and  now() between  startTime and endTime AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1)
                    .eq("districtCode", code).last(" and  now() between  startTime and endTime AND FIND_IN_SET(" + 1 + ", bizType) limit 1"));
            if(tDriverPromotionActivity!=null){
                return userInfo.getBindDriverId();
            }
@@ -570,19 +571,21 @@
        }
        this.updateById(orderPrivateCar);
    
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
        Company company = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
        request.setOrderId(orderPrivateCar.getTravelId());
        request.setStatus(orderPrivateCar.getState());
        request.setDriverId(driver.getEmpId().toString());
        if(2 == orderPrivateCar.getPromotion()){
            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
            request.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
            Company company = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
            request.setOrderId(orderPrivateCar.getTravelId());
            request.setStatus(orderPrivateCar.getState());
            request.setDriverId(driver.getEmpId().toString());
            if(2 == orderPrivateCar.getPromotion()){
                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request.setPromoterId(driver1.getEmpId().toString());
            }
            request.setSupplierShopId(company.getEnterCode());
            OrderUtil.modifyTravelItinerary(request);
        }
        request.setSupplierShopId(company.getEnterCode());
        OrderUtil.modifyTravelItinerary(request);
        // TODO: 2020/6/5 推送状态
        OrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
@@ -652,18 +655,20 @@
        this.updateById(orderPrivateCar);
        
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
        Company company = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
        request.setOrderId(orderPrivateCar.getTravelId());
        request.setStatus(7);
        request.setDriverId(driver.getEmpId().toString());
        if(2 == orderPrivateCar.getPromotion()){
            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
            request.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
            Company company = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
            request.setOrderId(orderPrivateCar.getTravelId());
            request.setStatus(7);
            request.setDriverId(driver.getEmpId().toString());
            if(2 == orderPrivateCar.getPromotion()){
                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request.setPromoterId(driver1.getEmpId().toString());
            }
            request.setSupplierShopId(company.getEnterCode());
            OrderUtil.modifyTravelItinerary(request);
        }
        request.setSupplierShopId(company.getEnterCode());
        OrderUtil.modifyTravelItinerary(request);
        
        pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
@@ -832,6 +837,9 @@
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                Integer id = jsonObject.getInteger("id");
                Double amount = jsonObject.getDouble("amount");
                if(amount == 0){
                    continue;
                }
                OrderAdditionalFee orderAdditionalFee = new OrderAdditionalFee();
                orderAdditionalFee.setOrderType(1);
                orderAdditionalFee.setOrderId(orderId);
@@ -846,18 +854,20 @@
        this.updateById(orderPrivateCar);
    
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
        Company company1 = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
        request1.setOrderId(orderPrivateCar.getTravelId());
        request1.setStatus(orderPrivateCar.getState());
        request1.setDriverId(driver.getEmpId().toString());
        if(2 == orderPrivateCar.getPromotion()){
            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
            request1.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
            Company company1 = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderPrivateCar.getTravelId());
            request1.setStatus(orderPrivateCar.getState());
            request1.setDriverId(driver.getEmpId().toString());
            if(2 == orderPrivateCar.getPromotion()){
                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                request1.setPromoterId(driver1.getEmpId().toString());
            }
            request1.setSupplierShopId(company1.getEnterCode());
            OrderUtil.modifyTravelItinerary(request1);
        }
        request1.setSupplierShopId(company1.getEnterCode());
        OrderUtil.modifyTravelItinerary(request1);
        pushUtil.removeTask(orderId, 1);//删除定时任务,结束推送数据
        systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderPrivateCar.getUserId(), 1);
@@ -933,7 +943,15 @@
        }
        Map<String, Object> map = new HashMap<>();
        map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:orderPrivateCar.getOrderMoney());//订单金额
        if(orderPrivateCar.getState() == 5){
            map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:orderPrivateCar.getOrderMoney());//订单金额
        }else{
            if(orderPrivateCar.getAbnormal() == 2 && orderPrivateCar.getResponsibilityType() > 2 && orderPrivateCar.getAbnormalStatus() == 2){
                map.put("orderMoney", orderPrivateCar.getResponsibilityMoney());
            }else{
                map.put("orderMoney", orderPrivateCar.getOrderMoney()==null?0:orderPrivateCar.getOrderMoney());//订单金额
            }
        }
        map.put("startMileage", orderPrivateCar.getStartMileage());//起步价
        map.put("startMoney", orderPrivateCar.getStartMoney());//起步价
        map.put("mileageKilometers", orderPrivateCar.getMileageKilometers());//里程费
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -132,19 +132,14 @@
     */
    @TableField("state")
    private Integer state;
    /**
     * 绑定的司机id
     */
    @TableField("bindDriverId")
    private Integer bindDriverId;
    /**
     * 绑定司机有效期
     */
    private Date bindExpireDate;
    /**
     * 中台用户ID
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -412,26 +412,6 @@
        if(registeredWarpper.getCompanyId()==null){
            return ResultUtil.error("请选择服务商");
        }
        String code = registeredWarpper.getPlaceOfEmployment();
        Company query = companyCityService.query(code);
        if(null == query){
            return ResultUtil.error("选择从业地暂未开通业务");
        }
        if(null != query){
            switch (query.getType()){
                case 1://平台
                    driver.setCompanyId(query.getId());
                    break;
                case 2://分公司
                    driver.setCompanyId(query.getId());
                    break;
                case 3://加盟商
                    driver.setCompanyId(query.getSuperiorId());
                    driver.setFranchiseeId(query.getId());
                    break;
            }
        }
        driver.setHeadImgUrl(registeredWarpper.getHeadImgUrl());
        driver.setIdCardImgUrl1(registeredWarpper.getIdCardImgUrl1());
        driver.setIdCardImgUrl2(registeredWarpper.getIdCardImgUrl2());
@@ -658,7 +638,10 @@
                    return ResultUtil.error("车辆正在使用中");
                }
            }
            //专车业务需要校验
//            if(0 == driver.getIsSynchronous() && type.contains("1")){
//                return ResultUtil.error("请先开通钱包");
//            }
            //判断车辆是否正在使用中
            Car car = carService.selectById(driver.getCarId());
            if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -387,7 +387,7 @@
                break;
            case 2://出租
                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
                if(null != orderTaxi && orderTaxi.getType() == 2){
                if((null != orderTaxi && orderTaxi.getType() == 2) || (null != orderTaxi && orderTaxi.getState() == 11)){
                    map = orderTaxiService.queryPushOrder(orderId);
                }else{
                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
@@ -1232,19 +1232,21 @@
                orderPrivateCar.setState(8);
                orderPrivateCarService.updateById(orderPrivateCar);
    
                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                Company company1 = companyService.selectById(driver.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                request1.setOrderId(orderPrivateCar.getTravelId());
                request1.setStatus(orderPrivateCar.getState());
                request1.setDriverId(driver.getEmpId().toString());
                if(2 == orderPrivateCar.getPromotion()){
                    Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                    request1.setPromoterId(driver1.getEmpId().toString());
                if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
                    Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
                    Company company1 = companyService.selectById(driver.getCompanyId());
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(orderPrivateCar.getTravelId());
                    request1.setStatus(orderPrivateCar.getState());
                    request1.setDriverId(driver.getEmpId().toString());
                    if(2 == orderPrivateCar.getPromotion()){
                        Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                        request1.setPromoterId(driver1.getEmpId().toString());
                    }
                    request1.setSupplierShopId(company1.getEnterCode());
                    OrderUtil.modifyTravelItinerary(request1);
                }
                request1.setSupplierShopId(company1.getEnterCode());
                OrderUtil.modifyTravelItinerary(request1);
                
                userId = orderPrivateCar.getUserId();
                driverId = orderPrivateCar.getDriverId();
@@ -1276,19 +1278,21 @@
                orderTaxi.setState(8);
                orderTaxiService.updateById(orderTaxi);
    
                Driver driver1 = driverService.selectById(orderTaxi.getDriverId());
                Company company = companyService.selectById(driver1.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                request.setOrderId(orderTaxi.getTravelId());
                request.setStatus(orderTaxi.getState());
                request.setDriverId(driver1.getEmpId().toString());
                if(2 == orderTaxi.getPromotion()){
                    Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
                    request.setPromoterId(driver2.getEmpId().toString());
                if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
                    Driver driver1 = driverService.selectById(orderTaxi.getDriverId());
                    Company company = companyService.selectById(driver1.getCompanyId());
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                    request.setOrderId(orderTaxi.getTravelId());
                    request.setStatus(orderTaxi.getState());
                    request.setDriverId(driver1.getEmpId().toString());
                    if(2 == orderTaxi.getPromotion()){
                        Driver driver2 = driverService.selectById(orderTaxi.getPromotionDriverId());
                        request.setPromoterId(driver2.getEmpId().toString());
                    }
                    request.setSupplierShopId(company.getEnterCode());
                    OrderUtil.modifyTravelItinerary(request);
                }
                request.setSupplierShopId(company.getEnterCode());
                OrderUtil.modifyTravelItinerary(request);
                
                userId = orderTaxi.getUserId();
                driverId = orderTaxi.getDriverId();
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -193,20 +193,23 @@
                        orderPrivateCar.setOldState(orderPrivateCar.getState());
                        orderPrivateCar.setState(11);
                        orderPrivateCar.setReassignNotice(2);
                        orderPrivateCar.setIsReassign(2);
                        orderPrivateCarService.updateById(orderPrivateCar);
                        Company company = companyService.selectById(driver.getCompanyId());
                        //中台修改订单状态
                        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                        request.setOrderId(orderPrivateCar.getTravelId());
                        request.setStatus(orderPrivateCar.getState());
                        request.setDriverId(driver.getEmpId().toString());
                        if (2 == orderPrivateCar.getPromotion()) {
                            Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                            request.setPromoterId(driver1.getEmpId().toString());
                        if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
                            Company company = companyService.selectById(driver.getCompanyId());
                            //中台修改订单状态
                            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                            request.setOrderId(orderPrivateCar.getTravelId());
                            request.setStatus(orderPrivateCar.getState());
                            request.setDriverId(driver.getEmpId().toString());
                            if (2 == orderPrivateCar.getPromotion()) {
                                Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                                request.setPromoterId(driver1.getEmpId().toString());
                            }
                            request.setSupplierShopId(company.getEnterCode());
                            OrderUtil.modifyTravelItinerary(request);
                        }
                        request.setSupplierShopId(company.getEnterCode());
                        OrderUtil.modifyTravelItinerary(request);
                        //添加已收入明细
@@ -219,20 +222,23 @@
                        orderTaxi.setOldState(orderTaxi.getState());
                        orderTaxi.setState(11);
                        orderTaxi.setReassignNotice(2);
                        orderTaxi.setIsReassign(2);
                        orderTaxiService.updateById(orderTaxi);
                        Company company1 = companyService.selectById(driver.getCompanyId());
                        //中台修改订单状态
                        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                        request1.setOrderId(orderTaxi.getTravelId());
                        request1.setStatus(orderTaxi.getState());
                        request1.setDriverId(driver.getEmpId().toString());
                        if (2 == orderTaxi.getPromotion()) {
                            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                            request1.setPromoterId(driver1.getEmpId().toString());
                        if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
                            Company company1 = companyService.selectById(driver.getCompanyId());
                            //中台修改订单状态
                            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                            request1.setOrderId(orderTaxi.getTravelId());
                            request1.setStatus(orderTaxi.getState());
                            request1.setDriverId(driver.getEmpId().toString());
                            if (2 == orderTaxi.getPromotion()) {
                                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                                request1.setPromoterId(driver1.getEmpId().toString());
                            }
                            request1.setSupplierShopId(company1.getEnterCode());
                            OrderUtil.modifyTravelItinerary(request1);
                        }
                        request1.setSupplierShopId(company1.getEnterCode());
                        OrderUtil.modifyTravelItinerary(request1);
                        //添加已收入明细
//                        incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney());
@@ -245,6 +251,7 @@
                        orderLogistics.setOldState(orderLogistics.getState());
                        orderLogistics.setState(11);
                        orderLogistics.setReassignNotice(2);
                        orderLogistics.setIsReassign(2);
                        orderLogisticsService.updateById(orderLogistics);
                        //添加已收入明细
@@ -255,6 +262,7 @@
                        orderLogistics1.setOldState(orderLogistics1.getState());
                        orderLogistics1.setState(11);
                        orderLogistics1.setReassignNotice(2);
                        orderLogistics1.setIsReassign(2);
                        orderLogisticsService.updateById(orderLogistics1);
                        //添加已收入明细
@@ -298,18 +306,20 @@
                orderPrivateCar.setReassignNotice(0);
                orderPrivateCarService.updateById(orderPrivateCar);
                Company company = companyService.selectById(driver.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                request.setOrderId(orderPrivateCar.getTravelId());
                request.setStatus(orderPrivateCar.getState());
                request.setDriverId(driver.getEmpId().toString());
                if (2 == orderPrivateCar.getPromotion()) {
                    Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                    request.setPromoterId(driver1.getEmpId().toString());
                if(ToolUtil.isNotEmpty(orderPrivateCar.getTravelId())){
                    Company company = companyService.selectById(driver.getCompanyId());
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
                    request.setOrderId(orderPrivateCar.getTravelId());
                    request.setStatus(orderPrivateCar.getState());
                    request.setDriverId(driver.getEmpId().toString());
                    if (2 == orderPrivateCar.getPromotion()) {
                        Driver driver1 = driverService.selectById(orderPrivateCar.getPromotionDriverId());
                        request.setPromoterId(driver1.getEmpId().toString());
                    }
                    request.setSupplierShopId(company.getEnterCode());
                    OrderUtil.modifyTravelItinerary(request);
                }
                request.setSupplierShopId(company.getEnterCode());
                OrderUtil.modifyTravelItinerary(request);
                break;
            case 2:
                OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
@@ -319,18 +329,20 @@
                orderTaxi.setState(orderTaxi.getOldState());
                orderTaxi.setReassignNotice(0);
                orderTaxiService.updateById(orderTaxi);
                Company company1 = companyService.selectById(driver.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                request1.setOrderId(orderTaxi.getTravelId());
                request1.setStatus(orderTaxi.getState());
                request1.setDriverId(driver.getEmpId().toString());
                if (2 == orderTaxi.getPromotion()) {
                    Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                    request1.setPromoterId(driver1.getEmpId().toString());
                if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
                    Company company1 = companyService.selectById(driver.getCompanyId());
                    //中台修改订单状态
                    ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                    request1.setOrderId(orderTaxi.getTravelId());
                    request1.setStatus(orderTaxi.getState());
                    request1.setDriverId(driver.getEmpId().toString());
                    if (2 == orderTaxi.getPromotion()) {
                        Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                        request1.setPromoterId(driver1.getEmpId().toString());
                    }
                    request1.setSupplierShopId(company1.getEnterCode());
                    OrderUtil.modifyTravelItinerary(request1);
                }
                request1.setSupplierShopId(company1.getEnterCode());
                OrderUtil.modifyTravelItinerary(request1);
                break;
        }
        reassignMapper.delete(new EntityWrapper<Reassign>().eq("orderId",reassign.getOrderId()).eq("orderType",reassign.getOrderType()));
@@ -541,6 +553,7 @@
                    orderCrossCity.setOldState(orderCrossCity.getState());
                    orderCrossCity.setState(11);
                    orderCrossCity.setReassignNotice(2);
                    orderCrossCity.setIsReassign(2);
                    orderCrossCityService.updateById(orderCrossCity);
                    //添加已收入明细
@@ -548,13 +561,13 @@
                }
                systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid, 1);
                //开始推送调度单
                Map<String, String> map = new HashMap<>();
                map.put("orderId", reassign.getOrderId().toString());
                map.put("orderType", reassign.getOrderType().toString());
                List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
                for (Dispatch dispatch : dispatches) {
                    jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
                }
//                Map<String, String> map = new HashMap<>();
//                map.put("orderId", reassign.getOrderId().toString());
//                map.put("orderType", reassign.getOrderType().toString());
//                List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
//                for (Dispatch dispatch : dispatches) {
//                    jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
//                }
            }
            if (reassign.getPayType() == 4) {
@@ -619,14 +632,14 @@
                        reassign.setPayOrder(order_id);
                        reassign.setPayTime(new Date());
                        this.updateById(reassign);
                        //开始推送调度单
                        Map<String, String> map = new HashMap<>();
                        map.put("orderId", reassign.getOrderId().toString());
                        map.put("orderType", reassign.getOrderType().toString());
                        List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
                        for (Dispatch dispatch : dispatches) {
                            jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
                        }
//                        //开始推送调度单
//                        Map<String, String> map = new HashMap<>();
//                        map.put("orderId", reassign.getOrderId().toString());
//                        map.put("orderType", reassign.getOrderType().toString());
//                        List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
//                        for (Dispatch dispatch : dispatches) {
//                            jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
//                        }
                    }
                    query.setState(2);
                    query.setCode(order_id);
@@ -638,6 +651,7 @@
                        orderCrossCity1.setOldState(orderCrossCity1.getState());
                        orderCrossCity1.setState(11);
                        orderCrossCity1.setReassignNotice(2);
                        orderCrossCity1.setIsReassign(2);
                        orderCrossCityService.updateById(orderCrossCity1);
                        System.out.println("==============跨城修改改派通知状态完毕===================" + orderCrossCity1);
@@ -683,6 +697,7 @@
                        orderPrivateCar.setOldState(orderPrivateCar.getState());
                        orderPrivateCar.setState(11);
                        orderPrivateCar.setReassignNotice(2);
                        orderPrivateCar.setIsReassign(2);
                        orderPrivateCarService.updateById(orderPrivateCar);
                        //添加已收入明细
@@ -694,6 +709,7 @@
                        orderTaxi.setOldState(orderTaxi.getState());
                        orderTaxi.setState(11);
                        orderTaxi.setReassignNotice(2);
                        orderTaxi.setIsReassign(2);
                        orderTaxiService.updateById(orderTaxi);
                        //添加已收入明细
@@ -705,6 +721,7 @@
                        orderLogistics.setOldState(orderLogistics.getState());
                        orderLogistics.setState(11);
                        orderLogistics.setReassignNotice(2);
                        orderLogistics.setIsReassign(2);
                        orderLogisticsService.updateById(orderLogistics);
                        //添加已收入明细
@@ -716,6 +733,7 @@
                        orderLogistics1.setOldState(orderLogistics1.getState());
                        orderLogistics1.setState(11);
                        orderLogistics1.setReassignNotice(2);
                        orderLogistics1.setIsReassign(2);
                        orderLogisticsService.updateById(orderLogistics1);
                        //添加已收入明细
@@ -724,14 +742,14 @@
                        break;
                }
                systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : (type == 2 ? "支付宝" : "云闪付")) + "成功支付改派申请费用!", reassign.getOriginalDriverId(), 1);
                //开始推送调度单
                Map<String, String> map = new HashMap<>();
                map.put("orderId", reassign.getOrderId().toString());
                map.put("orderType", reassign.getOrderType().toString());
                List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
                for (Dispatch dispatch : dispatches) {
                    jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
                }
//                //开始推送调度单
//                Map<String, String> map = new HashMap<>();
//                map.put("orderId", reassign.getOrderId().toString());
//                map.put("orderType", reassign.getOrderType().toString());
//                List<Dispatch> dispatches = dispatchMapper.queryDispatchs(driver.getFranchiseeId() == null ? driver.getCompanyId() : driver.getFranchiseeId(), 1);
//                for (Dispatch dispatch : dispatches) {
//                    jgPushUtil.push(2, "有新的改派订单需要处理,请及时处理!", "订单改派", map, "DISPATCH" + dispatch.getId());
//                }
                System.out.println("==============其他订单完毕===================");
            } else {
                System.err.println("预支付数据异常(orderId = " + id + ")");
@@ -771,50 +789,58 @@
                    }
                    OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
                    List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
                    int size=18;
                    for (int i = 1; i <= size; i++) {
                        int finalI = i;
                        PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                        System.out.println("pushOrder:" + pushOrder);
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        list = list.stream().filter(e -> e.getId() != uid).collect(Collectors.toList());
                        OrderTaxi orderTaxi1 = orderTaxiService.selectById(orderTaxi.getId());
                        if (list.size() > 0) {
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                            lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                            for (Driver driver : list) {//开始进行推送
                                //查询是否在限制推单范围内
                                boolean bo = false;
                                for (Integer integer : integers) {
                                    if (integer.compareTo(driver.getId()) == 0) {
                                        bo = true;
                                        break;
                    int num = 0;
                    for (int j = 0; j < 6; j++) {
                        Boolean push = false;
                        for (int i = 1; i <= querys.size(); i++) {
                            int finalI = i;
                            PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                            System.out.println("pushOrder:" + pushOrder);
                            //获取空闲司机
                            List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                            list = list.stream().filter(e -> e.getId() != uid).collect(Collectors.toList());
                            OrderTaxi orderTaxi1 = orderTaxiService.selectById(orderTaxi.getId());
                            if (list.size() > 0) {
                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                                for (Driver driver : list) {//开始进行推送
                                    //查询是否在限制推单范围内
                                    boolean bo = false;
                                    for (Integer integer : integers) {
                                        if (integer.compareTo(driver.getId()) == 0) {
                                            bo = true;
                                            break;
                                        }
                                    }
                                    if (bo) {
                                        continue;
                                    }
                                    pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
                                }
                                if (bo) {
                                    continue;
                                }
                                pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
                            }
                            Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                            Integer state = orderTaxi1.getState();
                            if (state != 1 || state!= 11) {
                                orderIds.remove(orderTaxi.getId());
                                push = true;
                                break;
                            }
                            if (num == 18 && (state == 1 || state==11)) {
                                System.err.println("结束改派退单-------------修改订单为取消状态");
                                pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, 11);
                                pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, 10);
                                orderTaxi1.setState(10);
                                orderTaxiService.updateById(orderTaxi1);
                                orderIds.remove(orderTaxi.getId());
                            }
                        }
                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                        Integer state = orderTaxi1.getState();
                        if (state != 1 || state!= 11) {
                            orderIds.remove(orderTaxi.getId());
                        if(push){
                            break;
                        }
                        if (i == 18 && (state == 1 || state==11)) {
                            System.err.println("结束改派退单-------------修改订单为取消状态");
                            pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
                            pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, 10);
                            orderTaxi1.setState(10);
                            orderTaxiService.updateById(orderTaxi1);
                            orderIds.remove(orderTaxi.getId());
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
@@ -843,57 +869,67 @@
                    }
                    OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
                    List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
                    int size=18;
                    for (int i = 1; i <= size; i++) {
                        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
                        if (null == orderPrivateCar || (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11)) {
                            break;
                        }
                        int finalI = i;
                        PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                        System.out.println("pushOrder:" + pushOrder);
                    int num = 0;
                    for (int j = 0; j < 6; j++) {
                        Boolean push = false;
                        for (int i = 1; i <= querys.size(); i++) {
                            num++;
                            OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
                            if (null == orderPrivateCar || (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11)) {
                                push = true;
                                break;
                            }
                            int finalI = i;
                            PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                            System.out.println("pushOrder:" + pushOrder);
                        if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) {
                            break;
                        }
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                        list = list.stream().filter(e -> !e.getId().equals(uid)).collect(Collectors.toList());
                        if (list.size() > 0) {
                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                            lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                            for (Driver driver : list) {//开始进行推送
                                boolean bo = false;
                                for (Integer integer : integers) {
                                    if (integer.compareTo(driver.getId()) == 0) {
                                        bo = true;
                                        break;
                            if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) {
                                push = true;
                                break;
                            }
                            //获取空闲司机
                            List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                            list = list.stream().filter(e -> !e.getId().equals(uid)).collect(Collectors.toList());
                            if (list.size() > 0) {
                                double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
                                int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
                                lastIndex = lastIndex == 0 ? list.size() : lastIndex;
                                list = list.subList(0, lastIndex);//获取空闲司机中占比数据
                                for (Driver driver : list) {//开始进行推送
                                    boolean bo = false;
                                    for (Integer integer : integers) {
                                        if (integer.compareTo(driver.getId()) == 0) {
                                            bo = true;
                                            break;
                                        }
                                    }
                                    if (bo) {
                                        continue;
                                    }
                                    pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
                                }
                                if (bo) {
                                    continue;
                                }
                                pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
                            }
                            Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                            Integer state = orderPrivateCar.getState();
                            if (state > 1 && state != 11) {
                                orderIds.remove(orderPrivateCar.getId());
                                push = true;
                                return;
                            }
                            if (num == 18 && (state == 1 || state==11)) {
                                System.err.println("结束改派退单-------------修改订单为取消状态");
                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 11);
                                pushUtil.pushReassignEndCancel(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 10);
                                orderPrivateCar.setState(10);
                                orderPrivateCarService.updateById(orderPrivateCar);
                                orderIds.remove(orderPrivateCar.getId());
                            }
                        }
                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                        Integer state = orderPrivateCar.getState();
                        if (state > 1 && state != 11) {
                            orderIds.remove(orderPrivateCar.getId());
                            return;
                        if(push){
                            break;
                        }
                        if (i == 18 && (state == 1 || state==11)) {
                            System.err.println("结束改派退单-------------修改订单为取消状态");
                            pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                            pushUtil.pushReassignEndCancel(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 10);
                            orderPrivateCar.setState(10);
                            orderPrivateCarService.updateById(orderPrivateCar);
                            orderIds.remove(orderPrivateCar.getId());
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -109,7 +109,7 @@
     * @param orderId
     * @param orderType
     */
    public void pushEndPush(Integer type, Integer uid, Integer orderId, Integer orderType) {
    public void pushEndPush(Integer type, Integer uid, Integer orderId, Integer orderType, Integer state) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 200);
        jsonObject.put("msg", "SUCCESS");
@@ -117,6 +117,7 @@
        Map<String, Object> map = new HashMap<>();
        map.put("orderId", orderId);
        map.put("orderType", orderType);
        map.put("state", state);
        jsonObject.put("data", map);
        //调用推送
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -528,9 +528,9 @@
        tradePayOffData.setPaymentInfos(paymentInfoRequests);
        List<GoodsInfo> goodsInfo = new ArrayList<>();
        GoodsInfo goodsInfo1 = new GoodsInfo();
        goodsInfo1.setMerchantCode("B00000905");
        goodsInfo1.setCustId("CB0000004686");
        goodsInfo1.setCustName("证联消费平台交易客户");
        goodsInfo1.setMerchantCode("prod".equals(qianYunTongConfig.getActiveProfile()) ? "B00001404" : "B00000905");
        goodsInfo1.setCustId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "CB0000004853" : "CB0000004686");
        goodsInfo1.setCustName("prod".equals(qianYunTongConfig.getActiveProfile()) ? "黔南云码通数字产业运营有限公司" : "证联消费平台交易客户");
        goodsInfo1.setBusinessType("10408");
        goodsInfo1.setAgreementNo("prod".equals(qianYunTongConfig.getActiveProfile()) ? "00000402485377063581755054680461" : "00000000468618354161754464398681");
        goodsInfo1.setProfitSharing("1");
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -148,7 +148,7 @@
        payManner as payManner,
        UNIX_TIMESTAMP(travelTime) as travelTime,
        remark as remark
        from t_order_taxi where driverId = #{driverId}
        from t_order_taxi where driverId = #{driverId} and recoveryOrder = 0
        <if test="state == 1">
            and state != 1
        </if>
@@ -275,7 +275,7 @@
        a.startLat as startLat,
        a.endLon as endLon,
        a.endLat as endLat,
        a.orderMoney as orderMoney,
        if(a.abnormal = 2 and a.abnormalStatus = 2, a.responsibilityMoney, a.orderMoney) as orderMoney,
        a.payManner as payManner,
        a.thankYouFee,
        a.trackId as trackId,
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -222,7 +222,7 @@
//        }
        // 是否推广订单
        Integer promotion = isPromotion(orderTaxi.getUserId());
        Integer promotion = isPromotion(orderTaxi.getUserId(), driver.getPlaceOfEmployment());
        if(promotion!=null){
            orderTaxi.setPromotion(2);
            Driver driver1 = driverService.selectById(promotion);
@@ -251,18 +251,20 @@
            orderTaxi.setTravelId(travelItinerary);
        }else{
            //改派抢单
            Company company1 = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderTaxi.getTravelId());
            request1.setStatus(orderTaxi.getState());
            request1.setDriverId(driver.getEmpId().toString());
            if(2 == orderTaxi.getPromotion()){
                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                request1.setPromoterId(driver1.getEmpId().toString());
            if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
                Company company1 = companyService.selectById(driver.getCompanyId());
                //中台修改订单状态
                ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
                request1.setOrderId(orderTaxi.getTravelId());
                request1.setStatus(orderTaxi.getState());
                request1.setDriverId(driver.getEmpId().toString());
                if(2 == orderTaxi.getPromotion()){
                    Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                    request1.setPromoterId(driver1.getEmpId().toString());
                }
                request1.setSupplierShopId(company1.getEnterCode());
                OrderUtil.modifyTravelItinerary(request1);
            }
            request1.setSupplierShopId(company1.getEnterCode());
            OrderUtil.modifyTravelItinerary(request1);
        }
        this.updateById(orderTaxi);
@@ -336,11 +338,11 @@
        return ResultUtil.success(orderTaxi.getId());
    }
    private Integer isPromotion(Integer userId){
    private Integer isPromotion(Integer userId, String code){
        UserInfo userInfo = userInfoMapper.selectById(userId);
        if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
            String registAreaCode = userInfo.getRegistAreaCode();
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1).eq("districtCode", registAreaCode).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1"));
            TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1)
                    .eq("districtCode", code).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 2 + ", bizType) limit 1"));
            if(tDriverPromotionActivity!=null){
                return userInfo.getBindDriverId();
            }
@@ -379,6 +381,7 @@
        orderTaxi.setOrderType(orderPrivateCar.getOrderType());
        orderTaxi.setOrderSource(orderPrivateCar.getOrderSource());
        orderTaxi.setIsDelete(1);
        orderTaxi.setIsReassign(1);
        return orderTaxi;
    }
@@ -531,19 +534,21 @@
        }
        this.updateById(orderTaxi);
    
        Driver driver = driverService.selectById(orderTaxi.getDriverId());
        Company company = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
        request.setOrderId(orderTaxi.getTravelId());
        request.setStatus(orderTaxi.getState());
        request.setDriverId(driver.getEmpId().toString());
        if(2 == orderTaxi.getPromotion()){
            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
            request.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
            Driver driver = driverService.selectById(orderTaxi.getDriverId());
            Company company = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
            request.setOrderId(orderTaxi.getTravelId());
            request.setStatus(orderTaxi.getState());
            request.setDriverId(driver.getEmpId().toString());
            if(2 == orderTaxi.getPromotion()){
                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                request.setPromoterId(driver1.getEmpId().toString());
            }
            request.setSupplierShopId(company.getEnterCode());
            OrderUtil.modifyTravelItinerary(request);
        }
        request.setSupplierShopId(company.getEnterCode());
        OrderUtil.modifyTravelItinerary(request);
        // TODO: 2020/6/5 推送状态
        new Thread(new Runnable() {
@@ -589,18 +594,20 @@
        this.updateById(orderTaxi);
    
        Driver driver = driverService.selectById(orderTaxi.getDriverId());
        Company company = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
        request.setOrderId(orderTaxi.getTravelId());
        request.setStatus(orderTaxi.getState());
        request.setDriverId(driver.getEmpId().toString());
        if(2 == orderTaxi.getPromotion()){
            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
            request.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
            Company company = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
            request.setOrderId(orderTaxi.getTravelId());
            request.setStatus(orderTaxi.getState());
            request.setDriverId(driver.getEmpId().toString());
            if(2 == orderTaxi.getPromotion()){
                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                request.setPromoterId(driver1.getEmpId().toString());
            }
            request.setSupplierShopId(company.getEnterCode());
            OrderUtil.modifyTravelItinerary(request);
        }
        request.setSupplierShopId(company.getEnterCode());
        OrderUtil.modifyTravelItinerary(request);
        //回滚司机状态为空闲
        driver.setState(2);
@@ -642,18 +649,20 @@
        this.updateById(orderTaxi);
    
        Driver driver = driverService.selectById(orderTaxi.getDriverId());
        Company company1 = companyService.selectById(driver.getCompanyId());
        //中台修改订单状态
        ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
        request1.setOrderId(orderTaxi.getTravelId());
        request1.setStatus(orderTaxi.getState());
        request1.setDriverId(driver.getEmpId().toString());
        if(2 == orderTaxi.getPromotion()){
            Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
            request1.setPromoterId(driver1.getEmpId().toString());
        if(ToolUtil.isNotEmpty(orderTaxi.getTravelId())){
            Company company1 = companyService.selectById(driver.getCompanyId());
            //中台修改订单状态
            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
            request1.setOrderId(orderTaxi.getTravelId());
            request1.setStatus(orderTaxi.getState());
            request1.setDriverId(driver.getEmpId().toString());
            if(2 == orderTaxi.getPromotion()){
                Driver driver1 = driverService.selectById(orderTaxi.getPromotionDriverId());
                request1.setPromoterId(driver1.getEmpId().toString());
            }
            request1.setSupplierShopId(company1.getEnterCode());
            OrderUtil.modifyTravelItinerary(request1);
        }
        request1.setSupplierShopId(company1.getEnterCode());
        OrderUtil.modifyTravelItinerary(request1);
        //回滚司机状态为空闲
        driver.setState(2);