Pu Zhibing
10 小时以前 bd6d5de56192630584f2e2678c199263534b3e70
添加日志记录
2个文件已修改
1个文件已添加
101 ■■■■■ 已修改文件
ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AppOperationLogServiceImpl.java
New file
@@ -0,0 +1,29 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.AppOperationLogMapper;
import com.stylefeng.guns.modular.system.model.AppOperationLog;
import com.stylefeng.guns.modular.system.service.IAppOperationLogService;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class AppOperationLogServiceImpl extends ServiceImpl<AppOperationLogMapper, AppOperationLog> implements IAppOperationLogService {
    /**
     * 添加日志记录
     * @param userId
     * @param content
     */
    @Override
    public void addAppOperationLog(Integer userId, String content) {
        AppOperationLog appOperationLog = new AppOperationLog();
        appOperationLog.setUserId(userId);
        appOperationLog.setUserType(3);
        appOperationLog.setContent(content);
        appOperationLog.setCreateTime(new Date());
        this.insert(appOperationLog);
    }
}
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -198,6 +198,9 @@
    @Autowired
    private IAppOperationLogService appOperationLogService;
    @Resource
    private DriverMapper driverMapper;
    /**
@@ -411,8 +414,9 @@
                    }
                    try {
                        //获取空闲司机
                        List<Driver> drivers = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), assignOrder.getDistance(), null);//获取范围内空闲司机
                        List<Driver> drivers = driverMapper.queryIdleDriver_(1, serverCarModelId, null);
                        List<Integer> driverIds = drivers.stream().map(Driver::getId).collect(Collectors.toList());
                        logger.info("指派的空闲司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(drivers));
                        if(drivers.size() > 0) {//有司机,直接指派给司机
                            Driver dr = null;
                            if (drivers.size() > 1) {
@@ -427,8 +431,14 @@
                                    if (orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver1.getId())) {
                                        continue;
                                    }
                                    // 判断司机是否有订单进行中
                                    long count = orderPrivateCarMapper.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver1.getId())
                                            .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
                                    if(0 != count){
                                        continue;
                                    }
                                    // 判断该司机是否有30分钟内预约单
                                    long count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
                                    count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
                                            DateUtil.dateToLocalDateTime(s.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())).count();
                                    if (count > 0) {
                                        continue;
@@ -437,6 +447,7 @@
                                    if (null != value) {
                                        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1);
                                        double d = Double.parseDouble(distance.get("distance"));
                                        logger.info("指派推单,司机距离【" + orderPrivateCar.getOrderNum() + "】" + driver1.getPhone() + ":" + d);
                                        if(dis >= d){
                                            driver1.setDistance(d);
                                            ds.add(driver1);
@@ -451,66 +462,16 @@
                                            return o1.getDistance().compareTo(o2.getDistance());
                                        }
                                    });
                                    logger.info("指派推单,符合条件的司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(ds));
                                    appOperationLogService.addAppOperationLog(uid, "{\"type\":\"指派推单,符合条件的司机\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(ds) + "\"}");
                                    dr = ds.get(0);
                                }
//                                for (int i = 0; i < assignOrder.getPeople(); i++) {
//                                    Driver driver = null;
//                                    int m = 0;
//                                    int index = 0;
//                                    // 查询预约单
//                                    List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6, 11);
//                                    List<Integer> orderPrivateCarDriverIds = orderPrivateCars.stream().map(OrderPrivateCar::getDriverId).collect(Collectors.toList());
//                                    for (int j = 0; j < drivers.size(); j++) {
//                                        Driver driver1 = drivers.get(j);
//                                        if (orderPrivateCar.getOrderType() == 2 && orderPrivateCarDriverIds.contains(driver.getId())) {
//                                            continue;
//                                        }
//                                        // 判断该司机是否有30分钟内预约单
//                                        long count = orderPrivateCarss.stream().filter(s -> s.getDriverId().equals(driver1.getId()) &&
//                                                DateUtil.dateToLocalDateTime(s.getTravelTime()).minusMinutes(query.getLimitationTime()).isBefore(LocalDateTime.now())).count();
//                                        if (count > 0) {
//                                            continue;
//                                        }
//                                        String value = redisUtil.getValue("DRIVER" + drivers.get(j).getId());
//                                        if (null != value) {
//                                            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1);
//                                            int d = Integer.parseInt(distance.get("distance"));
//                                            if ((0 == m && null == driver) || (d < m)) {
//                                                driver = drivers.get(j);
//                                                m = d;
//                                                index = j;
//                                            }
//                                        }
//                                    }
//                                    ds.add(driver);
//                                    drivers.remove(index);
//                                }
//
//                                //再根据直线距离最短的司机中找出行驶距离最短的司机
//                                Integer m = 0;
//                                for (Driver driver : ds) {
//                                    String value = redisUtil.getValue("DRIVER" + driver.getId());
//                                    if (null != value) {
//                                        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, value, 1);
//                                        int distance1 = Integer.parseInt(distance.get("distance"));
//                                        if ((0 == m && null == dr) || (distance1 < m.intValue())) {
//                                            dr = driver;
//                                            m = distance1;
//                                        }
//                                    }
//                                }
                            } else {
                                List<OrderPrivateCar> orderPrivateCarss = orderPrivateCarMapper.queryOrderByState(driverIds, 2, 1, 2, 3, 4, 5, 6, 11);
                                if (orderPrivateCarss.size() == 0) {
                                    dr = drivers.get(0);
                                }
                                logger.info("指派推单,符合条件的司机【" + orderPrivateCar.getOrderNum() + "】:" + JSON.toJSONString(dr));
                                appOperationLogService.addAppOperationLog(uid, "{\"type\":\"指派推单,符合条件的司机\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(dr) + "\"}");
                            }
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -144,9 +144,6 @@
            }
            String value = redisUtil.getValue("DRIVER" + driver.getId());
            if(null != value){
                /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离
                double d = Double.valueOf(distance1.get("distance")).doubleValue();*/
//                double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0]));
                double d = gdMapElectricFenceUtil.getDrivingRoute(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0]));
                if(d < (distance * 1000)){
                    list.add(driver);