Pu Zhibing
7 天以前 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java
@@ -77,6 +77,9 @@
    
    @Resource
    private CarModelMapper carModelMapper;
    @Resource
    private IIncomeService incomeService;
@@ -93,10 +96,16 @@
            JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent());
            Integer type = jsonObject.getInteger("type");
            querySettlementAmount.setType(type);
            List<SettlementRecord> settlementRecords = this.selectList(new EntityWrapper<SettlementRecord>().eq("driverId", driverId).eq("paymentStatus", 1));
            //所有未支付的主表数据
            List<SettlementRecord> settlementRecords = this.selectList(new EntityWrapper<SettlementRecord>().eq("driverId", driverId)
                    .eq("paymentStatus", 1));
            double sum = settlementRecords.stream().mapToDouble(SettlementRecord::getPayMoney).sum();
            List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId"));
            //所有未生成主表数据的明细
            List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId)
                    .isNull("settlementRecordId"));
            double sum1 = settlementDetailList.stream().mapToDouble(SettlementDetail::getPrice).sum();
            //显示的金额
            querySettlementAmount.setAmount(new BigDecimal(sum).add(new BigDecimal(sum1)).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
    
            List<Integer> collect = settlementRecords.stream().map(SettlementRecord::getId).collect(Collectors.toList());
@@ -148,7 +157,9 @@
            JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent());
            Integer type = jsonObject.getInteger("type");
    
            List<SettlementDetail> settlementDetails = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId"));
            //所以未生成主表的明细数据
            List<SettlementDetail> settlementDetails = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId)
                    .isNull("settlementRecordId"));
            double sum = settlementDetails.stream().mapToDouble(SettlementDetail::getPrice).sum();
            if(sum > 0){
                SettlementRecord settlementRecord = new SettlementRecord();
@@ -249,22 +260,37 @@
                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2);
                        laveActivityMoney = 0D;
                        payMoney1 = new BigDecimal(payMoney1).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                        SettlementRecord settlementRecord1 = new SettlementRecord();
                        BeanUtils.copyProperties(settlementRecord, settlementRecord1);
                        settlementRecord1.setId(null);
                        settlementRecord1.setPayMoney(payMoney1);
                        settlementRecord1.setPaymentStatus(2);
                        settlementRecord1.setPayType(payType);
                        settlementRecord1.setBalanceType(1);
                        settlementRecord1.setPayTime(new Date());
                        this.insert(settlementRecord1);
                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney1, settlementRecord.getType() + 2);
                        laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                    }else{
                        settlementRecord.setPaymentStatus(2);
                        settlementRecord.setPayType(payType);
                        settlementRecord.setPayMoney(payMoney1);
                        settlementRecord.setBalanceType(2);
                        settlementRecord.setPayTime(new Date());
                        this.updateById(settlementRecord);
                        balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney1, settlementRecord.getType() + 2);
                        laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                    }
                    SettlementRecord settlementRecord1 = new SettlementRecord();
                    BeanUtils.copyProperties(settlementRecord, settlementRecord1);
                    settlementRecord1.setId(null);
                    settlementRecord1.setPayMoney(payMoney1.doubleValue());
                    settlementRecord1.setBalanceType(2);
                    this.insert(settlementRecord1);
                    balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney1.doubleValue(), settlementRecord.getType() + 2);
                    laveBusinessMoney = new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney1)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
                }
            }
            driver1.setLaveBusinessMoney(laveBusinessMoney);
            driver1.setLaveActivityMoney(laveActivityMoney);
            driver1.setBalance(new BigDecimal(laveBusinessMoney).add(new BigDecimal(laveActivityMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            driverService.updateById(driver1);
            //添加司机结算的平台收入记录
            incomeService.saveData(1, 1, 8, driver1.getId(), null, payMoney);
            //添加交易明细
            transactionDetailsService.saveData(driverId, "支付结算费用", payMoney, 2, 1, 2, null, null);
            
@@ -389,10 +415,50 @@
                                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                if(ToolUtil.isEmpty(vehicles)){
                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!createVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(createVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }else{
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }
                            }catch (Exception e){
                                e.printStackTrace();
@@ -447,10 +513,50 @@
                                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                if(ToolUtil.isEmpty(vehicles)){
                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!createVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(createVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }else{
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }
                            }catch (Exception e){
                                e.printStackTrace();
@@ -504,10 +610,50 @@
                                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                                String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
                                if(ToolUtil.isEmpty(vehicles)){
                                    fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!createVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            createVehicles = fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(createVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }else{
                                    fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    boolean updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                    if(!updateVehicles){
                                        for (int i = 0; i < 5; i++) {
                                            updateVehicles = fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                                            if(updateVehicles){
                                                break;
                                            }
                                            try {
                                                Thread.sleep(5000L);
                                            } catch (InterruptedException e) {
                                                throw new RuntimeException(e);
                                            }
                                        }
                                    }
                                }
                            }catch (Exception e){
                                e.printStackTrace();