liujie
2025-08-05 20567082b4ce546df740650a0223fb56d69983f7
改派
5个文件已修改
105 ■■■■ 已修改文件
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -440,7 +440,7 @@
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额,4=云闪付)", name = "payType", required = false, dataType = "int"),
            @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"),
            @ApiImplicitParam(value = "改派原因", name = "reason", required = false, dataType = "string"),
            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
@@ -459,6 +459,33 @@
        }
    }
    @ResponseBody
    @PostMapping("/api/order/reassignCancel")
    @ApiOperation(value = "提交改派申请--取消", tags = {"司机端-服务中"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
            @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额,4=云闪付)", name = "payType", required = false, dataType = "int"),
            @ApiImplicitParam(value = "改派原因", name = "reason", required = false, dataType = "string"),
            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil reassignCancel(Reassign reassign, HttpServletRequest request){
        try {
            Integer uid = driverService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            return reassignService.saveDataCancel(reassign, uid, null);
        }catch (SystemException s){
            return ResultUtil.error(s.getMsg());
        } catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 司机走流程操作
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java
@@ -17,6 +17,7 @@
     * @throws Exception
     */
    ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception;
    ResultUtil saveDataCancel(Reassign reassign, Integer uid, Integer type) throws Exception;
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
@@ -66,7 +66,7 @@
//                driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
        for (Map<String, Object> stringObjectMap : list) {
            // 1使用中 2空闲中
            if(stringObjectMap.get("useDriverId").toString().equals(uid.toString())){
            if(stringObjectMap.get("useDriverId")!=null && stringObjectMap.get("useDriverId").toString().equals(uid.toString())){
                map.put("useState", 1);
            }else {
                map.put("useState", 0);
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -401,8 +401,9 @@
        driver.setSex(registeredWarpper.getSex());
        driver.setIdCard(registeredWarpper.getIdCard());
        driver.setArea(registeredWarpper.getArea());
        driver.setAreaCode(registeredWarpper.getAreaCode());
        driver.setAreaCode(registeredWarpper.getPlaceOfEmployment());
        driver.setCity(registeredWarpper.getCity());
        driver.setCityCode(registeredWarpper.getCityCode());
        driver.setProvince(registeredWarpper.getProvince());
@@ -412,7 +413,7 @@
            return ResultUtil.error("请选择服务商");
        }
        String code = registeredWarpper.getAreaCode();
        String code = registeredWarpper.getPlaceOfEmployment();
        Company query = companyCityService.query(code);
        if(null == query){
            return ResultUtil.error("选择从业地暂未开通业务");
DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -102,7 +102,6 @@
    private String callbackPath;
    /**
     * 提交改派申请
     * @param uid           申请司机id
@@ -269,8 +268,6 @@
//                }
            }
            if(reassign.getPayType() == 4){
                // TODO 司机云闪付 改派调起云闪付
@@ -280,6 +277,52 @@
            }
        }
        return resultUtil;
    }
    @Override
    public ResultUtil saveDataCancel(Reassign reassign, Integer uid, Integer type) throws Exception {
        Driver driver = driverService.selectById(uid);
        //修改改派通知状态
        switch (reassign.getOrderType()) {
            case 1:
                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId());
                orderPrivateCar.setState(orderPrivateCar.getOldState());
                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());
                }
                request.setSupplierShopId(company.getEnterCode());
                OrderUtil.modifyTravelItinerary(request);
                break;
            case 2:
                OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
                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());
                }
                request1.setSupplierShopId(company1.getEnterCode());
                OrderUtil.modifyTravelItinerary(request1);
                break;
        }
        return ResultUtil.success();
    }
@@ -515,8 +558,6 @@
    }
    /**
     * 获取列表数据
     * @param uid
@@ -530,7 +571,6 @@
        pageNum = (pageNum - 1) * size;
        return reassignMapper.queryList(uid, pageNum, size);
    }
    public static List<Integer> orderIds = new ArrayList<>();
@@ -597,7 +637,6 @@
                    // qyt 新增改派 重新推送
                }else{
@@ -689,6 +728,7 @@
    }
    @Autowired
    private ICompanyCityService companyCityService;
@@ -726,6 +766,7 @@
                        //获取空闲司机
                        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();//计算占比转成整数(下标截取)
@@ -747,12 +788,11 @@
                            }
                        }
                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
                        OrderTaxi orderTaxi1 = orderTaxiService.selectById(orderTaxi.getId());
                        Integer state = orderTaxi1.getState();
                        if (state != 1) {
                        if (state != 1 || state!= 11) {
                            break;
                        }
                        if (i == 6 && state == 1) {
                        if (i == 6 && (state == 1 || state==11)) {
                            pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
                            orderTaxi1.setState(10);
                            orderTaxiService.updateById(orderTaxi1);
@@ -789,7 +829,7 @@
                    List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
                    for(int i = 1; i <= 6; i++){
                        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
                        if (null == orderPrivateCar || orderPrivateCar.getState() > 1) {
                        if (null == orderPrivateCar || (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11)) {
                            break;
                        }
                        int finalI = i;
@@ -800,7 +840,7 @@
                            i2=1;
                        }
                        for (int i1 = 0; i1 < i2 ; i1++) {
                            if (orderPrivateCar.getState() > 1) {
                            if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) {
                                break;
                            }
                            //获取空闲司机
@@ -827,11 +867,11 @@
                            }
                            Thread.sleep(10000);//设置等待时间
                            Integer state = orderPrivateCar.getState();
                            if (state > 1) {
                            if (state > 1 && state != 11) {
                                orderIds.remove(orderPrivateCar.getId());
                                return;
                            }
                            if (i == 6 && state == 1) {
                            if (i == 6 && (state == 1 || state==11)) {
                                pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                                orderPrivateCar.setState(10);
                                orderPrivateCarService.updateById(orderPrivateCar);