车辆编号映射
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.ReqLocationDto;
|
||||||
import com.ebike.feign.model.res.ReqVehicleStatusUpdateDto;
|
import com.ebike.feign.model.res.ReqVehicleStatusUpdateDto;
|
||||||
import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto;
|
import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto;
|
||||||
|
import com.ebike.feign.model.rsp.FeignEbikeOrderBikeDto;
|
||||||
import com.ebike.feign.model.rsp.RspBikeInfo;
|
import com.ebike.feign.model.rsp.RspBikeInfo;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -134,7 +135,7 @@ public interface MaintenanceFeignClient {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@PostMapping("ebikeBikeInfo/checkEcuSn")
|
@PostMapping("ebikeBikeInfo/checkEcuSn")
|
||||||
JsonResult<List<String>> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto);
|
JsonResult<List<FeignEbikeOrderBikeDto>> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据车辆id将其设置为骑行中状态
|
* 根据车辆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")
|
@PostMapping("checkEcuSn")
|
||||||
JsonResult<?> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto) {
|
JsonResult<?> checkEcuSnWithBikeInOperate(@RequestBody EcuSnDto ecuSnDto) {
|
||||||
List<String> list = ebikeBikeInfoService.checkEcuSn(ecuSnDto);
|
List<EbikeOrderBikeDto> list = ebikeBikeInfoService.checkEcuSn(ecuSnDto);
|
||||||
return JsonResult.success(list);
|
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 列表
|
* @param ecuSnDto 列表
|
||||||
* @return 列表
|
* @return 列表
|
||||||
*/
|
*/
|
||||||
List<String> checkEcuSn(EcuSnDto ecuSnDto);
|
List<EbikeOrderBikeDto> checkEcuSn(EcuSnDto ecuSnDto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据运营区id获取运营车辆状态及其位置信息列表
|
* 根据运营区id获取运营车辆状态及其位置信息列表
|
||||||
|
|||||||
@ -1524,17 +1524,17 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> checkEcuSn(EcuSnDto ecuSnDto) {
|
public List<EbikeOrderBikeDto> checkEcuSn(EcuSnDto ecuSnDto) {
|
||||||
if (ecuSnDto.getList() == null || ecuSnDto.getList().isEmpty()){
|
if (ecuSnDto.getList() == null || ecuSnDto.getList().isEmpty()){
|
||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
QueryWrapper query = QueryWrapper.create()
|
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))
|
.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_ECU_INFO.ECU_SN.in(ecuSnDto.getList()))
|
||||||
.where(EBIKE_BIKE_INFO.IS_IN_WAREHOUSE.eq("0"))
|
.where(EBIKE_BIKE_INFO.IS_IN_WAREHOUSE.eq("0"))
|
||||||
.where(EBIKE_BIKE_INFO.USAGE_STATUS.eq(2));
|
.where(EBIKE_BIKE_INFO.USAGE_STATUS.eq(2));
|
||||||
return ebikeBikeInfoMapper.selectListByQueryAs(query, String.class);
|
return ebikeBikeInfoMapper.selectListByQueryAs(query, EbikeOrderBikeDto.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -16,15 +16,15 @@ public class RspBikeDto {
|
|||||||
private Integer soc;
|
private Integer soc;
|
||||||
private Double longitude;
|
private Double longitude;
|
||||||
private Double latitude;
|
private Double latitude;
|
||||||
// TODO:判断车辆状态、车辆编号
|
private String status;
|
||||||
private String status = "正常";
|
private Float mileage;
|
||||||
private Float mileage = 35.5F;
|
private String bikeCode;
|
||||||
private String bikeCode = "1111111111111111111";
|
|
||||||
|
|
||||||
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.ecuSn = ecuSn;
|
||||||
this.soc = soc;
|
this.soc = soc;
|
||||||
this.longitude = longitude;
|
this.longitude = longitude;
|
||||||
this.latitude = latitude;
|
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.ResFeignEbikeSysRcostsetTimePeriodDto;
|
||||||
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetWeekDto;
|
import com.ebike.feign.model.res.ResFeignEbikeSysRcostsetWeekDto;
|
||||||
import com.ebike.feign.model.res.ResFeignOrderPaymentDto;
|
import com.ebike.feign.model.res.ResFeignOrderPaymentDto;
|
||||||
import com.ebike.feign.model.rsp.FeignEbikeBikeInfoDto;
|
import com.ebike.feign.model.rsp.*;
|
||||||
import com.ebike.feign.model.rsp.FeignEbikeEcuInfo;
|
|
||||||
import com.ebike.feign.model.rsp.FeignEbikeRegionDto;
|
|
||||||
import com.ebike.feign.model.rsp.FeignEbikeSysRoperateset;
|
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -39,8 +36,11 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.concurrent.CompletableFuture;
|
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.TIME_SLOT;
|
||||||
import static com.cdzy.orders.enums.TimeDivisionCharging.WEEK;
|
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<RedisPoint> nearbyMembers = redisUtil.findNearbyMembers(bikeDto.getLongitude(), bikeDto.getLatitude(), bikeDto.getRadius() == null ? 3.0 : bikeDto.getRadius());
|
||||||
List<String> list = nearbyMembers.stream().map(RedisPoint::getMember).toList();
|
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) {
|
if (jsonResult.getCode() != Code.SUCCESS) {
|
||||||
throw new RuntimeException("车辆筛选错误");
|
throw new RuntimeException("车辆筛选错误");
|
||||||
}
|
}
|
||||||
List<String> data = jsonResult.getData();
|
Map<String, FeignEbikeOrderBikeDto> map = jsonResult.getData().stream().collect(Collectors.toMap(
|
||||||
if (data == null || data.isEmpty()) {
|
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();
|
return List.of();
|
||||||
}
|
}
|
||||||
List<Object> objects = redisUtil.multiGet(data);
|
List<Object> objects = redisUtil.multiGet(data);
|
||||||
return objects.stream().map(object -> {
|
return objects.stream().map(object -> {
|
||||||
String jsonString = JSONObject.toJSONString(object);
|
String jsonString = JSONObject.toJSONString(object);
|
||||||
ResGPSDto resGpsDto = JSONObject.parseObject(jsonString, ResGPSDto.class);
|
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();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,25 +49,7 @@ class EbikeOrdersApplicationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void contextLoads() {
|
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";
|
private static final String model_path = "D:/Projects/eBIKE/mybatis-flex/ebike-orders";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user