任务调度_考勤缺卡补全_BASE_TIMETASK.sql 1.89 KB
-- 考勤:历史缺卡状态补全(供 BASE_TIMETASK 任务调度,与代码接口 BackfillAbsentStatusForPastDaysCron 对应)
-- 使用前请:
-- 1) 在 appsettings.json 配置 Attendance:BackfillCronSecret 为强随机字符串(与下方 URL 中 cronSecret 一致)
-- 2) 将 F_Id 换成 YitId 等雪花主键;将请求路径中的域名改为实际 API 根地址
-- 3) 若编码 F_ENCODE 已存在,请修改 enCode 避免重复
-- 4) Cron 表达式:每日凌晨 2 点执行(与 SpareTime 使用的 Quartz 表达式一致)

-- INSERT 示例(MySQL,请按实际租户库执行)
/*
INSERT INTO BASE_TIMETASK (
  F_Id,
  F_ENCODE,
  F_FULLNAME,
  F_EXECUTETYPE,
  F_EXECUTECONTENT,
  F_EXECUTECYCLEJSON,
  F_DESCRIPTION,
  F_SORTCODE,
  F_ENABLEDMARK,
  F_CREATORTIME,
  F_CREATORUSERID,
  F_DeleteMark
) VALUES (
  '809321761001702662',
  'AttendanceBackfillAbsent',
  '考勤-历史缺卡补全',
  '1',
  '{ "cron":"0 0 2 * * ?","interfaceType":"GET","interfaceUrl":"http://localhost:5000/api/Extend/LqAttendanceRecord/BackfillAbsentStatusForPastDaysCron?cronSecret=请与appsettings中Attendance_BackfillCronSecret一致&daysBack=30&fixExistingWrongStatus=true&createMissingRecords=false&createMissingMaxDays=45","parameter":[],"stored":"","database":"0","storedParameter":[] }',
  '0 0 2 * * ?',
  '每日凌晨补全昨日之前:无打卡却为正常/迟到的记录→缺卡;可选补INSERT无考勤行(createMissingRecords=false 时仅修正已有行)',
  100,
  1,
  NOW(),
  'admin',
  NULL
);
*/

-- 说明:
-- F_EXECUTETYPE:1 = 请求接口(见 TimeTaskService.PerformJob)
-- executeContent 为 JSON 字符串,与前端「系统管理 - 任务调度」表单保存格式一致;请求参数也可放在 parameter 数组中(键值对),已修复调度器对 parameter 的合并逻辑
-- 推荐仍把完整 URL(含 query)写在 interfaceUrl,避免参数编码问题