提交 90b16f7f authored 作者: huningning's avatar huningning

Merge branch 'v6.4_transportation_20231110' into test

package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.constraints.NotBlank;
/**
* @ClassName TruckTraceParam
* @Description
* @Author kavin
* @Date 2023/11/13 9:47
* @Version 1.0
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TruckTraceParam {
@NotBlank(message = "车牌号不能为空")
@ApiModelProperty("车牌号")
private String truckNo;
@NotBlank(message = "开始时间不能为空")
@ApiModelProperty(value = "开始时间",example = "2023-11-11 12:00:00")
private String beginTime;
@NotBlank(message = "结束时间不能为空")
@ApiModelProperty(value = "结束时间",example = "2023-11-11 12:00:00")
private String endTime;
}
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.math.BigDecimal;
/**
* @ClassName TruckTraceVO
* @Description
* @Author kavin
* @Date 2023/11/13 9:50
* @Version 1.0
*/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TruckTraceVO {
@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;
}
......@@ -4,9 +4,11 @@ import com.clx.performance.dto.zjxl.TruckTraceDTO;
import com.clx.performance.param.pc.OrderGoodsTruckListParam;
import com.clx.performance.param.pc.PageTruckListParam;
import com.clx.performance.param.pc.PageVicinityTruckListParam;
import com.clx.performance.param.pc.TruckTraceParam;
import com.clx.performance.service.TruckService;
import com.clx.performance.vo.pc.OrderGoodsTruckListVO;
import com.clx.performance.vo.pc.PageTruckListVO;
import com.clx.performance.vo.pc.TruckTraceVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -76,8 +78,10 @@ public class TruckController {
return Result.ok(list);
}
@ApiOperation(value = "获取某辆车的轨迹信息", notes = "<br>By:刘海泉")
@PostMapping("/getTruckTrace")
public Result<List<TruckTraceVO>> getTruckTrace(@RequestBody @Validated TruckTraceParam param) {
List<TruckTraceVO> list = truckService.getTruckTrace(param);
return Result.ok(list);
}
}
......@@ -7,6 +7,9 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotNull;
@FeignClient(name = "payment-service")
......@@ -19,6 +22,6 @@ public interface FeignPaymentService {
* @return
*/
@GetMapping(value = "/walletCard/getWallet")
Result<WalletResidueCardDTO> getWallet(Integer userCode);
Result<WalletResidueCardDTO> getWallet(@RequestParam("userCode") @NotNull(message = "用户钱包地址编号不可为空")Integer userCode);
}
......@@ -5,8 +5,10 @@ import com.clx.performance.dto.zjxl.TruckTraceDTO;
import com.clx.performance.param.pc.OrderGoodsTruckListParam;
import com.clx.performance.param.pc.PageTruckListParam;
import com.clx.performance.param.pc.PageVicinityTruckListParam;
import com.clx.performance.param.pc.TruckTraceParam;
import com.clx.performance.vo.pc.OrderGoodsTruckListVO;
import com.clx.performance.vo.pc.PageTruckListVO;
import com.clx.performance.vo.pc.TruckTraceVO;
import com.msl.common.base.PageData;
import java.util.List;
......@@ -33,4 +35,6 @@ public interface TruckService {
List<TruckCoordinateDTO> getAllTruckCoordinate();
List<OrderGoodsTruckListVO> getOrderGoodsTruckList(OrderGoodsTruckListParam param);
List<TruckTraceVO> getTruckTrace(TruckTraceParam param);
}
package com.clx.performance.service.impl;
import com.alibaba.fastjson.JSON;
import com.clx.order.enums.ResultEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO;
......@@ -15,10 +14,13 @@ import com.clx.performance.model.OrderGoodsTruckBind;
import com.clx.performance.param.pc.OrderGoodsTruckListParam;
import com.clx.performance.param.pc.PageTruckListParam;
import com.clx.performance.param.pc.PageVicinityTruckListParam;
import com.clx.performance.param.pc.TruckTraceParam;
import com.clx.performance.service.TruckService;
import com.clx.performance.utils.RedisGeoUntil;
import com.clx.performance.utils.zjxl.ZjxlGpsService;
import com.clx.performance.vo.pc.OrderGoodsTruckListVO;
import com.clx.performance.vo.pc.PageTruckListVO;
import com.clx.performance.vo.pc.TruckTraceVO;
import com.clx.user.feign.UserClxFeign;
import com.clx.user.vo.feign.TruckUseStatusVO;
import com.msl.common.base.PageData;
......@@ -73,6 +75,9 @@ public class TruckServiceImpl implements TruckService {
@Autowired
OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Autowired
ZjxlGpsService zjxlGpsService;
/**
......@@ -357,4 +362,22 @@ public class TruckServiceImpl implements TruckService {
result.stream().forEach(item->{ item.setMaxDistance(truckDistanceMap.get(item.getTruckNo()));});
return result;
}
@Override
public List<TruckTraceVO> getTruckTrace(TruckTraceParam param) {
List<TruckTraceDTO> truckTrace = zjxlGpsService.getTruckTrace(param.getTruckNo(), param.getBeginTime(),
param.getEndTime());
List<TruckTraceVO> result = new ArrayList<>();
if(CollectionUtils.isNotEmpty(truckTrace)){
for (TruckTraceDTO item : truckTrace) {
TruckTraceVO vo = TruckTraceVO.builder().truckNo(
item.getTruckNo()).longitude(item.getLocation()[0]).latitude(item.getLocation()[1])
.angle(item.getAngle()).speed(item.getSpeed()).gpsTime(item.getGpsTime())
.height(item.getHeight()).mileage(item.getMileage()).createTime(item.getCreateTime())
.modifiedTime(item.getCreateTime()).build();
result.add(vo);
}
}
return result;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论