YZProjectCloud/docsql/2026/04/多考勤系统.md

1.5 KiB
Raw Blame History

1.给attendance_cfg表中增加is_default int 1-默认0-非默认

更新历史数据

UPDATE attendance_cfg set is_default=1

更新历史数据

UPDATE pro_mobile_attendance_data pmad INNER JOIN ( SELECT ac.project_id, ac.id AS cfg_id FROM attendance_cfg ac WHERE ac.is_default = 1 AND ac.enabled = 1 ) ac ON pmad.project_id = ac.project_id SET pmad.cfg_id = ac.cfg_id WHERE pmad.att_device = 'device' AND pmad.cfg_id = 0;

2.attendance_ubi_data表增加cfg_id保存配置ID

更新历史数据

UPDATE attendance_ubi_data a SET cfg_id = ( SELECT id FROM attendance_cfg WHERE project_id = a.projectid AND com_id = a.comId AND is_default = 1 AND enabled = 1 LIMIT 1 ) WHERE a.cfg_id IS NULL;

3.性能优化

-- 主表复合索引 CREATE INDEX idx_pro_mobile_attendance_project_att ON pro_mobile_attendance_data(project_id, att_date DESC, id DESC);

-- 用户表索引 CREATE INDEX idx_pro_project_users_id ON pro_project_info_subdepts_users(user_id);

-- 字典表索引 CREATE INDEX idx_sys_dict_type_value ON sys_dict_data(dict_type, dict_value);

4.给attendance_cfg表中增加cfg_name varchar(100) 用于保存配置名称,前端是必填

更新历史数据

update attendance_cfg set cfg_name='默认配置'

5.attendance_ubi_device表增加cfg_id int 配置编号

更新历史数据

UPDATE attendance_ubi_device ud SET cfg_id = ( SELECT id FROM attendance_cfg WHERE project_id = ud.project_id AND com_id = ud.com_id AND is_default = 1 AND enabled = 1 LIMIT 1 ) WHERE ud.cfg_id IS NULL;