Browse Source

小程序新增招聘业务功能

kk 17 hours ago
parent
commit
ab13668b91
100 changed files with 582 additions and 5181 deletions
  1. 0 0
      .docs/20260601-项目结构与技术框架分析.md
  2. 0 0
      .docs/20260603-公益性岗位管理与岗位推荐模块开发记录.md
  3. 0 0
      .docs/20260603-前端框架全局开发规范与最佳实践.md
  4. 0 0
      .docs/20260603-后端框架全局开发规范与最佳实践.md
  5. 0 0
      .docs/20260603-新增模块开发记录.md
  6. 0 0
      .docs/20260603-重点关注人员管理模块开发记录.md
  7. BIN
      .docs/20260604-backend_startup.log
  8. 0 0
      .docs/20260604-个人基本信息模块开发记录.md
  9. 0 0
      .docs/20260604-企业基本信息模块开发记录.md
  10. 0 0
      .docs/20260604-岗位信息模块开发记录.md
  11. 0 0
      .docs/20260604-数据字典类字段显示与导出实现方式.md
  12. 0 0
      .docs/20260604-标签库模块开发记录.md
  13. 0 0
      .docs/20260604-简历信息模块开发记录.md
  14. 0 0
      .docs/20260604-错误的代码生成处理与分析记录.md
  15. 0 0
      .docs/20260605-前端-公益性岗位管理模块完善.md
  16. 0 0
      .docs/20260605-前端-见习人员模块改造.md
  17. 0 0
      .docs/20260605-见习岗位管理_公益性岗位管理_岗位推荐模块完善开发记录.md
  18. 0 0
      .docs/20260609-失败诊断模块开发记录.md
  19. 0 0
      .docs/20260609-职业指导服务模块开发记录.md
  20. 0 0
      .docs/20260609-自定义组件使用说明.md
  21. 0 0
      .docs/20260610-深度分析模块开发记录.md
  22. 0 0
      .docs/20260611-数据统计模块开发记录.md
  23. 0 0
      .docs/20260612-任务派发模块开发文档.md
  24. 0 0
      .docs/20260612-招聘会管理模块开发记录.md
  25. 0 0
      .docs/20260613-自定义导入组件使用文档.md
  26. 0 0
      .docs/20260615-就业援助模块开发记录.md
  27. 0 0
      .docs/20260615-就业登记模块开发记录.md
  28. 0 0
      .docs/20260615-开发记录_见习岗位与见习人员管理模块.md
  29. 125 0
      .docs/20260615-招聘业务三模块重写记录.md
  30. 0 0
      .docs/20260615-新模块开发经验教训记录.md
  31. 0 0
      .docs/20260615-模块开发说明-就业状态自动感知.md
  32. 0 0
      .docs/20260615-模块开发说明-政策推送和岗位信息变动推送.md
  33. 61 0
      .docs/20260615-简历投递记录模块创建记录.md
  34. 194 0
      .docs/20260615-粤信签登录后端一站式接口开发记录.md
  35. 0 0
      .docs/20260615-职业指导服务开发问题记录与避坑指南.md
  36. 0 0
      .docs/20260615-达梦数据库JDBC执行SQL操作记录.md
  37. 0 0
      .docs/20260615-重点关注人员管理-P0任务实现记录.md
  38. 0 0
      .docs/20260615-重点关注人员管理-需求与现有实现对比分析.md
  39. 0 26
      .docs/_extract_proto.py
  40. 0 5155
      .docs/_proto_docx.txt
  41. 0 0
      .docs/sql/修复脚本/AI-FLOW触发器兼容达梦数据库修复.sql
  42. 0 0
      .docs/sql/修复脚本/修复见习人员权限数据.sql
  43. 0 0
      .docs/sql/修复脚本/修复见习岗位和公益性岗位导出按钮权限.sql
  44. 0 0
      .docs/sql/修复脚本/新增模块清理与重新执行.sql
  45. 0 0
      .docs/sql/修复脚本/职业指导服务-移除SQL.sql
  46. 0 0
      .docs/sql/修复脚本/重点关注人员管理-手动修复.sql
  47. 0 0
      .docs/sql/修复脚本/重点关注人员管理-菜单修复.sql
  48. 0 0
      .docs/sql/字典数据/信息智能推送模块-补充字典数据.sql
  49. 0 0
      .docs/sql/字典数据/就业援助-补充字典数据.sql
  50. 0 0
      .docs/sql/字典数据/就业登记-补充字典数据.sql
  51. 0 0
      .docs/sql/字典数据/招聘会管理-字典数据.sql
  52. 0 0
      .docs/sql/字典数据/数据字典-职业分类(ZYFL).sql
  53. 0 0
      .docs/sql/字典数据/数据字典-行政区划(XZQH).sql
  54. 0 0
      .docs/sql/字典数据/数据字典数据插入.sql
  55. 0 0
      .docs/sql/字典数据/职业指导服务-补充字典数据.sql
  56. 0 0
      .docs/sql/字典数据/见习人员字典.sql
  57. 0 0
      .docs/sql/字典数据/重点关注人员字典.sql
  58. 0 0
      .docs/sql/建表语句/公益性岗位信息.sql
  59. 0 0
      .docs/sql/建表语句/就业援助-建表.sql
  60. 0 0
      .docs/sql/建表语句/就业状态自动感知-建表.sql
  61. 0 0
      .docs/sql/建表语句/就业登记-建表.sql
  62. 0 0
      .docs/sql/建表语句/岗位推荐信息.sql
  63. 202 0
      .docs/sql/建表语句/招聘业务三表-投递面试录用.sql
  64. 0 0
      .docs/sql/建表语句/招聘会管理-关联表与字段补充.sql
  65. 0 0
      .docs/sql/建表语句/招聘会管理-建表.sql
  66. 0 0
      .docs/sql/建表语句/政策推送和岗位信息变动推送-建表.sql
  67. 0 0
      .docs/sql/建表语句/消息通知记录表.sql
  68. 0 0
      .docs/sql/建表语句/职业指导服务-达梦表与视图.sql
  69. 0 0
      .docs/sql/建表语句/见习人员信息.sql
  70. 0 0
      .docs/sql/建表语句/见习人员服务跟进表.sql
  71. 0 0
      .docs/sql/建表语句/见习人员管理_全部重建.sql
  72. 0 0
      .docs/sql/建表语句/见习人员表新增标签字段.sql
  73. 0 0
      .docs/sql/建表语句/见习人员表新增自定义标签字段.sql
  74. 0 0
      .docs/sql/建表语句/见习岗位信息.sql
  75. 0 0
      .docs/sql/建表语句/重点关注人员信息.sql
  76. 0 0
      .docs/sql/测试数据/就业援助-测试数据.sql
  77. 0 0
      .docs/sql/测试数据/就业状态自动感知-测试数据.sql
  78. 0 0
      .docs/sql/测试数据/就业登记-测试数据.sql
  79. 0 0
      .docs/sql/测试数据/招聘会管理-测试数据.sql
  80. 0 0
      .docs/sql/测试数据/政策推送和岗位信息变动推送-测试数据.sql
  81. 0 0
      .docs/sql/测试数据/新增模块测试数据.sql
  82. 0 0
      .docs/sql/测试数据/职业指导服务-测试数据.sql
  83. 0 0
      .docs/sql/测试数据/见习人员信息重新录入.sql
  84. 0 0
      .docs/sql/测试数据/重点关注人员测试数据.sql
  85. 0 0
      .docs/sql/菜单权限/就业援助-菜单权限.sql
  86. 0 0
      .docs/sql/菜单权限/就业登记-菜单权限.sql
  87. 0 0
      .docs/sql/菜单权限/招聘会管理-菜单权限.sql
  88. 0 0
      .docs/sql/菜单权限/职业指导服务-菜单与授权-终版.sql
  89. 0 0
      .docs/sql/菜单权限/菜单结构调整-放到信息智能匹配推送下.sql
  90. 0 0
      .docs/sql/视图/初步符合条件人员视图.sql
  91. 0 0
      .docs/sql/视图/就业援助管理视图.sql
  92. 0 0
      .docs/sql/视图/就业状态自动感知-视图.sql
  93. 0 0
      .docs/sql/视图/就业登记-视图.sql
  94. 0 0
      .docs/sql/视图/岗位推荐视图.sql
  95. 0 0
      .docs/sql/视图/政策推送和岗位信息变动推送-视图.sql
  96. 0 0
      .docs/sql/视图/职业指导服务-DDL修复.sql
  97. 0 0
      .docs/sql/视图/职业指导服务-视图年龄修复.sql
  98. 0 0
      .docs/sql/视图/见习人员视图.sql
  99. 0 0
      .docs/sql/视图/重点关注人员视图.sql
  100. 0 0
      jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

