Pu Zhibing
2025-11-10 90f19cfec1055182b6e2b77cac8f7cafe1664e46
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -28,10 +28,7 @@
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.AddAccountInfoRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTPaymentCallback;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTPaymentCallbackData;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import com.stylefeng.guns.modular.system.util.zhenglian.ZhengLianUtil;
import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo;
import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo;
@@ -180,6 +177,10 @@
    /*顺风车司机*/
    @Autowired
    private IDriverRideService driverRideService;
    @Autowired
    private IOrderPrivateCarService iOrderPrivateCarService;
    @Autowired
    private IIncomeService incomeService;
    /**
@@ -2703,4 +2704,89 @@
        }
    }
    /**
     * 手动生成追缴单
     * @param orderId
     * @return
     */
    @PostMapping("/base/saveCopyOrder")
    public ResultUtil saveCopyOrder(Integer orderId){
        try {
            OrderPrivateCar orderPrivateCar = iOrderPrivateCarService.selectById(orderId);
            Double orderMoney = (2 == orderPrivateCar.getAbnormal() && 2 == orderPrivateCar.getAbnormalStatus() ? orderPrivateCar.getResponsibilityMoney().doubleValue() : orderPrivateCar.getOrderMoney());
            //copy原始订单后生成追缴单
            OrderPrivateCar orderPrivateCar1 = new OrderPrivateCar();
            BeanUtils.copyProperties(orderPrivateCar, orderPrivateCar1);
            orderPrivateCar1.setId(null);
            orderPrivateCar1.setRecoveryOrder(1);
            orderPrivateCar1.setIsGenerateRecoveryOrder(0);
            orderPrivateCar1.setOldOrderId(orderPrivateCar.getId());
            orderPrivateCar1.setRecoveryOrderCreateDate(new Date());
            orderPrivateCar1.setAbnormal(1);
            orderPrivateCar1.setResponsibilityType(null);
            orderPrivateCar1.setResponsibilityMoney(null);
            orderPrivateCar1.setAbnormalRemark(null);
            orderPrivateCar1.setAbnormalIntro(null);
            orderPrivateCar1.setPromotionMoney(null);
            orderPrivateCar1.setPromotionDriverId(null);
            orderPrivateCar1.setPromotionActivityId(null);
            orderPrivateCar1.setSuccessTime(null);
            orderPrivateCar1.setPromotion(1);
            orderPrivateCar1.setPromotionPhone(null);
            orderPrivateCar1.setPromotionUser(null);
            //修改原始订单为支付状态
            orderPrivateCar.setState(9);
            orderPrivateCar.setPayType(5);
            orderPrivateCar.setPayMoney(orderMoney);
            orderPrivateCar.setPayTime(new Date());
            orderPrivateCar.setIsGenerateRecoveryOrder(1);
            //添加收入
            Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderMoney);
            orderPrivateCar.setSplitAllocation(JSON.toJSONString(map));
            orderPrivateCarService.updateById(orderPrivateCar);
            //保存追缴单
            orderPrivateCarService.insert(orderPrivateCar1);
            //添加三方支付记录
            try {
                paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderPrivateCar.getId(), 1, 3, orderMoney, "", 2);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            Driver driver1 = driverService.selectById(orderPrivateCar1.getDriverId());
            UserInfo userInfo1 = userInfoService.selectById(orderPrivateCar1.getUserId());
            Company company1 = companyService.selectById(driver1.getCompanyId());
            //调三方订单中心创建行程单
            CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
            request.setOrderNo("PR" + orderPrivateCar1.getId());
            request.setCustomerId(userInfo1.getOnconUUID());
            request.setDriverId(driver1.getEmpId().toString());
            request.setSupplierShopId(company1.getEnterCode());
            request.setServiceType(2);
            String travelItinerary = OrderUtil.createTravelItinerary(request);
            orderPrivateCar1.setTravelId(travelItinerary);
            orderPrivateCar1.setIsCreated(0);
            orderPrivateCarService.updateById(orderPrivateCar1);
            //修改订单状态为待支付
            if(ToolUtil.isNotEmpty(orderPrivateCar1.getTravelId())){
                ModifyTravelItineraryRequest modifyTravelItineraryRequest = new ModifyTravelItineraryRequest();
                modifyTravelItineraryRequest.setOrderId(orderPrivateCar1.getTravelId());
                modifyTravelItineraryRequest.setStatus(orderPrivateCar1.getState());
                modifyTravelItineraryRequest.setDriverId(driver1.getEmpId().toString());
                modifyTravelItineraryRequest.setSupplierShopId(company1.getEnterCode());
                if (2 == orderPrivateCar1.getPromotion()) {
                    Driver driver2 = driverService.selectById(orderPrivateCar1.getPromotionDriverId());
                    modifyTravelItineraryRequest.setPromoterId(driver2.getEmpId().toString());
                }
                OrderUtil.modifyTravelItinerary(modifyTravelItineraryRequest);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return ResultUtil.success();
    }
}