【排班】班组设置、节假日设置
排班管理主要用于工厂人员的工作任务计划安排。排班基础数据模块由 yudao-module-mes 后端模块的 cal.team、cal.holiday 包实现,主要内容为班组人员的配置和节假日设置。
本文涉及两个子模块:
- 班组设置:班组是具有相同岗位、工作性质和工作内容的一组人的集合,是排班计划的最小排班单位。
- 节假日设置:用户可根据工厂的实际节假日安排设置对应年月的“上班”和“休假”状态。
本文涉及表如下图所示:

# 1. 班组设置
班组设置,由 MesCalTeamController 提供接口。
# 1.1 表结构
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
CREATE TABLE `mes_cal_team` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`code` varchar(64) NOT NULL COMMENT '班组编码',
`name` varchar(255) DEFAULT NULL COMMENT '班组名称',
`calendar_type` tinyint DEFAULT NULL COMMENT '日历类型',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 班组';
① calendar_type 为日历类型,字典 mes_calendar_type,用于区分不同的排班场景。
用户可在系统的数据字典中自定义配置班组的类型,然后根据实际人员情况配置每个班组的人员清单。
该表包含一个子表:
mes_cal_team_member(班组成员):记录班组包含的人员。
# 1.2 管理后台
对应 [MES 系统 -> 排班管理 -> 班组设置] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/mes/cal/team 目录。
# 列表
支持按班组编码、名称等条件搜索。

# 新增
点击【新增】或【编辑】按钮,弹出班组表单。表单下方展示班组成员列表。

# 修改
点击编码链接或【编辑】按钮,弹出修改表单。表单下方展示子表数据:
★ 班组成员(编辑弹窗下方):由 mes_cal_team_member 表存储。由 MesCalTeamMemberController 提供接口。
mes_cal_team_member 表结构
CREATE TABLE `mes_cal_team_member` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`team_id` bigint NOT NULL COMMENT '班组ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 班组成员';
① team_id 关联主表 mes_cal_team 的 id 字段。
② user_id 关联系统用户表(AdminUserDO)。
# 2. 节假日设置
节假日设置,由 MesCalHolidayController 提供接口。
# 2.1 表结构
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
CREATE TABLE `mes_cal_holiday` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`day` datetime NOT NULL COMMENT '日期',
`type` tinyint DEFAULT NULL COMMENT '类型',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 节假日';
① day 为特殊日期,用于标记需要特殊处理的日期(如法定节假日、调休工作日)。排班日历生成时会结合此设置进行调整。
② type 为日期类型,枚举 MesCalHolidayTypeEnum(1=工作日,2=节假日)。用于标记法定节假日和调休工作日。
# 2.2 管理后台
对应 [MES 系统 -> 排班管理 -> 节假日设置] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/mes/cal/holiday 目录。
以日历视图(el-calendar)展示当前月份的日期。点击具体日期可设置该日为"工作日"或"节假日",系统通过 save 接口(upsert 语义)保存或更新当天的类型。