.docs/260601-项目结构与技术框架分析.md → .docs/20260601-项目结构与技术框架分析.md


.docs/260603-公益性岗位管理与岗位推荐模块开发记录.md → .docs/20260603-公益性岗位管理与岗位推荐模块开发记录.md


.docs/260603-前端框架全局开发规范与最佳实践.md → .docs/20260603-前端框架全局开发规范与最佳实践.md


.docs/260603-后端框架全局开发规范与最佳实践.md → .docs/20260603-后端框架全局开发规范与最佳实践.md


.docs/260603-新增模块开发记录.md → .docs/20260603-新增模块开发记录.md


.docs/260603-重点关注人员管理模块开发记录.md → .docs/20260603-重点关注人员管理模块开发记录.md


BIN
.docs/20260604-backend_startup.log


.docs/260604-个人基本信息模块开发记录.md → .docs/20260604-个人基本信息模块开发记录.md


.docs/260604-企业基本信息模块开发记录.md → .docs/20260604-企业基本信息模块开发记录.md


.docs/260604-岗位信息模块开发记录.md → .docs/20260604-岗位信息模块开发记录.md


.docs/260604-数据字典类字段显示与导出实现方式.md → .docs/20260604-数据字典类字段显示与导出实现方式.md


.docs/260604-标签库模块开发记录.md → .docs/20260604-标签库模块开发记录.md


.docs/260604-简历信息模块开发记录.md → .docs/20260604-简历信息模块开发记录.md


.docs/260604-错误的代码生成处理与分析记录.md → .docs/20260604-错误的代码生成处理与分析记录.md


.docs/260605-前端-公益性岗位管理模块完善.md → .docs/20260605-前端-公益性岗位管理模块完善.md


.docs/260605-前端-见习人员模块改造.md → .docs/20260605-前端-见习人员模块改造.md


.docs/260605-见习岗位管理_公益性岗位管理_岗位推荐模块完善开发记录.md → .docs/20260605-见习岗位管理_公益性岗位管理_岗位推荐模块完善开发记录.md


.docs/260609-失败诊断模块开发记录.md → .docs/20260609-失败诊断模块开发记录.md


.docs/260609-职业指导服务模块开发记录.md → .docs/20260609-职业指导服务模块开发记录.md


.docs/260609-自定义组件使用说明.md → .docs/20260609-自定义组件使用说明.md


.docs/260610-深度分析模块开发记录.md → .docs/20260610-深度分析模块开发记录.md


.docs/260611-数据统计模块开发记录.md → .docs/20260611-数据统计模块开发记录.md


.docs/260612-任务派发模块开发文档.md → .docs/20260612-任务派发模块开发文档.md


.docs/260612-招聘会管理模块开发记录.md → .docs/20260612-招聘会管理模块开发记录.md


.docs/260613-自定义导入组件使用文档.md → .docs/20260613-自定义导入组件使用文档.md


.docs/就业援助模块开发记录.md → .docs/20260615-就业援助模块开发记录.md


.docs/就业登记模块开发记录.md → .docs/20260615-就业登记模块开发记录.md


.docs/开发记录_见习岗位与见习人员管理模块.md → .docs/20260615-开发记录_见习岗位与见习人员管理模块.md


+ 125 - 0
.docs/20260615-招聘业务三模块重写记录.md

