根据车辆编号获取所属运营区所有站点

This commit is contained in:
yanglei 2026-02-09 16:40:49 +08:00
parent 3559b0200a
commit 6dbec55d47
6 changed files with 82 additions and 7 deletions

View File

@ -14,6 +14,7 @@ import com.ebike.feign.model.vo.FeignEbikeBikeRadiusVo;
import com.ebike.feign.model.vo.FeignEbikeRefundReviewVo; import com.ebike.feign.model.vo.FeignEbikeRefundReviewVo;
import com.ebike.feign.model.vo.FeignEbikeRegionVo; import com.ebike.feign.model.vo.FeignEbikeRegionVo;
import com.ebike.feign.model.vo.FeignEbikeReportRecordVo; import com.ebike.feign.model.vo.FeignEbikeReportRecordVo;
import com.ebike.feign.model.vo.FeignEbikeSiteVo;
import com.ebike.feign.model.vo.FeignInspectionSwapOrderVo; import com.ebike.feign.model.vo.FeignInspectionSwapOrderVo;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -157,4 +158,12 @@ public interface OperationsFeignClient {
*/ */
@GetMapping("/ebikeEcuInfo/api/findBikeByBikeCode") @GetMapping("/ebikeEcuInfo/api/findBikeByBikeCode")
JsonResult<?> findBikeByBikeCode(@RequestParam("bikeCode") String bikeCode); JsonResult<?> findBikeByBikeCode(@RequestParam("bikeCode") String bikeCode);
/**
* 根据车辆编号获取该运营区所有站点
* @param bikeCode 车辆编号
* @return 所有站点
*/
@GetMapping("/ebikeBikeInfo/api/getAllSiteByBikeCode")
JsonResult<List<FeignEbikeSiteVo>> getAllSiteByBikeCode(@RequestParam("bikeCode") String bikeCode);
} }

View File

@ -8,7 +8,6 @@ import org.locationtech.jts.geom.Polygon;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* @author yanglei * @author yanglei

View File

@ -2,9 +2,18 @@ package com.cdzy.operations.controller;
import com.cdzy.common.model.request.PageParam; import com.cdzy.common.model.request.PageParam;
import com.cdzy.common.model.response.JsonResult; import com.cdzy.common.model.response.JsonResult;
import com.cdzy.operations.model.dto.*; import com.cdzy.operations.model.dto.EbikeBikeInfoDto;
import com.cdzy.operations.model.dto.EbikeDto;
import com.cdzy.operations.model.dto.EbikeScanInfoDto;
import com.cdzy.operations.model.dto.EbikeUserBikeInfo;
import com.cdzy.operations.model.dto.EbikeUserLockDto;
import com.cdzy.operations.model.entity.EbikeBikeInfo; import com.cdzy.operations.model.entity.EbikeBikeInfo;
import com.cdzy.operations.model.vo.*; import com.cdzy.operations.model.entity.EbikeSite;
import com.cdzy.operations.model.vo.EbikeBatchLaunchVo;
import com.cdzy.operations.model.vo.EbikeBatchUnLaunchVo;
import com.cdzy.operations.model.vo.EbikeBikeBindVo;
import com.cdzy.operations.model.vo.EbikeBikeRadiusVo;
import com.cdzy.operations.model.vo.EbikeEcuMsgDto;
import com.cdzy.operations.service.EbikeBikeInfoService; import com.cdzy.operations.service.EbikeBikeInfoService;
import com.ebike.feign.model.vo.EbikeLockVo; import com.ebike.feign.model.vo.EbikeLockVo;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
@ -17,7 +26,12 @@ import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.PrecisionModel; import org.locationtech.jts.geom.PrecisionModel;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
@ -207,4 +221,16 @@ public class EbikeBikeInfoController {
EbikeScanInfoDto info = ebikeBikeInfoService.scanInfo(bikeCode); EbikeScanInfoDto info = ebikeBikeInfoService.scanInfo(bikeCode);
return JsonResult.success(info); return JsonResult.success(info);
} }
/**
* 根据车辆编号获取所属运营区所有站点
*
* @param bikeCode 车辆编号
* @return 所有站点
*/
@GetMapping("/api/getAllSiteByBikeCode")
public JsonResult<?> getAllSiteByBikeCode(@RequestParam String bikeCode) {
List<EbikeSite> ebikeSites = ebikeBikeInfoService.getAllSiteByBikeCode(bikeCode);
return JsonResult.success(ebikeSites);
}
} }

View File

@ -3,6 +3,7 @@ package com.cdzy.operations.service;
import com.cdzy.common.model.request.PageParam; import com.cdzy.common.model.request.PageParam;
import com.cdzy.operations.model.dto.*; import com.cdzy.operations.model.dto.*;
import com.cdzy.operations.model.entity.EbikeBikeInfo; import com.cdzy.operations.model.entity.EbikeBikeInfo;
import com.cdzy.operations.model.entity.EbikeSite;
import com.cdzy.operations.model.vo.*; import com.cdzy.operations.model.vo.*;
import com.ebike.feign.model.vo.EbikeLockVo; import com.ebike.feign.model.vo.EbikeLockVo;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
@ -104,4 +105,11 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
* @return 车辆详情 * @return 车辆详情
*/ */
EbikeScanInfoDto scanInfo(String bikeCode); EbikeScanInfoDto scanInfo(String bikeCode);
/**
* 根据车辆编号获取该运营区所有站点
* @param bikeCode 车辆编号
* @return 所有站点
*/
List<EbikeSite> getAllSiteByBikeCode(String bikeCode);
} }

