打工人调休的痛谁懂?让播妞来安慰你!(文末0元送书)

354f990c567448cafac625f387c07202.gif

上午好呀,朋友们

有多少打工人,今天一起床就破防了

虽然是“周六”,但就是开心不起来...

毕竟,再没有什么事情

比一个需要上班的周六更令人伤神了

此刻坐在工位的你

是不是浑身无力、神情呆滞、哈欠连天...

仿佛被假期吸干了所有元气

发明调休的人,请你出来道歉

本妞的心情 be like ↓

45d6d056d99ca577ff784c69d1f44ea4.png

△ 图源网络,如侵删

可是怎么办呢

这就是“天选打工人”的命吧

不干活就没饭吃

尽!管!如!此!

播妞还是整了一波粉丝福利

自己的粉丝自己宠!跟我来瞅瞅吧

黑马送书!

给你前所未有的“0元购”体验

85a604eff7add96d4c5c13898bc9d9ef.gif

工作压力太大怎么办?

内卷太厉害了怎么办?

那必须要读书,因为读书破万“卷”

春暖花开,阳光正好

正是读书好时节

c483f8c1d6a6eba49682900729e28156.png0f0896032fa1b582b435d2a33c6687f6.png355eaf42e8542b0811c9922f635443e1.png

>> 播妞又双叒叕送书啦 <<

黑马程序员原创IT图书

10余门IT学科任选

Java 、Python、C/C++、Android、

PHP、Web前端、软件测试、

新媒体、产品经理等....

带你开启编程世界的大门

领略“代码改变世界”的神奇

无论你是刚入门的新手,还是IT届的大咖

总有一本适合你

47d9c8f56b7defceb03084858eecea6b.png

↑↑↑

扫码查看全部可选图书

快来 pick 你最喜欢的那本吧

b807f6ad3ea6d6d1542cab3234704c2f.gif

图书领取方式

点击关注 黑马程序员视频库 公众号

进入后台发送关键字:「 我爱学习

动动手指,即可免费领取

👇👇👇

ac174754b9b4048149c846523533ff4e.png

注意事项:

为保证活动公平公正,活动采用第三方平台,针对刷关注和大量异常数据进行管控拉黑。同一手机号仅限参加一次活动。活动最终解释权归黑马程序员所有。有疑问加播妞咨询,微信:heiniu526

看到最后我们就是朋友了

给播妞点个赞再走吧

祝大家今天无Bug!不加班!

c3132f185efeff7b2e67d8cfcce0bce8.pngf6d8946b678599c860f56055133c6ad8.png8fa270c364b499b3bcb45aaa8e7aab90.png

6be14c15c649165fe1ae3632482a84e6.gif

### 调休逻辑的SQL实现 调休通常是指员工在工作日加班后获得的一种补偿假期。为了通过SQL实现调休逻辑,需要设计合理的数据库结构来记录加班时间和调休时间,并提供相应的查询功能。 #### 数据库表的设计 假设存在两个主要的数据表:`overtime_records` 和 `leave_records`。 - **overtime_records**: 记录员工的加班信息 | 字段名 | 类型 | 描述 | |----------------|------------|--------------------------| | id | INT | 主键 | | employee_id | INT | 员工ID | | overtime_hours | FLOAT | 加班小时数 | | date | DATE | 加班日期 | - **leave_records**: 记录员工的请假/调休信息 | 字段名 | 类型 | 描述 | |----------------|------------|--------------------------| | id | INT | 主键 | | employee_id | INT | 员工ID | | leave_type | VARCHAR(10)| 请假类型 (如 '年假', '病假', '调休') | | hours | FLOAT | 使用的假期时长 | | date | DATE | 请假日期 | #### 查询剩余调休时间 可以通过计算累计加班时间和已使用的调休时间差值来获取每位员工当前可用的调休时间: ```sql SELECT o.employee_id, SUM(o.overtime_hours) AS total_overtime, COALESCE(SUM(l.hours), 0) AS used_leave_hours, (SUM(o.overtime_hours) - COALESCE(SUM(l.hours), 0)) AS remaining_leaves FROM overtime_records o LEFT JOIN leave_records l ON o.employee_id = l.employee_id AND l.leave_type = '调休' GROUP BY o.employee_id; ``` 此查询会返回每个员工的总加班时间、已经消耗掉的调休时间以及还剩下的可调休时间[^4]。 #### 批量生成调休申请单 当管理员希望基于未被消费过的加班记录自动生成调休申请单时,可以执行如下操作: ```sql INSERT INTO leave_records(employee_id, leave_type, hours, date) SELECT employee_id, '调休' as leave_type, overtime_hours as hours, CURRENT_DATE as date FROM overtime_records ot WHERE NOT EXISTS ( SELECT 1 FROM leave_records lr WHERE lr.employee_id = ot.employee_id AND lr.leave_type='调休' AND lr.date >= ot.date); ``` 这段脚本将为那些尚未对应任何调休假条目的加班记录创建新的调休请求[^5]。 #### 维护历史数据一致性 对于因业务需求调整而导致的历史数据变更情况,比如某次错误录入需修正,则可通过存储过程完成复杂的多步事务处理。例如下面这个例子展示了如何安全地删除并重新分配某些特定条件下的调休额度: ```sql DELIMITER $$ CREATE PROCEDURE AdjustLeaveQuota(IN empId INT, IN startDate DATE, IN endDate DATE) BEGIN -- Step 1: 清除指定范围内的旧调休记录 DELETE FROM leave_records WHERE employee_id=empId AND leave_type='调休' AND date BETWEEN startDate AND endDate; -- Step 2: 根据最新的加班记录重算应得调休 INSERT INTO leave_records(employee_id, leave_type, hours, date) SELECT employee_id, '调休' as leave_type, SUM(overtime_hours)/2 as hours, MAX(date) as date FROM overtime_records WHERE employee_id=empId AND date BETWEEN startDate AND endDate GROUP BY employee_id; END$$ DELIMITER ; ``` 以上方案提供了基本框架用于管理企业内部员的调休事宜,具体实施还需考虑更多细节因素如公司政策规定等实际环境差异影响[^6]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值