xiaoyi
2026-10-30 d91b0fe413a24ca61c1da557be855566138b7d7a
fix(hrm): 补充缺失字典 hrm_holiday_type,修复节假日类型下拉框无选项

现象:节假日配置页面的「类型」控件没有任何选项
· 列表搜索栏的 Select 下拉为空
· 编辑弹窗的 RadioGroup 无按钮

根因:前端 data.ts 用 getDictOptions(DICT_TYPE.HRM_HOLIDAY_TYPE) 取选项,
而 system_dict_type / system_dict_data 里完全没有这个字典。
对比其余 14 个 hrm_* 字典(员工状态/合同类型/请假类型等)都在,仅缺此一个。

依据后端枚举 HrmAttendanceHolidayTypeEnum:
REST_DAY(1, "休息日")
WORK_DAY(2, "工作日")

修复:
- 新增 system_dict_type:hrm_holiday_type「考勤节假日类型」
- 新增 system_dict_data:1=休息日(info) 2=工作日(success)

验证:
- 字典接口 simple-list 返回 hrm_holiday_type 2 条
- 现有 10 条节假日数据 type 全为 1,与「休息日」对应,回显正常

备份:/data/backup/mysql/manual/pre_holiday_dict_20261030121516.sql
脚本幂等:ON DUPLICATE KEY UPDATE
已添加1个文件
48 ■■■■■ 文件已修改
sql/mysql/add_dict_hrm_holiday_type_20261030.sql 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/add_dict_hrm_holiday_type_20261030.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
-- ============================================================
-- è¡¥å……缺失的字典:hrm_holiday_type(考勤节假日类型)
-- ç”Ÿæˆæ—¶é—´ï¼š2026-10-30
--
-- é—®é¢˜ï¼šèŠ‚å‡æ—¥é…ç½®é¡µé¢çš„ã€Œç±»åž‹ã€æŽ§ä»¶æ²¡æœ‰ä»»ä½•é€‰é¡¹
--      åˆ—表搜索的 Select ä¸Žç¼–辑弹窗的 RadioGroup éƒ½å–
--      getDictOptions(DICT_TYPE.HRM_HOLIDAY_TYPE)
--      è€Œ system_dict_type / system_dict_data é‡Œå®Œå…¨æ²¡æœ‰è¿™ä¸ªå­—å…¸
--
-- ä¾æ®ï¼šåŽç«¯æžšä¸¾ HrmAttendanceHolidayTypeEnum
--   REST_DAY(1, "休息日")
--   WORK_DAY(2, "工作日")
--
-- å¯¹æ¯”:其余 14 ä¸ª hrm_* å­—典都已存在,仅缺此一个
-- å¹‚等:ON DUPLICATE KEY UPDATE,可重复执行
-- ============================================================
-- ---------- 1. å­—典类型 ----------
INSERT INTO `system_dict_type`
  (`name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`)
VALUES
  ('考勤节假日类型', 'hrm_holiday_type', 0, '考勤节假日配置的类型:休息日 / å·¥ä½œæ—¥',
   '1', NOW(), '1', NOW(), b'0', NULL)
ON DUPLICATE KEY UPDATE
  `name` = VALUES(`name`), `status` = VALUES(`status`), `remark` = VALUES(`remark`),
  `deleted` = b'0', `update_time` = NOW();
-- ---------- 2. å­—典数据 ----------
INSERT INTO `system_dict_data`
  (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`,
   `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES
  (1, '休息日', '1', 'hrm_holiday_type', 0, 'info',    '', '放假/休息的日子,打卡按休息日规则', '1', NOW(), '1', NOW(), b'0'),
  (2, '工作日', '2', 'hrm_holiday_type', 0, 'success', '', '调休上班的日子,打卡按工作日规则', '1', NOW(), '1', NOW(), b'0')
ON DUPLICATE KEY UPDATE
  `label` = VALUES(`label`), `sort` = VALUES(`sort`), `status` = VALUES(`status`),
  `color_type` = VALUES(`color_type`), `remark` = VALUES(`remark`), `deleted` = b'0';
-- ---------- 3. æ ¡éªŒ ----------
SELECT t.type, t.name, t.status, t.deleted+0 AS del,
       COUNT(d.id) AS æ•°æ®æ¡æ•°
  FROM system_dict_type t
  LEFT JOIN system_dict_data d ON d.dict_type = t.type AND d.deleted = b'0'
 WHERE t.type = 'hrm_holiday_type'
 GROUP BY t.type, t.name, t.status, t.deleted;
SELECT sort, label, value, color_type FROM system_dict_data
 WHERE dict_type = 'hrm_holiday_type' AND deleted = b'0' ORDER BY sort;