@@ -0,0 +1,125 @@
+# 招聘业务三模块重写记录(V2.0)
+
+## 修改日期
+2026-06-15
+
+## 修改说明
+按照JeecgBoot项目代码规范,重写简历投递记录、面试记录、录用记录三个模块的Java文件,共15个文件。主要变更:Entity继承JeecgEntity、使用Swagger V3注解、Controller继承JeecgController、跨模块操作使用Mapper直接注入。
+
+---
+
+## 模块1:简历投递记录(JOB_APPLICATION)
+
+### 基础路径
+`D:\我的文件\JeecgBoot-main\jeecg-boot\jeecg-boot-module\jeecg-module-zjrs\src\main\java\org\jeecg\modules\zjrs\application`
+
+### 修改文件列表
+
+#### 1. Entity - JobApplication.java
+- **表名变更**: `JOB_APPLICATION` → `job_application`(小写)
+- **继承变更**: `implements Serializable` → `extends JeecgEntity`
+- **移除字段**: id、createBy、createTime、updateBy、updateTime、sysOrgCode(JeecgEntity已包含)
+- **注解变更**: `@ApiModel`/`@ApiModelProperty` → `@Schema`,新增 `@Excel` 注解
+- **新增注解**: `@EqualsAndHashCode(callSuper = true)`
+- **QueryWrapper字段**: 大写列名 → 小写列名(如 `PERSONAL_ID` → `personal_id`)
+
+#### 2. Mapper - JobApplicationMapper.java
+- 无变更,仍继承 `BaseMapper<JobApplication>`
+
+#### 3. Service - IJobApplicationService.java
+- 无变更,仍继承 `IService<JobApplication>`
+
+#### 4. ServiceImpl - JobApplicationServiceImpl.java
+- 无变更,仍继承 `ServiceImpl<JobApplicationMapper, JobApplication>`
+
+#### 5. Controller - JobApplicationController.java
+- **继承变更**: 无继承 → `extends JeecgController<JobApplication, IJobApplicationService>`
+- **注解变更**: `@Api(tags=...)` → `@Tag(name=...)`,`@ApiOperation` → `@Operation(summary=...)`
+- **依赖注入变更**: `IInterviewRecordService` → `InterviewRecordMapper`(直接注入Mapper)
+- **面试记录创建方式**: `interviewRecordService.save()` → `interviewRecordMapper.insert()`
+
+---
+
+## 模块2:面试记录(INTERVIEW_RECORD)
+
+### 基础路径
+`D:\我的文件\JeecgBoot-main\jeecg-boot\jeecg-boot-module\jeecg-module-zjrs\src\main\java\org\jeecg\modules\zjrs\interview`
+
+### 修改文件列表
+
+#### 1. Entity - InterviewRecord.java
+- **表名变更**: `INTERVIEW_RECORD` → `interview_record`(小写)
+- **继承变更**: `implements Serializable` → `extends JeecgEntity`
+- **移除字段**: id、createBy、createTime、updateBy、updateTime、sysOrgCode(JeecgEntity已包含)
+- **注解变更**: `@ApiModel`/`@ApiModelProperty` → `@Schema`,新增 `@Excel` 注解
+- **新增注解**: `@EqualsAndHashCode(callSuper = true)`
+
+#### 2. Mapper - InterviewRecordMapper.java
+- 无变更
+
+#### 3. Service - IInterviewRecordService.java
+- 无变更
+
+#### 4. ServiceImpl - InterviewRecordServiceImpl.java
+- 无变更
+
+#### 5. Controller - InterviewRecordController.java
+- **继承变更**: 无继承 → `extends JeecgController<InterviewRecord, IInterviewRecordService>`
+- **注解变更**: `@Api(tags=...)` → `@Tag(name=...)`,`@ApiOperation` → `@Operation(summary=...)`
+- **依赖注入变更**: `IEmploymentOfferService` → `EmploymentOfferMapper`(直接注入Mapper)
+- **录用记录创建方式**: `employmentOfferService.save()` → `employmentOfferMapper.insert()`
+
+---
+
+## 模块3:录用记录(EMPLOYMENT_OFFER)
+
+### 基础路径
+`D:\我的文件\JeecgBoot-main\jeecg-boot\jeecg-boot-module\jeecg-module-zjrs\src\main\java\org\jeecg\modules\zjrs\offer`
+
+### 修改文件列表
+
+#### 1. Entity - EmploymentOffer.java
+- **表名变更**: `EMPLOYMENT_OFFER` → `employment_offer`(小写)
+- **继承变更**: `implements Serializable` → `extends JeecgEntity`
+- **移除字段**: id、createBy、createTime、updateBy、updateTime、sysOrgCode(JeecgEntity已包含)
+- **注解变更**: `@ApiModel`/`@ApiModelProperty` → `@Schema`,新增 `@Excel` 注解
+- **新增注解**: `@EqualsAndHashCode(callSuper = true)`
+- **entryDate日期格式**: `yyyy-MM-dd`(保持不变,与面试时间的 `yyyy-MM-dd HH:mm:ss` 不同)
+
+#### 2. Mapper - EmploymentOfferMapper.java
+- 无变更
+
+#### 3. Service - IEmploymentOfferService.java
+- 无变更
+
+#### 4. ServiceImpl - EmploymentOfferServiceImpl.java
+- 无变更
+
+#### 5. Controller - EmploymentOfferController.java
+- **继承变更**: 无继承 → `extends JeecgController<EmploymentOffer, IEmploymentOfferService>`
+- **注解变更**: `@Api(tags=...)` → `@Tag(name=...)`,`@ApiOperation` → `@Operation(summary=...)`
+- **QueryWrapper字段**: 大写列名 → 小写列名
+
+---
+
+## 规范对照总结
+
+| 规范项 | 旧代码 | 新代码 |
+|--------|--------|--------|
+| Entity继承 | implements Serializable | extends JeecgEntity |
+| 表名注解 | @TableName("JOB_APPLICATION") | @TableName("job_application") |
+| Swagger注解 | @ApiModel/@ApiModelProperty | @Schema |
+| Controller注解 | @Api/@ApiOperation | @Tag/@Operation |
+| Controller继承 | 无 | extends JeecgController |
+| 跨模块操作 | 注入Service | 注入Mapper |
+| EqualsAndHashCode | callSuper = false | callSuper = true |
+| Excel注解 | 无 | @Excel(name="中文名", width=15) |
+| 字段类型 | String | java.lang.String |
+| QueryWrapper列名 | 大写(ENTERPRISE_ID) | 小写(enterprise_id) |
+| 审计字段 | 手动定义 | JeecgEntity继承 |
+
+## 注意事项
+1. 数据库表名需从大写改为小写(job_application、interview_record、employment_offer),如数据库使用大写表名需在MyBatis-Plus配置中开启表名大写映射
+2. 需在系统字典中配置:application_status、interview_method、interview_result、offer_status
+3. JeecgEntity已包含id/createBy/createTime/updateBy/updateTime字段,无需重复定义
+4. 小程序接口未添加 @RequiresPermissions 权限注解

.docs/新模块开发经验教训记录.md → .docs/20260615-新模块开发经验教训记录.md


.docs/模块开发说明-就业状态自动感知.md → .docs/20260615-模块开发说明-就业状态自动感知.md


.docs/模块开发说明-政策推送和岗位信息变动推送.md → .docs/20260615-模块开发说明-政策推送和岗位信息变动推送.md


+ 61 - 0
.docs/20260615-简历投递记录模块创建记录.md

