44323
2024-06-04 c4650572e6dc6c6efb6e1c61c11dcae0706105c7
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -18,6 +18,7 @@
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
@@ -153,6 +154,13 @@
    @Autowired
    private TEmailService emailService;
    @Autowired
    private FleetEngineUtil fleetEngineUtil;
    @Resource
    private CarModelMapper carModelMapper;
    @Override
@@ -327,11 +335,6 @@
                List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
                BigDecimal bigDecimal = new BigDecimal("0");
                for(Map<String, Object> map : query){
                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                    DriverActivityHistory dah = new DriverActivityHistory();
                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
                    dah.setDriverId(uid);
@@ -339,6 +342,10 @@
                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
                    driverActivityHistory.setCarryOut(2);
                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                }
                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -523,10 +530,6 @@
                List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
                BigDecimal bigDecimal = new BigDecimal("0");
                for(Map<String, Object> map : query){
                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                    DriverActivityHistory dah = new DriverActivityHistory();
                    dah.setActivityId(Integer.valueOf(map.get("id").toString()));
                    dah.setDriverId(uid);
@@ -534,6 +537,10 @@
                    DriverActivityHistory driverActivityHistory = driverActivityHistoryMapper.selectOne(dah);
                    driverActivityHistory.setCarryOut(2);
                    driverActivityHistoryMapper.updateById(driverActivityHistory);
                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                        incomeService.saveData(2, driver.getId(), 1, driverActivityHistory.getId(), null, Double.valueOf(String.valueOf(map.get("money"))));
                    }
                }
                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -1092,6 +1099,14 @@
                loginWarpper.setJumpCode("200000");
            }
        }
        //司机登录,添加谷歌上的车辆信息
        Car car = carService.selectById(driver.getCarId());
        String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
        if(ToolUtil.isEmpty(vehicles)){
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
        }
        return ResultUtil.success(loginWarpper);
    }
@@ -1165,6 +1180,7 @@
    public ResultUtil work(Integer uid, String type, Integer language) throws Exception {
        DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1);
        Driver driver = this.selectById(uid);
        Car car = carService.selectById(driver.getCarId());
        if(null != driverWork){//作下班操作
            //检测是否有未完成的订单
            List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid, language);
@@ -1175,6 +1191,15 @@
            driverWork.setState(2);
            driverWorkMapper.updateById(driverWork);
            driver.setState(1);
            //司机下班,修改谷歌上的车辆信息
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
            if(ToolUtil.isEmpty(vehicles)){
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
            }else{
                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
            }
        }else{
            LoginWarpper loginWarpper = new LoginWarpper();
            if(driver.getCompanyId()==null){
@@ -1193,7 +1218,6 @@
            if(driver.getAuthState()==4){
                return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire.");
            }
            Car car = carService.selectById(driver.getCarId());
            if(car==null){
                return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire.");
            }
@@ -1210,6 +1234,15 @@
            driverWork.setType(type);
            driverWorkMapper.insert(driverWork);
            driver.setState(2);
            //司机上班,修改谷歌上的车辆信息
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
            if(ToolUtil.isEmpty(vehicles)){
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
            }else{
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
            }
        }
        this.updateById(driver);
        return ResultUtil.success();
@@ -1700,7 +1733,7 @@
                    activityWarpper.setId(driverActivityOnline.getId());
                    StringBuffer sb = new StringBuffer(language == 1 ? "今日" :
                            language == 2 ? "Today, stay online receiving orders of " : "Aujourd’hui, reste en ligne à recevoir des commandes ");
                    DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), 0);
                    DriverOnline query = driverOnlineMapper.query(uid, sdf1.format(new Date()), driverActivityOnline.getType(), 0);
                    Integer hour = 0;
                    if(null != query){
                        hour = Long.valueOf(query.getDuration() / 3600).intValue();
@@ -2263,7 +2296,7 @@
                continue;
            }
            Long duration = Long.valueOf(dao.getOnline() * 3600);
            List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), duration);
            List<DriverOnline> driverOnlines = driverOnlineMapper.queryList(sdf.format(new Date()), dao.getType(), duration);
            for (DriverOnline driverOnline : driverOnlines) {
                if(dah.getDriverId().compareTo(driverOnline.getDriverId()) == 0){
                    dah.setCarryOut(2);//完成状态
@@ -2279,7 +2312,7 @@
                    this.updateById(driver);
                    //添加收入记录
                    incomeService.saveData(2, driverOnline.getDriverId(), 1, dao.getId(), null, dah.getMoney());
                    incomeService.saveData(2, driverOnline.getDriverId(), 1, dah.getId(), null, dah.getMoney());
                    if(ToolUtil.isNotEmpty(driver.getEmail())) {
@@ -2399,7 +2432,7 @@
                this.updateById(driver);
                //添加收入记录
                incomeService.saveData(2, dah.getDriverId(), 1, dao.getId(), null, dah.getMoney());
                incomeService.saveData(2, dah.getDriverId(), 1, dah.getId(), null, dah.getMoney());
                if(ToolUtil.isNotEmpty(driver.getEmail())) {
                    String path1 = templatePath + "driver/index.html";