zrg
2024-08-16 18865d8bf24382e850e661dec6cca0e8b9dba6ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
using System;
using System.Collections.Generic;
using Top.Api.Util;
using Top.Api;
using Top.Api.DingTalk;
 
namespace DingTalk.Api.Request
{
    /// <summary>
    /// TOP API: dingtalk.oapi.attendance.approve.finish
    /// </summary>
    public class OapiAttendanceApproveFinishRequest : BaseDingTalkRequest<DingTalk.Api.Response.OapiAttendanceApproveFinishResponse>
    {
        /// <summary>
        /// 审批单全局唯一id,最大长度100个字符
        /// </summary>
        public string ApproveId { get; set; }
 
        /// <summary>
        /// 审批单类型1:加班,2:外出、出差,3:请假
        /// </summary>
        public Nullable<long> BizType { get; set; }
 
        /// <summary>
        /// 计算方法,0:按自然日计算,1:按工作日计算
        /// </summary>
        public Nullable<long> CalculateModel { get; set; }
 
        /// <summary>
        /// 钉钉侧审批单全局唯一id,最大长度64个字符
        /// </summary>
        public string DingtalkApproveId { get; set; }
 
        /// <summary>
        /// 时长单位,支持的day,halfDay,hour,biz_type为1时仅支持hour。时间格式必须与时长单位对应,2019-08-15对应day,2019-08-15  AM对应halfDay,2019-08-15 12:43对应hour
        /// </summary>
        public string DurationUnit { get; set; }
 
        /// <summary>
        /// 开始时间,支持的时间格式 2019-08-15/2019-08-15 AM/2019-08-15 12:43。开始时间不能早于当前时间前31天
        /// </summary>
        public string FromTime { get; set; }
 
        /// <summary>
        /// 审批单跳转地址,最大长度100个字符
        /// </summary>
        public string JumpUrl { get; set; }
 
        /// <summary>
        /// biz_type为1时必传,加班时长单位小时
        /// </summary>
        public string OvertimeDuration { get; set; }
 
        /// <summary>
        /// biz_type为1时必传,1:加班转调休,2:加班转工资
        /// </summary>
        public Nullable<long> OvertimeToMore { get; set; }
 
        /// <summary>
        /// 子类型名称,最大长度20个字符
        /// </summary>
        public string SubType { get; set; }
 
        /// <summary>
        /// 审批单类型名称,最大长度20个字符
        /// </summary>
        public string TagName { get; set; }
 
        /// <summary>
        /// 结束时间,支持的时间格式 2019-08-15/2019-08-15 AM/2019-08-15 12:43。结束时间减去开始时间的天数不能超过31天。biz_type为1时结束时间减去开始时间不能超过1天
        /// </summary>
        public string ToTime { get; set; }
 
        /// <summary>
        /// 员工的user_id
        /// </summary>
        public string Userid { get; set; }
 
        #region IDingTalkRequest Members
 
        public override string GetApiName()
        {
            return "dingtalk.oapi.attendance.approve.finish";
        }
 
        public override string GetApiCallType()
        {
            return DingTalkConstants.CALL_TYPE_OAPI;
        }
 
        public override IDictionary<string, string> GetParameters()
        {
            TopDictionary parameters = new TopDictionary();
            parameters.Add("approve_id", this.ApproveId);
            parameters.Add("biz_type", this.BizType);
            parameters.Add("calculate_model", this.CalculateModel);
            parameters.Add("dingtalk_approve_id", this.DingtalkApproveId);
            parameters.Add("duration_unit", this.DurationUnit);
            parameters.Add("from_time", this.FromTime);
            parameters.Add("jump_url", this.JumpUrl);
            parameters.Add("overtime_duration", this.OvertimeDuration);
            parameters.Add("overtime_to_more", this.OvertimeToMore);
            parameters.Add("sub_type", this.SubType);
            parameters.Add("tag_name", this.TagName);
            parameters.Add("to_time", this.ToTime);
            parameters.Add("userid", this.Userid);
            if (this.otherParams != null)
            {
                parameters.AddAll(this.otherParams);
            }
            return parameters;
        }
 
        public override void Validate()
        {
            RequestValidator.ValidateMaxLength("approve_id", this.ApproveId, 100);
            RequestValidator.ValidateMaxLength("dingtalk_approve_id", this.DingtalkApproveId, 64);
            RequestValidator.ValidateMaxLength("jump_url", this.JumpUrl, 200);
            RequestValidator.ValidateMaxLength("sub_type", this.SubType, 20);
            RequestValidator.ValidateMaxLength("tag_name", this.TagName, 20);
        }
 
        #endregion
    }
}