feat: 创建项目功能后端实现
- 创建 ccdi_project 表及相关字典和权限 - 添加逻辑删除和归档字段 - 实现实体类、DTO、VO、Mapper、Service、Controller - 优化字段命名和长度 - 添加完整的校验注解和 Swagger 文档 - 通过代码审查
This commit is contained in:
@@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.ruoyi.info.collection.domain.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目查询DTO
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectQueryDTO {
|
||||||
|
/** 项目名称 */
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/** 项目状态 */
|
||||||
|
private String status;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?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"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<!-- 分页查询项目列表 -->
|
||||||
|
<select id="selectProjectPage" resultMap="ProjectVOResultMap">
|
||||||
|
SELECT
|
||||||
|
project_id, project_name, description, config_type,
|
||||||
|
status, is_archived, target_count, high_risk_count,
|
||||||
|
medium_risk_count, low_risk_count, create_time, create_by
|
||||||
|
FROM ccdi_project
|
||||||
|
<where>
|
||||||
|
del_flag = '0'
|
||||||
|
<if test="queryDTO.projectName != null and queryDTO.projectName != ''">
|
||||||
|
AND project_name LIKE CONCAT('%', #{queryDTO.projectName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="queryDTO.status != null and queryDTO.status != ''">
|
||||||
|
AND status = #{queryDTO.status}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
ORDER BY create_time DESC
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
82
sql/ccdi_project.sql
Normal file
82
sql/ccdi_project.sql
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
-- ----------------------------
|
||||||
|
-- 1. 删除旧表(如果存在)
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `ccdi_project`;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 2. 创建项目表
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE `ccdi_project` (
|
||||||
|
`project_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目ID',
|
||||||
|
`project_name` VARCHAR(200) NOT NULL COMMENT '项目名称',
|
||||||
|
`description` VARCHAR(500) DEFAULT NULL COMMENT '项目描述',
|
||||||
|
`config_type` VARCHAR(20) NOT NULL DEFAULT 'default' COMMENT '配置方式:default-全局默认,custom-自定义',
|
||||||
|
`status` CHAR(1) NOT NULL DEFAULT '0' COMMENT '项目状态:0-进行中,1-已完成,2-已归档',
|
||||||
|
`is_archived` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否归档:0-未归档,1-已归档',
|
||||||
|
`target_count` INT NOT NULL DEFAULT 0 COMMENT '目标人数',
|
||||||
|
`high_risk_count` INT NOT NULL DEFAULT 0 COMMENT '高风险人数',
|
||||||
|
`medium_risk_count` INT NOT NULL DEFAULT 0 COMMENT '中风险人数',
|
||||||
|
`low_risk_count` INT NOT NULL DEFAULT 0 COMMENT '低风险人数',
|
||||||
|
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志:0-存在,2-删除',
|
||||||
|
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||||||
|
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||||||
|
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||||||
|
PRIMARY KEY (`project_id`),
|
||||||
|
INDEX `idx_project_name` (`project_name`),
|
||||||
|
INDEX `idx_status` (`status`),
|
||||||
|
INDEX `idx_is_archived` (`is_archived`),
|
||||||
|
INDEX `idx_del_flag` (`del_flag`),
|
||||||
|
INDEX `idx_create_time` (`create_time`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='纪检初核项目表';
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 3. 插入项目状态字典
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
|
||||||
|
VALUES ('项目状态', 'ccdi_project_status', '0', 'admin', NOW(), '纪检初核项目状态');
|
||||||
|
|
||||||
|
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time)
|
||||||
|
VALUES
|
||||||
|
(1, '进行中', '0', 'ccdi_project_status', '', 'primary', 'Y', '0', 'admin', NOW()),
|
||||||
|
(2, '已完成', '1', 'ccdi_project_status', '', 'success', 'N', '0', 'admin', NOW()),
|
||||||
|
(3, '已归档', '2', 'ccdi_project_status', '', 'info', 'N', '0', 'admin', NOW());
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 4. 插入配置方式字典
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
|
||||||
|
VALUES ('配置方式', 'ccdi_config_type', '0', 'admin', NOW(), '项目配置方式');
|
||||||
|
|
||||||
|
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time)
|
||||||
|
VALUES
|
||||||
|
(1, '全局默认配置', 'default', 'ccdi_config_type', '', 'primary', 'Y', '0', 'admin', NOW()),
|
||||||
|
(2, '自定义配置', 'custom', 'ccdi_config_type', '', 'warning', 'N', '0', 'admin', NOW());
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 5. 插入菜单权限
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||||
|
VALUES ('纪检初核管理', 0, 1, 'ccdi', NULL, 'M', '0', '0', '', 'star', 'admin', NOW());
|
||||||
|
|
||||||
|
SET @parent_id = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time)
|
||||||
|
VALUES ('项目管理', @parent_id, 1, 'project', 'ccdiProject/index', 'C', '0', '0', 'ccdi:project:list', 'table', 'admin', NOW());
|
||||||
|
|
||||||
|
SET @menu_id = LAST_INSERT_ID();
|
||||||
|
|
||||||
|
INSERT INTO sys_menu (menu_name, parent_id, order_num, menu_type, visible, status, perms, create_by, create_time)
|
||||||
|
VALUES
|
||||||
|
('创建项目', @menu_id, 1, 'F', '0', '0', 'ccdi:project:add', 'admin', NOW()),
|
||||||
|
('编辑项目', @menu_id, 2, 'F', '0', '0', 'ccdi:project:edit', 'admin', NOW()),
|
||||||
|
('删除项目', @menu_id, 3, 'F', '0', '0', 'ccdi:project:remove', 'admin', NOW()),
|
||||||
|
('查询项目', @menu_id, 4, 'F', '0', '0', 'ccdi:project:query', 'admin', NOW()),
|
||||||
|
('导出项目', @menu_id, 5, 'F', '0', '0', 'ccdi:project:export', 'admin', NOW());
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- 6. 为管理员角色分配权限
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||||
|
SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'ccdi:project:%' OR perms = 'ccdi:project:list';
|
||||||
Reference in New Issue
Block a user