@@ -0,0 +1,61 @@
+# 简历投递记录(JOB_APPLICATION)模块创建记录
+
+## 创建日期
+2026-06-15
+
+## 模块说明
+创建简历投递记录(JOB_APPLICATION)模块,用于个人端投递简历、企业端筛选简历及邀请面试等业务功能。
+
+## 创建文件列表
+
+### 1. Entity 实体类
+- **文件路径**: `org/jeecg/modules/zjrs/application/entity/JobApplication.java`
+- **对应表**: JOB_APPLICATION
+- **主要字段**:
+  - id: 主键ID(ASSIGN_ID策略)
+  - personalId: 投递人ID
+  - resumeId: 投递的简历ID
+  - enterpriseId: 投递的企业ID
+  - postId: 投递的岗位ID
+  - postName: 岗位名称
+  - enterpriseName: 企业名称
+  - personalName: 求职者姓名
+  - applyTime: 投递时间
+  - status: 投递状态(0-待查看,1-筛选通过,2-筛选不通过,3-已邀请面试,4-已取消),字典编码 application_status
+  - remark: 企业备注
+  - createBy/createTime/updateBy/updateTime/sysOrgCode: 审计字段
+
+### 2. Mapper 数据访问层
+- **文件路径**: `org/jeecg/modules/zjrs/application/mapper/JobApplicationMapper.java`
+- 继承 BaseMapper<JobApplication>
+
+### 3. Service 接口
+- **文件路径**: `org/jeecg/modules/zjrs/application/service/IJobApplicationService.java`
+- 继承 IService<JobApplication>
+
+### 4. Service 实现类
+- **文件路径**: `org/jeecg/modules/zjrs/application/service/impl/JobApplicationServiceImpl.java`
+- 继承 ServiceImpl<JobApplicationMapper, JobApplication>
+- @Service 注解
+
+### 5. Controller 控制器
+- **文件路径**: `org/jeecg/modules/zjrs/application/controller/JobApplicationController.java`
+- **请求路径前缀**: /jobApplication
+- **接口列表**:
+  | 接口 | 方法 | 路径 | 说明 |
+  |------|------|------|------|
+  | 投递简历 | POST | /apply | 个人端投递简历,含重复投递校验 |
+  | 我的投递记录 | GET | /myApplications | 个人端分页查询投递记录,支持状态筛选 |
+  | 取消投递 | PUT | /cancel | 个人端取消投递,仅待查看状态可取消 |
+  | 企业收到的投递列表 | GET | /enterpriseList | 企业端分页查询,支持状态和岗位筛选 |
+  | 筛选通过 | PUT | /pass | 企业端筛选通过,可添加备注 |
+  | 筛选不通过 | PUT | /reject | 企业端筛选不通过,可添加备注 |
+  | 邀请面试 | POST | /inviteInterview | 企业端邀请面试,同时创建面试记录 |
+  | 查询详情 | GET | /queryById | 根据ID查询投递详情 |
+
+## 依赖说明
+- Controller 中的 `inviteInterview` 接口依赖 `InterviewRecord` 实体和 `IInterviewRecordService`(位于 `org.jeecg.modules.zjrs.interview` 包下),需确保面试记录模块已创建。
+
+## 注意事项
+- 投递状态字典编码为 `application_status`,需在系统字典中配置对应字典项。
+- 数据库表 JOB_APPLICATION 需提前创建。

+ 194 - 0
.docs/20260615-粤信签登录后端一站式接口开发记录.md

@@ -0,0 +1,194 @@
+# 粤信签登录集成 - 后端修改记录
+
+> 修改日期:2026-06-15 | 需求:后端一站式处理粤信签认证,前端只需传入loginToken即可完成全部登录流程
+
+---
+
+## 一、修改概述
+
+后端新增 `/zjrs/login/yxqMiniProgramLogin` 接口,接收前端传入的粤信签loginToken,内部一站式完成:
+1. 调用省统一认证网关换取Access-Token
+2. 用Access-Token获取用户信息(姓名、身份证号、用户类型等)
+3. 根据用户信息匹配本地数据库(PERSONAL_INFO或ENTERPRISE_INFO)
+4. 签发JeecgBoot业务token并返回
+
+**核心优化:** 将原来前端需要3次网络请求的登录流程,简化为前端1次请求,后端内部完成全部逻辑。
+
+---
+
+## 二、修改文件清单
+
+### 1. `ILoginSSOService.java` - Service接口
+
+**文件路径:** `jeecg-boot-module/jeecg-module-zjrs/src/main/java/org/jeecg/modules/zjrs/sso/service/ILoginSSOService.java`
+
+**新增方法:**
+```java
+/**
+ * 粤信签小程序登录
+ * 前端传入粤信签返回的loginToken,后端内部调用省统一认证网关完成:
+ * 1. 用loginToken换取Access-Token
+ * 2. 用Access-Token获取用户信息(姓名、身份证号、用户类型等)
+ * 3. 根据用户信息匹配本地数据库(PERSONAL_INFO或ENTERPRISE_INFO)
+ * 4. 签发JeecgBoot业务token
+ *
+ * @param loginToken 粤信签小程序返回的登录token
+ * @param request    请求对象
+ * @return 登录结果(包含token、loginType、personalInfoId/enterpriseInfoId等)
+ * @throws RuntimeException 登录失败时抛出异常
+ */
+JSONObject yxqMiniProgramLogin(String loginToken, HttpServletRequest request);
+```
+
+### 2. `LoginSSOServiceImpl.java` - Service实现
+
+**文件路径:** `jeecg-boot-module/jeecg-module-zjrs/src/main/java/org/jeecg/modules/zjrs/sso/service/impl/LoginSSOServiceImpl.java`
+
+**新增配置常量:**
+```java
+/** 省统一认证平台申请ID */
+private static final String PAAS_ID = "yxq_zjsrlzyhshbzggfwpt";
+
+/** 省统一认证平台申请密钥 */
+private static final String PAAS_TOKEN = "TSgNKaU3wFw1WwtdAoTE0cT57UisJs5p";
+
+/** 网关基础地址(通过配置文件注入,默认值用于本地开发) */
+@Value("${zjrs.yxq.gateway-url:https://rsj.zhanjiang.gov.cn/wx}")
+private String gatewayBaseUrl;
+```
+
+**新增方法:**
+
+| 方法 | 说明 |
+|------|------|
+| `yxqMiniProgramLogin()` | 入口方法,接收loginToken,内部调用网关验证+获取用户信息+匹配数据库+签发token |
+| `getAccessTokenFromGateway()` | 用loginToken调用省统一认证网关 `/api/auth/tyrz/miniprogram`,换取Access-Token |
+| `getYxqUserInfo()` | 用Access-Token调用 `/ggfw/api/portal/user/getUserInfo`,获取用户信息 |
+| `matchPersonalAndCreateToken()` | 个人用户匹配:优先身份证号精确匹配,其次姓名匹配 |
+| `matchEnterpriseAndCreateToken()` | 企业用户匹配:根据企业名称匹配 |
+| `sha256()` | SHA256哈希算法,用于生成粤信签网关签名 |
+
+**关键优化 - 个人用户匹配策略:**
+- 优先使用身份证号(`aac002`)精确匹配 `personal_info.id_number`,避免同名冲突
+- 身份证号匹配不到时,再用姓名匹配 `personal_info.full_name`
+- 使用 `getOne(qw, false)` 避免多条记录时抛出 TooManyResultsException
+
+**新增import:**
+```java
+import org.jeecg.common.util.RestUtil;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.util.UUID;
+```
+
+### 3. `LoginSSOController.java` - Controller
+
+**文件路径:** `jeecg-boot-module/jeecg-module-zjrs/src/main/java/org/jeecg/modules/zjrs/sso/controller/LoginSSOController.java`
+
+**新增接口:**
+```java
+@PostMapping("/yxqMiniProgramLogin")
+@IgnoreAuth
+@Operation(summary = "粤信签小程序登录", description = "前端传入粤信签loginToken,后端内部调用省统一认证网关完成认证并签发JeecgBoot业务token")
+public Result<JSONObject> yxqMiniProgramLogin(@RequestBody JSONObject params, HttpServletRequest request) {
+    try {
+        String loginToken = params.getString("loginToken");
+        JSONObject result = loginSSOService.yxqMiniProgramLogin(loginToken, request);
+        return Result.OK(result);
+    } catch (RuntimeException e) {
+        log.error("粤信签小程序登录失败", e);
+        return Result.error(e.getMessage());
+    }
+}
+```
+
+### 4. `ShiroConfig.java` - Shiro安全配置
+
+**文件路径:** `jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java`
+
+**修改内容:**
+```java
+filterChainDefinitionMap.put("/zjrs/login/yxqMiniProgramLogin", "anon"); // 粤信签小程序登录
+```
+
+---
+
+## 三、接口说明
+
+### 请求
+
+- **URL:** `POST /zjrs/login/yxqMiniProgramLogin`
+- **参数:**
+  ```json
+  {
+    "loginToken": "粤信签小程序返回的token"
+  }
+  ```
+
+### 返回
+
+```json
+{
+  "success": true,
+  "result": {
+    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
+    "loginType": "personal",
+    "personalInfoId": "1906017267265433601",
+    "yxqUserInfo": { "aac003": "张三", "fwdx": "1", ... },
+    "loginFlag": true
+  }
+}
+```
+
+---
+
+## 四、后端处理流程
+
+```
+接收 loginToken
+    ↓
+getAccessTokenFromGateway()
+  POST {gateway-url}/api/auth/tyrz/miniprogram
+  参数:code, x_tif_paasid, x_tif_signature, x_tif_timestamp, x_tif_nonce
+  签名:sha256(时间戳 + paaSToken + 随机数 + 时间戳)
+  返回:Access-Token
+    ↓
+getYxqUserInfo()
+  GET {gateway-url}/ggfw/api/portal/user/getUserInfo
+  请求头:Access-Token
+  返回:{ aac003: 姓名, aac002: 身份证号, fwdx: 用户类型 }
+    ↓
+根据 fwdx 判断登录类型(1=个人,2=企业)
+    ↓
+个人用户:
+  matchPersonalAndCreateToken()
+    1. 优先用身份证号(aac002)匹配 personal_info.id_number
+    2. 匹配不到再用姓名(aac003)匹配 personal_info.full_name
+    3. 生成 "personal_" + id 的用户名
+    4. 调用 createToken() 签发JWT
+企业用户:
+  matchEnterpriseAndCreateToken()
+    1. 用企业名称(aac003)匹配 enterprise_info.company_name
+    2. 生成 "enterprise_" + id 的用户名
+    3. 调用 createToken() 签发JWT
+    ↓
+返回 { token, loginType, personalInfoId/enterpriseInfoId, yxqUserInfo, loginFlag }
+```
+
+---
+
+## 五、注意事项
+
+1. **网关地址配置:** 默认 `https://rsj.zhanjiang.gov.cn/wx`,如JeecgBoot部署在内网无法直接访问外网,需在 `application.yml` 中配置 `zjrs.yxq.gateway-url` 代理地址。
+
+2. **无需新增依赖:** 使用项目已有的 `RestUtil`(基于 RestTemplate + Apache HttpClient)。
+
+3. **个人用户匹配策略:** 优先身份证号精确匹配,解决了原来仅用姓名匹配可能导致的同名冲突问题。
+
+4. **安全加固:** paaSToken密钥存储在后端,不再暴露在前端。
+
+5. **不影响现有逻辑:** 原有的 `miniProgramPersonalLogin` 和 `miniProgramEnterpriseLogin` 接口保持不变。

