招聘导入模板增加招聘类型下拉框
This commit is contained in:
@@ -69,6 +69,7 @@ public class CcdiStaffRecruitmentExcel implements Serializable {
|
||||
/** 招聘类型 */
|
||||
@ExcelProperty(value = "招聘类型", index = 7)
|
||||
@ColumnWidth(12)
|
||||
@DictDropdown(dictType = "ccdi_recruit_type")
|
||||
@Required
|
||||
private String recruitType;
|
||||
|
||||
|
||||
@@ -180,6 +180,11 @@ class EasyExcelUtilTemplateTest {
|
||||
buildDictData("未录用"),
|
||||
buildDictData("放弃")
|
||||
));
|
||||
mocked.when(() -> DictUtils.getDictCache("ccdi_recruit_type"))
|
||||
.thenReturn(List.of(
|
||||
buildDictData("社招", "SOCIAL"),
|
||||
buildDictData("校招", "CAMPUS")
|
||||
));
|
||||
|
||||
EasyExcelUtil.importTemplateWithDictDropdown(
|
||||
response,
|
||||
@@ -195,6 +200,8 @@ class EasyExcelUtilTemplateTest {
|
||||
assertEquals(2, workbook.getNumberOfSheets(), "招聘导入模板应输出双Sheet");
|
||||
assertEquals("招聘信息", workbook.getSheetAt(0).getSheetName());
|
||||
assertEquals("历史工作经历", workbook.getSheetAt(1).getSheetName());
|
||||
assertTrue(hasValidationOnColumn(workbook.getSheetAt(0), 5), "录用情况列应包含下拉校验");
|
||||
assertTrue(hasValidationOnColumn(workbook.getSheetAt(0), 7), "招聘类型列应包含下拉校验");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -369,6 +376,8 @@ class EasyExcelUtilTemplateTest {
|
||||
.thenReturn(List.of(buildDictData("本人")));
|
||||
mocked.when(() -> DictUtils.getDictCache("ccdi_admit_status"))
|
||||
.thenReturn(List.of(buildDictData("录用")));
|
||||
mocked.when(() -> DictUtils.getDictCache("ccdi_recruit_type"))
|
||||
.thenReturn(List.of(buildDictData("社招", "SOCIAL")));
|
||||
}
|
||||
|
||||
private SysDictData buildDictData(String label) {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
# 招聘信息维护导入模板招聘类型下拉框实施记录
|
||||
|
||||
## 背景
|
||||
|
||||
招聘信息维护导入模板中,“招聘类型”列原本为普通文本输入,用户需要手工填写招聘类型。现要求该列改为下拉框,仅选择“社招”或“校招”。
|
||||
|
||||
## 修改内容
|
||||
|
||||
- 在 `CcdiStaffRecruitmentExcel` 的 `recruitType` 字段上增加 `@DictDropdown(dictType = "ccdi_recruit_type")`,让双 Sheet 导入模板生成时自动为“招聘类型”列添加 Excel 下拉框。
|
||||
- 新增 `sql/migration/2026-05-07-add-staff-recruitment-type-dict.sql`,初始化 `ccdi_recruit_type` 字典:
|
||||
- `社招` -> `SOCIAL`
|
||||
- `校招` -> `CAMPUS`
|
||||
- 更新招聘导入模板单测,断言“录用情况”和“招聘类型”列都存在下拉校验。
|
||||
|
||||
## 影响范围
|
||||
|
||||
- 后端模板生成:`/ccdi/staffRecruitment/importTemplate`
|
||||
- 字典数据:`sys_dict_type`、`sys_dict_data` 中的 `ccdi_recruit_type`
|
||||
- 导入解析与入库逻辑未改动;当前导入逻辑已支持把“社招/校招”归一为 `SOCIAL/CAMPUS`。
|
||||
|
||||
## 验证情况
|
||||
|
||||
- 已执行 `sh bin/mysql_utf8_exec.sh sql/migration/2026-05-07-add-staff-recruitment-type-dict.sql`,字典 SQL 执行成功。
|
||||
- 数据库回查确认 `ccdi_recruit_type` 字典存在,字典项为 `社招/SOCIAL`、`校招/CAMPUS`。
|
||||
- 已执行 `mvn -pl ccdi-info-collection -am -Dtest=EasyExcelUtilTemplateTest -Dsurefire.failIfNoSpecifiedTests=false test`,7 个模板相关测试全部通过。
|
||||
- 单测日志确认招聘主 Sheet 第 5 列 `ccdi_admit_status`、第 7 列 `ccdi_recruit_type` 均成功添加下拉框。
|
||||
- 已执行 `sh bin/restart_java_backend.sh restart` 重新构建并重启后端;随后通过后台 `screen` 启动脚本保持后端运行。
|
||||
- 已通过真实接口 `/ccdi/staffRecruitment/importTemplate` 下载模板,工作簿包含“招聘信息”和“历史工作经历”两个 Sheet。
|
||||
- 已检查真实模板 `xl/worksheets/sheet1.xml`,数据校验包含:
|
||||
- `F2:F1000`:`录用,未录用,放弃`
|
||||
- `H2:H1000`:`社招,校招`
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 当前后端已完成重启,模板下载接口可以读取到新增字典项。
|
||||
25
sql/migration/2026-05-07-add-staff-recruitment-type-dict.sql
Normal file
25
sql/migration/2026-05-07-add-staff-recruitment-type-dict.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
-- 招聘信息维护:招聘类型字典
|
||||
-- 用于招聘信息导入模板“招聘类型”列下拉框
|
||||
|
||||
INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
|
||||
SELECT '招聘类型', 'ccdi_recruit_type', '0', 'admin', NOW(), '招聘信息-招聘类型'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_dict_type WHERE dict_type = 'ccdi_recruit_type'
|
||||
);
|
||||
|
||||
UPDATE sys_dict_type
|
||||
SET dict_name = '招聘类型',
|
||||
status = '0',
|
||||
update_by = 'admin',
|
||||
update_time = NOW(),
|
||||
remark = '招聘信息-招聘类型'
|
||||
WHERE dict_type = 'ccdi_recruit_type';
|
||||
|
||||
DELETE FROM sys_dict_data WHERE dict_type = 'ccdi_recruit_type';
|
||||
|
||||
INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
|
||||
VALUES
|
||||
(1, '社招', 'SOCIAL', 'ccdi_recruit_type', '', 'success', 'Y', '0', 'admin', NOW(), '社会招聘'),
|
||||
(2, '校招', 'CAMPUS', 'ccdi_recruit_type', '', 'info', 'N', '0', 'admin', NOW(), '校园招聘');
|
||||
|
||||
-- 执行完成后需刷新字典缓存,确保模板下拉框立即生效。
|
||||
Reference in New Issue
Block a user