feat(attendance): 添加排班生成功能

- 在IWmsAttendanceScheduleService中新增generateSchedule方法
- 在WmsAttendanceScheduleController中添加生成排班API接口
- 实现WmsAttendanceScheduleServiceImpl中的排班生成逻辑,支持正常排班和倒班
- 扩展WmsAttendanceShiftRule实体类,添加倒班转换班次字段
- 更新WmsAttendanceShiftRule相关BO、VO类及数据库映射
- 创建GenerateScheduleBo请求对象用于接收排班生成参数
- 实现倒班规则查询和班次验证功能
- 添加排班重复性检查机制
This commit is contained in:
2026-05-09 13:59:37 +08:00
parent e42afdaf20
commit 0ecc886485
9 changed files with 292 additions and 1 deletions

View File

@@ -44,6 +44,14 @@ public class WmsAttendanceShiftRule extends BaseEntity {
* 班次B通常夜班ID
*/
private Long shiftB;
/**
* 倒班日白班转夜班使用的班次ID
*/
private Long changeShiftBId;
/**
* 倒班日夜班转白班使用的班次ID
*/
private Long changeShiftAId;
/**
* 备注
*/

View File

@@ -0,0 +1,49 @@
package com.klp.domain.bo;
import lombok.Data;
import javax.validation.constraints.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
* 生成排班请求对象
*
* @author klp
* @date 2026-05-09
*/
@Data
public class GenerateScheduleBo {
/**
* 员工ID
*/
@NotNull(message = "员工ID不能为空")
private Long userId;
/**
* 班次ID
*/
@NotNull(message = "班次ID不能为空")
private Long shiftId;
/**
* 倒班规则ID可为空为空则不倒班
*/
private Long ruleId;
/**
* 开始时间
*/
@NotNull(message = "开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date startDate;
/**
* 结束时间
*/
@NotNull(message = "结束时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
}

View File

@@ -47,6 +47,16 @@ public class WmsAttendanceShiftRuleBo extends BaseEntity {
*/
private Long shiftB;
/**
* 倒班日白班转夜班使用的班次ID
*/
private Long changeShiftBId;
/**
* 倒班日夜班转白班使用的班次ID
*/
private Long changeShiftAId;
/**
* 备注
*/

View File

@@ -60,6 +60,18 @@ public class WmsAttendanceShiftRuleVo {
@ExcelDictFormat(readConverterExp = "通=常夜班ID")
private Long shiftB;
/**
* 倒班日白班转夜班使用的班次ID
*/
@ExcelProperty(value = "倒班日白转夜班次ID")
private Long changeShiftBId;
/**
* 倒班日夜班转白班使用的班次ID
*/
@ExcelProperty(value = "倒班日夜转白班次ID")
private Long changeShiftAId;
/**
* 备注
*/