.docs/职业指导服务开发问题记录与避坑指南.md → .docs/20260615-职业指导服务开发问题记录与避坑指南.md


.docs/达梦数据库JDBC执行SQL操作记录.md → .docs/20260615-达梦数据库JDBC执行SQL操作记录.md


.docs/重点关注人员管理-P0任务实现记录.md → .docs/20260615-重点关注人员管理-P0任务实现记录.md


.docs/重点关注人员管理-需求与现有实现对比分析.md → .docs/20260615-重点关注人员管理-需求与现有实现对比分析.md


+ 0 - 26
.docs/_extract_proto.py

@@ -1,26 +0,0 @@
-import zipfile, xml.etree.ElementTree as ET
-docx_path = r'D:\我的文件\JeecgBoot-main\doc\湛江市人力资源和社会保障局智慧人社运营运维(2025-2027年)项目需求规格说明书-就业一湛通服务平台.docx'
-output_path = r'D:\我的文件\JeecgBoot-main\.docs\_proto_docx.txt'
-try:
-    with zipfile.ZipFile(docx_path) as z:
-        xml_content = z.read('word/document.xml')
-    root = ET.fromstring(xml_content)
-    NS = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
-    all_text = []
-    for para in root.iter(NS + 'p'):
-        texts = []
-        for t in para.iter(NS + 't'):
-            if t.text:
-                texts.append(t.text)
-        if texts:
-            all_text.append(''.join(texts))
-    with open(output_path, 'w', encoding='utf-8') as f:
-        f.write('\n'.join(all_text))
-    # Find 方案设计 content
-    for i, p in enumerate(all_text):
-        if '方案设计' in p or '页面原型' in p or '原型设计' in p:
-            for j in range(max(0,i-2), min(len(all_text),i+15)):
-                print(f'{j}: [{all_text[j][:200]}]')
-            print('---')
-except Exception as e:
-    print(f'Error: {e}')

File diff suppressed because it is too large
+ 0 - 5155
.docs/_proto_docx.txt


.docs/sql/AI-FLOW触发器兼容达梦数据库修复.sql → .docs/sql/修复脚本/AI-FLOW触发器兼容达梦数据库修复.sql


.docs/sql/修复见习人员权限数据.sql → .docs/sql/修复脚本/修复见习人员权限数据.sql


.docs/sql/修复见习岗位和公益性岗位导出按钮权限.sql → .docs/sql/修复脚本/修复见习岗位和公益性岗位导出按钮权限.sql


.docs/sql/新增模块清理与重新执行.sql → .docs/sql/修复脚本/新增模块清理与重新执行.sql


.docs/sql/职业指导服务-移除SQL.sql → .docs/sql/修复脚本/职业指导服务-移除SQL.sql


.docs/sql/重点关注人员管理-手动修复.sql → .docs/sql/修复脚本/重点关注人员管理-手动修复.sql


.docs/sql/重点关注人员管理-菜单修复.sql → .docs/sql/修复脚本/重点关注人员管理-菜单修复.sql


