# CRUD 任务列表: {{Entity}}

> 分支: feature/{{branch}} | 基础: main 分支最新代码

---
tasks:
  - number: 1
    title: 创建 {{Entity}} 实体类
    files:
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/entity/{{Entity}}.java
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/entity/dto/{{Entity}}DTO.java
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/entity/vo/{{Entity}}VO.java
    description: |
      创建三个实体类：
      1. {{Entity}}.java — 数据库实体，使用 @Data @TableName("{{table_name}}")
      2. {{Entity}}DTO.java — 请求 DTO，包含校验注解
      3. {{Entity}}VO.java — 响应 VO
      字段参考 proposal.md 字段清单。
    verification: 编译通过，实体字段与 proposal 字段清单一致
    dependsOn: []
    estimatedEffort: S

  - number: 2
    title: 创建 Mapper 接口 + XML
    files:
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/mapper/{{Entity}}Mapper.java
      - modules-center/{{module}}-center/{{module}}-service/src/main/resources/mapper/{{Entity}}Mapper.xml
    description: |
      1. {{Entity}}Mapper 继承 BaseMapper<{{Entity}}>
      2. XML 中定义分页查询（支持模糊查询、精确查询）
      3. 使用 LambdaQueryWrapper
    verification: Mapper 编译通过，XML namespace 正确
    dependsOn: [1]
    estimatedEffort: S

  - number: 3
    title: 创建 Service 接口 + 实现
    files:
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/service/I{{Entity}}Service.java
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/service/impl/{{Entity}}ServiceImpl.java
    description: |
      实现 CRUD 业务逻辑：分页查询、详情、新增、修改、删除。
      包含唯一性校验和关联数据检查。
    verification: Service 编译通过，方法签名与接口一致
    dependsOn: [1, 2]
    estimatedEffort: M

  - number: 4
    title: 创建 Controller
    files:
      - modules-center/{{module}}-center/{{module}}-service/src/main/java/com/company/mes/{{module}}/controller/{{Entity}}Controller.java
    description: |
      创建 RESTful 接口：GET /page、GET /{id}、POST /、PUT /{id}、DELETE /{id}
      返回统一响应格式 R<T>。
    verification: Controller 编译通过，接口路径与设计文档一致
    dependsOn: [3]
    estimatedEffort: S

  - number: 5
    title: 创建 Feign API 接口
    files:
      - modules-center/{{module}}-center/{{module}}-api/src/main/java/com/company/mes/{{module}}/api/{{Entity}}Api.java
    description: |
      定义 Feign 接口供其他微服务调用。
    verification: API 模块编译通过
    dependsOn: [4]
    estimatedEffort: S

  - number: 6
    title: 创建前端 API 模块
    files:
      - implat-ui/src/api/{{module}}.js
    description: |
      封装 CRUD API 请求函数，禁止在组件中直接写 axios。
    verification: API 文件语法正确，函数命名规范
    dependsOn: [4]
    estimatedEffort: S

  - number: 7
    title: 创建前端列表页
    files:
      - implat-ui/src/views/{{module}}/{{Entity}}/index.vue
    description: |
      列表页：VXE-Table 展示 + 搜索 + 分页 + 操作按钮。
      使用 Vue 2 Options API + View Design 组件。
    verification: Vue 文件语法正确，页面可渲染
    dependsOn: [6]
    estimatedEffort: M

  - number: 8
    title: 创建前端表单组件
    files:
      - implat-ui/src/views/{{module}}/{{Entity}}/components/{{Entity}}Form.vue
    description: |
      新增/编辑共用的表单弹窗组件，使用 iView Form 校验。
    verification: 表单校验规则与 proposal 字段清单一致
    dependsOn: [7]
    estimatedEffort: M

  - number: 9
    title: 注册路由和菜单
    files:
      - implat-ui/src/router/modules/{{module}}.js
    description: |
      配置路由 + 执行菜单 SQL 插入语句（参考 menu-register.md）。
    verification: 路由配置正确，菜单可见
    dependsOn: [7]
    estimatedEffort: S

  - number: 10
    title: 编写单元测试
    files:
      - modules-center/{{module}}-center/{{module}}-service/src/test/java/com/company/mes/{{module}}/service/{{Entity}}ServiceTest.java
    description: |
      覆盖核心业务逻辑：新增成功、唯一性校验、删除检查。
      使用 JUnit 5 + Mockito。
    verification: 测试全部通过
    dependsOn: [3, 4]
    estimatedEffort: M
---
