using System; using System.Xml.Serialization; using System.Collections.Generic; using Top.Api.Util; using Top.Api; using Top.Api.DingTalk; namespace DingTalk.Api.Request { /// /// TOP API: dingtalk.oapi.attendance.shift.add /// public class OapiAttendanceShiftAddRequest : BaseDingTalkRequest { /// /// 操作人 /// public string OpUserId { get; set; } /// /// 班次 /// public string Shift { get; set; } public TopAtClassVoDomain Shift_ { set { this.Shift = TopUtils.ObjectToJson(value); } } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.attendance.shift.add"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("op_user_id", this.OpUserId); parameters.Add("shift", this.Shift); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateRequired("op_user_id", this.OpUserId); RequestValidator.ValidateRequired("shift", this.Shift); } /// /// TopAtTimeVoDomain Data Structure. /// [Serializable] public class TopAtTimeVoDomain : TopObject { /// /// 是否跨天 /// [XmlElement("across")] public Nullable Across { get; set; } /// /// 允许的最早提前打卡时间,分钟为单位 /// [XmlElement("begin_min")] public Nullable BeginMin { get; set; } /// /// check时间 /// [XmlElement("check_time")] public Nullable CheckTime { get; set; } /// /// 类型(OnDuty上班,OffDuty下班) /// [XmlElement("check_type")] public string CheckType { get; set; } /// /// 允许的最玩打卡时间,分钟为单位(-1表示不限制) /// [XmlElement("end_min")] public Nullable EndMin { get; set; } /// /// 当前卡点允许弹性调整范围 /// [XmlArray("flex_minutes")] [XmlArrayItem("number")] public List FlexMinutes { get; set; } /// /// 是否免打卡 /// [XmlElement("free_check")] public Nullable FreeCheck { get; set; } } /// /// TopAtSectionVoDomain Data Structure. /// [Serializable] public class TopAtSectionVoDomain : TopObject { /// /// times /// [XmlArray("times")] [XmlArrayItem("top_at_time_vo")] public List Times { get; set; } } /// /// TopAtClassSettingVoDomain Data Structure. /// [Serializable] public class TopAtClassSettingVoDomain : TopObject { /// /// 旷工迟到分钟数 /// [XmlElement("absenteeism_late_minutes")] public Nullable AbsenteeismLateMinutes { get; set; } /// /// 该班次对应的出勤天数 /// [XmlElement("attend_days")] public string AttendDays { get; set; } /// /// 班次id /// [XmlElement("class_id")] public Nullable ClassId { get; set; } /// /// corpId /// [XmlElement("corp_id")] public string CorpId { get; set; } /// /// 固定时长弹性班次设置的工作时长 /// [XmlElement("demand_work_time_minutes")] public Nullable DemandWorkTimeMinutes { get; set; } /// /// 班次设置扩展字段(非临时班次无需填写) /// [XmlElement("extras")] public string Extras { get; set; } /// /// 是否删除 /// [XmlElement("is_deleted")] public string IsDeleted { get; set; } /// /// 是否弹性 /// [XmlElement("is_flexible")] public Nullable IsFlexible { get; set; } /// /// 休息开始 /// [XmlElement("rest_begin_time")] public TopAtTimeVoDomain RestBeginTime { get; set; } /// /// 休息结束 /// [XmlElement("rest_end_time")] public TopAtTimeVoDomain RestEndTime { get; set; } /// /// 班次休息时段列表,[start1,end1,start2,end2]格式,最多支持3段 /// [XmlArray("rest_time_list")] [XmlArrayItem("top_at_time_vo")] public List RestTimeList { get; set; } /// /// 严重迟到分钟数 /// [XmlElement("serious_late_minutes")] public Nullable SeriousLateMinutes { get; set; } /// /// 班次tags(非临时班次无需填写) /// [XmlElement("tags")] public string Tags { get; set; } } /// /// TopAtClassVoDomain Data Structure. /// [Serializable] public class TopAtClassVoDomain : TopObject { /// /// 班次组名 /// [XmlElement("class_group_name")] public string ClassGroupName { get; set; } /// /// corpId /// [XmlElement("corp_id")] public string CorpId { get; set; } /// /// 班次id /// [XmlElement("id")] public Nullable Id { get; set; } /// /// 班次名称 /// [XmlElement("name")] public string Name { get; set; } /// /// 班次owner /// [XmlElement("owner")] public string Owner { get; set; } /// /// sections /// [XmlArray("sections")] [XmlArrayItem("top_at_section_vo")] public List Sections { get; set; } /// /// 高级排班绑定服务id(非临时班次无需填写) /// [XmlElement("service_id")] public Nullable ServiceId { get; set; } /// /// 设置 /// [XmlElement("setting")] public TopAtClassSettingVoDomain Setting { get; set; } } #endregion } }