车辆上/下架
This commit is contained in:
parent
7c8b9dfeb8
commit
e3c3d7479a
@ -1,14 +1,16 @@
|
||||
package com.cdzy.operations.controller;
|
||||
|
||||
import com.cdzy.common.model.request.PageParam;
|
||||
import com.cdzy.common.model.response.JsonResult;
|
||||
import com.cdzy.operations.model.entity.EbikeBikeInfo;
|
||||
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.service.EbikeBikeInfoService;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 车辆基本信息 控制层。
|
||||
@ -26,6 +28,7 @@ public class EbikeBikeInfoController {
|
||||
|
||||
/**
|
||||
* 整车绑定
|
||||
*
|
||||
* @param bindVo 绑定信息
|
||||
* @return 绑定结果
|
||||
*/
|
||||
@ -34,4 +37,51 @@ public class EbikeBikeInfoController {
|
||||
ebikeBikeInfoService.bind(bindVo);
|
||||
return JsonResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 未上架车辆分页查询
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("unLaunchPage")
|
||||
public JsonResult<?> unLaunchPage(PageParam pageParam) {
|
||||
Page<EbikeBikeInfo> page = ebikeBikeInfoService.unLaunchPage(pageParam);
|
||||
return JsonResult.success(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上架车辆分页查询
|
||||
*
|
||||
* @param pageParam 分页参数
|
||||
* @return 结果
|
||||
*/
|
||||
@GetMapping("launchPage")
|
||||
public JsonResult<?> launchPage(PageParam pageParam) {
|
||||
Page<EbikeBikeInfo> page = ebikeBikeInfoService.launchPage(pageParam);
|
||||
return JsonResult.success(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量上架
|
||||
*
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("batchLaunch")
|
||||
public JsonResult<?> batchLaunch(@Validated @RequestBody EbikeBatchLaunchVo launchVo) {
|
||||
ebikeBikeInfoService.batchLaunch(launchVo);
|
||||
return JsonResult.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量下架
|
||||
*
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("batchUnLaunch")
|
||||
public JsonResult<?> batchUnLaunch(@Validated @RequestBody EbikeBatchUnLaunchVo launchVo) {
|
||||
ebikeBikeInfoService.batchUnLaunch(launchVo);
|
||||
return JsonResult.success();
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +95,20 @@ public class EbikeRegionController {
|
||||
return JsonResult.success(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询所有运营中的运营区域表。
|
||||
*
|
||||
* @return 所有数据
|
||||
*/
|
||||
@GetMapping("operationList")
|
||||
public JsonResult<?> operationList() {
|
||||
QueryWrapper queryWrapper = QueryWrapper.create()
|
||||
.where(EBIKE_REGION.STATUS.eq(RegionStatus.OPERATION));
|
||||
List<EbikeRegion> operationList = ebikeRegionService.list(queryWrapper);
|
||||
return JsonResult.success(operationList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据运营区域表主键获取详细信息。
|
||||
*
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
package com.cdzy.operations.model.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author attiya
|
||||
* @since 2025-10-21
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EbikeBatchLaunchVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 车辆ID列表
|
||||
*/
|
||||
@NotNull(message = "车辆ID列表不能为空")
|
||||
private List<Long> bikeIds;
|
||||
|
||||
/**
|
||||
* 运营区ID
|
||||
*/
|
||||
@NotNull(message = "运营区ID不能为空")
|
||||
private Long regionId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.cdzy.operations.model.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author attiya
|
||||
* @since 2025-10-21
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class EbikeBatchUnLaunchVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 车辆ID列表
|
||||
*/
|
||||
@NotNull(message = "车辆ID列表不能为空")
|
||||
private List<Long> bikeIds;
|
||||
|
||||
}
|
||||
@ -1,8 +1,12 @@
|
||||
package com.cdzy.operations.service;
|
||||
|
||||
import com.cdzy.operations.model.vo.EbikeBikeBindVo;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.cdzy.common.model.request.PageParam;
|
||||
import com.cdzy.operations.model.entity.EbikeBikeInfo;
|
||||
import com.cdzy.operations.model.vo.EbikeBatchLaunchVo;
|
||||
import com.cdzy.operations.model.vo.EbikeBatchUnLaunchVo;
|
||||
import com.cdzy.operations.model.vo.EbikeBikeBindVo;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import org.postgresql.geometric.PGpolygon;
|
||||
|
||||
import java.util.List;
|
||||
@ -27,4 +31,30 @@ public interface EbikeBikeInfoService extends IService<EbikeBikeInfo> {
|
||||
* @return 列表
|
||||
*/
|
||||
List<EbikeBikeInfo> list(PGpolygon polygon);
|
||||
|
||||
/**
|
||||
* 上架车辆分页查询
|
||||
* @param pageParam 分页参数
|
||||
* @return 结果
|
||||
*/
|
||||
Page<EbikeBikeInfo> launchPage(PageParam pageParam);
|
||||
|
||||
/**
|
||||
* 未上架车辆分页查询
|
||||
* @param pageParam 分页参数
|
||||
* @return 结果
|
||||
*/
|
||||
Page<EbikeBikeInfo> unLaunchPage(PageParam pageParam);
|
||||
|
||||
/**
|
||||
* 批量上架
|
||||
* @param launchVo 上架参数
|
||||
*/
|
||||
void batchLaunch(EbikeBatchLaunchVo launchVo);
|
||||
|
||||
/**
|
||||
* 批量下架
|
||||
* @param launchVo 下架参数
|
||||
*/
|
||||
void batchUnLaunch(EbikeBatchUnLaunchVo launchVo);
|
||||
}
|
||||
|
||||
@ -2,18 +2,20 @@ package com.cdzy.operations.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.cdzy.common.ex.EbikeException;
|
||||
import com.cdzy.operations.enums.BatteryStatus;
|
||||
import com.cdzy.operations.enums.BikeQrStatus;
|
||||
import com.cdzy.operations.enums.BikeStatus;
|
||||
import com.cdzy.operations.enums.BikeUsageStatus;
|
||||
import com.cdzy.common.model.request.PageParam;
|
||||
import com.cdzy.operations.enums.*;
|
||||
import com.cdzy.operations.mapper.*;
|
||||
import com.cdzy.operations.model.entity.*;
|
||||
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.EbikeInventoryVo;
|
||||
import com.cdzy.operations.service.EbikeBikeInfoService;
|
||||
import com.cdzy.operations.service.EbikeInventoryRecordService;
|
||||
import com.cdzy.operations.service.EbikeInventoryService;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.core.update.UpdateChain;
|
||||
import com.mybatisflex.core.util.StringUtil;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -45,6 +47,9 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
||||
@Resource
|
||||
EbikeBikeQrMapper bikeQrMapper;
|
||||
|
||||
@Resource
|
||||
EbikeRegionMapper regionMapper;
|
||||
|
||||
@Resource
|
||||
EbikeEcuInfoMapper ebikeEcuInfoMapper;
|
||||
|
||||
@ -195,4 +200,42 @@ public class EbikeBikeInfoServiceImpl extends ServiceImpl<EbikeBikeInfoMapper, E
|
||||
return this.mapper.selectListByQuery(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<EbikeBikeInfo> launchPage(PageParam pageParam) {
|
||||
QueryWrapper query = QueryWrapper.create()
|
||||
.select(EBIKE_BIKE_INFO.ALL_COLUMNS)
|
||||
.from(EBIKE_BIKE_INFO)
|
||||
.where(EBIKE_BIKE_INFO.STATUS.eq(BikeStatus.LAUNCH));
|
||||
return this.mapper.paginate(pageParam.getPage(),query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<EbikeBikeInfo> unLaunchPage(PageParam pageParam) {
|
||||
QueryWrapper query = QueryWrapper.create()
|
||||
.select(EBIKE_BIKE_INFO.ALL_COLUMNS)
|
||||
.from(EBIKE_BIKE_INFO)
|
||||
.where(EBIKE_BIKE_INFO.STATUS.eq(BikeStatus.UN_LAUNCH));
|
||||
return this.mapper.paginate(pageParam.getPage(),query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchLaunch(EbikeBatchLaunchVo launchVo) {
|
||||
EbikeRegion region = regionMapper.selectOneById(launchVo.getRegionId());
|
||||
if (region == null || region.getStatus() == RegionStatus.UN_OPERATION || region.getStatus() == RegionStatus.STOP_OPERATION) {
|
||||
throw new EbikeException("该运营区不存在或未开始运营");
|
||||
}
|
||||
UpdateChain.of(EbikeBikeInfo.class)
|
||||
.set(EBIKE_BIKE_INFO.STATUS, BikeStatus.LAUNCH)
|
||||
.where(EBIKE_BIKE_INFO.BIKE_INFO_ID.in(launchVo.getBikeIds()))
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchUnLaunch(EbikeBatchUnLaunchVo launchVo) {
|
||||
UpdateChain.of(EbikeBikeInfo.class)
|
||||
.set(EBIKE_BIKE_INFO.STATUS, BikeStatus.UN_LAUNCH)
|
||||
.where(EBIKE_BIKE_INFO.BIKE_INFO_ID.in(launchVo.getBikeIds()))
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user