View File

@ -33,6 +33,7 @@ import com.cdzy.operations.model.entity.EbikeDispatchConfiguration;
import com.cdzy.operations.model.entity.EbikeEcuInfo; import com.cdzy.operations.model.entity.EbikeEcuInfo;
import com.cdzy.operations.model.entity.EbikeInventoryRecord; import com.cdzy.operations.model.entity.EbikeInventoryRecord;
import com.cdzy.operations.model.entity.EbikeRegion; import com.cdzy.operations.model.entity.EbikeRegion;
import com.cdzy.operations.model.entity.EbikeSite;
import com.cdzy.operations.model.entity.EbikeSpecialBillingConfiguration; import com.cdzy.operations.model.entity.EbikeSpecialBillingConfiguration;
import com.cdzy.operations.model.entity.EbikeSpecialDay; import com.cdzy.operations.model.entity.EbikeSpecialDay;
import com.cdzy.operations.model.entity.EbikeSpecialTime; import com.cdzy.operations.model.entity.EbikeSpecialTime;
@ -72,6 +73,7 @@ import static com.cdzy.operations.model.entity.table.EbikeBikeQrTableDef.EBIKE_B
import static com.cdzy.operations.model.entity.table.EbikeDefaultBillingConfigurationTableDef.EBIKE_DEFAULT_BILLING_CONFIGURATION; import static com.cdzy.operations.model.entity.table.EbikeDefaultBillingConfigurationTableDef.EBIKE_DEFAULT_BILLING_CONFIGURATION;
import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO; import static com.cdzy.operations.model.entity.table.EbikeEcuInfoTableDef.EBIKE_ECU_INFO;
import static com.cdzy.operations.model.entity.table.EbikeRegionTableDef.EBIKE_REGION; import static com.cdzy.operations.model.entity.table.EbikeRegionTableDef.EBIKE_REGION;
import static com.cdzy.operations.model.entity.table.EbikeSiteTableDef.EBIKE_SITE;
import static com.cdzy.operations.model.entity.table.EbikeSpecialBillingConfigurationTableDef.EBIKE_SPECIAL_BILLING_CONFIGURATION; import static com.cdzy.operations.model.entity.table.EbikeSpecialBillingConfigurationTableDef.EBIKE_SPECIAL_BILLING_CONFIGURATION;
import static com.cdzy.operations.model.entity.table.EbikeSpecialDayTableDef.EBIKE_SPECIAL_DAY; import static com.cdzy.operations.model.entity.table.EbikeSpecialDayTableDef.EBIKE_SPECIAL_DAY;
import static com.cdzy.operations.model.entity.table.EbikeSpecialTimeTableDef.EBIKE_SPECIAL_TIME; import static com.cdzy.operations.model.entity.table.EbikeSpecialTimeTableDef.EBIKE_SPECIAL_TIME;
@ -624,6 +626,23 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
return ebikeScanInfoDto; return ebikeScanInfoDto;
} }
@Override
public List<EbikeSite> getAllSiteByBikeCode(String bikeCode) {
// 根据车辆编号获取运营区
QueryWrapper queryWrapper = QueryWrapper.create()
.where(EBIKE_BIKE_INFO.BIKE_CODE.eq(bikeCode));
EbikeBikeInfo ebikeBikeInfo = this.mapper.selectOneByQuery(queryWrapper);
if (ebikeBikeInfo == null) {
throw new EbikeException("车辆信息不存在");
}
Long regionId = ebikeBikeInfo.getRegionId();
// 根据运营区id查询运营区下所有站点
queryWrapper.clear();
queryWrapper.select(EBIKE_SITE.ALL_COLUMNS)
.where(EBIKE_SITE.REGION_ID.eq(regionId));
return siteMapper.selectListByQuery(queryWrapper);
}
static EbikeSpecialDay getEbikeSpecialDay(List<EbikeSpecialDay> ebikeSpecialDays) { static EbikeSpecialDay getEbikeSpecialDay(List<EbikeSpecialDay> ebikeSpecialDays) {
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();

View File

@ -37,4 +37,18 @@ public class EbikeBikeInfoController {
} }
return JsonResult.success(jsonResult.getData()); return JsonResult.success(jsonResult.getData());
} }
/**
* 根据车辆编号获取所属运营区的所有站点
* @param bikeCode 车辆编号
* @return 站点列表
*/
@GetMapping("/getAllSiteByBikeCode")
public JsonResult<?> getAllSiteByBikeCode(@RequestParam("bikeCode") String bikeCode) {
JsonResult<?> jsonResult = operationsFeignClient.getAllSiteByBikeCode(bikeCode);
if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException(jsonResult.getMessage());
}
return JsonResult.success(jsonResult.getData());
}
} }