增加后台车辆,gps类接口

This commit is contained in:
zhangyue 2026-08-01 18:37:49 +08:00
parent f0cb2902cd
commit 1c8283c1f8
13 changed files with 133 additions and 25 deletions

View File

@ -10,6 +10,8 @@ import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
@ -48,7 +50,7 @@ import org.jeecg.common.system.util.JwtUtil;
*/
@Api(tags="gps轨迹")
@RestController
@RequestMapping("/iot/survGpsInfo")
@RequestMapping("/appmana/survGpsInfo")
@Slf4j
public class SurvGpsInfoController extends JeecgController<SurvGpsInfo, ISurvGpsInfoService> {
@Autowired
@ -70,9 +72,17 @@ public class SurvGpsInfoController extends JeecgController<SurvGpsInfo, ISurvGps
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
if(StringUtils.isNotBlank(survGpsInfo.getGpsName())){
survGpsInfo.setGpsName("%" + survGpsInfo.getGpsName() + "%");
}
if(StringUtils.isNotBlank(survGpsInfo.getGpsCode())){
survGpsInfo.setGpsName("%" + survGpsInfo.getGpsCode() + "%");
}
QueryWrapper<SurvGpsInfo> queryWrapper = QueryGenerator.initQueryWrapper(survGpsInfo, req.getParameterMap());
Page<SurvGpsInfo> page = new Page<SurvGpsInfo>(pageNo, pageSize);
IPage<SurvGpsInfo> pageList = survGpsInfoService.page(page, queryWrapper);
survGpsInfoService.fills(pageList.getRecords());
return Result.OK(pageList);
}

View File

