package com.xiaopeng.vehicleConvoy.controller;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
|
import com.xiaopeng.api.model.vehicleConvoy.XpFleetOperations;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.vehicleConvoy.model.dto.FleetAddDTO;
|
import com.xiaopeng.vehicleConvoy.model.dto.FleetEditDTO;
|
import com.xiaopeng.vehicleConvoy.model.query.FleetPageQuery;
|
import com.xiaopeng.vehicleConvoy.model.query.FleetUserPageQuery;
|
import com.xiaopeng.vehicleConvoy.model.query.FleetVehiclePageQuery;
|
import com.xiaopeng.vehicleConvoy.model.vo.*;
|
import com.xiaopeng.vehicleConvoy.service.IXpFleetOperationsService;
|
import com.xiaopeng.vehicleConvoy.service.IXpFleetService;
|
import io.swagger.annotations.*;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 车队管理 前端控制器
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
@Api(tags = "车队管理")
|
@RequiredArgsConstructor(onConstructor_ = @Lazy)
|
@RestController
|
public class XpFleetController {
|
|
private final IXpFleetService xpFleetService;
|
private final IXpFleetOperationsService xpFleetOperationsService;
|
|
/**
|
* 根据ID列表批量查询车队信息(内部接口)
|
*
|
* @param ids 车队ID列表
|
* @return 车队列表
|
*/
|
@ApiOperation(value = "批量查询车队信息", tags = {"内部接口"})
|
@PostMapping("/inner/fleet/listByIds")
|
public R<List<XpFleet>> listByIds(@RequestBody List<Long> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return R.ok(new ArrayList<>());
|
}
|
return R.ok(xpFleetService.listByIds(ids));
|
}
|
/**
|
* 通过运营人员id查询车队信息
|
*
|
* @param operationsUserId 运营人员id
|
* @return 车队信息
|
*/
|
@ApiOperation(value = "通过运维人员id查询车队信息", tags = {"内部接口"})
|
@GetMapping("/inner/v1/fleet/getFleetByOperationsUserId")
|
public R<XpFleet> getFleetByOperationsUserId(@RequestParam Long operationsUserId) {
|
if (Objects.isNull(operationsUserId)) {
|
return R.ok();
|
}
|
// 查询车队人员关联关系
|
XpFleetOperations fleetOperations = xpFleetOperationsService.getOne(Wrappers.lambdaQuery(XpFleetOperations.class)
|
.eq(XpFleetOperations::getOperationsUserId, operationsUserId)
|
.last("LIMIT 1"));
|
if (Objects.isNull(fleetOperations)) {
|
return R.ok();
|
}
|
XpFleet xpFleet = xpFleetService.getById(fleetOperations.getFleetId());
|
return R.ok(xpFleet);
|
}
|
|
/**
|
* 添加车队
|
*
|
* @param dto 添加车队DTO
|
* @return 操作结果
|
*/
|
@ApiOperation(value = "添加车队", tags = {"管理后台-车队管理"}, notes = "打卡地列表接口在xp-robotaxi-maintenance-boot,人员列表在xp-robotaxi-account-boot")
|
@PostMapping("/api/v1/fleet/add")
|
public R<Void> add(@Valid @RequestBody FleetAddDTO dto) {
|
return xpFleetService.add(dto);
|
}
|
|
/**
|
* 编辑车队
|
*
|
* @param dto 编辑车队DTO
|
* @return 操作结果
|
*/
|
@ApiOperation(value = "编辑车队", tags = {"管理后台-车队管理"}, notes = "打卡地列表接口在xp-robotaxi-maintenance-boot,人员列表在xp-robotaxi-account-boot")
|
@PostMapping("/api/v1/fleet/edit")
|
public R<Void> edit(@Valid @RequestBody FleetEditDTO dto) {
|
return xpFleetService.edit(dto);
|
}
|
|
/**
|
* 查询车队详情
|
*
|
* @param id 车队id
|
* @return 车队详情
|
*/
|
@ApiOperation(value = "查询车队详情", tags = {"管理后台-车队管理"})
|
@GetMapping("/api/v1/fleet/queryById")
|
public R<FleetDetailVO> queryById(@RequestParam Long id) {
|
return xpFleetService.queryById(id);
|
}
|
|
/**
|
* 车队分页列表
|
*
|
* @param query 查询参数
|
* @return 分页结果
|
*/
|
@ApiOperation(value = "车队分页列表", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/pageList")
|
public R<PageInfo<FleetPageVO>> pageList(@Valid @RequestBody FleetPageQuery query) {
|
return xpFleetService.pageList(query);
|
}
|
|
/**
|
* 查询车队车辆分页列表
|
*
|
* @param query 查询参数
|
* @return 分页结果
|
*/
|
@ApiOperation(value = "查询车队车辆分页列表", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/queryVehiclePageList")
|
public R<PageInfo<FleetVehicleVO>> queryVehiclePageList(@Valid @RequestBody FleetVehiclePageQuery query) {
|
return xpFleetService.queryVehiclePageList(query);
|
}
|
|
/**
|
* 查询车队人员分页列表
|
*
|
* @param query 查询参数
|
* @return 分页结果
|
*/
|
@ApiOperation(value = "查询车队人员分页列表", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/queryUserPageList")
|
public R<PageInfo<FleetUserVO>> queryUserPageList(@Valid @RequestBody FleetUserPageQuery query) {
|
return xpFleetService.queryUserPageList(query);
|
}
|
|
@ApiOperation(value = "删除车队", tags = {"管理后台-车队管理"})
|
@DeleteMapping("/api/v1/fleet/delete/{id}")
|
public R<?> deleteById(@ApiParam(name = "id", value = "车队ID") @PathVariable Long id) {
|
xpFleetService.deleteById(id);
|
return R.ok();
|
}
|
|
@ApiOperation(value = "车队添加车辆成员", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/vehicle/add")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "fleetId", value = "车队ID", dataTypeClass = Long.class),
|
@ApiImplicitParam(name = "vehicleId", value = "车辆ID", dataTypeClass = Long.class)})
|
public R<?> addVehicle(Long fleetId, Long vehicleId) {
|
xpFleetService.addVehicle(fleetId, vehicleId);
|
return R.ok();
|
}
|
|
@ApiOperation(value = "车队添加人员成员", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/operation-user/add")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "fleetId", value = "车队ID", dataTypeClass = Long.class),
|
@ApiImplicitParam(name = "operationUserId", value = "车辆ID", dataTypeClass = Long.class)})
|
public R<?> addOperationUserId(Long fleetId, Long operationUserId) {
|
xpFleetService.addOperationUserId(fleetId, operationUserId);
|
return R.ok();
|
}
|
|
@ApiOperation(value = "车队删除车辆成员", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/vehicle/remove")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "fleetId", value = "车队ID", dataTypeClass = Long.class, required = true),
|
@ApiImplicitParam(name = "vehicleId", value = "车辆ID", dataTypeClass = Long.class, required = true)})
|
public R<?> removeVehicle(Long fleetId, Long vehicleId) {
|
xpFleetService.removeVehicle(fleetId, vehicleId);
|
return R.ok();
|
}
|
|
@ApiOperation(value = "车队删除人员成员", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/operation-user/remove")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "fleetId", value = "车队ID", dataTypeClass = Long.class, required = true),
|
@ApiImplicitParam(name = "operationUserId", value = "人员ID", dataTypeClass = Long.class, required = true)})
|
public R<?> removeOperationUser(Long fleetId, Long operationUserId) {
|
xpFleetService.removeOperationUser(fleetId, operationUserId);
|
return R.ok();
|
}
|
/**
|
* 根据ID列表批量查询车队信息(内部接口)
|
*
|
* @return 车队列表
|
*/
|
@ApiOperation(value = "获取车队不分页列表", tags = {"管理后台-车队管理"})
|
@PostMapping("/api/v1/fleet/list")
|
public R<List<XpFleet>> getList() {
|
return R.ok(xpFleetService.list());
|
}
|
}
|