.docs/sql/信息智能推送模块-补充字典数据.sql → .docs/sql/字典数据/信息智能推送模块-补充字典数据.sql


.docs/sql/就业援助-补充字典数据.sql → .docs/sql/字典数据/就业援助-补充字典数据.sql


.docs/sql/就业登记-补充字典数据.sql → .docs/sql/字典数据/就业登记-补充字典数据.sql


.docs/sql/招聘会管理-字典数据.sql → .docs/sql/字典数据/招聘会管理-字典数据.sql


.docs/sql/数据字典-职业分类(ZYFL).sql → .docs/sql/字典数据/数据字典-职业分类(ZYFL).sql


.docs/sql/数据字典-行政区划(XZQH).sql → .docs/sql/字典数据/数据字典-行政区划(XZQH).sql


.docs/sql/数据字典数据插入.sql → .docs/sql/字典数据/数据字典数据插入.sql


.docs/sql/职业指导服务-补充字典数据.sql → .docs/sql/字典数据/职业指导服务-补充字典数据.sql


.docs/sql/见习人员字典.sql → .docs/sql/字典数据/见习人员字典.sql


.docs/sql/重点关注人员字典.sql → .docs/sql/字典数据/重点关注人员字典.sql


.docs/sql/公益性岗位信息.sql → .docs/sql/建表语句/公益性岗位信息.sql


.docs/sql/就业援助-建表.sql → .docs/sql/建表语句/就业援助-建表.sql


.docs/sql/就业状态自动感知-建表.sql → .docs/sql/建表语句/就业状态自动感知-建表.sql


.docs/sql/就业登记-建表.sql → .docs/sql/建表语句/就业登记-建表.sql


.docs/sql/岗位推荐信息.sql → .docs/sql/建表语句/岗位推荐信息.sql


+ 202 - 0
.docs/sql/建表语句/招聘业务三表-投递面试录用.sql

