20260609-职业指导服务模块开发记录.md 6.7 KB

职业指导服务模块开发记录

开发日期:2026-06-09 模块路径:就业一湛通服务平台 > 职业指导服务 参考模块:重点关注人员管理 (focuspersonnel)


一、功能说明

职业指导服务模块用于提供就业指导相关的服务,包括公开文件的宣传、职业指导专家库管理以及用户求职指导需求的跟进与记录。

1.1 查询字段

文件名称、专家姓名、姓名、是否已跟进

1.2 列表字段

文件名称、专家姓名、姓名、申请原因、申请日期、是否已跟进、最后通知时间


二、新增文件清单

2.1 后端文件(12个)

序号 文件路径 说明
1 jeecg-boot/.../careerguidancedocument/entity/CareerGuidanceDocument.java 实体类
2 jeecg-boot/.../careerguidancedocument/mapper/CareerGuidanceDocumentMapper.java Mapper接口
3 jeecg-boot/.../careerguidancedocument/service/ICareerGuidanceDocumentService.java Service接口
4 jeecg-boot/.../careerguidancedocument/service/impl/CareerGuidanceDocumentServiceImpl.java Service实现
5 jeecg-boot/.../careerguidancedocument/controller/CareerGuidanceDocumentController.java Controller
6 jeecg-boot/.../careerguidanceexpert/entity/CareerGuidanceExpert.java 实体类
7 jeecg-boot/.../careerguidanceexpert/mapper/CareerGuidanceExpertMapper.java Mapper接口
8 jeecg-boot/.../careerguidanceexpert/service/ICareerGuidanceExpertService.java Service接口
9 jeecg-boot/.../careerguidanceexpert/service/impl/CareerGuidanceExpertServiceImpl.java Service实现
10 jeecg-boot/.../careerguidanceexpert/controller/CareerGuidanceExpertController.java Controller
11 jeecg-boot/.../careerguidanceservice/entity/CareerGuidanceService.java 主实体
12 jeecg-boot/.../careerguidanceservice/entity/CareerGuidanceRecord.java 子实体

2.2 前端文件(8个)

序号 文件路径 说明
1 views/careerguidancedocument/CareerGuidanceDocument.api.ts 文档API
2 views/careerguidancedocument/CareerGuidanceDocumentList.vue 文档列表
3 views/careerguidanceexpert/CareerGuidanceExpert.api.ts 专家API
4 views/careerguidanceexpert/CareerGuidanceExpertList.vue 专家列表
5 views/careerguidanceservice/CareerGuidanceService.api.ts 服务API
6 views/careerguidanceservice/CareerGuidanceServiceList.vue 服务主列表
7 views/careerguidanceservice/components/CareerGuidanceServiceForm.vue 主表单
8 views/careerguidanceservice/components/CareerGuidanceRecordList.vue 服务记录跟进弹窗

2.3 SQL脚本与迁移脚本

序号 文件路径 说明
1 .docs/sql/职业指导服务-达梦表与视图.sql 核心建表与视图 (DM8标准)
2 .docs/sql/职业指导服务-测试数据.sql 测试数据
3 flyway/sql/mysql/V20260609_1__menu_insert_CareerGuidance.sql 菜单权限注册

三、技术规范

  • 严格遵循 org.jeecg.modules.zjrs 包结构。
  • 使用 jakarta.servlet
  • 使用 io.swagger.v3.oas.annotations (OpenAPI 3)。
  • 数据审计字段通过继承或手动定义,确保与参考模块一致。

四、职业指导服务-达梦表与视图建表脚本

-- 修复说明:修正列名 ID_CARD 为 ID_NUMBER,增加模式前缀 ZJRS_JEECG_BOOT

-- 1. 表结构创建
CREATE TABLE IF NOT EXISTS CAREER_GUIDANCE_DOCUMENT (
  ID VARCHAR(36) NOT NULL,
  CATEGORY_ID VARCHAR(36) NOT NULL,
  NAME VARCHAR(200) NOT NULL,
  FILE_URL VARCHAR(1000),
  SORT_NO INTEGER,
  CREATE_BY VARCHAR(50),
  CREATE_TIME TIMESTAMP,
  UPDATE_BY VARCHAR(50),
  UPDATE_TIME TIMESTAMP,
  SYS_ORG_CODE VARCHAR(50),
  PRIMARY KEY (ID)
);