@ -11,6 +11,7 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.dto.GpsRecordDTO;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.common.entity.SurvGpsRecord;
@ -48,7 +49,7 @@ import org.jeecg.common.system.util.JwtUtil;
*/
@Api(tags="gps设备")
@RestController
@RequestMapping("/iot/survGpsRecord")
@RequestMapping("/appmana/survGpsRecord")
@Slf4j
public class SurvGpsRecordController extends JeecgController<SurvGpsRecord, ISurvGpsRecordService> {
@Autowired
@ -66,13 +67,16 @@ public class SurvGpsRecordController extends JeecgController<SurvGpsRecord, ISur
//@AutoLog(value = "gps设备-分页列表查询")
@ApiOperation(value="gps设备-分页列表查询", notes="gps设备-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<SurvGpsRecord>> queryPageList(SurvGpsRecord survGpsRecord,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SurvGpsRecord> queryWrapper = QueryGenerator.initQueryWrapper(survGpsRecord, req.getParameterMap());
Page<SurvGpsRecord> page = new Page<SurvGpsRecord>(pageNo, pageSize);
IPage<SurvGpsRecord> pageList = survGpsRecordService.page(page, queryWrapper);
public Result<IPage<SurvGpsRecord>> queryPageList(GpsRecordDTO gpsRecordDTO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
gpsRecordDTO.setPageSize(pageSize);
gpsRecordDTO.setPageNo(pageNo);
gpsRecordDTO.setEndTime(gpsRecordDTO.getStartTime());
IPage<SurvGpsRecord> pageList = survGpsRecordService.pages(gpsRecordDTO);
survGpsRecordService.fills(pageList.getRecords());
return Result.OK(pageList);
}

View File

@ -11,6 +11,7 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.dto.VehicleDTO;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.common.entity.SurvVehicleInfo;
@ -48,7 +49,7 @@ import org.jeecg.common.system.util.JwtUtil;
*/
@Api(tags="surv_vehicle_info")
@RestController
@RequestMapping("/iot/survVehicleInfo")
@RequestMapping("/appmana/survVehicleInfo")
@Slf4j
public class SurvVehicleInfoController extends JeecgController<SurvVehicleInfo, ISurvVehicleInfoService> {
@Autowired
@ -66,13 +67,14 @@ public class SurvVehicleInfoController extends JeecgController<SurvVehicleInfo,
//@AutoLog(value = "surv_vehicle_info-分页列表查询")
@ApiOperation(value="surv_vehicle_info-分页列表查询", notes="surv_vehicle_info-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<SurvVehicleInfo>> queryPageList(SurvVehicleInfo survVehicleInfo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<SurvVehicleInfo> queryWrapper = QueryGenerator.initQueryWrapper(survVehicleInfo, req.getParameterMap());
Page<SurvVehicleInfo> page = new Page<SurvVehicleInfo>(pageNo, pageSize);
IPage<SurvVehicleInfo> pageList = survVehicleInfoService.page(page, queryWrapper);
public Result<IPage<SurvVehicleInfo>> queryPageList(VehicleDTO vehicleDTO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
vehicleDTO.setPageNo(pageNo);
vehicleDTO.setPageSize(pageSize);
IPage<SurvVehicleInfo> pageList = survVehicleInfoService.getVechicleList(vehicleDTO);
survVehicleInfoService.fills(pageList.getRecords());
return Result.OK(pageList);
}

View File

@ -3,6 +3,8 @@ package org.jeecg.modules.appmana.service;
import org.jeecg.common.entity.SurvGpsInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: gps轨迹
* @Author: jeecg-boot
@ -11,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ISurvGpsInfoService extends IService<SurvGpsInfo> {
void fills(List<SurvGpsInfo> records);
}

View File

@ -5,6 +5,8 @@ import org.jeecg.common.dto.GpsRecordDTO;
import org.jeecg.common.entity.SurvGpsRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: gps设备
* @Author: jeecg-boot
@ -14,4 +16,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface ISurvGpsRecordService extends IService<SurvGpsRecord> {
IPage<SurvGpsRecord> pages(GpsRecordDTO gpsRecordDTO);
void fills(List<SurvGpsRecord> records);
}

View File

@ -16,4 +16,6 @@ import java.util.List;
public interface ISurvVehicleInfoService extends IService<SurvVehicleInfo> {
IPage<SurvVehicleInfo> getVechicleList(VehicleDTO vehicleDTO);
void fills(List<SurvVehicleInfo> records);
}

View File

@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
* @Description: gps轨迹
* @Author: jeecg-boot
@ -16,4 +18,22 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class SurvGpsInfoServiceImpl extends ServiceImpl<SurvGpsInfoMapper, SurvGpsInfo> implements ISurvGpsInfoService {
@Override
public void fills(List<SurvGpsInfo> records) {
if(!records.isEmpty()){
for (SurvGpsInfo record : records) {
record.setStatusDesc(record.getGpsStatus() == 1 ? "启用" : "停用");
//0=离线 1=在线静止 2=在线行驶
if(record.getOnlineStatus() == 0){
record.setOnlineStatusDesc("离线");
}else if(record.getOnlineStatus() == 1){
record.setOnlineStatusDesc("在线静止");
}else if(record.getOnlineStatus() == 2){
record.setOnlineStatusDesc("在线行驶");
}else {
record.setOnlineStatusDesc("未知");
}
}
}
}
}

View File

@ -16,7 +16,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -82,4 +84,24 @@ public class SurvGpsRecordServiceImpl extends ServiceImpl<SurvGpsRecordMapper, S
return pageResult;
}
@Override
public void fills(List<SurvGpsRecord> records) {
if(!records.isEmpty()){
List<String> gpsIds = records.stream().map(SurvGpsRecord::getGpsId).collect(Collectors.toList());
List<SurvVehicleInfo> vehicleInfos = vehicleInfoService.lambdaQuery()
.in(SurvVehicleInfo::getGpsId, gpsIds)
.list();
Map<String,SurvVehicleInfo> vehicleInfoMap = new HashMap<>();
if(!vehicleInfos.isEmpty()){
for (SurvVehicleInfo vehicleInfo : vehicleInfos) {
vehicleInfoMap.put(vehicleInfo.getGpsId(),vehicleInfo);
}
}
for (SurvGpsRecord record : records) {
SurvVehicleInfo vehicleInfo = vehicleInfoMap.get(record.getGpsId());
record.setVehicleName(vehicleInfo!=null?vehicleInfo.getVeNotes():"未知车辆");
}
}
}
}

View File

@ -3,16 +3,22 @@ package org.jeecg.modules.appmana.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.jeecg.common.dto.VehicleDTO;
import org.jeecg.common.entity.SurvGpsInfo;
import org.jeecg.common.entity.SurvVehicleInfo;
import org.jeecg.modules.appmana.mapper.SurvVehicleInfoMapper;
import org.jeecg.modules.appmana.service.ISurvVehicleInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: surv_vehicle_info
@ -22,6 +28,9 @@ import java.util.List;
*/
@Service
public class SurvVehicleInfoServiceImpl extends ServiceImpl<SurvVehicleInfoMapper, SurvVehicleInfo> implements ISurvVehicleInfoService {
@Autowired
private SurvGpsInfoServiceImpl gpsInfoService;
@Override
public IPage<SurvVehicleInfo> getVechicleList(VehicleDTO vehicleDTO) {
@ -35,6 +44,7 @@ public class SurvVehicleInfoServiceImpl extends ServiceImpl<SurvVehicleInfoMappe
Page<SurvVehicleInfo> page = new Page<>(vehicleDTO.getPageNo(), vehicleDTO.getPageSize());
IPage<SurvVehicleInfo> pageResult = lambdaQuery()
.eq(StringUtils.isNotBlank(vehicleDTO.getGpsId()), SurvVehicleInfo::getGpsId, vehicleDTO.getGpsId())
.like(StringUtils.isNotBlank(vehicleDTO.getVehicleName()), SurvVehicleInfo::getVeNotes, vehicleDTO.getVehicleName())
.like(StringUtils.isNotBlank(vehicleDTO.getDriverName()), SurvVehicleInfo::getVeDriver, vehicleDTO.getDriverName())
.orderByAsc(SurvVehicleInfo::getSortNo)
@ -42,4 +52,25 @@ public class SurvVehicleInfoServiceImpl extends ServiceImpl<SurvVehicleInfoMappe
.page(page);
return pageResult;
}
@Override
public void fills(List<SurvVehicleInfo> records) {
if(!records.isEmpty()){
List<String> gpsIds = records.stream().map(SurvVehicleInfo::getGpsId).collect(Collectors.toList());
List<SurvGpsInfo> gpsList = gpsInfoService.listByIds(gpsIds);
Map<String,SurvGpsInfo> gpsInfoMap = new HashMap<>();
if(!gpsList.isEmpty()){
for (SurvGpsInfo survGpsInfo : gpsList) {
gpsInfoMap.put(survGpsInfo.getId(), survGpsInfo);
}
}
for (SurvVehicleInfo record : records) {
SurvGpsInfo gpsInfo = gpsInfoMap.get(record.getGpsId());
record.setGpsCode(gpsInfo!=null?gpsInfo.getGpsCode():"");
}
}
}
}

View File

@ -8,6 +8,8 @@ public class VehicleDTO {
@ApiModelProperty(value = "授权id")
private String authId;
@ApiModelProperty(value = "车辆名称,非必填")
private String gpsId;
@ApiModelProperty(value = "车辆名称,非必填")
private String vehicleName;
@ApiModelProperty(value = "司机姓名,非必填")
private String driverName;

View File

@ -4,10 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@ -147,4 +145,10 @@ public class SurvGpsInfo implements Serializable {
@Excel(name = "乐观锁", width = 15)
@ApiModelProperty(value = "乐观锁")
private Integer revision;
@TableField(exist = false)
private String statusDesc;
@TableField(exist = false)
private String onlineStatusDesc;
}

View File

@ -362,4 +362,7 @@ public class SurvGpsRecord implements Serializable {
@Excel(name = "乐观锁", width = 15)
@ApiModelProperty(value = "乐观锁")
private Integer revision;
@TableField(exist = false)
private String vehicleName;
}

View File

@ -4,10 +4,8 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@ -111,4 +109,7 @@ public class SurvVehicleInfo implements Serializable {
@Excel(name = "乐观锁", width = 15)
@ApiModelProperty(value = "乐观锁")
private Integer revision;
@TableField(exist = false)
private String gpsCode;
}