提交 dfaa344b authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'v14.4_vehicle_warn_20240425' into dev

...@@ -32,6 +32,8 @@ public class VehicleWarnConfigAddParam { ...@@ -32,6 +32,8 @@ public class VehicleWarnConfigAddParam {
private BigDecimal longitude; private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34") @ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude; private BigDecimal latitude;
@ApiModelProperty(value = "地址", example = "北京")
private String address;
@ApiModelProperty(value = "半径(米)", example = "100") @ApiModelProperty(value = "半径(米)", example = "100")
private Integer radius; private Integer radius;
......
...@@ -36,6 +36,8 @@ public class VehicleWarnConfigUpdateParam { ...@@ -36,6 +36,8 @@ public class VehicleWarnConfigUpdateParam {
private BigDecimal longitude; private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34") @ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude; private BigDecimal latitude;
@ApiModelProperty(value = "地址", example = "北京")
private String address;
@ApiModelProperty(value = "半径(米)", example = "123") @ApiModelProperty(value = "半径(米)", example = "123")
private Integer radius; private Integer radius;
......
package com.clx.performance.vo.pc.trace;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class DriverTraceVO {
@ApiModelProperty(value = "车牌号", dataType = "String")
private String truckNo;
@ApiModelProperty(value = "正北方向夹角", example = "90", dataType = "String")
private BigDecimal angle;
@ApiModelProperty(value = "GPS 速度", example = "602", dataType = "String")
private BigDecimal speed;
@ApiModelProperty(value = "里程", example = "1500", dataType = "String")
private BigDecimal mileage;
@ApiModelProperty(value = "海拔", example = "3250", dataType = "String")
private BigDecimal height;
@ApiModelProperty(value = "经度", example = "31.1233", dataType = "BigDecimal")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "161.342543", dataType = "BigDecimal")
private BigDecimal latitude;
@ApiModelProperty(value = "GPS 时间", example = "20140325/104954", dataType = "String")
private String gpsTime;
@ApiModelProperty(value = "创建时间", dataType = "String")
private String createTime;
@ApiModelProperty(value = "更新时间", dataType = "String")
private String modifiedTime;
}
package com.clx.performance.vo.pc.trace;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class DriverTruckTraceVO {
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "正北方向夹角", example = "12.34")
private BigDecimal angle;
@ApiModelProperty(value = "GPS 速度", example = "12.34")
private BigDecimal speed;
@ApiModelProperty(value = "里程", example = "12.34")
private BigDecimal mileage;
@ApiModelProperty(value = "海拔", example = "12.34")
private BigDecimal height;
@ApiModelProperty(value = "经度", example = "123.45")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude;
@ApiModelProperty(value = "GPS 时间")
private String gpsTime;
@ApiModelProperty(value = "创建时间")
private String createTime;
}
...@@ -51,6 +51,8 @@ public class VehicleWarnConfigVO { ...@@ -51,6 +51,8 @@ public class VehicleWarnConfigVO {
private BigDecimal longitude; private BigDecimal longitude;
@ApiModelProperty(value = "纬度", example = "12.34") @ApiModelProperty(value = "纬度", example = "12.34")
private BigDecimal latitude; private BigDecimal latitude;
@ApiModelProperty(value = "地址", example = "北京")
private String address;
@ApiModelProperty(value = "半径(米)", example = "123") @ApiModelProperty(value = "半径(米)", example = "123")
private Integer radius; private Integer radius;
......
...@@ -2,6 +2,8 @@ package com.clx.performance.controller.temp; ...@@ -2,6 +2,8 @@ package com.clx.performance.controller.temp;
import com.clx.performance.param.temp.TruckTraceAddParam; import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.service.trace.TruckTraceMqHandlerService; import com.clx.performance.service.trace.TruckTraceMqHandlerService;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -11,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -11,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
...@@ -26,14 +30,23 @@ public class TempTraceController { ...@@ -26,14 +30,23 @@ public class TempTraceController {
@Autowired @Autowired
private TruckTraceMqHandlerService truckTraceMqHandlerService; private TruckTraceMqHandlerService truckTraceMqHandlerService;
@Autowired
private TruckTraceService truckTraceService;
@ApiOperation(value = "truckTraceSync", notes = "<br>By:艾庆国") @ApiOperation(value = "truckTraceSync", notes = "<br>By:艾庆国")
@PostMapping("/truckTraceSync") @PostMapping("/truckTraceSync")
public Result truckTraceSync(@RequestBody TruckTraceAddParam param) { public Result truckTraceSync(@RequestBody TruckTraceAddParam param) {
truckTraceMqHandlerService.save(param); truckTraceService.save(param);
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "listTruckTraceByTime", notes = "<br>By:艾庆国")
@PostMapping("/listTruckTraceByTime")
public Result<List<DriverTruckTraceVO>> listTruckTraceByTime(String truckNo, String beginTime, String endTime) {
return Result.ok(truckTraceService.listTruckTraceByTime(truckNo,beginTime,endTime));
}
} }
...@@ -26,6 +26,7 @@ public class VehicleWarnConfigDaoImpl extends BaseDaoImpl<VehicleWarnConfigMappe ...@@ -26,6 +26,7 @@ public class VehicleWarnConfigDaoImpl extends BaseDaoImpl<VehicleWarnConfigMappe
.set(VehicleWarnConfig::getTimeoutRatio, item.getTimeoutRatio()) .set(VehicleWarnConfig::getTimeoutRatio, item.getTimeoutRatio())
.set(VehicleWarnConfig::getLongitude, item.getLongitude()) .set(VehicleWarnConfig::getLongitude, item.getLongitude())
.set(VehicleWarnConfig::getLatitude, item.getLatitude()) .set(VehicleWarnConfig::getLatitude, item.getLatitude())
.set(VehicleWarnConfig::getAddress, item.getAddress())
.set(VehicleWarnConfig::getRadius, item.getRadius()) .set(VehicleWarnConfig::getRadius, item.getRadius())
); );
} }
......
package com.clx.performance.esplus.model; package com.clx.performance.esplus.model;
import lombok.Data; import lombok.Data;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.IndexId; import org.dromara.easyes.annotation.IndexId;
import org.dromara.easyes.annotation.IndexName; import org.dromara.easyes.annotation.IndexName;
import org.dromara.easyes.annotation.rely.FieldType;
import org.dromara.easyes.annotation.rely.IdType; import org.dromara.easyes.annotation.rely.IdType;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -13,12 +15,14 @@ public class TruckTraceESPlus { ...@@ -13,12 +15,14 @@ public class TruckTraceESPlus {
@IndexId(type= IdType.UUID) @IndexId(type= IdType.UUID)
private String id; private String id;
@IndexField(fieldType = FieldType.KEYWORD)
private String truckNo; //车辆编号 private String truckNo; //车辆编号
private BigDecimal angle; //agl private BigDecimal angle; //agl
private BigDecimal speed; //速度 private BigDecimal speed; //速度
private BigDecimal mileage; //里程 private BigDecimal mileage; //里程
private BigDecimal height; //海拔 private BigDecimal height; //海拔
private BigDecimal[] location; //位置 private BigDecimal[] location; //位置
@IndexField(fieldType = FieldType.DATE)
private String gpsTime; //时间 private String gpsTime; //时间
private String createTime; private String createTime;
......
...@@ -36,6 +36,7 @@ public class VehicleWarnConfig implements HasKey<Integer> { ...@@ -36,6 +36,7 @@ public class VehicleWarnConfig implements HasKey<Integer> {
private BigDecimal timeoutRatio; //超时比例(%) private BigDecimal timeoutRatio; //超时比例(%)
private BigDecimal longitude; //经度 private BigDecimal longitude; //经度
private BigDecimal latitude; //纬度 private BigDecimal latitude; //纬度
private String address; //地址
private Integer radius; //半径(米) private Integer radius; //半径(米)
private Integer deleteStatus; //删除状态: 0-否;1-是 private Integer deleteStatus; //删除状态: 0-否;1-是
private Integer status; //状态:1启用 2禁用 private Integer status; //状态:1启用 2禁用
......
...@@ -51,24 +51,4 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic ...@@ -51,24 +51,4 @@ public class TruckTraceMqHandlerServiceImpl implements TruckTraceMqHandlerServic
} }
@Override
public void save(TruckTraceAddParam param){
List<TruckTraceESPlus> list = new ArrayList<>();
for (TruckTraceAddParam.TruckTraceItem item : param.getTraceList()) {
TruckTraceESPlus es = new TruckTraceESPlus();
es.setTruckNo(item.getTruckNo());
es.setAngle(item.getAngle());
es.setHeight(item.getHeight());
es.setLocation(item.getLocation());
es.setGpsTime(item.getGpsTime());
es.setMileage(item.getMileage());
es.setSpeed(item.getSpeed());
es.setCreateTime(LocalDateTimeUtils.formatTime());
list.add(es);
}
truckTraceESPlusMapper.insertBatch(list);
}
} }
package com.clx.performance.service.impl.trace;
import com.clx.performance.esplus.mapper.TruckTraceESPlusMapper;
import com.clx.performance.esplus.model.TruckTraceESPlus;
import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.service.trace.TruckTraceService;
import com.clx.performance.struct.trace.TruckTraceStruct;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import lombok.extern.slf4j.Slf4j;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class TruckTraceServiceImpl implements TruckTraceService {
@Autowired
private TruckTraceESPlusMapper truckTraceESPlusMapper;
@Autowired
private TruckTraceStruct truckTraceStruct;
@Override
public List<DriverTruckTraceVO> listTruckTraceByTime(String truckNo, String beginTime, String endTime) {
List<TruckTraceESPlus> list = truckTraceESPlusMapper.selectList(new LambdaEsQueryWrapper<TruckTraceESPlus>()
.eq(TruckTraceESPlus::getTruckNo, truckNo)
.ge(TruckTraceESPlus::getGpsTime, beginTime)
.le(TruckTraceESPlus::getGpsTime, endTime)
.orderByAsc("gpsTime")
);
List<DriverTruckTraceVO> truckTraceList = truckTraceStruct.convert(list);
return truckTraceList;
}
@Override
public void save(TruckTraceAddParam param){
List<TruckTraceESPlus> list = new ArrayList<>();
for (TruckTraceAddParam.TruckTraceItem item : param.getTraceList()) {
TruckTraceESPlus es = new TruckTraceESPlus();
es.setTruckNo(item.getTruckNo());
es.setAngle(item.getAngle());
es.setHeight(item.getHeight());
es.setLocation(item.getLocation());
es.setGpsTime(item.getGpsTime());
es.setMileage(item.getMileage());
es.setSpeed(item.getSpeed());
es.setCreateTime(LocalDateTimeUtils.formatTime());
list.add(es);
}
truckTraceESPlusMapper.insertBatch(list);
}
}
...@@ -51,6 +51,7 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService { ...@@ -51,6 +51,7 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio()); vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio());
vehicleWarnConfig.setLongitude(param.getLongitude()); vehicleWarnConfig.setLongitude(param.getLongitude());
vehicleWarnConfig.setLatitude(param.getLatitude()); vehicleWarnConfig.setLatitude(param.getLatitude());
vehicleWarnConfig.setAddress(param.getAddress());
vehicleWarnConfig.setRadius(param.getRadius()); vehicleWarnConfig.setRadius(param.getRadius());
vehicleWarnConfig.setCreateBy(loginUserInfo.getUserName()); vehicleWarnConfig.setCreateBy(loginUserInfo.getUserName());
...@@ -77,6 +78,7 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService { ...@@ -77,6 +78,7 @@ public class VehicleWarnConfigServiceImpl implements VehicleWarnConfigService {
vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio()); vehicleWarnConfig.setTimeoutRatio(param.getTimeoutRatio());
vehicleWarnConfig.setLongitude(param.getLongitude()); vehicleWarnConfig.setLongitude(param.getLongitude());
vehicleWarnConfig.setLatitude(param.getLatitude()); vehicleWarnConfig.setLatitude(param.getLatitude());
vehicleWarnConfig.setAddress(param.getAddress());
vehicleWarnConfig.setRadius(param.getRadius()); vehicleWarnConfig.setRadius(param.getRadius());
vehicleWarnConfigDao.updateConfig(vehicleWarnConfig); vehicleWarnConfigDao.updateConfig(vehicleWarnConfig);
......
package com.clx.performance.service.trace; package com.clx.performance.service.trace;
import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam; import com.clx.performance.param.mq.trace.TruckTraceSyncMqParam;
import com.clx.performance.param.temp.TruckTraceAddParam;
public interface TruckTraceMqHandlerService { public interface TruckTraceMqHandlerService {
void truckTracSync(TruckTraceSyncMqParam mq); void truckTracSync(TruckTraceSyncMqParam mq);
void save(TruckTraceAddParam param);
} }
package com.clx.performance.service.trace;
import com.clx.performance.param.temp.TruckTraceAddParam;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import java.util.List;
public interface TruckTraceService {
List<DriverTruckTraceVO> listTruckTraceByTime(String truckNo, String beginTime, String endTime);
void save(TruckTraceAddParam param);
}
package com.clx.performance.struct.trace;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.vehiclewarn.VehicleWarnConfig;
import com.clx.performance.vo.pc.vehiclewarn.VehicleWarnConfigVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface DriverTraceStruct {
VehicleWarnConfigVO convert(VehicleWarnConfig item);
Page<VehicleWarnConfigVO> convertPage(IPage<VehicleWarnConfig> page);
}
package com.clx.performance.struct.trace;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.esplus.model.TruckTraceESPlus;
import com.clx.performance.vo.pc.trace.DriverTruckTraceVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface TruckTraceStruct {
@Mapping(target = "longitude", expression = "java(item.getLocation()[0])")
@Mapping(target = "latitude", expression = "java(item.getLocation()[1])")
DriverTruckTraceVO convert(TruckTraceESPlus item);
List<DriverTruckTraceVO> convert(List<TruckTraceESPlus> page);
Page<DriverTruckTraceVO> convertPage(IPage<TruckTraceESPlus> page);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论