feat: 创建项目功能后端实现

- 创建 ccdi_project 表及相关字典和权限
- 添加逻辑删除和归档字段
- 实现实体类、DTO、VO、Mapper、Service、Controller
- 优化字段命名和长度
- 添加完整的校验注解和 Swagger 文档
- 通过代码审查
This commit is contained in:
wkc
2026-02-26 17:04:45 +08:00
parent 422df06095
commit 324c978584
10 changed files with 528 additions and 0 deletions

View File

@@ -0,0 +1,89 @@
package com.ruoyi.info.collection.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.info.collection.domain.dto.CcdiProjectQueryDTO;
import com.ruoyi.info.collection.domain.dto.CcdiProjectSaveDTO;
import com.ruoyi.info.collection.domain.vo.CcdiProjectVO;
import com.ruoyi.info.collection.service.ICcdiProjectService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 纪检初核项目管理Controller
*
* @author ruoyi
*/
@RestController
@RequestMapping("/ccdi/project")
@Tag(name = "纪检初核项目管理")
public class CcdiProjectController extends BaseController {
@Resource
private ICcdiProjectService projectService;
/**
* 创建项目
*/
@PostMapping
@Operation(summary = "创建项目")
@PreAuthorize("@ss.hasPermi('ccdi:project:add')")
public AjaxResult createProject(@Validated @RequestBody CcdiProjectSaveDTO dto) {
CcdiProjectVO vo = projectService.createProject(dto);
return AjaxResult.success("项目创建成功", vo);
}
/**
* 更新项目
*/
@PutMapping
@Operation(summary = "更新项目")
@PreAuthorize("@ss.hasPermi('ccdi:project:edit')")
public AjaxResult updateProject(@Validated @RequestBody CcdiProjectSaveDTO dto) {
CcdiProjectVO vo = projectService.updateProject(dto);
return AjaxResult.success("项目更新成功", vo);
}
/**
* 删除项目
*/
@DeleteMapping("/{projectId}")
@Operation(summary = "删除项目")
@PreAuthorize("@ss.hasPermi('ccdi:project:remove')")
public AjaxResult deleteProject(@PathVariable Long projectId) {
boolean success = projectService.deleteProject(projectId);
return success ? AjaxResult.success("项目删除成功") : AjaxResult.error("项目删除失败");
}
/**
* 查询项目详情
*/
@GetMapping("/{projectId}")
@Operation(summary = "查询项目详情")
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
public AjaxResult getProject(@PathVariable Long projectId) {
CcdiProjectVO vo = projectService.getProjectById(projectId);
return AjaxResult.success(vo);
}
/**
* 查询项目列表(分页)
*/
@GetMapping("/list")
@Operation(summary = "查询项目列表")
@PreAuthorize("@ss.hasPermi('ccdi:project:list')")
public TableDataInfo listProject(CcdiProjectQueryDTO queryDTO) {
PageDomain pageDomain = TableSupport.buildPageRequest();
Page<CcdiProjectVO> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
Page<CcdiProjectVO> result = projectService.selectProjectPage(page, queryDTO);
return getDataTable(result.getRecords(), result.getTotal());
}
}