CREATE TABLE IF NOT EXISTS CAREER_GUIDANCE_EXPERT (
  ID VARCHAR(36) NOT NULL,
  NAME VARCHAR(100) NOT NULL,
  CONTACT_PHONE VARCHAR(50),
  EXPERTISE_AREA VARCHAR(500),
  CREATE_BY VARCHAR(50),
  CREATE_TIME TIMESTAMP,
  UPDATE_BY VARCHAR(50),
  UPDATE_TIME TIMESTAMP,
  SYS_ORG_CODE VARCHAR(50),
  PRIMARY KEY (ID)
);

CREATE TABLE IF NOT EXISTS CAREER_GUIDANCE_SERVICE (
  ID VARCHAR(36) NOT NULL,
  PERSONAL_ID VARCHAR(36) NOT NULL,
  APPLICATION_REASON VARCHAR(1000) NOT NULL,
  APPLICATION_DATE DATE,
  IS_FOLLOWED_UP VARCHAR(10) DEFAULT '否',
  LAST_NOTIFY_TIME TIMESTAMP,
  CREATE_BY VARCHAR(50),
  CREATE_TIME TIMESTAMP,
  UPDATE_BY VARCHAR(50),
  UPDATE_TIME TIMESTAMP,
  SYS_ORG_CODE VARCHAR(50),
  PRIMARY KEY (ID)
);

CREATE TABLE IF NOT EXISTS CAREER_GUIDANCE_RECORD (
  ID VARCHAR(36) NOT NULL,
  SERVICE_ID VARCHAR(36) NOT NULL,
  RECORD_TYPE INTEGER NOT NULL,
  TITLE VARCHAR(200),
  CONTENT VARCHAR(2000) NOT NULL,
  RECORD_TIME TIMESTAMP NOT NULL,
  OPERATOR VARCHAR(100) NOT NULL,
  CREATE_BY VARCHAR(50),
  CREATE_TIME TIMESTAMP,
  UPDATE_BY VARCHAR(50),
  UPDATE_TIME TIMESTAMP,
  SYS_ORG_CODE VARCHAR(50),
  PRIMARY KEY (ID)
);

-- 2. 视图定义 (核心修正版本)
CREATE OR REPLACE VIEW V_CAREER_GUIDANCE_SERVICE AS
SELECT
    cgs.ID,
    cgs.PERSONAL_ID,
    cgs.APPLICATION_REASON,
    cgs.APPLICATION_DATE,
    cgs.IS_FOLLOWED_UP,
    cgs.LAST_NOTIFY_TIME,
    pi.FULL_NAME AS NAME,
    pi.ID_NUMBER AS ID_CARD,
    pi.GENDER,
    YEARS_BETWEEN(pi.BIRTH_DATE, SYSDATE) AS AGE,
    pi.EDUCATION,
    pi.HOUSEHOLD_LOCATION,
    pi.CONTACT_PHONE,
    cgs.CREATE_TIME
FROM CAREER_GUIDANCE_SERVICE cgs
LEFT JOIN ZJRS_JEECG_BOOT.PERSONAL_INFO pi ON cgs.PERSONAL_ID = pi.ID;

2026-06-11 修复与优化记录

前端修复

列表页 (CareerGuidanceServiceList.vue):

  • isFollowedUp 搜索:<j-dict-select-tag><a-select> 下拉框(原组件未全局注册导致不显示)
  • householdLocation 搜索:文本输入 → 湛江区县 XZQH <a-tree-select> 树形下拉
  • gender 列翻译:硬编码 genderMapgetDictText('Gender') 字典翻译
  • education 列翻译:原始值 → getDictText('Education') 字典翻译
  • age 列:负数显示为 -(数据库出生日期异常导致)
  • isFollowedUp 列:新增 followUpMap 字典翻译
  • 发送消息功能:新增 Tinymce 富文本推送弹窗
    • 模块类型: career_guidance
    • 支持单条发送 + 批量勾选发送
    • 推送人绑定当前登录用户

列配置 (CareerGuidanceService.data.ts):

  • 移除 gender 列的 customRender(改由 bodyCell 处理)
  • 移除 education 列的 customRender(改由 bodyCell 处理)

后端

  • 无修改

2026-06-12 导出日期格式修复

问题

导出Excel时日期格式异常,因 ExportParams 缺少 ExcelType.XSSF,默认使用旧版 .xls 格式。

修复文件

文件 修改
CareerGuidanceServiceController.java ExportParamsExcelType.XSSF + import