车辆编号映射
This commit is contained in:
parent
fc914f73a4
commit
35de1bd0e1
@ -8,6 +8,7 @@ import com.ebike.feign.model.res.ReqEcuSnDto;
|
||||
import com.ebike.feign.model.res.ReqLocationDto;
|
||||
import com.ebike.feign.model.res.ReqVehicleStatusUpdateDto;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeOrderBikeDto;
|
||||
import com.ebike.feign.model.rsp.RspBikeInfo;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -134,7 +135,7 @@ public interface MaintenanceFeignClient {
|
||||
*
|
||||
*/
|
||||
@PostMapping("ebikeBikeInfo/checkEcuSn")
|
||||
JsonResult<List<String>> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto);
|
||||
JsonResult<List<FeignEbikeOrderBikeDto>> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto);
|
||||
|
||||
/**
|
||||
* 根据车辆id将其设置为骑行中状态
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.ebike.feign.model.rsp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author attiya
|
||||
* @since 2025-07-07
|
||||
*/
|
||||
@Data
|
||||
public class FeignEbikeOrderBikeDto {
|
||||
private String ecuSn;
|
||||
private String bikeCode;
|
||||
}
|
||||
@ -891,7 +891,7 @@ public class EbikeBikeInfoController {
|
||||
|
||||
@PostMapping("checkEcuSn")
|
||||
JsonResult<?> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto) {
|
||||
List<String> list = ebikeBikeInfoService.checkEcuSn(ecuSnDto);
|
||||
List<EbikeOrderBikeDto> list = ebikeBikeInfoService.checkEcuSn(ecuSnDto);
|
||||
return JsonResult.success(list);
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.cdzy.ebikemaintenance.model.dto.response;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author attiya
|
||||
* @since 2025-07-07
|
||||
*/
|
||||
@Data
|
||||
public class EbikeOrderBikeDto {
|
||||
private String ecuSn;
|
||||
private String bikeCode;
|
||||
}
|
||||
@ -311,7 +311,7 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
|
||||
* @param ecuSnDto 列表
|
||||
* @return 列表
|
||||
*/
|
||||
List<String> checkEcuSn(EcuSnDto ecuSnDto);
|
||||
List<EbikeOrderBikeDto> checkEcuSn(EcuSnDto ecuSnDto);
|
||||
|
||||
/**
|
||||
* 根据运营区id获取运营车辆状态及其位置信息列表
|
||||
|
||||
@ -1524,17 +1524,17 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> checkEcuSn(EcuSnDto ecuSnDto) {
|
||||
public List<EbikeOrderBikeDto> checkEcuSn(EcuSnDto ecuSnDto) {
|
||||
if (ecuSnDto.getList() == null || ecuSnDto.getList().isEmpty()){
|
||||
return List.of();
|
||||
}
|
||||
QueryWrapper query = QueryWrapper.create()
|
||||
.select(EBIKE_ECU_INFO.ECU_SN)
|
||||
.select(EBIKE_ECU_INFO.ECU_SN,EBIKE_BIKE_INFO.BIKE_CODE)
|
||||
.leftJoin(EBIKE_ECU_INFO).on(EBIKE_ECU_INFO.ECU_ID.eq(EBIKE_BIKE_INFO.ECU_ID))
|
||||
.where(EBIKE_ECU_INFO.ECU_SN.in(ecuSnDto.getList()))
|
||||
.where(EBIKE_BIKE_INFO.IS_IN_WAREHOUSE.eq("0"))
|
||||
.where(EBIKE_BIKE_INFO.USAGE_STATUS.eq(2));
|
||||
return ebikeBikeInfoMapper.selectListByQueryAs(query, String.class);
|
||||
return ebikeBikeInfoMapper.selectListByQueryAs(query, EbikeOrderBikeDto.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -16,15 +16,15 @@ public class RspBikeDto {
|
||||
private Integer soc;
|
||||
private Double longitude;
|
||||
private Double latitude;
|
||||
// TODO:判断车辆状态、车辆编号
|
||||
private String status = "正常";
|
||||
private Float mileage = 35.5F;
|
||||
private String bikeCode = "1111111111111111111";
|
||||
private String status;
|
||||
private Float mileage;
|
||||
private String bikeCode;
|
||||
|
||||
public RspBikeDto(String ecuSn, Integer soc, Double longitude, Double latitude) {
|
||||
public RspBikeDto(String ecuSn, Integer soc, Double longitude, Double latitude, String bikeCode) {
|
||||
this.ecuSn = ecuSn;
|
||||
this.soc = soc;
|
||||
this.longitude = longitude;
|
||||
this.latitude = latitude;
|
||||
this.bikeCode = bikeCode;
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,10 +24,7 @@ import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetDto;
|
||||
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetTimePeriodDto;
|
||||
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetWeekDto;
|
||||
import com.ebike.feign.model.res.ResFeignOrderPaymentDto;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeEcuInfo;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeRegionDto;
|
||||
import com.ebike.feign.model.rsp.FeignEbikeSysRoperateset;
|
||||
import com.ebike.feign.model.rsp.*;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -39,8 +36,11 @@ import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.cdzy.orders.enums.TimeDivisionCharging.TIME_SLOT;
|
||||
import static com.cdzy.orders.enums.TimeDivisionCharging.WEEK;
|
||||
@ -219,19 +219,24 @@ public class UserOrdersServiceImpl extends ServiceImpl<UserOrdersMapper, EbikeUs
|
||||
List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(bikeDto.getLongitude(), bikeDto.getLatitude(), bikeDto.getRadius() == null ? 3.0 : bikeDto.getRadius());
|
||||
List<String> list = nearbyMembers.stream().map(RedisPoint::getMember).toList();
|
||||
//获取运营中的车辆
|
||||
JsonResult<List<String>> jsonResult = maintenanceFeignClient.checkEcuSnWithBikeInOperate(new EcuSnDto(list));
|
||||
JsonResult<List<FeignEbikeOrderBikeDto>> jsonResult = maintenanceFeignClient.checkEcuSnWithBikeInOperate(new EcuSnDto(list));
|
||||
if (jsonResult.getCode() != Code.SUCCESS) {
|
||||
throw new RuntimeException("车辆筛选错误");
|
||||
}
|
||||
List<String> data = jsonResult.getData();
|
||||
if (data == null || data.isEmpty()) {
|
||||
Map<String, FeignEbikeOrderBikeDto> map = jsonResult.getData().stream().collect(Collectors.toMap(
|
||||
FeignEbikeOrderBikeDto::getEcuSn, // key
|
||||
Function.identity(),
|
||||
(oldValue, newValue) -> newValue // value
|
||||
));
|
||||
List<String> data = jsonResult.getData().stream().map(FeignEbikeOrderBikeDto::getEcuSn).toList();
|
||||
if (data.isEmpty()) {
|
||||
return List.of();
|
||||
}
|
||||
List<Object> objects = redisUtil.multiGet(data);
|
||||
return objects.stream().map(object -> {
|
||||
String jsonString = JSONObject.toJSONString(object);
|
||||
ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class);
|
||||
return new RspBikeDto(resGpsDto.getEcuSn(), resGpsDto.getSoc(), resGpsDto.getLongitude(), resGpsDto.getLatitude());
|
||||
return new RspBikeDto(resGpsDto.getEcuSn(), resGpsDto.getSoc(), resGpsDto.getLongitude(), resGpsDto.getLatitude(),map.get(resGpsDto.getEcuSn()).getBikeCode());
|
||||
}).toList();
|
||||
}
|
||||
|
||||
|
||||
@ -49,25 +49,7 @@ class EbikeOrdersApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
// LocalTime localTime1 = LocalTime.of(10,22,23);
|
||||
// LocalTime localTime2 = LocalTime.of(10,22,23);
|
||||
// boolean result = localTime1.isBefore(localTime2) || localTime1.equals(localTime2);
|
||||
|
||||
// System.out.println(result);
|
||||
// EbikeUserOrders ebikeUserOrders = ordersMapper.selectOneById(267861509802156032L);
|
||||
// List<TimeSegment> timeSegments = TimeUtils.splitByDays(ebikeUserOrders.getStartTime(), ebikeUserOrders.getEndTime());
|
||||
// timeSegments.forEach(System.out::println);
|
||||
// System.out.println(crossDay);
|
||||
double lng = 103.97465469434792;
|
||||
double lat = 30.63210622402551;
|
||||
// List<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(lng, lat, 5.0);
|
||||
// nearbyMembers.forEach(System.out::println);
|
||||
// redisUtil.addLocation(new Point(lng,lat),"2370171016");
|
||||
//
|
||||
String area = redisUtil.isPointInAllOperationWithOperationId(lng, lat);
|
||||
System.out.println(area);
|
||||
// boolean pointInOperation = redisUtil.isPointInOperation(lng, lat, 258106438092689409L, 269652483491594240L);
|
||||
// System.out.println(pointInOperation);
|
||||
}
|
||||
|
||||
private static final String model_path = "D:/Projects/eBIKE/mybatis-flex/ebike-orders";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user