refactor: 将项目代码从 ccdi-info-collection 迁移到 ccdi-project 模块

- 将 CcdiProject 相关代码移动到 ccdi-project 模块
- 修复 CcdiModelParam 审计字段注解
- 更新所有 package 声明和 import 语句
- 更新 Mapper XML namespace
- 通过代码审查
This commit is contained in:
wkc
2026-02-27 08:44:31 +08:00
parent b8f798ee5d
commit 76102f032b
11 changed files with 56 additions and 28 deletions

View File

@@ -1,89 +0,0 @@
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());
}
}

View File

@@ -1,75 +0,0 @@
package com.ruoyi.info.collection.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 纪检初核项目实体类
*
* @author ruoyi
*/
@Data
@TableName("ccdi_project")
public class CcdiProject implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/** 项目ID */
@TableId(type = IdType.AUTO)
private Long projectId;
/** 项目名称 */
private String projectName;
/** 项目描述 */
private String description;
/** 配置方式default-全局默认custom-自定义 */
private String configType;
/** 项目状态0-进行中1-已完成2-已归档 */
private String status;
/** 是否归档0-未归档1-已归档 */
private Integer isArchived;
/** 目标人数 */
private Integer targetCount;
/** 高风险人数 */
private Integer highRiskCount;
/** 中风险人数 */
private Integer mediumRiskCount;
/** 低风险人数 */
private Integer lowRiskCount;
/** 删除标志0-存在2-删除 */
@TableLogic
private String delFlag;
/** 创建者 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 创建时间 */
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/** 更新者 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private String updateBy;
/** 更新时间 */
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/** 备注 */
private String remark;
}

View File

@@ -1,17 +0,0 @@
package com.ruoyi.info.collection.domain.dto;
import lombok.Data;
/**
* 项目查询DTO
*
* @author ruoyi
*/
@Data
public class CcdiProjectQueryDTO {
/** 项目名称 */
private String projectName;
/** 项目状态 */
private String status;
}

View File

@@ -1,27 +0,0 @@
package com.ruoyi.info.collection.domain.dto;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.Length;
/**
* 项目保存DTO
*
* @author ruoyi
*/
@Data
public class CcdiProjectSaveDTO {
/** 项目名称(必填) */
@NotBlank(message = "项目名称不能为空")
@Length(max = 200, message = "项目名称长度不能超过200个字符")
private String projectName;
/** 项目描述(可选) */
@Length(max = 500, message = "项目描述长度不能超过500个字符")
private String description;
/** 配置方式必填default-全局默认custom-自定义 */
@NotBlank(message = "配置方式不能为空")
private String configType;
}

View File

@@ -1,52 +0,0 @@
package com.ruoyi.info.collection.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* 项目VO
*
* @author ruoyi
*/
@Data
public class CcdiProjectVO {
/** 项目ID */
private Long projectId;
/** 项目名称 */
private String projectName;
/** 项目描述 */
private String description;
/** 配置方式 */
private String configType;
/** 项目状态 */
private String status;
/** 是否归档0-未归档1-已归档 */
private Integer isArchived;
/** 目标人数 */
private Integer targetCount;
/** 高风险人数 */
private Integer highRiskCount;
/** 中风险人数 */
private Integer mediumRiskCount;
/** 低风险人数 */
private Integer lowRiskCount;
/** 创建时间 */
private Date createTime;
/** 创建者(用户名) */
private String createBy;
/** 创建者姓名(真实姓名) */
private String createByName;
}

View File

@@ -1,26 +0,0 @@
package com.ruoyi.info.collection.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.info.collection.domain.CcdiProject;
import com.ruoyi.info.collection.domain.dto.CcdiProjectQueryDTO;
import com.ruoyi.info.collection.domain.vo.CcdiProjectVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 项目Mapper接口
*
* @author ruoyi
*/
@Mapper
public interface CcdiProjectMapper extends BaseMapper<CcdiProject> {
/**
* 分页查询项目列表
*
* @param page 分页对象
* @param queryDTO 查询条件
* @return 分页结果
*/
Page<CcdiProjectVO> selectProjectPage(Page<CcdiProjectVO> page, @Param("queryDTO") CcdiProjectQueryDTO queryDTO);
}

View File

