|
|
@@ -0,0 +1,444 @@
|
|
|
+# 标签库模块开发记录
|
|
|
+
|
|
|
+**日期:** 2026-06-04
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、个人标签库模块
|
|
|
+
|
|
|
+### 模块概述
|
|
|
+
|
|
|
+个人标签库模块(personalTag)用于管理个人标签信息,支持省一体化平台回流和本地自定义两种来源的标签,并提供标签的启用/停用状态管理。该模块采用 JeecgBoot 的前后端分离架构,前端基于 Vue3 + Ant Design Vue,后端基于 Spring Boot + MyBatis-Plus。
|
|
|
+
|
|
|
+### 业务关系
|
|
|
+
|
|
|
+- **PersonalTag(个人标签信息)**:独立主表,存储个人标签的基础信息,通过 PERSONAL_TAG_RELATION 中间表与 PersonalInfo(个人基本信息)表建立多对多关联。
|
|
|
+- **PersonalTagRelation(个人标签关联)**:中间表,仅含 `tag_id` + `personal_id` 两个字段,联合主键。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 模块文件结构
|
|
|
+
|
|
|
+#### 前端(jeecgboot-vue3/src/views/recruitment/personalTag/)
|
|
|
+
|
|
|
+| 文件 | 用途 |
|
|
|
+|-------------------------------------|--------------------------------|
|
|
|
+| `PersonalTagList.vue` | 个人标签列表页面,提供查询、新增、编辑、详情、删除、批量删除、批量启用/停用、导入导出、高级查询等功能 |
|
|
|
+| `PersonalTag.api.ts` | 个人标签 API 封装 |
|
|
|
+| `PersonalTag.data.ts` | 列表页表格列配置(9列)与高级查询字段定义(8个查询字段) |
|
|
|
+| `components/PersonalTagForm.vue` | 个人标签新增/编辑/详情表单组件 |
|
|
|
+| `components/PersonalTagModal.vue` | 个人标签弹窗组件,包裹 PersonalTagForm,全屏模式 |
|
|
|
+
|
|
|
+#### 后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)
|
|
|
+
|
|
|
+| 层次 | 文件 |
|
|
|
+|--------------|---------------------------------------------|
|
|
|
+| Controller | `controller/PersonalTagController.java` |
|
|
|
+| Entity | `entity/PersonalTag.java` |
|
|
|
+| Service | `service/IPersonalTagService.java` |
|
|
|
+| Service Impl | `service/impl/PersonalTagServiceImpl.java` |
|
|
|
+| Mapper | `mapper/PersonalTagMapper.java` |
|
|
|
+| Mapper XML | `mapper/xml/PersonalTagMapper.xml` |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 开发记录
|
|
|
+
|
|
|
+#### 功能清单
|
|
|
+
|
|
|
+| 功能 | 说明 |
|
|
|
+|---------------|----------------------------------------------------------------|
|
|
|
+| 分页列表查询 | 支持按标签名称、所属一级分类、所属二级分类、启用状态、数据来源等条件查询,9 列展示(含本地关联人数) |
|
|
|
+| 新增 | 全屏表单,支持 8 个标签字段录入 |
|
|
|
+| 编辑 | 复用新增表单,预填充已有数据 |
|
|
|
+| 详情 | 表单禁用模式查看标签全部信息 |
|
|
|
+| 删除 / 批量删除 | 支持单条删除和批量删除,删除前弹窗确认 |
|
|
|
+| 批量启用/停用 | 支持选中多条标签后批量修改启用状态 |
|
|
|
+| 导入 / 导出 Excel | 基于 Jeecg 标准 Excel 导出导入功能,导出使用 VO 含本地关联人数 |
|
|
|
+| 高级查询 | 8 个查询字段,支持灵活的筛选条件 |
|
|
|
+| 标签名称唯一性校验 | 新增/编辑时后端校验标签名称不可重复 |
|
|
|
+
|
|
|
+#### 必填字段
|
|
|
+
|
|
|
+共 3 个必填字段:标签名称、启用状态、数据来源。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 功能开发
|
|
|
+
|
|
|
+| 日期 | 内容 | 涉及文件 | 说明 |
|
|
|
+|------------|--------------|---------------|------------------------|
|
|
|
+| 2026-06-02 | 个人标签模块初始构建 | 前端 5 个文件 + 后端 6 个文件 | 完成个人标签管理的基础 CRUD 功能,含 Excel 导入导出、批量启用/停用、标签名称唯一性校验 |
|
|
|
+
|
|
|
+### PersonalTag 实体字段一览
|
|
|
+
|
|
|
+| 分类 | 字段 | 说明 |
|
|
|
+|--------|----------------------|---------------|
|
|
|
+| 基础信息 | provinceStandardCode | 省标编码 |
|
|
|
+| | tagCode | 标签编码 |
|
|
|
+| | tagName | 标签名称(必填) |
|
|
|
+| | firstCategory | 所属一级分类 |
|
|
|
+| | secondCategory | 所属二级分类 |
|
|
|
+| | tagDescription | 标签说明 |
|
|
|
+| 状态 | tagStatus | 启用状态(必填,1启用/0停用) |
|
|
|
+| | dataSource | 数据来源(必填,1省一体化平台回流/2本地自定义) |
|
|
|
+| 系统字段 | id / createBy / createTime / updateBy / updateTime / sysOrgCode | 系统内置字段 |
|
|
|
+
|
|
|
+### 表格列(9列)
|
|
|
+
|
|
|
+| 列 | 对应字段 | 说明 |
|
|
|
+|---------------|-------------------|------------------------|
|
|
|
+| 序号 | index | 自定义列,customRender 显示行索引 |
|
|
|
+| 省标编码 | provinceStandardCode | 原"省标标码"更名 |
|
|
|
+| 标签名称 | tagName | — |
|
|
|
+| 所属一级分类 | firstCategory | — |
|
|
|
+| 所属二级分类 | secondCategory | — |
|
|
|
+| 标签说明 | tagDescription | — |
|
|
|
+| 启用状态 | tagStatus | customRender 翻译为"启用"/"停用" |
|
|
|
+| 本地关联人数 | relationCount | 关联中间表 COUNT(DISTINCT personal_id) 计算 |
|
|
|
+| 数据来源 | dataSource | customRender 翻译为"省一体化平台回流"/"本地自定义" |
|
|
|
+
|
|
|
+### 搜索区域(5个查询条件)
|
|
|
+
|
|
|
+标签名称、所属一级分类、所属二级分类、启用状态(下拉选择)、数据来源(下拉选择)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+#### 2026-06-02:个人标签模块初始构建
|
|
|
+
|
|
|
+**需求描述:** 构建个人标签管理模块,实现标签的基础 CRUD、Excel 导入导出功能,支持批量启用/停用状态管理,新增/编辑时后端校验标签名称唯一性。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|--------------------------------------------------|----|---------------------------------------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue` | 新增 | 个人标签列表页,含查询区域(3个条件)、表格(9列)、操作栏、导入导出和批量操作按钮 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.api.ts` | 新增 | 封装个人标签 CRUD、导入导出、批量更新状态 API 接口 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts` | 新增 | 定义 9 列表格列配置与 8 个高级查询字段 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue` | 新增 | 个人标签表单,含 3 个必填字段校验,8 个字段录入 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagModal.vue` | 新增 | 全屏弹窗包裹 PersonalTagForm,提供新增/编辑/详情入口 |
|
|
|
+| `jeecg-boot/.../tag/controller/PersonalTagController.java` | 新增 | 个人标签 REST 控制器,提供 CRUD + 导出导入 + 批量修改状态接口 |
|
|
|
+| `jeecg-boot/.../tag/entity/PersonalTag.java` | 新增 | 个人标签实体,映射 `personal_tag` 表 |
|
|
|
+| `jeecg-boot/.../tag/service/IPersonalTagService.java` | 新增 | 服务接口,定义 `batchUpdateStatus` 和 `checkTagNameUnique` 方法 |
|
|
|
+| `jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java` | 新增 | 服务实现,批量修改状态使用 AssertUtils 校验参数合法性;标签名称唯一性校验排除自身ID |
|
|
|
+| `jeecg-boot/.../tag/mapper/PersonalTagMapper.java` | 新增 | Mapper 接口,继承 BaseMapper |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/PersonalTagMapper.xml` | 新增 | MyBatis XML 映射骨架 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、企业标签库模块
|
|
|
+
|
|
|
+### 模块概述
|
|
|
+
|
|
|
+企业标签库模块(enterpriseTag)用于管理企业标签信息,功能与个人标签库对称,支持省一体化平台回流和本地自定义两种来源的标签,并提供标签的启用/停用状态管理。
|
|
|
+
|
|
|
+### 业务关系
|
|
|
+
|
|
|
+- **EnterpriseTag(企业标签信息)**:独立主表,存储企业标签的基础信息,通过 ENTERPRISE_TAG_RELATION 中间表与 EnterpriseInfo(企业基本信息)表建立多对多关联。
|
|
|
+- **EnterpriseTagRelation(企业标签关联)**:中间表,仅含 `tag_id` + `enterprise_id` 两个字段,联合主键。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 模块文件结构
|
|
|
+
|
|
|
+#### 前端(jeecgboot-vue3/src/views/recruitment/enterpriseTag/)
|
|
|
+
|
|
|
+| 文件 | 用途 |
|
|
|
+|-------------------------------------|--------------------------------|
|
|
|
+| `EnterpriseTagList.vue` | 企业标签列表页面,提供查询、新增、编辑、详情、删除、批量删除、批量启用/停用、导入导出等功能 |
|
|
|
+| `EnterpriseTag.api.ts` | 企业标签 API 封装 |
|
|
|
+| `EnterpriseTag.data.ts` | 列表页表格列配置(9列)与高级查询字段定义(8个查询字段) |
|
|
|
+| `components/EnterpriseTagForm.vue` | 企业标签新增/编辑/详情表单组件 |
|
|
|
+| `components/EnterpriseTagModal.vue` | 企业标签弹窗组件,包裹 EnterpriseTagForm,全屏模式 |
|
|
|
+
|
|
|
+#### 后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)
|
|
|
+
|
|
|
+| 层次 | 文件 |
|
|
|
+|--------------|---------------------------------------------|
|
|
|
+| Controller | `controller/EnterpriseTagController.java` |
|
|
|
+| Entity | `entity/EnterpriseTag.java` |
|
|
|
+| Service | `service/IEnterpriseTagService.java` |
|
|
|
+| Service Impl | `service/impl/EnterpriseTagServiceImpl.java` |
|
|
|
+| Mapper | `mapper/EnterpriseTagMapper.java` |
|
|
|
+| Mapper XML | `mapper/xml/EnterpriseTagMapper.xml` |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 开发记录
|
|
|
+
|
|
|
+#### 功能清单
|
|
|
+
|
|
|
+| 功能 | 说明 |
|
|
|
+|---------------|----------------------------------------------------------------|
|
|
|
+| 分页列表查询 | 支持按标签名称、所属一级分类、所属二级分类、启用状态、数据来源等条件查询,9 列展示(含本地关联人数) |
|
|
|
+| 新增 | 全屏表单,支持 8 个标签字段录入 |
|
|
|
+| 编辑 | 复用新增表单,预填充已有数据 |
|
|
|
+| 详情 | 表单禁用模式查看标签全部信息 |
|
|
|
+| 删除 / 批量删除 | 支持单条删除和批量删除,删除前弹窗确认 |
|
|
|
+| 批量启用/停用 | 支持选中多条标签后批量修改启用状态 |
|
|
|
+| 导入 / 导出 Excel | 基于 Jeecg 标准 Excel 导出导入功能,导出使用 VO 含本地关联人数 |
|
|
|
+| 高级查询 | 已定义 superQuerySchema(8个查询字段),前端列表页中高级查询按钮已注释 |
|
|
|
+| 标签名称唯一性校验 | 新增/编辑时后端校验标签名称不可重复 |
|
|
|
+
|
|
|
+#### 必填字段
|
|
|
+
|
|
|
+共 3 个必填字段:标签名称、启用状态、数据来源。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 功能开发
|
|
|
+
|
|
|
+| 日期 | 内容 | 涉及文件 | 说明 |
|
|
|
+|------------|--------------|---------------|------------------------|
|
|
|
+| 2026-06-02 | 企业标签模块初始构建 | 前端 5 个文件 + 后端 6 个文件 | 完成企业标签管理的基础 CRUD 功能,含 Excel 导入导出、批量启用/停用、标签名称唯一性校验 |
|
|
|
+
|
|
|
+### EnterpriseTag 实体字段一览
|
|
|
+
|
|
|
+| 分类 | 字段 | 说明 |
|
|
|
+|--------|----------------------|---------------|
|
|
|
+| 基础信息 | provinceStandardCode | 省标编码 |
|
|
|
+| | tagCode | 标签编码 |
|
|
|
+| | tagName | 标签名称(必填) |
|
|
|
+| | firstCategory | 所属一级分类 |
|
|
|
+| | secondCategory | 所属二级分类 |
|
|
|
+| | tagDescription | 标签说明 |
|
|
|
+| 状态 | tagStatus | 启用状态(必填,1启用/0停用) |
|
|
|
+| | dataSource | 数据来源(必填,1省一体化平台回流/2本地自定义) |
|
|
|
+| 系统字段 | id / createBy / createTime / updateBy / updateTime / sysOrgCode | 系统内置字段 |
|
|
|
+
|
|
|
+### 表格列(9列)
|
|
|
+
|
|
|
+与个人标签库完全对称:
|
|
|
+
|
|
|
+| 列 | 对应字段 | 说明 |
|
|
|
+|---------------|-------------------|------------------------|
|
|
|
+| 序号 | index | 自定义列,customRender 显示行索引 |
|
|
|
+| 省标编码 | provinceStandardCode | 原"省标标码"更名 |
|
|
|
+| 标签名称 | tagName | — |
|
|
|
+| 所属一级分类 | firstCategory | — |
|
|
|
+| 所属二级分类 | secondCategory | — |
|
|
|
+| 标签说明 | tagDescription | — |
|
|
|
+| 启用状态 | tagStatus | customRender 翻译为"启用"/"停用" |
|
|
|
+| 本地关联人数 | relationCount | 关联中间表 COUNT(DISTINCT enterprise_id) 计算 |
|
|
|
+| 数据来源 | dataSource | customRender 翻译为"省一体化平台回流"/"本地自定义" |
|
|
|
+
|
|
|
+### 搜索区域(5个查询条件)
|
|
|
+
|
|
|
+标签名称、所属一级分类、所属二级分类、启用状态(下拉选择)、数据来源(下拉选择)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+#### 2026-06-02:企业标签模块初始构建
|
|
|
+
|
|
|
+**需求描述:** 构建企业标签管理模块,实现标签的基础 CRUD、Excel 导入导出功能,支持批量启用/停用状态管理,新增/编辑时后端校验标签名称唯一性。功能与个人标签库完全对称。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|--------------------------------------------------|----|---------------------------------------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue` | 新增 | 企业标签列表页,含查询区域(3个条件)、表格(9列)、操作栏、导入导出和批量操作按钮(高级查询按钮已注释) |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.api.ts` | 新增 | 封装企业标签 CRUD、导入导出、批量更新状态 API 接口 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.data.ts` | 新增 | 定义 9 列表格列配置与 8 个高级查询字段 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue` | 新增 | 企业标签表单,含 3 个必填字段校验,8 个字段录入 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagModal.vue` | 新增 | 全屏弹窗包裹 EnterpriseTagForm,提供新增/编辑/详情入口 |
|
|
|
+| `jeecg-boot/.../tag/controller/EnterpriseTagController.java` | 新增 | 企业标签 REST 控制器,提供 CRUD + 导出导入 + 批量修改状态接口 |
|
|
|
+| `jeecg-boot/.../tag/entity/EnterpriseTag.java` | 新增 | 企业标签实体,映射 `enterprise_tag` 表 |
|
|
|
+| `jeecg-boot/.../tag/service/IEnterpriseTagService.java` | 新增 | 服务接口,定义 `batchUpdateStatus` 和 `checkTagNameUnique` 方法 |
|
|
|
+| `jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java` | 新增 | 服务实现,批量修改状态使用 AssertUtils 校验参数合法性;标签名称唯一性校验排除自身ID |
|
|
|
+| `jeecg-boot/.../tag/mapper/EnterpriseTagMapper.java` | 新增 | Mapper 接口,继承 BaseMapper |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/EnterpriseTagMapper.xml` | 新增 | MyBatis XML 映射骨架 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、标签关联中间表
|
|
|
+
|
|
|
+### 模块概述
|
|
|
+
|
|
|
+为支持标签库与业务信息的多对多关联,建立两个关联中间表。
|
|
|
+
|
|
|
+### 业务关系
|
|
|
+
|
|
|
+- **PERSONAL_TAG_RELATION**:关联 PERSONAL_TAG(个人标签)与 PERSONAL_INFO(个人基本信息),通过 `tag_id` + `personal_id` 建立多对多关系。
|
|
|
+- **ENTERPRISE_TAG_RELATION**:关联 ENTERPRISE_TAG(企业标签)与 ENTERPRISE_INFO(企业基本信息),通过 `tag_id` + `enterprise_id` 建立多对多关系。
|
|
|
+
|
|
|
+两个表均只有两个字段(标签ID + 业务实体ID),并使用联合主键。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 模块文件结构
|
|
|
+
|
|
|
+#### 后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)
|
|
|
+
|
|
|
+| 层次 | 文件 |
|
|
|
+|--------------|---------------------------------------------|
|
|
|
+| Entity | `entity/PersonalTagRelation.java` |
|
|
|
+| Entity | `entity/EnterpriseTagRelation.java` |
|
|
|
+| Mapper | `mapper/PersonalTagRelationMapper.java` |
|
|
|
+| Mapper | `mapper/EnterpriseTagRelationMapper.java` |
|
|
|
+| Mapper XML | `mapper/xml/PersonalTagRelationMapper.xml` |
|
|
|
+| Mapper XML | `mapper/xml/EnterpriseTagRelationMapper.xml` |
|
|
|
+
|
|
|
+#### SQL脚本
|
|
|
+
|
|
|
+| 文件 | 操作 | 说明 |
|
|
|
+|--------------------------------------------------|----|----|
|
|
|
+| `.docs/sql/标签库信息.sql` | 新增 | 在个人标签表和企业标签表之后追加 PERSONAL_TAG_RELATION 和 ENTERPRISE_TAG_RELATION 两张关联中间表的建表语句 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 关联表字段一览
|
|
|
+
|
|
|
+#### PERSONAL_TAG_RELATION
|
|
|
+
|
|
|
+| 字段 | 类型 | 说明 | 约束 |
|
|
|
+|-------------|-------------|------------------|---------------|
|
|
|
+| tag_id | VARCHAR(36) | 标签ID(关联PERSONAL_TAG.ID) | NOT NULL,联合主键 |
|
|
|
+| personal_id | VARCHAR(36) | 个人ID(关联PERSONAL_INFO.ID) | NOT NULL,联合主键 |
|
|
|
+
|
|
|
+#### ENTERPRISE_TAG_RELATION
|
|
|
+
|
|
|
+| 字段 | 类型 | 说明 | 约束 |
|
|
|
+|---------------|-------------|---------------------|---------------|
|
|
|
+| tag_id | VARCHAR(36) | 标签ID(关联ENTERPRISE_TAG.ID) | NOT NULL,联合主键 |
|
|
|
+| enterprise_id | VARCHAR(36) | 企业ID(关联ENTERPRISE_INFO.ID) | NOT NULL,联合主键 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:关联中间表构建
|
|
|
+
|
|
|
+**需求描述:** 为标签库与业务信息建立多对多关联关系,创建两张中间表,两个中间表均只包含标签ID + 业务实体ID两个字段,使用联合主键。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|--------------------------------------------------|----|---------------------------------------|
|
|
|
+| `.docs/sql/标签库信息.sql` | 修改 | 新增 PERSONAL_TAG_RELATION 和 ENTERPRISE_TAG_RELATION 两张关联中间表的建表语句,含表注释和字段注释 |
|
|
|
+| `jeecg-boot/.../tag/entity/PersonalTagRelation.java` | 新增 | 个人标签关联实体,映射 `personal_tag_relation` 表,仅含 `tagId` + `personalId` 两个字段 |
|
|
|
+| `jeecg-boot/.../tag/entity/EnterpriseTagRelation.java` | 新增 | 企业标签关联实体,映射 `enterprise_tag_relation` 表,仅含 `tagId` + `enterpriseId` 两个字段 |
|
|
|
+| `jeecg-boot/.../tag/mapper/PersonalTagRelationMapper.java` | 新增 | 个人标签关联 Mapper 接口,继承 BaseMapper |
|
|
|
+| `jeecg-boot/.../tag/mapper/EnterpriseTagRelationMapper.java` | 新增 | 企业标签关联 Mapper 接口,继承 BaseMapper |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/PersonalTagRelationMapper.xml` | 新增 | MyBatis XML 映射骨架 |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/EnterpriseTagRelationMapper.xml` | 新增 | MyBatis XML 映射骨架 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:标签库字段调整 + 本地关联人数 + VO 查询
|
|
|
+
|
|
|
+**需求描述:** 调整个人标签库和企业标签库的查询字段与展示字段,增加"本地关联人数"列,通过关联中间表计算每个标签关联的不重复个人/企业数量;创建 VO 类承载分页列表导出数据,后端分页查询和导出接口改为 VO 映射。
|
|
|
+
|
|
|
+**查询字段调整(从3个改为5个):**
|
|
|
+
|
|
|
+| 新查询字段 | 对应字段 | 说明 |
|
|
|
+|-----------|---------|------|
|
|
|
+| 标签名称 | tagName | 保留 |
|
|
|
+| 所属一级分类 | firstCategory | 新增查询字段 |
|
|
|
+| 所属二级分类 | secondCategory | 新增查询字段 |
|
|
|
+| 启用状态 | tagStatus | 原"标签状态"改名为"启用状态" |
|
|
|
+| 数据来源 | dataSource | 保留 |
|
|
|
+
|
|
|
+**删除的查询字段:** 无(原有标签状态改为启用状态)
|
|
|
+
|
|
|
+**表格列调整(9列):**
|
|
|
+
|
|
|
+| 新列 | 对应字段 | 说明 |
|
|
|
+|------|---------|------|
|
|
|
+| 序号 | index | 保留 |
|
|
|
+| 省标编码 | provinceStandardCode | 原"省标标码"改名,取消标签编码列 |
|
|
|
+| 标签名称 | tagName | 保留 |
|
|
|
+| 所属一级分类 | firstCategory | 保留 |
|
|
|
+| 所属二级分类 | secondCategory | 保留 |
|
|
|
+| 标签说明 | tagDescription | 保留 |
|
|
|
+| 启用状态 | tagStatus | 原"标签启用状态"改名 |
|
|
|
+| 本地关联人数 | relationCount | 新增,关联中间表 COUNT(DISTINCT) 计算 |
|
|
|
+| 数据来源 | dataSource | 保留 |
|
|
|
+
|
|
|
+**删除的列:** 标签编码
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecg-boot/.../tag/vo/PersonalTagVo.java` | 新增 | 个人标签 VO,含 entity 所有字段 + relationCount,标注 `@Excel` 用于导出 |
|
|
|
+| `jeecg-boot/.../tag/vo/EnterpriseTagVo.java` | 新增 | 企业标签 VO,含 entity 所有字段 + relationCount,标注 `@Excel` 用于导出 |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/PersonalTagMapper.xml` | 修改 | 新增 `queryPageListWithRelationCount` 和 `queryListWithRelationCount` 两个 SQL 查询,通过子查询 LEFT JOIN PERSONAL_TAG_RELATION 计算 COUNT(DISTINCT PERSONAL_ID) 并应用 `${ew.customSqlSegment}` 条件过滤 |
|
|
|
+| `jeecg-boot/.../tag/mapper/xml/EnterpriseTagMapper.xml` | 修改 | 同上,LEFT JOIN ENTERPRISE_TAG_RELATION 计算 COUNT(DISTINCT ENTERPRISE_ID) |
|
|
|
+| `jeecg-boot/.../tag/mapper/PersonalTagMapper.java` | 修改 | 新增两个 VO 查询方法声明 |
|
|
|
+| `jeecg-boot/.../tag/mapper/EnterpriseTagMapper.java` | 修改 | 新增两个 VO 查询方法声明 |
|
|
|
+| `jeecg-boot/.../tag/service/IPersonalTagService.java` | 修改 | 新增 `queryPageListWithRelationCount` 和 `queryListWithRelationCount` 方法声明 |
|
|
|
+| `jeecg-boot/.../tag/service/IEnterpriseTagService.java` | 修改 | 新增 `queryPageListWithRelationCount` 和 `queryListWithRelationCount` 方法声明 |
|
|
|
+| `jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java` | 修改 | 实现两个 VO 查询方法;`queryListWithRelationCount` 中处理导出 selections 选中记录筛选 |
|
|
|
+| `jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java` | 修改 | 同上 |
|
|
|
+| `jeecg-boot/.../tag/controller/PersonalTagController.java` | 修改 | list 接口返回类型改为 `IPage<PersonalTagVo>`,委托 Service 的 VO 查询方法;exportXls 改写为使用 `JeecgEntityExcelView` + `PersonalTagVo.class` + `queryListWithRelationCount` 导出 VO 列表 |
|
|
|
+| `jeecg-boot/.../tag/controller/EnterpriseTagController.java` | 修改 | 同上,使用 `EnterpriseTagVo` |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue` | 修改 | 查询表单从 3 个字段改为 5 个(新增所属一级分类、所属二级分类,标签状态改为启用状态),布局调整为 5+1 按钮每行 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts` | 修改 | 表格列去掉标签编码,省标标码改名为省标编码,标签启用状态改名为启用状态,新增本地关联人数列 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue` | 修改 | 同上 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.data.ts` | 修改 | 同上 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:标签库 dataSource 字段改为数据字典驱动
|
|
|
+
|
|
|
+**需求描述:** 将个人标签库和企业标签库的前端 dataSource 字段从硬编码 `<a-select-option>` 改为通过 `useDict` 字典工具从后端批量接口加载字典数据,遵循项目现有字典实现规范。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue` | 修改 | 查询表单 dataSource 的 `<a-select>` 从硬编码 `<a-select-option>` 改为 `:options="dataSourceOptions"` 绑定字典选项;`bodyCell` 插槽新增 `getDictText('DataSource', text)` 翻译渲染;脚本区导入 `useDict`、`computed`,设置 `getDictOptions` 和 `dataSourceOptions` |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts` | 修改 | 移除 dataSource 列的硬编码 `customRender`(改为由 `bodyCell` 统一翻译) |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue` | 修改 | 表单 dataSource 从硬编码 `<a-select-option>` 改为 `:options="dataSourceOptions"` 绑定字典选项;脚本区导入 `useDict`,设置 `getDictOptions` 和 `dataSourceOptions` |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue` | 修改 | 同上 PersonalTagList.vue 改动 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:批量操作按钮常显(无选中时禁用)
|
|
|
+
|
|
|
+**需求描述:** 批量删除和批量启用/停用按钮始终显示在页面上,不随选中行数变化而显示/隐藏。当未选中任何数据行时按钮处于禁用(disabled)状态,选中数据行后按钮变为可用状态。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue` | 修改 | 批量操作 `<a-dropdown>` 的 `v-if="selectedRowKeys.length > 0"` 改为始终渲染,使用 `:disabled="selectedRowKeys.length === 0"` 控制禁用状态 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue` | 修改 | 同上 PersonalTagList.vue 改动 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:标签表单新增优化(默认启用 + 字段禁用 + 标签编码自动生成)
|
|
|
+
|
|
|
+**需求描述:** 优化标签新增表单体验:新增时标签状态默认启用,数据来源默认为市系统并禁止编辑,省标编码禁止编辑,标签编码改为后端自动生成流水号(个人标签格式 `ZJGR`+三位流水,企业标签格式 `ZJQY`+三位流水)。
|
|
|
+
|
|
|
+**后端改动:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecg-boot/.../tag/service/IPersonalTagService.java` | 修改 | 新增 `generateTagCode()` 方法声明 |
|
|
|
+| `jeecg-boot/.../tag/service/IEnterpriseTagService.java` | 修改 | 新增 `generateTagCode()` 方法声明 |
|
|
|
+| `jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java` | 修改 | 实现 `generateTagCode()`:查询 `tag_code LIKE 'ZJGR%'` 取最大流水号 +1,格式 `ZJGR%03d` |
|
|
|
+| `jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java` | 修改 | 同上,前缀 `ZJQY` |
|
|
|
+| `jeecg-boot/.../tag/controller/PersonalTagController.java` | 修改 | 新增 `GET /generateTagCode` 接口 |
|
|
|
+| `jeecg-boot/.../tag/controller/EnterpriseTagController.java` | 修改 | 同上 |
|
|
|
+
|
|
|
+**前端改动:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.api.ts` | 修改 | 新增 `generateTagCode()` API 调用,使用 `isTransformResponse: false` 跳过消息提示 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.api.ts` | 修改 | 同上 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue` | 修改 | 省标编码 `disabled` 占位"系统自动生成";标签编码 `disabled` 占位"系统自动生成",新增时调用后端生成流水号填充;数据来源 `disabled` |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue`(personaltag 小写目录) | 修改 | 同上 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue` | 修改 | 同 PersonalTagForm 改动;另将 `tagStatus` 默认值从 `''` 改为 `'1'`(启用),`dataSource` 默认值从 `''` 改为 `'2'`(市系统) |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue`(enterprisetag 小写目录) | 修改 | 同上 |
|
|
|
+---
|
|
|
+
|
|
|
+### 2026-06-04:省系统标签禁用编辑/删除
|
|
|
+
|
|
|
+**需求描述:** dataSource为'1'(省一体化平台回流)的标签属于省系统数据,不允许编辑和删除,只允许修改启用状态。单条记录的操作栏中编辑和删除按钮保持显示但置灰不可点击;批量删除时自动过滤掉省系统标签。
|
|
|
+
|
|
|
+**涉及文件:**
|
|
|
+
|
|
|
+| 文件 | 操作 | 原因 |
|
|
|
+|------|------|------|
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue` | 修改 | `getTableAction` 中编辑按钮增加 `disabled: record.dataSource === '1'`;`getDropDownAction` 中删除按钮增加 `disabled: record.dataSource === '1'`;`batchHandleDelete` 增加省系统数据过滤逻辑,选中省系统标签时弹出警告并自动跳过 |
|
|
|
+| `jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue` | 修改 | 同上 PersonalTagList.vue 改动 |
|