@@ -0,0 +1,202 @@
+-- ============================================================
+-- 湛江市智慧人社运营运维(2025-2027年)项目
+-- 就业一湛通服务平台 - 招聘业务三表(投递/面试/录用)
+-- 达梦(DM)数据库建表脚本
+--
+-- 说明:打通"投递→筛选→面试→录用"完整招聘链路
+-- 关联表:PERSONAL_INFO, RESUME_INFO, ENTERPRISE_INFO, POST_INFO
+-- 数据库:达梦数据库 (DM8)
+-- 创建日期:2026-06-15
+-- ============================================================
+
+-- ============================================================
+-- 1. 简历投递记录表 JOB_APPLICATION
+-- ============================================================
+CREATE TABLE IF NOT EXISTS JOB_APPLICATION (
+    ID                VARCHAR(36)   NOT NULL,
+    PERSONAL_ID       VARCHAR(36)   NOT NULL,
+    RESUME_ID         VARCHAR(36),
+    ENTERPRISE_ID     VARCHAR(36)   NOT NULL,
+    POST_ID           VARCHAR(36)   NOT NULL,
+    POST_NAME         VARCHAR(200),
+    ENTERPRISE_NAME   VARCHAR(200),
+    PERSONAL_NAME     VARCHAR(100),
+    APPLY_TIME        TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    STATUS            VARCHAR(10)   DEFAULT '0',
+    REMARK            VARCHAR(500),
+    CREATE_BY         VARCHAR(50),
+    CREATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    UPDATE_BY         VARCHAR(50),
+    UPDATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    SYS_ORG_CODE      VARCHAR(64),
+    PRIMARY KEY (ID)
+);
+
+COMMENT ON TABLE JOB_APPLICATION IS '简历投递记录表';
+COMMENT ON COLUMN JOB_APPLICATION.ID IS '主键ID';
+COMMENT ON COLUMN JOB_APPLICATION.PERSONAL_ID IS '投递人ID(关联PERSONAL_INFO)';
+COMMENT ON COLUMN JOB_APPLICATION.RESUME_ID IS '投递的简历ID(关联RESUME_INFO)';
+COMMENT ON COLUMN JOB_APPLICATION.ENTERPRISE_ID IS '投递的企业ID(关联ENTERPRISE_INFO)';
+COMMENT ON COLUMN JOB_APPLICATION.POST_ID IS '投递的岗位ID(关联POST_INFO)';
+COMMENT ON COLUMN JOB_APPLICATION.POST_NAME IS '岗位名称(冗余)';
+COMMENT ON COLUMN JOB_APPLICATION.ENTERPRISE_NAME IS '企业名称(冗余)';
+COMMENT ON COLUMN JOB_APPLICATION.PERSONAL_NAME IS '求职者姓名(冗余)';
+COMMENT ON COLUMN JOB_APPLICATION.APPLY_TIME IS '投递时间';
+COMMENT ON COLUMN JOB_APPLICATION.STATUS IS '投递状态:0-待查看,1-筛选通过,2-筛选不通过,3-已邀请面试,4-已取消';
+COMMENT ON COLUMN JOB_APPLICATION.REMARK IS '企业备注';
+COMMENT ON COLUMN JOB_APPLICATION.CREATE_BY IS '创建人';
+COMMENT ON COLUMN JOB_APPLICATION.CREATE_TIME IS '创建时间';
+COMMENT ON COLUMN JOB_APPLICATION.UPDATE_BY IS '修改人';
+COMMENT ON COLUMN JOB_APPLICATION.UPDATE_TIME IS '修改时间';
+COMMENT ON COLUMN JOB_APPLICATION.SYS_ORG_CODE IS '组织机构编号';
+
+CREATE INDEX IDX_JA_PERSONAL_ID ON JOB_APPLICATION(PERSONAL_ID);
+CREATE INDEX IDX_JA_ENTERPRISE_ID ON JOB_APPLICATION(ENTERPRISE_ID);
+CREATE INDEX IDX_JA_POST_ID ON JOB_APPLICATION(POST_ID);
+CREATE INDEX IDX_JA_STATUS ON JOB_APPLICATION(STATUS);
+
+-- ============================================================
+-- 2. 面试记录表 INTERVIEW_RECORD
+-- ============================================================
+CREATE TABLE IF NOT EXISTS INTERVIEW_RECORD (
+    ID                VARCHAR(36)   NOT NULL,
+    APPLICATION_ID    VARCHAR(36)   NOT NULL,
+    PERSONAL_ID       VARCHAR(36)   NOT NULL,
+    ENTERPRISE_ID     VARCHAR(36)   NOT NULL,
+    POST_ID           VARCHAR(36)   NOT NULL,
+    RESUME_ID         VARCHAR(36),
+    PERSONAL_NAME     VARCHAR(100),
+    ENTERPRISE_NAME   VARCHAR(200),
+    POST_NAME         VARCHAR(200),
+    INTERVIEW_TIME    TIMESTAMP,
+    INTERVIEW_METHOD  VARCHAR(50),
+    INTERVIEW_ADDRESS VARCHAR(500),
+    ONLINE_LINK       VARCHAR(500),
+    CONTACT_PERSON    VARCHAR(100),
+    CONTACT_PHONE     VARCHAR(20),
+    INTERVIEW_RESULT  VARCHAR(10)   DEFAULT '0',
+    RESULT_REMARK     VARCHAR(500),
+    CREATE_BY         VARCHAR(50),
+    CREATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    UPDATE_BY         VARCHAR(50),
+    UPDATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    SYS_ORG_CODE      VARCHAR(64),
+    PRIMARY KEY (ID)
+);
+
+COMMENT ON TABLE INTERVIEW_RECORD IS '面试记录表';
+COMMENT ON COLUMN INTERVIEW_RECORD.ID IS '主键ID';
+COMMENT ON COLUMN INTERVIEW_RECORD.APPLICATION_ID IS '关联投递记录ID(关联JOB_APPLICATION)';
+COMMENT ON COLUMN INTERVIEW_RECORD.PERSONAL_ID IS '求职者ID(关联PERSONAL_INFO)';
+COMMENT ON COLUMN INTERVIEW_RECORD.ENTERPRISE_ID IS '企业ID(关联ENTERPRISE_INFO)';
+COMMENT ON COLUMN INTERVIEW_RECORD.POST_ID IS '岗位ID(关联POST_INFO)';
+COMMENT ON COLUMN INTERVIEW_RECORD.RESUME_ID IS '简历ID(关联RESUME_INFO)';
+COMMENT ON COLUMN INTERVIEW_RECORD.PERSONAL_NAME IS '求职者姓名(冗余)';
+COMMENT ON COLUMN INTERVIEW_RECORD.ENTERPRISE_NAME IS '企业名称(冗余)';
+COMMENT ON COLUMN INTERVIEW_RECORD.POST_NAME IS '岗位名称(冗余)';
+COMMENT ON COLUMN INTERVIEW_RECORD.INTERVIEW_TIME IS '面试时间';
+COMMENT ON COLUMN INTERVIEW_RECORD.INTERVIEW_METHOD IS '面试方式(字典interview_method)';
+COMMENT ON COLUMN INTERVIEW_RECORD.INTERVIEW_ADDRESS IS '面试地点';
+COMMENT ON COLUMN INTERVIEW_RECORD.ONLINE_LINK IS '线上面试链接';
+COMMENT ON COLUMN INTERVIEW_RECORD.CONTACT_PERSON IS '面试联系人';
+COMMENT ON COLUMN INTERVIEW_RECORD.CONTACT_PHONE IS '联系电话';
+COMMENT ON COLUMN INTERVIEW_RECORD.INTERVIEW_RESULT IS '面试结果:0-待面试,1-面试通过,2-面试不通过';
+COMMENT ON COLUMN INTERVIEW_RECORD.RESULT_REMARK IS '面试结果备注';
+COMMENT ON COLUMN INTERVIEW_RECORD.CREATE_BY IS '创建人';
+COMMENT ON COLUMN INTERVIEW_RECORD.CREATE_TIME IS '创建时间';
+COMMENT ON COLUMN INTERVIEW_RECORD.UPDATE_BY IS '修改人';
+COMMENT ON COLUMN INTERVIEW_RECORD.UPDATE_TIME IS '修改时间';
+COMMENT ON COLUMN INTERVIEW_RECORD.SYS_ORG_CODE IS '组织机构编号';
+
+CREATE INDEX IDX_IR_APPLICATION_ID ON INTERVIEW_RECORD(APPLICATION_ID);
+CREATE INDEX IDX_IR_PERSONAL_ID ON INTERVIEW_RECORD(PERSONAL_ID);
+CREATE INDEX IDX_IR_ENTERPRISE_ID ON INTERVIEW_RECORD(ENTERPRISE_ID);
+CREATE INDEX IDX_IR_RESULT ON INTERVIEW_RECORD(INTERVIEW_RESULT);
+
+-- ============================================================
+-- 3. 录用记录表 EMPLOYMENT_OFFER
+-- ============================================================
+CREATE TABLE IF NOT EXISTS EMPLOYMENT_OFFER (
+    ID                VARCHAR(36)   NOT NULL,
+    INTERVIEW_ID      VARCHAR(36)   NOT NULL,
+    APPLICATION_ID    VARCHAR(36)   NOT NULL,
+    PERSONAL_ID       VARCHAR(36)   NOT NULL,
+    ENTERPRISE_ID     VARCHAR(36)   NOT NULL,
+    POST_ID           VARCHAR(36)   NOT NULL,
+    PERSONAL_NAME     VARCHAR(100),
+    ENTERPRISE_NAME   VARCHAR(200),
+    POST_NAME         VARCHAR(200),
+    OFFER_SALARY      DECIMAL(12,2),
+    ENTRY_DATE        DATE,
+    CONTRACT_PERIOD   VARCHAR(50),
+    OFFER_REMARK      VARCHAR(500),
+    STATUS            VARCHAR(10)   DEFAULT '0',
+    CREATE_BY         VARCHAR(50),
+    CREATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    UPDATE_BY         VARCHAR(50),
+    UPDATE_TIME       TIMESTAMP     DEFAULT CURRENT_TIMESTAMP,
+    SYS_ORG_CODE      VARCHAR(64),
+    PRIMARY KEY (ID)
+);
+
+COMMENT ON TABLE EMPLOYMENT_OFFER IS '录用记录表';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.ID IS '主键ID';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.INTERVIEW_ID IS '关联面试记录ID(关联INTERVIEW_RECORD)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.APPLICATION_ID IS '关联投递记录ID(关联JOB_APPLICATION)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.PERSONAL_ID IS '求职者ID(关联PERSONAL_INFO)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.ENTERPRISE_ID IS '企业ID(关联ENTERPRISE_INFO)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.POST_ID IS '岗位ID(关联POST_INFO)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.PERSONAL_NAME IS '求职者姓名(冗余)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.ENTERPRISE_NAME IS '企业名称(冗余)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.POST_NAME IS '岗位名称(冗余)';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.OFFER_SALARY IS '录用薪资';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.ENTRY_DATE IS '预计入职日期';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.CONTRACT_PERIOD IS '合同期限';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.OFFER_REMARK IS '录用备注';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.STATUS IS '录用状态:0-待签约,1-签订中,2-已签约,3-已结束,4-已拒绝';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.CREATE_BY IS '创建人';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.CREATE_TIME IS '创建时间';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.UPDATE_BY IS '修改人';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.UPDATE_TIME IS '修改时间';
+COMMENT ON COLUMN EMPLOYMENT_OFFER.SYS_ORG_CODE IS '组织机构编号';
+
+CREATE INDEX IDX_EO_INTERVIEW_ID ON EMPLOYMENT_OFFER(INTERVIEW_ID);
+CREATE INDEX IDX_EO_PERSONAL_ID ON EMPLOYMENT_OFFER(PERSONAL_ID);
+CREATE INDEX IDX_EO_ENTERPRISE_ID ON EMPLOYMENT_OFFER(ENTERPRISE_ID);
+CREATE INDEX IDX_EO_STATUS ON EMPLOYMENT_OFFER(STATUS);
+
+-- ============================================================
+-- 4. 字典数据 - 投递状态 (application_status)
+-- ============================================================
+INSERT INTO "DICTIONARY" VALUES ('application_status', '投递状态', 38, 1, 0);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000111', '', 'application_status', 0, '待查看', 1, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000112', '', 'application_status', 1, '筛选通过', 2, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000113', '', 'application_status', 2, '筛选不通过', 3, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000114', '', 'application_status', 3, '已邀请面试', 4, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000115', '', 'application_status', 4, '已取消', 5, 1, 1, NULL);
+
+-- ============================================================
+-- 5. 字典数据 - 面试方式 (interview_method)
+-- ============================================================
+INSERT INTO "DICTIONARY" VALUES ('interview_method', '面试方式', 39, 1, 0);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000121', '', 'interview_method', 1, '现场面试', 1, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000122', '', 'interview_method', 2, '视频面试', 2, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000123', '', 'interview_method', 3, '电话面试', 3, 1, 1, NULL);
+
+-- ============================================================
+-- 6. 字典数据 - 面试结果 (interview_result)
+-- ============================================================
+INSERT INTO "DICTIONARY" VALUES ('interview_result', '面试结果', 40, 1, 0);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000131', '', 'interview_result', 0, '待面试', 1, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000132', '', 'interview_result', 1, '面试通过', 2, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000133', '', 'interview_result', 2, '面试不通过', 3, 1, 1, NULL);
+
+-- ============================================================
+-- 7. 字典数据 - 录用状态 (offer_status)
+-- ============================================================
+INSERT INTO "DICTIONARY" VALUES ('offer_status', '录用状态', 41, 1, 0);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000141', '', 'offer_status', 0, '待签约', 1, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000142', '', 'offer_status', 1, '签订中', 2, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000143', '', 'offer_status', 2, '已签约', 3, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000144', '', 'offer_status', 3, '已结束', 4, 1, 1, NULL);
+INSERT INTO "DICTIONARY_ITEM" VALUES ('178060500000145', '', 'offer_status', 4, '已拒绝', 5, 1, 1, NULL);

