package cn.iocoder.yudao.module.vehicle.controller.admin.application;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.module.vehicle.controller.admin.application.vo.VehicleApplicationPageReqVO;
|
import cn.iocoder.yudao.module.vehicle.controller.admin.application.vo.VehicleApplicationRespVO;
|
import cn.iocoder.yudao.module.vehicle.controller.admin.application.vo.VehicleApplicationSaveReqVO;
|
import cn.iocoder.yudao.module.vehicle.dal.dataobject.application.VehicleApplicationDO;
|
import cn.iocoder.yudao.module.vehicle.enums.VehicleApplicationStatusEnum;
|
import cn.iocoder.yudao.module.vehicle.service.application.VehicleApplicationService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.annotation.Resource;
|
import jakarta.validation.Valid;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
@Tag(name = "管理后台 - 用车申请")
|
@RestController
|
@RequestMapping("/vehicle/application")
|
@Validated
|
public class VehicleApplicationController {
|
|
@Resource
|
private VehicleApplicationService applicationService;
|
|
@PostMapping("/create")
|
@Operation(summary = "创建用车申请")
|
@PreAuthorize("@ss.hasPermission('vehicle:application:create')")
|
public CommonResult<Long> createApplication(@Valid @RequestBody VehicleApplicationSaveReqVO reqVO) {
|
return success(applicationService.createApplication(reqVO));
|
}
|
|
@PutMapping("/update")
|
@Operation(summary = "更新用车申请")
|
@PreAuthorize("@ss.hasPermission('vehicle:application:update')")
|
public CommonResult<Boolean> updateApplication(@Valid @RequestBody VehicleApplicationSaveReqVO reqVO) {
|
applicationService.updateApplication(reqVO);
|
return success(true);
|
}
|
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除用车申请")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('vehicle:application:delete')")
|
public CommonResult<Boolean> deleteApplication(@RequestParam("id") Long id) {
|
applicationService.deleteApplication(id);
|
return success(true);
|
}
|
|
@GetMapping("/get")
|
@Operation(summary = "获得用车申请")
|
@Parameter(name = "id", description = "编号", required = true)
|
@PreAuthorize("@ss.hasPermission('vehicle:application:query')")
|
public CommonResult<VehicleApplicationRespVO> getApplication(@RequestParam("id") Long id) {
|
return success(buildRespVO(applicationService.getApplication(id)));
|
}
|
|
@GetMapping("/page")
|
@Operation(summary = "获得用车申请分页")
|
@PreAuthorize("@ss.hasPermission('vehicle:application:query')")
|
public CommonResult<PageResult<VehicleApplicationRespVO>> getApplicationPage(
|
@Valid VehicleApplicationPageReqVO reqVO) {
|
PageResult<VehicleApplicationDO> pageResult = applicationService.getApplicationPage(reqVO);
|
return success(new PageResult<>(buildRespVOList(pageResult.getList()), pageResult.getTotal()));
|
}
|
|
@PostMapping("/submit")
|
@Operation(summary = "提交用车审批")
|
@PreAuthorize("@ss.hasPermission('vehicle:application:submit')")
|
public CommonResult<Boolean> submitApplication(@RequestParam("id") Long id,
|
@RequestParam("processDefinitionKey") String processDefinitionKey) {
|
applicationService.submitApplication(id, processDefinitionKey);
|
return success(true);
|
}
|
|
@GetMapping("/approve-process-list")
|
@Operation(summary = "获取用车审批流程列表")
|
@PreAuthorize("@ss.hasPermission('vehicle:application:query')")
|
public CommonResult<List<Map<String, Object>>> getApproveProcessDefinitionList() {
|
return success(applicationService.getApproveProcessDefinitionList());
|
}
|
|
private VehicleApplicationRespVO buildRespVO(VehicleApplicationDO application) {
|
if (application == null) {
|
return null;
|
}
|
return buildRespVOList(java.util.Collections.singletonList(application)).get(0);
|
}
|
|
private List<VehicleApplicationRespVO> buildRespVOList(List<VehicleApplicationDO> list) {
|
return BeanUtils.toBean(list, VehicleApplicationRespVO.class, vo ->
|
vo.setStatusName(VehicleApplicationStatusEnum.nameOf(vo.getStatus())));
|
}
|
|
}
|