@@ -1,54 +0,0 @@
package com.ruoyi.info.collection.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.info.collection.domain.dto.CcdiProjectQueryDTO;
import com.ruoyi.info.collection.domain.dto.CcdiProjectSaveDTO;
import com.ruoyi.info.collection.domain.vo.CcdiProjectVO;
/**
* 项目Service接口
*
* @author ruoyi
*/
public interface ICcdiProjectService {
/**
* 创建项目
*
* @param dto 项目保存DTO
* @return 项目VO
*/
CcdiProjectVO createProject(CcdiProjectSaveDTO dto);
/**
* 更新项目
*
* @param dto 项目更新DTO
* @return 项目VO
*/
CcdiProjectVO updateProject(CcdiProjectSaveDTO dto);
/**
* 删除项目
*
* @param projectId 项目ID
* @return 是否成功
*/
boolean deleteProject(Long projectId);
/**
* 查询项目详情
*
* @param projectId 项目ID
* @return 项目VO
*/
CcdiProjectVO getProjectById(Long projectId);
/**
* 分页查询项目列表
*
* @param page 分页对象
* @param queryDTO 查询条件
* @return 分页结果
*/
Page<CcdiProjectVO> selectProjectPage(Page<CcdiProjectVO> page, CcdiProjectQueryDTO queryDTO);
}

View File

@@ -1,71 +0,0 @@
package com.ruoyi.info.collection.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.info.collection.domain.CcdiProject;
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.mapper.CcdiProjectMapper;
import com.ruoyi.info.collection.service.ICcdiProjectService;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
/**
* 项目Service实现类
*
* @author ruoyi
*/
@Service
public class CcdiProjectServiceImpl implements ICcdiProjectService {
@Resource
private CcdiProjectMapper projectMapper;
@Override
public CcdiProjectVO createProject(CcdiProjectSaveDTO dto) {
CcdiProject project = new CcdiProject();
BeanUtils.copyProperties(dto, project);
// 设置默认值
project.setStatus("0"); // 进行中
project.setIsArchived(0); // 未归档
project.setTargetCount(0);
project.setHighRiskCount(0);
project.setMediumRiskCount(0);
project.setLowRiskCount(0);
projectMapper.insert(project);
CcdiProjectVO vo = new CcdiProjectVO();
BeanUtils.copyProperties(project, vo);
return vo;
}
@Override
public CcdiProjectVO updateProject(CcdiProjectSaveDTO dto) {
// TODO: 实现更新逻辑
return null;
}
@Override
public boolean deleteProject(Long projectId) {
return projectMapper.deleteById(projectId) > 0;
}
@Override
public CcdiProjectVO getProjectById(Long projectId) {
CcdiProject project = projectMapper.selectById(projectId);
if (project == null) {
return null;
}
CcdiProjectVO vo = new CcdiProjectVO();
BeanUtils.copyProperties(project, vo);
return vo;
}
@Override
public Page<CcdiProjectVO> selectProjectPage(Page<CcdiProjectVO> page, CcdiProjectQueryDTO queryDTO) {
return projectMapper.selectProjectPage(page, queryDTO);
}
}

View File

@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.info.collection.mapper.CcdiProjectMapper">
<resultMap id="ProjectVOResultMap" type="com.ruoyi.info.collection.domain.vo.CcdiProjectVO">
<id property="projectId" column="project_id"/>
<result property="projectName" column="project_name"/>
<result property="description" column="description"/>
<result property="configType" column="config_type"/>
<result property="status" column="status"/>
<result property="isArchived" column="is_archived"/>
<result property="targetCount" column="target_count"/>
<result property="highRiskCount" column="high_risk_count"/>
<result property="mediumRiskCount" column="medium_risk_count"/>
<result property="lowRiskCount" column="low_risk_count"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="createByName" column="create_by_name"/>
</resultMap>
<!-- 分页查询项目列表 -->
<select id="selectProjectPage" resultMap="ProjectVOResultMap">
SELECT
p.project_id, p.project_name, p.description, p.config_type,
p.status, p.is_archived, p.target_count, p.high_risk_count,
p.medium_risk_count, p.low_risk_count, p.create_time,
p.create_by,
IFNULL(u.nick_name, p.create_by) AS create_by_name
FROM ccdi_project p
LEFT JOIN sys_user u ON p.create_by = u.user_name AND u.del_flag = '0'
<where>
p.del_flag = '0'
<if test="queryDTO.projectName != null and queryDTO.projectName != ''">
AND p.project_name LIKE CONCAT('%', #{queryDTO.projectName}, '%')
</if>
<if test="queryDTO.status != null and queryDTO.status != ''">
AND p.status = #{queryDTO.status}
</if>
</where>
ORDER BY p.create_time DESC
</select>
</mapper>