.docs/sql/招聘会管理-关联表与字段补充.sql → .docs/sql/建表语句/招聘会管理-关联表与字段补充.sql


.docs/sql/招聘会管理-建表.sql → .docs/sql/建表语句/招聘会管理-建表.sql


.docs/sql/政策推送和岗位信息变动推送-建表.sql → .docs/sql/建表语句/政策推送和岗位信息变动推送-建表.sql


.docs/sql/消息通知记录表.sql → .docs/sql/建表语句/消息通知记录表.sql


.docs/sql/职业指导服务-达梦表与视图.sql → .docs/sql/建表语句/职业指导服务-达梦表与视图.sql


.docs/sql/见习人员信息.sql → .docs/sql/建表语句/见习人员信息.sql


.docs/sql/见习人员服务跟进表.sql → .docs/sql/建表语句/见习人员服务跟进表.sql


.docs/sql/见习人员管理_全部重建.sql → .docs/sql/建表语句/见习人员管理_全部重建.sql


.docs/sql/见习人员表新增标签字段.sql → .docs/sql/建表语句/见习人员表新增标签字段.sql


.docs/sql/见习人员表新增自定义标签字段.sql → .docs/sql/建表语句/见习人员表新增自定义标签字段.sql


.docs/sql/见习岗位信息.sql → .docs/sql/建表语句/见习岗位信息.sql


.docs/sql/重点关注人员信息.sql → .docs/sql/建表语句/重点关注人员信息.sql


.docs/sql/就业援助-测试数据.sql → .docs/sql/测试数据/就业援助-测试数据.sql


.docs/sql/就业状态自动感知-测试数据.sql → .docs/sql/测试数据/就业状态自动感知-测试数据.sql


.docs/sql/就业登记-测试数据.sql → .docs/sql/测试数据/就业登记-测试数据.sql


.docs/sql/招聘会管理-测试数据.sql → .docs/sql/测试数据/招聘会管理-测试数据.sql


.docs/sql/政策推送和岗位信息变动推送-测试数据.sql → .docs/sql/测试数据/政策推送和岗位信息变动推送-测试数据.sql


.docs/sql/新增模块测试数据.sql → .docs/sql/测试数据/新增模块测试数据.sql


.docs/sql/职业指导服务-测试数据.sql → .docs/sql/测试数据/职业指导服务-测试数据.sql


.docs/sql/见习人员信息重新录入.sql → .docs/sql/测试数据/见习人员信息重新录入.sql


.docs/sql/重点关注人员测试数据.sql → .docs/sql/测试数据/重点关注人员测试数据.sql


.docs/sql/就业援助-菜单权限.sql → .docs/sql/菜单权限/就业援助-菜单权限.sql


.docs/sql/就业登记-菜单权限.sql → .docs/sql/菜单权限/就业登记-菜单权限.sql


.docs/sql/招聘会管理-菜单权限.sql → .docs/sql/菜单权限/招聘会管理-菜单权限.sql


.docs/sql/职业指导服务-菜单与授权-终版.sql → .docs/sql/菜单权限/职业指导服务-菜单与授权-终版.sql


.docs/sql/菜单结构调整-放到信息智能匹配推送下.sql → .docs/sql/菜单权限/菜单结构调整-放到信息智能匹配推送下.sql


.docs/sql/初步符合条件人员视图.sql → .docs/sql/视图/初步符合条件人员视图.sql


.docs/sql/就业援助管理视图.sql → .docs/sql/视图/就业援助管理视图.sql


.docs/sql/就业状态自动感知-视图.sql → .docs/sql/视图/就业状态自动感知-视图.sql


.docs/sql/就业登记-视图.sql → .docs/sql/视图/就业登记-视图.sql


.docs/sql/岗位推荐视图.sql → .docs/sql/视图/岗位推荐视图.sql


.docs/sql/政策推送和岗位信息变动推送-视图.sql → .docs/sql/视图/政策推送和岗位信息变动推送-视图.sql


.docs/sql/职业指导服务-DDL修复.sql → .docs/sql/视图/职业指导服务-DDL修复.sql


.docs/sql/职业指导服务-视图年龄修复.sql → .docs/sql/视图/职业指导服务-视图年龄修复.sql


.docs/sql/见习人员视图.sql → .docs/sql/视图/见习人员视图.sql


.docs/sql/重点关注人员视图.sql → .docs/sql/视图/重点关注人员视图.sql


+ 0 - 0
jeecg-boot/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java


Some files were not shown because too many files changed in this diff