From 8d2b0ea8646c3ea695ae4b79e2ec3f425eb8ca70 Mon Sep 17 00:00:00 2001 From: luojian <1327479187@qq.com> Date: Mon, 6 Jan 2025 10:21:28 +0800 Subject: [PATCH] 1 --- .../biz/BizDriverClockController.java | 28 ++++++++++--------- .../biz/BizDriverStateController.java | 27 +++++++++++++++--- .../controller/biz/LargeScreenController.java | 11 +++++--- .../cpxt/biz/domain/LargeScreenEntity.java | 8 +++++- .../cpxt/biz/mapper/BizDriverStateMapper.java | 10 +++++++ .../com/cpxt/biz/mapper/StatCarMapper.java | 6 +--- .../com/cpxt/biz/mapper/StatDriverMapper.java | 6 ++++ .../biz/service/BizDriverStateService.java | 9 ++++++ .../biz/service/IBizDriverClockService.java | 11 ++++++++ .../impl/BizDriverClockServiceImpl.java | 14 ++++++++++ .../impl/BizDriverStateServiceImpl.java | 13 +++++++++ .../mapper/biz/BizDriverStateMapper.xml | 15 ++++++++++ .../mapper/system/SysNoticeMapper.xml | 1 + 13 files changed, 132 insertions(+), 27 deletions(-) diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverClockController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverClockController.java index 1078db0..f43e13f 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverClockController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverClockController.java @@ -3,19 +3,15 @@ package com.cpxt.web.controller.biz; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cpxt.biz.domain.BizCar; import com.cpxt.biz.domain.BizDriverClock; import com.cpxt.biz.service.IBizDriverClockService; +import com.cpxt.common.constant.HttpStatus; import org.checkerframework.checker.units.qual.A; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.cpxt.common.annotation.Log; import com.cpxt.common.core.controller.BaseController; import com.cpxt.common.core.domain.AjaxResult; @@ -39,13 +35,19 @@ public class BizDriverClockController extends BaseController /** * 查询司机打卡记录列表 */ - @PreAuthorize("@ss.hasPermi('system:clock:list')") +// @PreAuthorize("@ss.hasPermi('system:clock:list')") @GetMapping("/list") - public TableDataInfo list(BizDriverClock bizDriverClock) + public TableDataInfo list(BizDriverClock bizDriverClock, + @RequestParam(defaultValue = "1") int pageNum, + @RequestParam(defaultValue = "10") int pageSize) { - startPage(); - List list = bizDriverClockService.selectBizDriverClockList(bizDriverClock); - return getDataTable(list); + Page recordPage = bizDriverClockService.selectBizDriverClockPage(bizDriverClock,pageNum,pageSize); + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setMsg("查询成功"); + rspData.setRows(recordPage.getRecords()); + rspData.setTotal(recordPage.getTotal()); + return rspData; } /** diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverStateController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverStateController.java index ade4c8e..ca85eae 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverStateController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizDriverStateController.java @@ -1,5 +1,6 @@ package com.cpxt.web.controller.biz; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cpxt.biz.domain.BizCar; import com.cpxt.biz.domain.BizDriverState; import com.cpxt.biz.service.BizDriverStateService; @@ -9,10 +10,7 @@ import com.cpxt.common.enums.BusinessType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/biz/driver/state") @@ -21,6 +19,27 @@ public class BizDriverStateController { @Autowired private BizDriverStateService bizDriverStateService; + /** + * 查询司机定位信息 + */ + @GetMapping("/list") + public AjaxResult list() + { + return AjaxResult.success(bizDriverStateService.selectDriverLocation()); + } + + /** + * 查询司机轨迹信息 + */ + @GetMapping("/track") + public AjaxResult list(@RequestParam(required = false) String startTime, + @RequestParam(required = false) String endTime, + @RequestParam Long driverId) + { + String tableName = "track_driver_" + driverId; + return AjaxResult.success(bizDriverStateService.selectDriverTrack(startTime,endTime,tableName)); + } + /** * 新增司机轨迹 */ diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/LargeScreenController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/LargeScreenController.java index eb75acd..ff4607f 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/LargeScreenController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/LargeScreenController.java @@ -52,6 +52,9 @@ public class LargeScreenController extends BaseController { @Autowired private StatCarMapper statCarMapper; + @Autowired + private StatDriverMapper statDriverMapper; + @Autowired private BizCustomerWarehouseMapper bizCustomerWarehouseMapper; @@ -202,11 +205,11 @@ public class LargeScreenController extends BaseController { String startTime = DateUtil.format(dateTime, DateUtils.YYYY_MM_DD); String endTime = DateUtil.format(new Date(),DateUtils.YYYY_MM_DD); - List keyList = statCarMapper.selectOdometerTop5CarNo(startTime,endTime); - List valueList = statCarMapper.selectOdometerTop5Odometer(startTime,endTime); + List keyList = statDriverMapper.selectOdometerTop5CarNo(startTime,endTime); + List valueList = statDriverMapper.selectOdometerTop5Odometer(startTime,endTime); result.put("keys",keyList); result.put("values",valueList); - largeScreenEntity.setDeliveryDistanceTop5(result); + largeScreenEntity.setDeliveryDistanceTop5Driver(result); return AjaxResult.success(largeScreenEntity); } @@ -226,7 +229,7 @@ public class LargeScreenController extends BaseController { List valueList = statCarMapper.selectOdometerTop5Odometer(startTime,endTime); result.put("keys",keyList); result.put("values",valueList); - largeScreenEntity.setDeliveryDistanceTop5(result); + largeScreenEntity.setDeliveryDistanceTop5Car(result); return AjaxResult.success(largeScreenEntity); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/domain/LargeScreenEntity.java b/cpxt-system/src/main/java/com/cpxt/biz/domain/LargeScreenEntity.java index 9392e82..eb0049e 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/domain/LargeScreenEntity.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/domain/LargeScreenEntity.java @@ -93,7 +93,13 @@ public class LargeScreenEntity /** * 近30天配送里程top5 */ - private Map deliveryDistanceTop5; + private Map deliveryDistanceTop5Driver; + + /** + * 近30天配送里程top5 + */ + private Map deliveryDistanceTop5Car; + /** * 订单地区分配情况 diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverStateMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverStateMapper.java index 09dfb42..76310a7 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverStateMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizDriverStateMapper.java @@ -3,6 +3,11 @@ package com.cpxt.biz.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizDriverState; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; +import java.util.Map; /** * @author LuoJian @@ -14,6 +19,11 @@ import org.apache.ibatis.annotations.Mapper; public interface BizDriverStateMapper extends BaseMapper { int insertBizDriverState(BizDriverState bizDriverState); + + Map selectDriverTrack(@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("tableName") String tableName); + + @Select("SELECT * FROM biz_driver_state WHERE id in (SELECT t.id FROM (SELECT id,MAX(gps_time) FROM biz_driver_state GROUP BY driver_id) t)") + List selectDriverLocation(); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatCarMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatCarMapper.java index 8093148..aa01382 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatCarMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatCarMapper.java @@ -6,13 +6,10 @@ import java.util.Map; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizDriverClock; import com.cpxt.biz.domain.StatCar; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.*; import java.util.List; import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; /** * 车辆统计Mapper接口 @@ -27,7 +24,6 @@ public interface StatCarMapper extends BaseMapper @Select("select t.car_no from (SELECT car_no,SUM(odometer) sumo FROM `stat_car` where stat_date >= #{startTime} and stat_date <= #{endTime} GROUP BY car_no ORDER BY sumo desc limit 5) t") List selectOdometerTop5CarNo(@Param("startTime") String startTime,@Param("endTime") String endTime); - @Select("select t.sumo from (SELECT car_no,SUM(odometer) sumo FROM `stat_car` where stat_date >= #{startTime} and stat_date <= #{endTime} GROUP BY car_no ORDER BY sumo desc limit 5) t") List selectOdometerTop5Odometer(@Param("startTime")String startTime,@Param("endTime") String endTime); @Insert("insert into stat_car (stat_date, car_id, car_no) select #{statDate}, id, car_no from biz_car where status = 1 ") diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatDriverMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatDriverMapper.java index 1425955..eaa530b 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatDriverMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/StatDriverMapper.java @@ -39,4 +39,10 @@ public interface StatDriverMapper extends BaseMapper @Select("select * from biz_driver_clock where driver_id = #{driverId} and ( on_time BETWEEN CURDATE() - INTERVAL 23 HOUR AND NOW() or off_time between CURDATE() and NOW() ) order by on_time asc ") List selectDriverClockList(Long driverId); + + @Select("select t.driver_name from (SELECT driver_name,SUM(odometer) sumo FROM `stat_driver` where stat_date >= #{startTime} and stat_date <= #{endTime} GROUP BY driver_name ORDER BY sumo desc limit 5) t") + List selectOdometerTop5CarNo(@Param("startTime") String startTime,@Param("endTime") String endTime); + + @Select("select t.sumo from (SELECT driver_name,SUM(odometer) sumo FROM `stat_driver` where stat_date >= #{startTime} and stat_date <= #{endTime} GROUP BY driver_name ORDER BY sumo desc limit 5) t") + List selectOdometerTop5Odometer(@Param("startTime") String startTime,@Param("endTime") String endTime); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/BizDriverStateService.java b/cpxt-system/src/main/java/com/cpxt/biz/service/BizDriverStateService.java index 6bfc7fa..d4656e8 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/BizDriverStateService.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/BizDriverStateService.java @@ -3,6 +3,9 @@ package com.cpxt.biz.service; import com.baomidou.mybatisplus.extension.service.IService; import com.cpxt.biz.domain.BizDriverState; +import java.util.List; +import java.util.Map; + /** * @author LuoJian * @description 针对表【biz_driver_state(司机定位状态)】的数据库操作Service @@ -11,4 +14,10 @@ import com.cpxt.biz.domain.BizDriverState; public interface BizDriverStateService extends IService { public int insertDriveDriveState(BizDriverState bizDriverState); + + Map selectDriverTrack(String startTime, String endTime, String tableName); + + List selectDriverLocation(); + + } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizDriverClockService.java b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizDriverClockService.java index 49ae6c2..ccd0dcf 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizDriverClockService.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizDriverClockService.java @@ -1,5 +1,6 @@ package com.cpxt.biz.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cpxt.biz.domain.BizDriverClock; import java.util.List; @@ -27,6 +28,14 @@ public interface IBizDriverClockService */ public List selectBizDriverClockList(BizDriverClock bizDriverClock); + /** + * 查询司机打卡记录列表(分页) + * + * @param bizDriverClock 司机打卡记录 + * @return 司机打卡记录集合 + */ + Page selectBizDriverClockPage(BizDriverClock bizDriverClock, int pageNum, int pageSize); + /** * 新增司机打卡记录 * @@ -58,4 +67,6 @@ public interface IBizDriverClockService * @return 结果 */ public int deleteBizDriverClockById(Long id); + + } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverClockServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverClockServiceImpl.java index edfa97c..a1c0ebc 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverClockServiceImpl.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverClockServiceImpl.java @@ -1,6 +1,8 @@ package com.cpxt.biz.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cpxt.biz.domain.BizDriver; import com.cpxt.biz.domain.BizDriverClock; import com.cpxt.biz.domain.BizOrder; @@ -55,9 +57,21 @@ public class BizDriverClockServiceImpl implements IBizDriverClockService public List selectBizDriverClockList(BizDriverClock bizDriverClock) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjectUtil.isNotEmpty(bizDriverClock.getDriverId())){ + queryWrapper.eq(BizDriverClock::getDriverId,bizDriverClock.getDriverId()); + } return bizDriverClockMapper.selectList(queryWrapper); } + @Override + public Page selectBizDriverClockPage(BizDriverClock bizDriverClock, int pageNum, int pageSize) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjectUtil.isNotEmpty(bizDriverClock.getDriverId())){ + queryWrapper.eq(BizDriverClock::getDriverId,bizDriverClock.getDriverId()); + } + return bizDriverClockMapper.selectPage(new Page<>(pageNum,pageSize),queryWrapper); + } + /** * 新增司机打卡记录 * diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverStateServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverStateServiceImpl.java index 87ad02f..dc2e8e6 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverStateServiceImpl.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizDriverStateServiceImpl.java @@ -7,6 +7,9 @@ import com.cpxt.biz.service.BizDriverStateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** * @author LuoJian * @description 针对表【biz_driver_state(司机定位状态)】的数据库操作Service实现 @@ -23,6 +26,16 @@ public class BizDriverStateServiceImpl extends ServiceImpl selectDriverLocation() { + return bizDriverStateMapper.selectDriverLocation(); + } } diff --git a/cpxt-system/src/main/resources/mapper/biz/BizDriverStateMapper.xml b/cpxt-system/src/main/resources/mapper/biz/BizDriverStateMapper.xml index 68fcb16..6a0dc85 100644 --- a/cpxt-system/src/main/resources/mapper/biz/BizDriverStateMapper.xml +++ b/cpxt-system/src/main/resources/mapper/biz/BizDriverStateMapper.xml @@ -66,4 +66,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{status}, + + + \ No newline at end of file diff --git a/cpxt-system/src/main/resources/mapper/system/SysNoticeMapper.xml b/cpxt-system/src/main/resources/mapper/system/SysNoticeMapper.xml index aebf2ed..4684139 100644 --- a/cpxt-system/src/main/resources/mapper/system/SysNoticeMapper.xml +++ b/cpxt-system/src/main/resources/mapper/system/SysNoticeMapper.xml @@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND create_by like concat('%', #{createBy}, '%') + order by update_time desc