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