From 6c741ac9e80353ca42906c1c6c7109324ae9f9f9 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 03 十月 2024 01:02:38 +0800 Subject: [PATCH] 修改bug和翻译 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java | 155 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 149 insertions(+), 6 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java index 91c4677..b85b63c 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SettlementRecordServiceImpl.java @@ -6,22 +6,25 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.dao.CarModelMapper; import com.stylefeng.guns.modular.system.dao.SettlementRecordMapper; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.util.DateUtil; -import com.stylefeng.guns.modular.system.util.ResultUtil; +import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil; import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil; import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest; import com.stylefeng.guns.modular.system.warpper.QueryHistoricalSettlement; import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmount; import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmountDetails; +import org.apache.shiro.util.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; @@ -55,6 +58,24 @@ @Resource private IBalanceUsageRecordService balanceUsageRecordService; + + @Resource + private IDriverWorkService driverWorkService; + + @Autowired + private PushUtil pushUtil; + + @Autowired + private RedisUtil redisUtil; + + @Autowired + private ICarService carService; + + @Autowired + private FleetEngineUtil fleetEngineUtil; + + @Resource + private CarModelMapper carModelMapper; @@ -69,9 +90,8 @@ SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); if(null != settlementAllocation) { JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); - Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type = jsonObject.getInteger("type"); - querySettlementAmount.setType(null != maxPrice ? 1 : type); + querySettlementAmount.setType(type); 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")); @@ -124,7 +144,6 @@ SettlementAllocation settlementAllocation = settlementAllocationService.selectOne(null); if(null == settlementAllocation){ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); - Double maxPrice = jsonObject.getDouble("maxPrice"); Integer type = jsonObject.getInteger("type"); List<SettlementDetail> settlementDetails = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId")); @@ -133,7 +152,7 @@ SettlementRecord settlementRecord = new SettlementRecord(); settlementRecord.setDay(new Date()); settlementRecord.setDriverId(driverId); - settlementRecord.setType(null != maxPrice ? 1 : type); + settlementRecord.setType(type); settlementRecord.setPaymentStatus(1); settlementRecord.setPayMoney(new BigDecimal(sum).setScale(2, RoundingMode.HALF_EVEN).doubleValue()); settlementRecord.setInsertTime(new Date()); @@ -351,6 +370,64 @@ JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); Integer type = jsonObject.getInteger("type"); Integer day = jsonObject.getInteger("day"); + if(type == 1){//日结算 + List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); + for (Map<String, Object> map : list) { + Integer driverId = Integer.valueOf(map.get("driverId").toString()); + Double price = Double.valueOf(map.get("price").toString()); + + SettlementRecord settlementRecord = new SettlementRecord(); + settlementRecord.setDay(new Date()); + settlementRecord.setDriverId(driverId); + settlementRecord.setType(1); + settlementRecord.setPaymentStatus(1); + settlementRecord.setPayMoney(price); + settlementRecord.setInsertTime(new Date()); + this.insert(settlementRecord); + + List<SettlementDetail> settlementDetailList = settlementDetailService.selectList(new EntityWrapper<SettlementDetail>().eq("driverId", driverId).isNull("settlementRecordId")); + settlementDetailList.forEach(s -> { + s.setSettlementRecordId(settlementRecord.getId()); + }); + if(settlementDetailList.size() > 0){ + settlementDetailService.updateBatchById(settlementDetailList); + } + + //强制司机下班 + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() + .eq("driverId", driverId).eq("state", 1)); + if(null != driverWork){ + driverWork.setEndTime(new Date()); + driverWork.setState(2); + driverWorkService.updateById(driverWork); + Driver driver = driverService.selectById(driverId); + driver.setState(1); + driverService.updateById(driver); + Car car = carService.selectById(driver.getCarId()); + if(!StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + + //司机下班,修改谷歌上的车辆信息 + new Thread(()->{ + try { + 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()); + }else{ + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + + } + } + } if(type == 2 && w == day){//周结算 List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); for (Map<String, Object> map : list) { @@ -372,6 +449,39 @@ }); if(settlementDetailList.size() > 0){ settlementDetailService.updateBatchById(settlementDetailList); + } + + //强制司机下班 + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() + .eq("driverId", driverId).eq("state", 1)); + if(null != driverWork){ + driverWork.setEndTime(new Date()); + driverWork.setState(2); + driverWorkService.updateById(driverWork); + Driver driver = driverService.selectById(driverId); + driver.setState(1); + driverService.updateById(driver); + Car car = carService.selectById(driver.getCarId()); + if(!StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + + //司机下班,修改谷歌上的车辆信息 + new Thread(()->{ + try { + 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()); + }else{ + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); } } } @@ -397,6 +507,39 @@ if(settlementDetailList.size() > 0){ settlementDetailService.updateBatchById(settlementDetailList); } + + //强制司机下班 + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>() + .eq("driverId", driverId).eq("state", 1)); + if(null != driverWork){ + driverWork.setEndTime(new Date()); + driverWork.setState(2); + driverWorkService.updateById(driverWork); + Driver driver = driverService.selectById(driverId); + driver.setState(1); + driverService.updateById(driver); + Car car = carService.selectById(driver.getCarId()); + if(!StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + + //司机下班,修改谷歌上的车辆信息 + new Thread(()->{ + try { + 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()); + }else{ + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + } } } } -- Gitblit v1.7.1