gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/approval/v4/model.go (about) 1 // Package approval code generated by oapi sdk gen 2 /* 3 * MIT License 4 * 5 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 * 9 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 */ 13 14 package larkapproval 15 16 import ( 17 "fmt" 18 19 "context" 20 "errors" 21 22 "gitee.com/larksuite/oapi-sdk-go/v3/event" 23 24 "gitee.com/larksuite/oapi-sdk-go/v3/core" 25 ) 26 27 const ( 28 DepartmentIdTypeDepartmentId = "department_id" // 以自定义department_id来标识部门 29 DepartmentIdTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 30 ) 31 32 const ( 33 UserIdTypeUserId = "user_id" // 以user_id来识别用户 34 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 35 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 36 ) 37 38 const ( 39 LocaleZhcn = "zh-CN" // 中文 40 LocaleEnus = "en-US" // 英文 41 LocaleJajp = "ja-JP" // 日文 42 ) 43 44 const ( 45 DepartmentIdTypeCreateExternalApprovalDepartmentId = "department_id" // 以自定义department_id来标识部门 46 DepartmentIdTypeCreateExternalApprovalOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 47 ) 48 49 const ( 50 UserIdTypeCreateExternalApprovalUserId = "user_id" // 以user_id来识别用户 51 UserIdTypeCreateExternalApprovalUnionId = "union_id" // 以union_id来识别用户 52 UserIdTypeCreateExternalApprovalOpenId = "open_id" // 以open_id来识别用户 53 ) 54 55 const ( 56 StatusPending = "PENDING" // 审批中 57 StatusApproved = "APPROVED" // 审批流程结束,结果为同意 58 StatusRejected = "REJECTED" // 审批流程结束,结果为拒绝 59 StatusCanceled = "CANCELED" // 审批发起人撤回 60 StatusDeleted = "DELETED" // 审批被删除 61 StatusHidden = "HIDDEN" // 状态隐藏(不显示状态) 62 ) 63 64 const ( 65 DisplayMethodBrowser = "BROWSER" // 跳转系统默认浏览器打开 66 DisplayMethodSIdebar = "SIDEBAR" // 飞书中侧边抽屉打开 67 DisplayMethodNormal = "NORMAL" // 飞书内嵌页面打开 68 DisplayMethodTrusteeship = "TRUSTEESHIP" // 以托管打开 69 ) 70 71 const ( 72 UpdateModeReplace = "REPLACE" // 全量替换,默认值 73 UpdateModeUpdate = "UPDATE" // 增量更新 74 ) 75 76 const ( 77 ExternalTaskStatusPending = "PENDING" // 审批中 78 ExternalTaskStatusApproved = "APPROVED" // 审批流程结束,结果为同意 79 ExternalTaskStatusRejected = "REJECTED" // 审批流程结束,结果为拒绝 80 ExternalTaskStatusTransferred = "TRANSFERRED" // 任务转交 81 ExternalTaskStatusDone = "DONE" // 任务通过但审批人未操作;审批人看不到这个任务, 若想要看到, 可以通过抄送该人. 82 ) 83 84 const ( 85 AddSignEnumAddSignPre = 1 // 前加签 86 AddSignEnumAddSignPost = 2 // 后加签 87 AddSignEnumAddSignParallel = 3 // 并加签 88 89 ) 90 91 const ( 92 ApprovalMethodEnumOrSign = 1 // 或签 93 ApprovalMethodEnumAddSign = 2 // 会签 94 95 ) 96 97 const ( 98 UserIdTypeCancelInstanceUserId = "user_id" // 以user_id来识别用户 99 UserIdTypeCancelInstanceUnionId = "union_id" // 以union_id来识别用户 100 UserIdTypeCancelInstanceOpenId = "open_id" // 以open_id来识别用户 101 ) 102 103 const ( 104 UserIdTypeCcInstanceUserId = "user_id" // 以user_id来识别用户 105 UserIdTypeCcInstanceUnionId = "union_id" // 以union_id来识别用户 106 UserIdTypeCcInstanceOpenId = "open_id" // 以open_id来识别用户 107 ) 108 109 const ( 110 LocaleGetInstanceZhcn = "zh-CN" // 中文 111 LocaleGetInstanceEnus = "en-US" // 英文 112 LocaleGetInstanceJajp = "ja-JP" // 日文 113 ) 114 115 const ( 116 UserIdTypeGetInstanceUserId = "user_id" // 以user_id来识别用户 117 UserIdTypeGetInstanceOpenId = "open_id" // 以open_id来识别用户 118 UserIdTypeGetInstanceUnionId = "union_id" // 以union_id来识别用户 119 ) 120 121 const ( 122 UserIdTypePreviewInstanceOpenId = "open_id" // 以open_id来识别用户 123 UserIdTypePreviewInstanceUserId = "user_id" // 以user_id来识别用户 124 UserIdTypePreviewInstanceUnionId = "union_id" // 以union_id来识别用户 125 ) 126 127 const ( 128 InstanceStatusPending = "PENDING" // 审批中 129 InstanceStatusRecall = "RECALL" // 撤回 130 InstanceStatusReject = "REJECT" // 拒绝 131 InstanceStatusDeleted = "DELETED" // 已删除 132 InstanceStatusApproverd = "APPROVED" // 通过 133 InstanceStatusAll = "ALL" // 所有状态 134 ) 135 136 const ( 137 LocaleQueryInstanceZhCn = "zh-CN" // 中文 138 LocaleQueryInstanceEnUs = "en-US" // 英文 139 LocaleQueryInstanceJaJp = "ja-JP" // 日文 140 ) 141 142 const ( 143 UserIdTypeQueryInstanceUserId = "user_id" // 以user_id来识别用户 144 UserIdTypeQueryInstanceUnionId = "union_id" // 以union_id来识别用户 145 UserIdTypeQueryInstanceOpenId = "open_id" // 以open_id来识别用户 146 ) 147 148 const ( 149 ReadStatusREAD = "READ" // 已读 150 ReadStatusUNREAD = "UNREAD" // 未读 151 ReadStatusALL = "ALL" // 所有状态 152 ) 153 154 const ( 155 LocaleSearchCcInstanceZhCn = "zh-CN" // 中文 156 LocaleSearchCcInstanceEnUs = "en-US" // 英文 157 LocaleSearchCcInstanceJaJp = "ja-JP" // 日文 158 ) 159 160 const ( 161 UserIdTypeSearchCcInstanceUserId = "user_id" // 以user_id来识别用户 162 UserIdTypeSearchCcInstanceUnionId = "union_id" // 以union_id来识别用户 163 UserIdTypeSearchCcInstanceOpenId = "open_id" // 以open_id来识别用户 164 ) 165 166 const ( 167 UserIdTypeSpecifiedRollbackInstanceUserId = "user_id" // 以user_id来识别用户 168 UserIdTypeSpecifiedRollbackInstanceUnionId = "union_id" // 以union_id来识别用户 169 UserIdTypeSpecifiedRollbackInstanceOpenId = "open_id" // 以open_id来识别用户 170 ) 171 172 const ( 173 UserIdTypeCreateInstanceCommentOpenId = "open_id" // open_id(ou_开头) 174 UserIdTypeCreateInstanceCommentUserId = "user_id" // user_id(字符串) 175 UserIdTypeCreateInstanceCommentUnionId = "union_id" // union_id(on_开头) 176 ) 177 178 const ( 179 UserIdTypeDeleteInstanceCommentOpenId = "open_id" // open_id(ou_开头) 180 UserIdTypeDeleteInstanceCommentUserId = "user_id" // user_id(字符串) 181 UserIdTypeDeleteInstanceCommentUnionId = "union_id" // union_id(on_开头) 182 ) 183 184 const ( 185 UserIdTypeListInstanceCommentOpenId = "open_id" // open_id(ou_开头) 186 UserIdTypeListInstanceCommentUserId = "user_id" // user_id(字符串) 187 UserIdTypeListInstanceCommentUnionId = "union_id" // union_id(on_开头) 188 ) 189 190 const ( 191 UserIdTypeRemoveInstanceCommentOpenId = "open_id" // open_id(ou_开头) 192 UserIdTypeRemoveInstanceCommentUserId = "user_id" // user_id(字符串) 193 UserIdTypeRemoveInstanceCommentUnionId = "union_id" // union_id(on_开头) 194 ) 195 196 const ( 197 UserIdTypeApproveTaskUserId = "user_id" // 以user_id来识别用户 198 UserIdTypeApproveTaskUnionId = "union_id" // 以union_id来识别用户 199 UserIdTypeApproveTaskOpenId = "open_id" // 以open_id来识别用户 200 ) 201 202 const ( 203 TopicTodoApproval = "1" // 待办审批 204 TopicDoneApproval = "2" // 已办审批 205 TopicInitiatedApproval = "3" // 已发起审批 206 TopicUnreadNotice = "17" // 未读知会 207 TopicReadNotice = "18" // 已读知会 208 ) 209 210 const ( 211 UserIdTypeQueryTaskUserId = "user_id" // 以user_id来识别用户 212 UserIdTypeQueryTaskUnionId = "union_id" // 以union_id来识别用户 213 UserIdTypeQueryTaskOpenId = "open_id" // 以open_id来识别用户 214 ) 215 216 const ( 217 UserIdTypeRejectTaskUserId = "user_id" // 以user_id来识别用户 218 UserIdTypeRejectTaskUnionId = "union_id" // 以union_id来识别用户 219 UserIdTypeRejectTaskOpenId = "open_id" // 以open_id来识别用户 220 ) 221 222 const ( 223 UserIdTypeResubmitTaskUserId = "user_id" // 以user_id来识别用户 224 UserIdTypeResubmitTaskUnionId = "union_id" // 以union_id来识别用户 225 UserIdTypeResubmitTaskOpenId = "open_id" // 以open_id来识别用户 226 ) 227 228 const ( 229 TaskStatusPending = "PENDING" // 审批中 230 TaskStatusReject = "REJECTED" // 拒绝 231 TaskStatusApproverd = "APPROVED" // 通过 232 TaskStatusTRANSFERRED = "TRANSFERRED" // 转交 233 TaskStatusDONE = "DONE" // 已完成 234 TaskStatusRMREPEAT = "RM_REPEAT" // 去重 235 TaskStatusPROCESSED = "PROCESSED" // 已处理 236 TaskStatusALL = "ALL" // 所有状态 237 ) 238 239 const ( 240 LocaleSearchTaskZhCn = "zh-CN" // 中文 241 LocaleSearchTaskEnUs = "en-US" // 英文 242 LocaleSearchTaskJaJp = "ja-JP" // 日文 243 ) 244 245 const ( 246 UserIdTypeSearchTaskUserId = "user_id" // 以user_id来识别用户 247 UserIdTypeSearchTaskUnionId = "union_id" // 以union_id来识别用户 248 UserIdTypeSearchTaskOpenId = "open_id" // 以open_id来识别用户 249 ) 250 251 const ( 252 UserIdTypeTransferTaskUserId = "user_id" // 以user_id来识别用户 253 UserIdTypeTransferTaskUnionId = "union_id" // 以union_id来识别用户 254 UserIdTypeTransferTaskOpenId = "open_id" // 以open_id来识别用户 255 ) 256 257 type ActionConfig struct { 258 ActionType *string `json:"action_type,omitempty"` // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作 259 ActionName *string `json:"action_name,omitempty"` // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称 260 IsNeedReason *bool `json:"is_need_reason,omitempty"` // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面 261 IsReasonRequired *bool `json:"is_reason_required,omitempty"` // 审批意见是否必填 262 IsNeedAttachment *bool `json:"is_need_attachment,omitempty"` // 意见是否支持上传附件 263 } 264 265 type ActionConfigBuilder struct { 266 actionType string // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作 267 actionTypeFlag bool 268 actionName string // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称 269 actionNameFlag bool 270 isNeedReason bool // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面 271 isNeedReasonFlag bool 272 isReasonRequired bool // 审批意见是否必填 273 isReasonRequiredFlag bool 274 isNeedAttachment bool // 意见是否支持上传附件 275 isNeedAttachmentFlag bool 276 } 277 278 func NewActionConfigBuilder() *ActionConfigBuilder { 279 builder := &ActionConfigBuilder{} 280 return builder 281 } 282 283 // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作 284 // 285 // 示例值:APPROVE 286 func (builder *ActionConfigBuilder) ActionType(actionType string) *ActionConfigBuilder { 287 builder.actionType = actionType 288 builder.actionTypeFlag = true 289 return builder 290 } 291 292 // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称 293 // 294 // 示例值:@i18n@5 295 func (builder *ActionConfigBuilder) ActionName(actionName string) *ActionConfigBuilder { 296 builder.actionName = actionName 297 builder.actionNameFlag = true 298 return builder 299 } 300 301 // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面 302 // 303 // 示例值:false 304 func (builder *ActionConfigBuilder) IsNeedReason(isNeedReason bool) *ActionConfigBuilder { 305 builder.isNeedReason = isNeedReason 306 builder.isNeedReasonFlag = true 307 return builder 308 } 309 310 // 审批意见是否必填 311 // 312 // 示例值:false 313 func (builder *ActionConfigBuilder) IsReasonRequired(isReasonRequired bool) *ActionConfigBuilder { 314 builder.isReasonRequired = isReasonRequired 315 builder.isReasonRequiredFlag = true 316 return builder 317 } 318 319 // 意见是否支持上传附件 320 // 321 // 示例值:false 322 func (builder *ActionConfigBuilder) IsNeedAttachment(isNeedAttachment bool) *ActionConfigBuilder { 323 builder.isNeedAttachment = isNeedAttachment 324 builder.isNeedAttachmentFlag = true 325 return builder 326 } 327 328 func (builder *ActionConfigBuilder) Build() *ActionConfig { 329 req := &ActionConfig{} 330 if builder.actionTypeFlag { 331 req.ActionType = &builder.actionType 332 333 } 334 if builder.actionNameFlag { 335 req.ActionName = &builder.actionName 336 337 } 338 if builder.isNeedReasonFlag { 339 req.IsNeedReason = &builder.isNeedReason 340 341 } 342 if builder.isReasonRequiredFlag { 343 req.IsReasonRequired = &builder.isReasonRequired 344 345 } 346 if builder.isNeedAttachmentFlag { 347 req.IsNeedAttachment = &builder.isNeedAttachment 348 349 } 350 return req 351 } 352 353 type Approval struct { 354 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义code 355 ApprovalName *string `json:"approval_name,omitempty"` // 审批定义名称 356 } 357 358 type ApprovalBuilder struct { 359 approvalCode string // 审批定义code 360 approvalCodeFlag bool 361 approvalName string // 审批定义名称 362 approvalNameFlag bool 363 } 364 365 func NewApprovalBuilder() *ApprovalBuilder { 366 builder := &ApprovalBuilder{} 367 return builder 368 } 369 370 // 审批定义code 371 // 372 // 示例值: 373 func (builder *ApprovalBuilder) ApprovalCode(approvalCode string) *ApprovalBuilder { 374 builder.approvalCode = approvalCode 375 builder.approvalCodeFlag = true 376 return builder 377 } 378 379 // 审批定义名称 380 // 381 // 示例值: 382 func (builder *ApprovalBuilder) ApprovalName(approvalName string) *ApprovalBuilder { 383 builder.approvalName = approvalName 384 builder.approvalNameFlag = true 385 return builder 386 } 387 388 func (builder *ApprovalBuilder) Build() *Approval { 389 req := &Approval{} 390 if builder.approvalCodeFlag { 391 req.ApprovalCode = &builder.approvalCode 392 393 } 394 if builder.approvalNameFlag { 395 req.ApprovalName = &builder.approvalName 396 397 } 398 return req 399 } 400 401 type ApprovalApproverCcer struct { 402 Type *string `json:"type,omitempty"` // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选 403 UserId *string `json:"user_id,omitempty"` // 用户id,根据user_id_type填写 404 Level *string `json:"level,omitempty"` // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3 405 } 406 407 type ApprovalApproverCcerBuilder struct { 408 type_ string // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选 409 typeFlag bool 410 userId string // 用户id,根据user_id_type填写 411 userIdFlag bool 412 level string // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3 413 levelFlag bool 414 } 415 416 func NewApprovalApproverCcerBuilder() *ApprovalApproverCcerBuilder { 417 builder := &ApprovalApproverCcerBuilder{} 418 return builder 419 } 420 421 // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选 422 // 423 // 示例值:Supervisor 424 func (builder *ApprovalApproverCcerBuilder) Type(type_ string) *ApprovalApproverCcerBuilder { 425 builder.type_ = type_ 426 builder.typeFlag = true 427 return builder 428 } 429 430 // 用户id,根据user_id_type填写 431 // 432 // 示例值:f7cb567e 433 func (builder *ApprovalApproverCcerBuilder) UserId(userId string) *ApprovalApproverCcerBuilder { 434 builder.userId = userId 435 builder.userIdFlag = true 436 return builder 437 } 438 439 // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3 440 // 441 // 示例值:3 442 func (builder *ApprovalApproverCcerBuilder) Level(level string) *ApprovalApproverCcerBuilder { 443 builder.level = level 444 builder.levelFlag = true 445 return builder 446 } 447 448 func (builder *ApprovalApproverCcerBuilder) Build() *ApprovalApproverCcer { 449 req := &ApprovalApproverCcer{} 450 if builder.typeFlag { 451 req.Type = &builder.type_ 452 453 } 454 if builder.userIdFlag { 455 req.UserId = &builder.userId 456 457 } 458 if builder.levelFlag { 459 req.Level = &builder.level 460 461 } 462 return req 463 } 464 465 type ApprovalConfig struct { 466 CanUpdateViewer *bool `json:"can_update_viewer,omitempty"` // 允许用户修改可见范围 467 CanUpdateForm *bool `json:"can_update_form,omitempty"` // 允许用户更新表单 468 CanUpdateProcess *bool `json:"can_update_process,omitempty"` // 允许用户更新流程定义 469 CanUpdateRevert *bool `json:"can_update_revert,omitempty"` // 允许用户更新撤回设置 470 HelpUrl *string `json:"help_url,omitempty"` // 帮助文档链接 471 } 472 473 type ApprovalConfigBuilder struct { 474 canUpdateViewer bool // 允许用户修改可见范围 475 canUpdateViewerFlag bool 476 canUpdateForm bool // 允许用户更新表单 477 canUpdateFormFlag bool 478 canUpdateProcess bool // 允许用户更新流程定义 479 canUpdateProcessFlag bool 480 canUpdateRevert bool // 允许用户更新撤回设置 481 canUpdateRevertFlag bool 482 helpUrl string // 帮助文档链接 483 helpUrlFlag bool 484 } 485 486 func NewApprovalConfigBuilder() *ApprovalConfigBuilder { 487 builder := &ApprovalConfigBuilder{} 488 return builder 489 } 490 491 // 允许用户修改可见范围 492 // 493 // 示例值:false 494 func (builder *ApprovalConfigBuilder) CanUpdateViewer(canUpdateViewer bool) *ApprovalConfigBuilder { 495 builder.canUpdateViewer = canUpdateViewer 496 builder.canUpdateViewerFlag = true 497 return builder 498 } 499 500 // 允许用户更新表单 501 // 502 // 示例值:false 503 func (builder *ApprovalConfigBuilder) CanUpdateForm(canUpdateForm bool) *ApprovalConfigBuilder { 504 builder.canUpdateForm = canUpdateForm 505 builder.canUpdateFormFlag = true 506 return builder 507 } 508 509 // 允许用户更新流程定义 510 // 511 // 示例值:false 512 func (builder *ApprovalConfigBuilder) CanUpdateProcess(canUpdateProcess bool) *ApprovalConfigBuilder { 513 builder.canUpdateProcess = canUpdateProcess 514 builder.canUpdateProcessFlag = true 515 return builder 516 } 517 518 // 允许用户更新撤回设置 519 // 520 // 示例值:false 521 func (builder *ApprovalConfigBuilder) CanUpdateRevert(canUpdateRevert bool) *ApprovalConfigBuilder { 522 builder.canUpdateRevert = canUpdateRevert 523 builder.canUpdateRevertFlag = true 524 return builder 525 } 526 527 // 帮助文档链接 528 // 529 // 示例值:https://www.baidu.com 530 func (builder *ApprovalConfigBuilder) HelpUrl(helpUrl string) *ApprovalConfigBuilder { 531 builder.helpUrl = helpUrl 532 builder.helpUrlFlag = true 533 return builder 534 } 535 536 func (builder *ApprovalConfigBuilder) Build() *ApprovalConfig { 537 req := &ApprovalConfig{} 538 if builder.canUpdateViewerFlag { 539 req.CanUpdateViewer = &builder.canUpdateViewer 540 541 } 542 if builder.canUpdateFormFlag { 543 req.CanUpdateForm = &builder.canUpdateForm 544 545 } 546 if builder.canUpdateProcessFlag { 547 req.CanUpdateProcess = &builder.canUpdateProcess 548 549 } 550 if builder.canUpdateRevertFlag { 551 req.CanUpdateRevert = &builder.canUpdateRevert 552 553 } 554 if builder.helpUrlFlag { 555 req.HelpUrl = &builder.helpUrl 556 557 } 558 return req 559 } 560 561 type ApprovalCreate struct { 562 ApprovalName *string `json:"approval_name,omitempty"` // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 563 ApprovalCode *string `json:"approval_code,omitempty"` // 传空表示新建 564 Description *string `json:"description,omitempty"` // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 565 Viewers []*ApprovalCreateViewers `json:"viewers,omitempty"` // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写 566 Form *ApprovalForm `json:"form,omitempty"` // 审批定义表单 567 NodeList []*ApprovalNode `json:"node_list,omitempty"` // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素 568 Settings *ApprovalSetting `json:"settings,omitempty"` // 审批定义其他设置 569 Config *ApprovalConfig `json:"config,omitempty"` // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改 570 Icon *int `json:"icon,omitempty"` // 审批图标枚举,详见下方说明,默认为 0 571 I18nResources []*I18nResource `json:"i18n_resources,omitempty"` // 国际化文案 572 ProcessManagerIds []string `json:"process_manager_ids,omitempty"` // 根据user_id_type填写流程管理员的用户id 573 } 574 575 type ApprovalCreateBuilder struct { 576 approvalName string // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 577 approvalNameFlag bool 578 approvalCode string // 传空表示新建 579 approvalCodeFlag bool 580 description string // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 581 descriptionFlag bool 582 viewers []*ApprovalCreateViewers // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写 583 viewersFlag bool 584 form *ApprovalForm // 审批定义表单 585 formFlag bool 586 nodeList []*ApprovalNode // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素 587 nodeListFlag bool 588 settings *ApprovalSetting // 审批定义其他设置 589 settingsFlag bool 590 config *ApprovalConfig // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改 591 configFlag bool 592 icon int // 审批图标枚举,详见下方说明,默认为 0 593 iconFlag bool 594 i18nResources []*I18nResource // 国际化文案 595 i18nResourcesFlag bool 596 processManagerIds []string // 根据user_id_type填写流程管理员的用户id 597 processManagerIdsFlag bool 598 } 599 600 func NewApprovalCreateBuilder() *ApprovalCreateBuilder { 601 builder := &ApprovalCreateBuilder{} 602 return builder 603 } 604 605 // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 606 // 607 // 示例值:@i18n@approval_name 608 func (builder *ApprovalCreateBuilder) ApprovalName(approvalName string) *ApprovalCreateBuilder { 609 builder.approvalName = approvalName 610 builder.approvalNameFlag = true 611 return builder 612 } 613 614 // 传空表示新建 615 // 616 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 617 func (builder *ApprovalCreateBuilder) ApprovalCode(approvalCode string) *ApprovalCreateBuilder { 618 builder.approvalCode = approvalCode 619 builder.approvalCodeFlag = true 620 return builder 621 } 622 623 // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 624 // 625 // 示例值:@i18n@description 626 func (builder *ApprovalCreateBuilder) Description(description string) *ApprovalCreateBuilder { 627 builder.description = description 628 builder.descriptionFlag = true 629 return builder 630 } 631 632 // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写 633 // 634 // 示例值: 635 func (builder *ApprovalCreateBuilder) Viewers(viewers []*ApprovalCreateViewers) *ApprovalCreateBuilder { 636 builder.viewers = viewers 637 builder.viewersFlag = true 638 return builder 639 } 640 641 // 审批定义表单 642 // 643 // 示例值: 644 func (builder *ApprovalCreateBuilder) Form(form *ApprovalForm) *ApprovalCreateBuilder { 645 builder.form = form 646 builder.formFlag = true 647 return builder 648 } 649 650 // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素 651 // 652 // 示例值: 653 func (builder *ApprovalCreateBuilder) NodeList(nodeList []*ApprovalNode) *ApprovalCreateBuilder { 654 builder.nodeList = nodeList 655 builder.nodeListFlag = true 656 return builder 657 } 658 659 // 审批定义其他设置 660 // 661 // 示例值: 662 func (builder *ApprovalCreateBuilder) Settings(settings *ApprovalSetting) *ApprovalCreateBuilder { 663 builder.settings = settings 664 builder.settingsFlag = true 665 return builder 666 } 667 668 // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改 669 // 670 // 示例值: 671 func (builder *ApprovalCreateBuilder) Config(config *ApprovalConfig) *ApprovalCreateBuilder { 672 builder.config = config 673 builder.configFlag = true 674 return builder 675 } 676 677 // 审批图标枚举,详见下方说明,默认为 0 678 // 679 // 示例值:0 680 func (builder *ApprovalCreateBuilder) Icon(icon int) *ApprovalCreateBuilder { 681 builder.icon = icon 682 builder.iconFlag = true 683 return builder 684 } 685 686 // 国际化文案 687 // 688 // 示例值: 689 func (builder *ApprovalCreateBuilder) I18nResources(i18nResources []*I18nResource) *ApprovalCreateBuilder { 690 builder.i18nResources = i18nResources 691 builder.i18nResourcesFlag = true 692 return builder 693 } 694 695 // 根据user_id_type填写流程管理员的用户id 696 // 697 // 示例值:["1c5ea995"] 698 func (builder *ApprovalCreateBuilder) ProcessManagerIds(processManagerIds []string) *ApprovalCreateBuilder { 699 builder.processManagerIds = processManagerIds 700 builder.processManagerIdsFlag = true 701 return builder 702 } 703 704 func (builder *ApprovalCreateBuilder) Build() *ApprovalCreate { 705 req := &ApprovalCreate{} 706 if builder.approvalNameFlag { 707 req.ApprovalName = &builder.approvalName 708 709 } 710 if builder.approvalCodeFlag { 711 req.ApprovalCode = &builder.approvalCode 712 713 } 714 if builder.descriptionFlag { 715 req.Description = &builder.description 716 717 } 718 if builder.viewersFlag { 719 req.Viewers = builder.viewers 720 } 721 if builder.formFlag { 722 req.Form = builder.form 723 } 724 if builder.nodeListFlag { 725 req.NodeList = builder.nodeList 726 } 727 if builder.settingsFlag { 728 req.Settings = builder.settings 729 } 730 if builder.configFlag { 731 req.Config = builder.config 732 } 733 if builder.iconFlag { 734 req.Icon = &builder.icon 735 736 } 737 if builder.i18nResourcesFlag { 738 req.I18nResources = builder.i18nResources 739 } 740 if builder.processManagerIdsFlag { 741 req.ProcessManagerIds = builder.processManagerIds 742 } 743 return req 744 } 745 746 type ApprovalCreateExternal struct { 747 BizName *string `json:"biz_name,omitempty"` // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀 748 BizType *string `json:"biz_type,omitempty"` // 审批定义业务类别 749 CreateLinkMobile *string `json:"create_link_mobile,omitempty"` // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批 750 CreateLinkPc *string `json:"create_link_pc,omitempty"` // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批; 751 SupportPc *bool `json:"support_pc,omitempty"` // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示 752 SupportMobile *bool `json:"support_mobile,omitempty"` // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示 753 SupportBatchRead *bool `json:"support_batch_read,omitempty"` // 是否支持批量已读 754 EnableMarkReaded *bool `json:"enable_mark_readed,omitempty"` // 是否支持标注可读(该字段无效) 755 EnableQuickOperate *bool `json:"enable_quick_operate,omitempty"` // 是否支持快速操作 756 ActionCallbackUrl *string `json:"action_callback_url,omitempty"` // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback) 757 ActionCallbackToken *string `json:"action_callback_token,omitempty"` // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM) 758 ActionCallbackKey *string `json:"action_callback_key,omitempty"` // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN) 759 AllowBatchOperate *bool `json:"allow_batch_operate,omitempty"` // 是否支持批量审批 760 ExcludeEfficiencyStatistics *bool `json:"exclude_efficiency_statistics,omitempty"` // 审批流程数据是否不纳入效率统计 761 } 762 763 type ApprovalCreateExternalBuilder struct { 764 bizName string // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀 765 bizNameFlag bool 766 bizType string // 审批定义业务类别 767 bizTypeFlag bool 768 createLinkMobile string // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批 769 createLinkMobileFlag bool 770 createLinkPc string // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批; 771 createLinkPcFlag bool 772 supportPc bool // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示 773 supportPcFlag bool 774 supportMobile bool // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示 775 supportMobileFlag bool 776 supportBatchRead bool // 是否支持批量已读 777 supportBatchReadFlag bool 778 enableMarkReaded bool // 是否支持标注可读(该字段无效) 779 enableMarkReadedFlag bool 780 enableQuickOperate bool // 是否支持快速操作 781 enableQuickOperateFlag bool 782 actionCallbackUrl string // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback) 783 actionCallbackUrlFlag bool 784 actionCallbackToken string // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM) 785 actionCallbackTokenFlag bool 786 actionCallbackKey string // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN) 787 actionCallbackKeyFlag bool 788 allowBatchOperate bool // 是否支持批量审批 789 allowBatchOperateFlag bool 790 excludeEfficiencyStatistics bool // 审批流程数据是否不纳入效率统计 791 excludeEfficiencyStatisticsFlag bool 792 } 793 794 func NewApprovalCreateExternalBuilder() *ApprovalCreateExternalBuilder { 795 builder := &ApprovalCreateExternalBuilder{} 796 return builder 797 } 798 799 // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀 800 // 801 // 示例值:@i18n@3 802 func (builder *ApprovalCreateExternalBuilder) BizName(bizName string) *ApprovalCreateExternalBuilder { 803 builder.bizName = bizName 804 builder.bizNameFlag = true 805 return builder 806 } 807 808 // 审批定义业务类别 809 // 810 // 示例值:permission 811 func (builder *ApprovalCreateExternalBuilder) BizType(bizType string) *ApprovalCreateExternalBuilder { 812 builder.bizType = bizType 813 builder.bizTypeFlag = true 814 return builder 815 } 816 817 // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批 818 // 819 // 示例值:https://applink.feishu.cn/client/mini_program/open?appId=cli_9c90fc38e07a9101&path=pages/approval-form/index?id=9999 820 func (builder *ApprovalCreateExternalBuilder) CreateLinkMobile(createLinkMobile string) *ApprovalCreateExternalBuilder { 821 builder.createLinkMobile = createLinkMobile 822 builder.createLinkMobileFlag = true 823 return builder 824 } 825 826 // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批; 827 // 828 // 示例值:https://applink.feishu.cn/client/mini_program/open?mode=appCenter&appId=cli_9c90fc38e07a9101&path=pc/pages/create-form/index?id=9999 829 func (builder *ApprovalCreateExternalBuilder) CreateLinkPc(createLinkPc string) *ApprovalCreateExternalBuilder { 830 builder.createLinkPc = createLinkPc 831 builder.createLinkPcFlag = true 832 return builder 833 } 834 835 // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示 836 // 837 // 示例值:true 838 func (builder *ApprovalCreateExternalBuilder) SupportPc(supportPc bool) *ApprovalCreateExternalBuilder { 839 builder.supportPc = supportPc 840 builder.supportPcFlag = true 841 return builder 842 } 843 844 // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示 845 // 846 // 示例值:true 847 func (builder *ApprovalCreateExternalBuilder) SupportMobile(supportMobile bool) *ApprovalCreateExternalBuilder { 848 builder.supportMobile = supportMobile 849 builder.supportMobileFlag = true 850 return builder 851 } 852 853 // 是否支持批量已读 854 // 855 // 示例值:true 856 func (builder *ApprovalCreateExternalBuilder) SupportBatchRead(supportBatchRead bool) *ApprovalCreateExternalBuilder { 857 builder.supportBatchRead = supportBatchRead 858 builder.supportBatchReadFlag = true 859 return builder 860 } 861 862 // 是否支持标注可读(该字段无效) 863 // 864 // 示例值:true 865 func (builder *ApprovalCreateExternalBuilder) EnableMarkReaded(enableMarkReaded bool) *ApprovalCreateExternalBuilder { 866 builder.enableMarkReaded = enableMarkReaded 867 builder.enableMarkReadedFlag = true 868 return builder 869 } 870 871 // 是否支持快速操作 872 // 873 // 示例值:true 874 func (builder *ApprovalCreateExternalBuilder) EnableQuickOperate(enableQuickOperate bool) *ApprovalCreateExternalBuilder { 875 builder.enableQuickOperate = enableQuickOperate 876 builder.enableQuickOperateFlag = true 877 return builder 878 } 879 880 // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback) 881 // 882 // 示例值:http://www.feishu.cn/approval/openapi/instanceOperate 883 func (builder *ApprovalCreateExternalBuilder) ActionCallbackUrl(actionCallbackUrl string) *ApprovalCreateExternalBuilder { 884 builder.actionCallbackUrl = actionCallbackUrl 885 builder.actionCallbackUrlFlag = true 886 return builder 887 } 888 889 // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM) 890 // 891 // 示例值:sdjkljkx9lsadf110 892 func (builder *ApprovalCreateExternalBuilder) ActionCallbackToken(actionCallbackToken string) *ApprovalCreateExternalBuilder { 893 builder.actionCallbackToken = actionCallbackToken 894 builder.actionCallbackTokenFlag = true 895 return builder 896 } 897 898 // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN) 899 // 900 // 示例值:gfdqedvsadfgfsd 901 func (builder *ApprovalCreateExternalBuilder) ActionCallbackKey(actionCallbackKey string) *ApprovalCreateExternalBuilder { 902 builder.actionCallbackKey = actionCallbackKey 903 builder.actionCallbackKeyFlag = true 904 return builder 905 } 906 907 // 是否支持批量审批 908 // 909 // 示例值:true 910 func (builder *ApprovalCreateExternalBuilder) AllowBatchOperate(allowBatchOperate bool) *ApprovalCreateExternalBuilder { 911 builder.allowBatchOperate = allowBatchOperate 912 builder.allowBatchOperateFlag = true 913 return builder 914 } 915 916 // 审批流程数据是否不纳入效率统计 917 // 918 // 示例值:true 919 func (builder *ApprovalCreateExternalBuilder) ExcludeEfficiencyStatistics(excludeEfficiencyStatistics bool) *ApprovalCreateExternalBuilder { 920 builder.excludeEfficiencyStatistics = excludeEfficiencyStatistics 921 builder.excludeEfficiencyStatisticsFlag = true 922 return builder 923 } 924 925 func (builder *ApprovalCreateExternalBuilder) Build() *ApprovalCreateExternal { 926 req := &ApprovalCreateExternal{} 927 if builder.bizNameFlag { 928 req.BizName = &builder.bizName 929 930 } 931 if builder.bizTypeFlag { 932 req.BizType = &builder.bizType 933 934 } 935 if builder.createLinkMobileFlag { 936 req.CreateLinkMobile = &builder.createLinkMobile 937 938 } 939 if builder.createLinkPcFlag { 940 req.CreateLinkPc = &builder.createLinkPc 941 942 } 943 if builder.supportPcFlag { 944 req.SupportPc = &builder.supportPc 945 946 } 947 if builder.supportMobileFlag { 948 req.SupportMobile = &builder.supportMobile 949 950 } 951 if builder.supportBatchReadFlag { 952 req.SupportBatchRead = &builder.supportBatchRead 953 954 } 955 if builder.enableMarkReadedFlag { 956 req.EnableMarkReaded = &builder.enableMarkReaded 957 958 } 959 if builder.enableQuickOperateFlag { 960 req.EnableQuickOperate = &builder.enableQuickOperate 961 962 } 963 if builder.actionCallbackUrlFlag { 964 req.ActionCallbackUrl = &builder.actionCallbackUrl 965 966 } 967 if builder.actionCallbackTokenFlag { 968 req.ActionCallbackToken = &builder.actionCallbackToken 969 970 } 971 if builder.actionCallbackKeyFlag { 972 req.ActionCallbackKey = &builder.actionCallbackKey 973 974 } 975 if builder.allowBatchOperateFlag { 976 req.AllowBatchOperate = &builder.allowBatchOperate 977 978 } 979 if builder.excludeEfficiencyStatisticsFlag { 980 req.ExcludeEfficiencyStatistics = &builder.excludeEfficiencyStatistics 981 982 } 983 return req 984 } 985 986 type ApprovalCreateViewers struct { 987 ViewerType *string `json:"viewer_type,omitempty"` // 可见人类型 988 ViewerUserId *string `json:"viewer_user_id,omitempty"` // 当 view_type 是 USER,根据user_id_type填写用户id 989 ViewerDepartmentId *string `json:"viewer_department_id,omitempty"` // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id 990 } 991 992 type ApprovalCreateViewersBuilder struct { 993 viewerType string // 可见人类型 994 viewerTypeFlag bool 995 viewerUserId string // 当 view_type 是 USER,根据user_id_type填写用户id 996 viewerUserIdFlag bool 997 viewerDepartmentId string // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id 998 viewerDepartmentIdFlag bool 999 } 1000 1001 func NewApprovalCreateViewersBuilder() *ApprovalCreateViewersBuilder { 1002 builder := &ApprovalCreateViewersBuilder{} 1003 return builder 1004 } 1005 1006 // 可见人类型 1007 // 1008 // 示例值:USER 1009 func (builder *ApprovalCreateViewersBuilder) ViewerType(viewerType string) *ApprovalCreateViewersBuilder { 1010 builder.viewerType = viewerType 1011 builder.viewerTypeFlag = true 1012 return builder 1013 } 1014 1015 // 当 view_type 是 USER,根据user_id_type填写用户id 1016 // 1017 // 示例值:19a294c2 1018 func (builder *ApprovalCreateViewersBuilder) ViewerUserId(viewerUserId string) *ApprovalCreateViewersBuilder { 1019 builder.viewerUserId = viewerUserId 1020 builder.viewerUserIdFlag = true 1021 return builder 1022 } 1023 1024 // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id 1025 // 1026 // 示例值:od-ac9d697abfa990b715dcc33d58a62a9d 1027 func (builder *ApprovalCreateViewersBuilder) ViewerDepartmentId(viewerDepartmentId string) *ApprovalCreateViewersBuilder { 1028 builder.viewerDepartmentId = viewerDepartmentId 1029 builder.viewerDepartmentIdFlag = true 1030 return builder 1031 } 1032 1033 func (builder *ApprovalCreateViewersBuilder) Build() *ApprovalCreateViewers { 1034 req := &ApprovalCreateViewers{} 1035 if builder.viewerTypeFlag { 1036 req.ViewerType = &builder.viewerType 1037 1038 } 1039 if builder.viewerUserIdFlag { 1040 req.ViewerUserId = &builder.viewerUserId 1041 1042 } 1043 if builder.viewerDepartmentIdFlag { 1044 req.ViewerDepartmentId = &builder.viewerDepartmentId 1045 1046 } 1047 return req 1048 } 1049 1050 type ApprovalEvent struct { 1051 ApprovalId *string `json:"approval_id,omitempty"` // 1052 ApprovalCode *string `json:"approval_code,omitempty"` // 1053 VersionId *string `json:"version_id,omitempty"` // 1054 WidgetGroupType *int `json:"widget_group_type,omitempty"` // 1055 FormDefinitionId *string `json:"form_definition_id,omitempty"` // 1056 ProcessObj *string `json:"process_obj,omitempty"` // 1057 Timestamp *string `json:"timestamp,omitempty"` // 1058 Extra *string `json:"extra,omitempty"` // 1059 } 1060 1061 type ApprovalEventBuilder struct { 1062 approvalId string // 1063 approvalIdFlag bool 1064 approvalCode string // 1065 approvalCodeFlag bool 1066 versionId string // 1067 versionIdFlag bool 1068 widgetGroupType int // 1069 widgetGroupTypeFlag bool 1070 formDefinitionId string // 1071 formDefinitionIdFlag bool 1072 processObj string // 1073 processObjFlag bool 1074 timestamp string // 1075 timestampFlag bool 1076 extra string // 1077 extraFlag bool 1078 } 1079 1080 func NewApprovalEventBuilder() *ApprovalEventBuilder { 1081 builder := &ApprovalEventBuilder{} 1082 return builder 1083 } 1084 1085 // 1086 // 1087 // 示例值: 1088 func (builder *ApprovalEventBuilder) ApprovalId(approvalId string) *ApprovalEventBuilder { 1089 builder.approvalId = approvalId 1090 builder.approvalIdFlag = true 1091 return builder 1092 } 1093 1094 // 1095 // 1096 // 示例值: 1097 func (builder *ApprovalEventBuilder) ApprovalCode(approvalCode string) *ApprovalEventBuilder { 1098 builder.approvalCode = approvalCode 1099 builder.approvalCodeFlag = true 1100 return builder 1101 } 1102 1103 // 1104 // 1105 // 示例值: 1106 func (builder *ApprovalEventBuilder) VersionId(versionId string) *ApprovalEventBuilder { 1107 builder.versionId = versionId 1108 builder.versionIdFlag = true 1109 return builder 1110 } 1111 1112 // 1113 // 1114 // 示例值: 1115 func (builder *ApprovalEventBuilder) WidgetGroupType(widgetGroupType int) *ApprovalEventBuilder { 1116 builder.widgetGroupType = widgetGroupType 1117 builder.widgetGroupTypeFlag = true 1118 return builder 1119 } 1120 1121 // 1122 // 1123 // 示例值: 1124 func (builder *ApprovalEventBuilder) FormDefinitionId(formDefinitionId string) *ApprovalEventBuilder { 1125 builder.formDefinitionId = formDefinitionId 1126 builder.formDefinitionIdFlag = true 1127 return builder 1128 } 1129 1130 // 1131 // 1132 // 示例值: 1133 func (builder *ApprovalEventBuilder) ProcessObj(processObj string) *ApprovalEventBuilder { 1134 builder.processObj = processObj 1135 builder.processObjFlag = true 1136 return builder 1137 } 1138 1139 // 1140 // 1141 // 示例值: 1142 func (builder *ApprovalEventBuilder) Timestamp(timestamp string) *ApprovalEventBuilder { 1143 builder.timestamp = timestamp 1144 builder.timestampFlag = true 1145 return builder 1146 } 1147 1148 // 1149 // 1150 // 示例值: 1151 func (builder *ApprovalEventBuilder) Extra(extra string) *ApprovalEventBuilder { 1152 builder.extra = extra 1153 builder.extraFlag = true 1154 return builder 1155 } 1156 1157 func (builder *ApprovalEventBuilder) Build() *ApprovalEvent { 1158 req := &ApprovalEvent{} 1159 if builder.approvalIdFlag { 1160 req.ApprovalId = &builder.approvalId 1161 1162 } 1163 if builder.approvalCodeFlag { 1164 req.ApprovalCode = &builder.approvalCode 1165 1166 } 1167 if builder.versionIdFlag { 1168 req.VersionId = &builder.versionId 1169 1170 } 1171 if builder.widgetGroupTypeFlag { 1172 req.WidgetGroupType = &builder.widgetGroupType 1173 1174 } 1175 if builder.formDefinitionIdFlag { 1176 req.FormDefinitionId = &builder.formDefinitionId 1177 1178 } 1179 if builder.processObjFlag { 1180 req.ProcessObj = &builder.processObj 1181 1182 } 1183 if builder.timestampFlag { 1184 req.Timestamp = &builder.timestamp 1185 1186 } 1187 if builder.extraFlag { 1188 req.Extra = &builder.extra 1189 1190 } 1191 return req 1192 } 1193 1194 type ApprovalForm struct { 1195 FormContent *string `json:"form_content,omitempty"` // 审批定义表单,json 数组,见下方form_content字段说明 1196 } 1197 1198 type ApprovalFormBuilder struct { 1199 formContent string // 审批定义表单,json 数组,见下方form_content字段说明 1200 formContentFlag bool 1201 } 1202 1203 func NewApprovalFormBuilder() *ApprovalFormBuilder { 1204 builder := &ApprovalFormBuilder{} 1205 return builder 1206 } 1207 1208 // 审批定义表单,json 数组,见下方form_content字段说明 1209 // 1210 // 示例值:[{\"id\":\"user_name\", \"type\": \"input\", \"required\":true, \"name\":\"@i18n@widget1\"}] 1211 func (builder *ApprovalFormBuilder) FormContent(formContent string) *ApprovalFormBuilder { 1212 builder.formContent = formContent 1213 builder.formContentFlag = true 1214 return builder 1215 } 1216 1217 func (builder *ApprovalFormBuilder) Build() *ApprovalForm { 1218 req := &ApprovalForm{} 1219 if builder.formContentFlag { 1220 req.FormContent = &builder.formContent 1221 1222 } 1223 return req 1224 } 1225 1226 type ApprovalNode struct { 1227 Id *string `json:"id,omitempty"` // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver 1228 Name *string `json:"name,omitempty"` // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 1229 NodeType *string `json:"node_type,omitempty"` // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』 1230 Approver []*ApprovalApproverCcer `json:"approver,omitempty"` // 审批人列表 1231 Ccer []*ApprovalApproverCcer `json:"ccer,omitempty"` // 抄送人列表 1232 PrivilegeField *FieldGroup `json:"privilege_field,omitempty"` // 表单项的控件权限 1233 } 1234 1235 type ApprovalNodeBuilder struct { 1236 id string // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver 1237 idFlag bool 1238 name string // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 1239 nameFlag bool 1240 nodeType string // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』 1241 nodeTypeFlag bool 1242 approver []*ApprovalApproverCcer // 审批人列表 1243 approverFlag bool 1244 ccer []*ApprovalApproverCcer // 抄送人列表 1245 ccerFlag bool 1246 privilegeField *FieldGroup // 表单项的控件权限 1247 privilegeFieldFlag bool 1248 } 1249 1250 func NewApprovalNodeBuilder() *ApprovalNodeBuilder { 1251 builder := &ApprovalNodeBuilder{} 1252 return builder 1253 } 1254 1255 // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver 1256 // 1257 // 示例值:START 1258 func (builder *ApprovalNodeBuilder) Id(id string) *ApprovalNodeBuilder { 1259 builder.id = id 1260 builder.idFlag = true 1261 return builder 1262 } 1263 1264 // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符 1265 // 1266 // 示例值:@i18n@node_name 1267 func (builder *ApprovalNodeBuilder) Name(name string) *ApprovalNodeBuilder { 1268 builder.name = name 1269 builder.nameFlag = true 1270 return builder 1271 } 1272 1273 // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』 1274 // 1275 // 示例值:AND 1276 func (builder *ApprovalNodeBuilder) NodeType(nodeType string) *ApprovalNodeBuilder { 1277 builder.nodeType = nodeType 1278 builder.nodeTypeFlag = true 1279 return builder 1280 } 1281 1282 // 审批人列表 1283 // 1284 // 示例值: 1285 func (builder *ApprovalNodeBuilder) Approver(approver []*ApprovalApproverCcer) *ApprovalNodeBuilder { 1286 builder.approver = approver 1287 builder.approverFlag = true 1288 return builder 1289 } 1290 1291 // 抄送人列表 1292 // 1293 // 示例值: 1294 func (builder *ApprovalNodeBuilder) Ccer(ccer []*ApprovalApproverCcer) *ApprovalNodeBuilder { 1295 builder.ccer = ccer 1296 builder.ccerFlag = true 1297 return builder 1298 } 1299 1300 // 表单项的控件权限 1301 // 1302 // 示例值: 1303 func (builder *ApprovalNodeBuilder) PrivilegeField(privilegeField *FieldGroup) *ApprovalNodeBuilder { 1304 builder.privilegeField = privilegeField 1305 builder.privilegeFieldFlag = true 1306 return builder 1307 } 1308 1309 func (builder *ApprovalNodeBuilder) Build() *ApprovalNode { 1310 req := &ApprovalNode{} 1311 if builder.idFlag { 1312 req.Id = &builder.id 1313 1314 } 1315 if builder.nameFlag { 1316 req.Name = &builder.name 1317 1318 } 1319 if builder.nodeTypeFlag { 1320 req.NodeType = &builder.nodeType 1321 1322 } 1323 if builder.approverFlag { 1324 req.Approver = builder.approver 1325 } 1326 if builder.ccerFlag { 1327 req.Ccer = builder.ccer 1328 } 1329 if builder.privilegeFieldFlag { 1330 req.PrivilegeField = builder.privilegeField 1331 } 1332 return req 1333 } 1334 1335 type ApprovalNodeInfo struct { 1336 Name *string `json:"name,omitempty"` // 节点名称 1337 NeedApprover *bool `json:"need_approver,omitempty"` // 是否发起人自选节点 true - 发起审批时需要提交审批人 1338 NodeId *string `json:"node_id,omitempty"` // 节点 ID 1339 CustomNodeId *string `json:"custom_node_id,omitempty"` // 节点自定义 ID,如果没有设置则不返回 1340 NodeType *string `json:"node_type,omitempty"` // 审批方式 1341 ApproverChosenMulti *bool `json:"approver_chosen_multi,omitempty"` // 是否支持多选:true-支持,发起、结束节点该值无意义 1342 ApproverChosenRange []*ApproverChosenRange `json:"approver_chosen_range,omitempty"` // 自选范围 1343 } 1344 1345 type ApprovalNodeInfoBuilder struct { 1346 name string // 节点名称 1347 nameFlag bool 1348 needApprover bool // 是否发起人自选节点 true - 发起审批时需要提交审批人 1349 needApproverFlag bool 1350 nodeId string // 节点 ID 1351 nodeIdFlag bool 1352 customNodeId string // 节点自定义 ID,如果没有设置则不返回 1353 customNodeIdFlag bool 1354 nodeType string // 审批方式 1355 nodeTypeFlag bool 1356 approverChosenMulti bool // 是否支持多选:true-支持,发起、结束节点该值无意义 1357 approverChosenMultiFlag bool 1358 approverChosenRange []*ApproverChosenRange // 自选范围 1359 approverChosenRangeFlag bool 1360 } 1361 1362 func NewApprovalNodeInfoBuilder() *ApprovalNodeInfoBuilder { 1363 builder := &ApprovalNodeInfoBuilder{} 1364 return builder 1365 } 1366 1367 // 节点名称 1368 // 1369 // 示例值:Approval 1370 func (builder *ApprovalNodeInfoBuilder) Name(name string) *ApprovalNodeInfoBuilder { 1371 builder.name = name 1372 builder.nameFlag = true 1373 return builder 1374 } 1375 1376 // 是否发起人自选节点 true - 发起审批时需要提交审批人 1377 // 1378 // 示例值:true 1379 func (builder *ApprovalNodeInfoBuilder) NeedApprover(needApprover bool) *ApprovalNodeInfoBuilder { 1380 builder.needApprover = needApprover 1381 builder.needApproverFlag = true 1382 return builder 1383 } 1384 1385 // 节点 ID 1386 // 1387 // 示例值:46e6d96cfa756980907209209ec03b64 1388 func (builder *ApprovalNodeInfoBuilder) NodeId(nodeId string) *ApprovalNodeInfoBuilder { 1389 builder.nodeId = nodeId 1390 builder.nodeIdFlag = true 1391 return builder 1392 } 1393 1394 // 节点自定义 ID,如果没有设置则不返回 1395 // 1396 // 示例值:46e6d96cfa756980907209209ec03b64 1397 func (builder *ApprovalNodeInfoBuilder) CustomNodeId(customNodeId string) *ApprovalNodeInfoBuilder { 1398 builder.customNodeId = customNodeId 1399 builder.customNodeIdFlag = true 1400 return builder 1401 } 1402 1403 // 审批方式 1404 // 1405 // 示例值:AND 1406 func (builder *ApprovalNodeInfoBuilder) NodeType(nodeType string) *ApprovalNodeInfoBuilder { 1407 builder.nodeType = nodeType 1408 builder.nodeTypeFlag = true 1409 return builder 1410 } 1411 1412 // 是否支持多选:true-支持,发起、结束节点该值无意义 1413 // 1414 // 示例值:true 1415 func (builder *ApprovalNodeInfoBuilder) ApproverChosenMulti(approverChosenMulti bool) *ApprovalNodeInfoBuilder { 1416 builder.approverChosenMulti = approverChosenMulti 1417 builder.approverChosenMultiFlag = true 1418 return builder 1419 } 1420 1421 // 自选范围 1422 // 1423 // 示例值: 1424 func (builder *ApprovalNodeInfoBuilder) ApproverChosenRange(approverChosenRange []*ApproverChosenRange) *ApprovalNodeInfoBuilder { 1425 builder.approverChosenRange = approverChosenRange 1426 builder.approverChosenRangeFlag = true 1427 return builder 1428 } 1429 1430 func (builder *ApprovalNodeInfoBuilder) Build() *ApprovalNodeInfo { 1431 req := &ApprovalNodeInfo{} 1432 if builder.nameFlag { 1433 req.Name = &builder.name 1434 1435 } 1436 if builder.needApproverFlag { 1437 req.NeedApprover = &builder.needApprover 1438 1439 } 1440 if builder.nodeIdFlag { 1441 req.NodeId = &builder.nodeId 1442 1443 } 1444 if builder.customNodeIdFlag { 1445 req.CustomNodeId = &builder.customNodeId 1446 1447 } 1448 if builder.nodeTypeFlag { 1449 req.NodeType = &builder.nodeType 1450 1451 } 1452 if builder.approverChosenMultiFlag { 1453 req.ApproverChosenMulti = &builder.approverChosenMulti 1454 1455 } 1456 if builder.approverChosenRangeFlag { 1457 req.ApproverChosenRange = builder.approverChosenRange 1458 } 1459 return req 1460 } 1461 1462 type ApprovalSetting struct { 1463 RevertInterval *int `json:"revert_interval,omitempty"` // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回 1464 RevertOption *int `json:"revert_option,omitempty"` // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持 1465 } 1466 1467 type ApprovalSettingBuilder struct { 1468 revertInterval int // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回 1469 revertIntervalFlag bool 1470 revertOption int // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持 1471 revertOptionFlag bool 1472 } 1473 1474 func NewApprovalSettingBuilder() *ApprovalSettingBuilder { 1475 builder := &ApprovalSettingBuilder{} 1476 return builder 1477 } 1478 1479 // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回 1480 // 1481 // 示例值:0 1482 func (builder *ApprovalSettingBuilder) RevertInterval(revertInterval int) *ApprovalSettingBuilder { 1483 builder.revertInterval = revertInterval 1484 builder.revertIntervalFlag = true 1485 return builder 1486 } 1487 1488 // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持 1489 // 1490 // 示例值:0 1491 func (builder *ApprovalSettingBuilder) RevertOption(revertOption int) *ApprovalSettingBuilder { 1492 builder.revertOption = revertOption 1493 builder.revertOptionFlag = true 1494 return builder 1495 } 1496 1497 func (builder *ApprovalSettingBuilder) Build() *ApprovalSetting { 1498 req := &ApprovalSetting{} 1499 if builder.revertIntervalFlag { 1500 req.RevertInterval = &builder.revertInterval 1501 1502 } 1503 if builder.revertOptionFlag { 1504 req.RevertOption = &builder.revertOption 1505 1506 } 1507 return req 1508 } 1509 1510 type ApprovalViewer struct { 1511 Type *string `json:"type,omitempty"` // 可见人类型,人员、部门或全体 1512 OpenId *string `json:"open_id,omitempty"` // 同一个应用中对用户进行标识的id 1513 UserId *string `json:"user_id,omitempty"` // 用户id 1514 UnionId *string `json:"union_id,omitempty"` // 同一个应用开发主体下对用户进行标识的id 1515 } 1516 1517 type ApprovalViewerBuilder struct { 1518 type_ string // 可见人类型,人员、部门或全体 1519 typeFlag bool 1520 openId string // 同一个应用中对用户进行标识的id 1521 openIdFlag bool 1522 userId string // 用户id 1523 userIdFlag bool 1524 unionId string // 同一个应用开发主体下对用户进行标识的id 1525 unionIdFlag bool 1526 } 1527 1528 func NewApprovalViewerBuilder() *ApprovalViewerBuilder { 1529 builder := &ApprovalViewerBuilder{} 1530 return builder 1531 } 1532 1533 // 可见人类型,人员、部门或全体 1534 // 1535 // 示例值:TENANT 1536 func (builder *ApprovalViewerBuilder) Type(type_ string) *ApprovalViewerBuilder { 1537 builder.type_ = type_ 1538 builder.typeFlag = true 1539 return builder 1540 } 1541 1542 // 同一个应用中对用户进行标识的id 1543 // 1544 // 示例值:ou_e03053f0541cecc3269d7a9dc34a0b21 1545 func (builder *ApprovalViewerBuilder) OpenId(openId string) *ApprovalViewerBuilder { 1546 builder.openId = openId 1547 builder.openIdFlag = true 1548 return builder 1549 } 1550 1551 // 用户id 1552 // 1553 // 示例值:f7cb567e 1554 func (builder *ApprovalViewerBuilder) UserId(userId string) *ApprovalViewerBuilder { 1555 builder.userId = userId 1556 builder.userIdFlag = true 1557 return builder 1558 } 1559 1560 // 同一个应用开发主体下对用户进行标识的id 1561 // 1562 // 示例值:f7cb567e 1563 func (builder *ApprovalViewerBuilder) UnionId(unionId string) *ApprovalViewerBuilder { 1564 builder.unionId = unionId 1565 builder.unionIdFlag = true 1566 return builder 1567 } 1568 1569 func (builder *ApprovalViewerBuilder) Build() *ApprovalViewer { 1570 req := &ApprovalViewer{} 1571 if builder.typeFlag { 1572 req.Type = &builder.type_ 1573 1574 } 1575 if builder.openIdFlag { 1576 req.OpenId = &builder.openId 1577 1578 } 1579 if builder.userIdFlag { 1580 req.UserId = &builder.userId 1581 1582 } 1583 if builder.unionIdFlag { 1584 req.UnionId = &builder.unionId 1585 1586 } 1587 return req 1588 } 1589 1590 type ApprovalViewerInfo struct { 1591 Type *string `json:"type,omitempty"` // 可见人类型 1592 Id *string `json:"id,omitempty"` // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id 1593 UserId *string `json:"user_id,omitempty"` // 在可见人类型为USER时,表示可见人用户id 1594 } 1595 1596 type ApprovalViewerInfoBuilder struct { 1597 type_ string // 可见人类型 1598 typeFlag bool 1599 id string // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id 1600 idFlag bool 1601 userId string // 在可见人类型为USER时,表示可见人用户id 1602 userIdFlag bool 1603 } 1604 1605 func NewApprovalViewerInfoBuilder() *ApprovalViewerInfoBuilder { 1606 builder := &ApprovalViewerInfoBuilder{} 1607 return builder 1608 } 1609 1610 // 可见人类型 1611 // 1612 // 示例值:TENANT 1613 func (builder *ApprovalViewerInfoBuilder) Type(type_ string) *ApprovalViewerInfoBuilder { 1614 builder.type_ = type_ 1615 builder.typeFlag = true 1616 return builder 1617 } 1618 1619 // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id 1620 // 1621 // 示例值:ou_e03053f0541cecc3269d7a9dc34a0b21 1622 func (builder *ApprovalViewerInfoBuilder) Id(id string) *ApprovalViewerInfoBuilder { 1623 builder.id = id 1624 builder.idFlag = true 1625 return builder 1626 } 1627 1628 // 在可见人类型为USER时,表示可见人用户id 1629 // 1630 // 示例值:f7cb567e 1631 func (builder *ApprovalViewerInfoBuilder) UserId(userId string) *ApprovalViewerInfoBuilder { 1632 builder.userId = userId 1633 builder.userIdFlag = true 1634 return builder 1635 } 1636 1637 func (builder *ApprovalViewerInfoBuilder) Build() *ApprovalViewerInfo { 1638 req := &ApprovalViewerInfo{} 1639 if builder.typeFlag { 1640 req.Type = &builder.type_ 1641 1642 } 1643 if builder.idFlag { 1644 req.Id = &builder.id 1645 1646 } 1647 if builder.userIdFlag { 1648 req.UserId = &builder.userId 1649 1650 } 1651 return req 1652 } 1653 1654 type ApproverChosenRange struct { 1655 ApproverRangeType *int `json:"approver_range_type,omitempty"` // 指定范围:0-all,1-指定角色,2-指定人员 1656 ApproverRangeIds []string `json:"approver_range_ids,omitempty"` // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表 1657 } 1658 1659 type ApproverChosenRangeBuilder struct { 1660 approverRangeType int // 指定范围:0-all,1-指定角色,2-指定人员 1661 approverRangeTypeFlag bool 1662 approverRangeIds []string // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表 1663 approverRangeIdsFlag bool 1664 } 1665 1666 func NewApproverChosenRangeBuilder() *ApproverChosenRangeBuilder { 1667 builder := &ApproverChosenRangeBuilder{} 1668 return builder 1669 } 1670 1671 // 指定范围:0-all,1-指定角色,2-指定人员 1672 // 1673 // 示例值:2 1674 func (builder *ApproverChosenRangeBuilder) ApproverRangeType(approverRangeType int) *ApproverChosenRangeBuilder { 1675 builder.approverRangeType = approverRangeType 1676 builder.approverRangeTypeFlag = true 1677 return builder 1678 } 1679 1680 // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表 1681 // 1682 // 示例值: 1683 func (builder *ApproverChosenRangeBuilder) ApproverRangeIds(approverRangeIds []string) *ApproverChosenRangeBuilder { 1684 builder.approverRangeIds = approverRangeIds 1685 builder.approverRangeIdsFlag = true 1686 return builder 1687 } 1688 1689 func (builder *ApproverChosenRangeBuilder) Build() *ApproverChosenRange { 1690 req := &ApproverChosenRange{} 1691 if builder.approverRangeTypeFlag { 1692 req.ApproverRangeType = &builder.approverRangeType 1693 1694 } 1695 if builder.approverRangeIdsFlag { 1696 req.ApproverRangeIds = builder.approverRangeIds 1697 } 1698 return req 1699 } 1700 1701 type CcNode struct { 1702 CcId *string `json:"cc_id,omitempty"` // 审批实例内唯一标识 1703 UserId *string `json:"user_id,omitempty"` // 抄送人 employee id 1704 OpenId *string `json:"open_id,omitempty"` // 抄送人 open id,和user id 二选一 1705 Links *ExternalInstanceLink `json:"links,omitempty"` // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 1706 ReadStatus *string `json:"read_status,omitempty"` // 阅读状态,空值表示不支持已读未读: 1707 Extra *string `json:"extra,omitempty"` // 扩展 json 1708 Title *string `json:"title,omitempty"` // 抄送任务名称 1709 CreateTime *string `json:"create_time,omitempty"` // 抄送发起时间,Unix 毫秒时间戳 1710 UpdateTime *string `json:"update_time,omitempty"` // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time 1711 DisplayMethod *string `json:"display_method,omitempty"` // 列表页打开审批任务的方式 1712 } 1713 1714 type CcNodeBuilder struct { 1715 ccId string // 审批实例内唯一标识 1716 ccIdFlag bool 1717 userId string // 抄送人 employee id 1718 userIdFlag bool 1719 openId string // 抄送人 open id,和user id 二选一 1720 openIdFlag bool 1721 links *ExternalInstanceLink // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 1722 linksFlag bool 1723 readStatus string // 阅读状态,空值表示不支持已读未读: 1724 readStatusFlag bool 1725 extra string // 扩展 json 1726 extraFlag bool 1727 title string // 抄送任务名称 1728 titleFlag bool 1729 createTime string // 抄送发起时间,Unix 毫秒时间戳 1730 createTimeFlag bool 1731 updateTime string // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time 1732 updateTimeFlag bool 1733 displayMethod string // 列表页打开审批任务的方式 1734 displayMethodFlag bool 1735 } 1736 1737 func NewCcNodeBuilder() *CcNodeBuilder { 1738 builder := &CcNodeBuilder{} 1739 return builder 1740 } 1741 1742 // 审批实例内唯一标识 1743 // 1744 // 示例值:123456 1745 func (builder *CcNodeBuilder) CcId(ccId string) *CcNodeBuilder { 1746 builder.ccId = ccId 1747 builder.ccIdFlag = true 1748 return builder 1749 } 1750 1751 // 抄送人 employee id 1752 // 1753 // 示例值:12345 1754 func (builder *CcNodeBuilder) UserId(userId string) *CcNodeBuilder { 1755 builder.userId = userId 1756 builder.userIdFlag = true 1757 return builder 1758 } 1759 1760 // 抄送人 open id,和user id 二选一 1761 // 1762 // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1 1763 func (builder *CcNodeBuilder) OpenId(openId string) *CcNodeBuilder { 1764 builder.openId = openId 1765 builder.openIdFlag = true 1766 return builder 1767 } 1768 1769 // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 1770 // 1771 // 示例值: 1772 func (builder *CcNodeBuilder) Links(links *ExternalInstanceLink) *CcNodeBuilder { 1773 builder.links = links 1774 builder.linksFlag = true 1775 return builder 1776 } 1777 1778 // 阅读状态,空值表示不支持已读未读: 1779 // 1780 // 示例值:READ 1781 func (builder *CcNodeBuilder) ReadStatus(readStatus string) *CcNodeBuilder { 1782 builder.readStatus = readStatus 1783 builder.readStatusFlag = true 1784 return builder 1785 } 1786 1787 // 扩展 json 1788 // 1789 // 示例值:{\"xxx\":\"xxx\"} 1790 func (builder *CcNodeBuilder) Extra(extra string) *CcNodeBuilder { 1791 builder.extra = extra 1792 builder.extraFlag = true 1793 return builder 1794 } 1795 1796 // 抄送任务名称 1797 // 1798 // 示例值:xxx 1799 func (builder *CcNodeBuilder) Title(title string) *CcNodeBuilder { 1800 builder.title = title 1801 builder.titleFlag = true 1802 return builder 1803 } 1804 1805 // 抄送发起时间,Unix 毫秒时间戳 1806 // 1807 // 示例值:1556468012678 1808 func (builder *CcNodeBuilder) CreateTime(createTime string) *CcNodeBuilder { 1809 builder.createTime = createTime 1810 builder.createTimeFlag = true 1811 return builder 1812 } 1813 1814 // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time 1815 // 1816 // 示例值:1556468012678 1817 func (builder *CcNodeBuilder) UpdateTime(updateTime string) *CcNodeBuilder { 1818 builder.updateTime = updateTime 1819 builder.updateTimeFlag = true 1820 return builder 1821 } 1822 1823 // 列表页打开审批任务的方式 1824 // 1825 // 示例值:BROWSER 1826 func (builder *CcNodeBuilder) DisplayMethod(displayMethod string) *CcNodeBuilder { 1827 builder.displayMethod = displayMethod 1828 builder.displayMethodFlag = true 1829 return builder 1830 } 1831 1832 func (builder *CcNodeBuilder) Build() *CcNode { 1833 req := &CcNode{} 1834 if builder.ccIdFlag { 1835 req.CcId = &builder.ccId 1836 1837 } 1838 if builder.userIdFlag { 1839 req.UserId = &builder.userId 1840 1841 } 1842 if builder.openIdFlag { 1843 req.OpenId = &builder.openId 1844 1845 } 1846 if builder.linksFlag { 1847 req.Links = builder.links 1848 } 1849 if builder.readStatusFlag { 1850 req.ReadStatus = &builder.readStatus 1851 1852 } 1853 if builder.extraFlag { 1854 req.Extra = &builder.extra 1855 1856 } 1857 if builder.titleFlag { 1858 req.Title = &builder.title 1859 1860 } 1861 if builder.createTimeFlag { 1862 req.CreateTime = &builder.createTime 1863 1864 } 1865 if builder.updateTimeFlag { 1866 req.UpdateTime = &builder.updateTime 1867 1868 } 1869 if builder.displayMethodFlag { 1870 req.DisplayMethod = &builder.displayMethod 1871 1872 } 1873 return req 1874 } 1875 1876 type CcSearch struct { 1877 UserId *string `json:"user_id,omitempty"` // 根据x_user_type填写用户 id 1878 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code 1879 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 code 1880 InstanceExternalId *string `json:"instance_external_id,omitempty"` // 审批实例第三方 id 注:和 approval_code 取并集 1881 GroupExternalId *string `json:"group_external_id,omitempty"` // 审批定义分组第三方 id 注:和 instance_code 取并集 1882 CcTitle *string `json:"cc_title,omitempty"` // 审批抄送标题(只有第三方审批有) 1883 ReadStatus *string `json:"read_status,omitempty"` // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错 1884 CcCreateTimeFrom *string `json:"cc_create_time_from,omitempty"` // 抄送查询开始时间(unix毫秒时间戳) 1885 CcCreateTimeTo *string `json:"cc_create_time_to,omitempty"` // 抄送查询结束时间 (unix毫秒时间戳) 1886 Locale *string `json:"locale,omitempty"` // 地区 1887 } 1888 1889 type CcSearchBuilder struct { 1890 userId string // 根据x_user_type填写用户 id 1891 userIdFlag bool 1892 approvalCode string // 审批定义 code 1893 approvalCodeFlag bool 1894 instanceCode string // 审批实例 code 1895 instanceCodeFlag bool 1896 instanceExternalId string // 审批实例第三方 id 注:和 approval_code 取并集 1897 instanceExternalIdFlag bool 1898 groupExternalId string // 审批定义分组第三方 id 注:和 instance_code 取并集 1899 groupExternalIdFlag bool 1900 ccTitle string // 审批抄送标题(只有第三方审批有) 1901 ccTitleFlag bool 1902 readStatus string // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错 1903 readStatusFlag bool 1904 ccCreateTimeFrom string // 抄送查询开始时间(unix毫秒时间戳) 1905 ccCreateTimeFromFlag bool 1906 ccCreateTimeTo string // 抄送查询结束时间 (unix毫秒时间戳) 1907 ccCreateTimeToFlag bool 1908 locale string // 地区 1909 localeFlag bool 1910 } 1911 1912 func NewCcSearchBuilder() *CcSearchBuilder { 1913 builder := &CcSearchBuilder{} 1914 return builder 1915 } 1916 1917 // 根据x_user_type填写用户 id 1918 // 1919 // 示例值:lwiu098wj 1920 func (builder *CcSearchBuilder) UserId(userId string) *CcSearchBuilder { 1921 builder.userId = userId 1922 builder.userIdFlag = true 1923 return builder 1924 } 1925 1926 // 审批定义 code 1927 // 1928 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942 1929 func (builder *CcSearchBuilder) ApprovalCode(approvalCode string) *CcSearchBuilder { 1930 builder.approvalCode = approvalCode 1931 builder.approvalCodeFlag = true 1932 return builder 1933 } 1934 1935 // 审批实例 code 1936 // 1937 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943 1938 func (builder *CcSearchBuilder) InstanceCode(instanceCode string) *CcSearchBuilder { 1939 builder.instanceCode = instanceCode 1940 builder.instanceCodeFlag = true 1941 return builder 1942 } 1943 1944 // 审批实例第三方 id 注:和 approval_code 取并集 1945 // 1946 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976 1947 func (builder *CcSearchBuilder) InstanceExternalId(instanceExternalId string) *CcSearchBuilder { 1948 builder.instanceExternalId = instanceExternalId 1949 builder.instanceExternalIdFlag = true 1950 return builder 1951 } 1952 1953 // 审批定义分组第三方 id 注:和 instance_code 取并集 1954 // 1955 // 示例值:1234567 1956 func (builder *CcSearchBuilder) GroupExternalId(groupExternalId string) *CcSearchBuilder { 1957 builder.groupExternalId = groupExternalId 1958 builder.groupExternalIdFlag = true 1959 return builder 1960 } 1961 1962 // 审批抄送标题(只有第三方审批有) 1963 // 1964 // 示例值:test 1965 func (builder *CcSearchBuilder) CcTitle(ccTitle string) *CcSearchBuilder { 1966 builder.ccTitle = ccTitle 1967 builder.ccTitleFlag = true 1968 return builder 1969 } 1970 1971 // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错 1972 // 1973 // 示例值:read 1974 func (builder *CcSearchBuilder) ReadStatus(readStatus string) *CcSearchBuilder { 1975 builder.readStatus = readStatus 1976 builder.readStatusFlag = true 1977 return builder 1978 } 1979 1980 // 抄送查询开始时间(unix毫秒时间戳) 1981 // 1982 // 示例值:1547654251506 1983 func (builder *CcSearchBuilder) CcCreateTimeFrom(ccCreateTimeFrom string) *CcSearchBuilder { 1984 builder.ccCreateTimeFrom = ccCreateTimeFrom 1985 builder.ccCreateTimeFromFlag = true 1986 return builder 1987 } 1988 1989 // 抄送查询结束时间 (unix毫秒时间戳) 1990 // 1991 // 示例值:1547654251506 1992 func (builder *CcSearchBuilder) CcCreateTimeTo(ccCreateTimeTo string) *CcSearchBuilder { 1993 builder.ccCreateTimeTo = ccCreateTimeTo 1994 builder.ccCreateTimeToFlag = true 1995 return builder 1996 } 1997 1998 // 地区 1999 // 2000 // 示例值:zh-CN 2001 func (builder *CcSearchBuilder) Locale(locale string) *CcSearchBuilder { 2002 builder.locale = locale 2003 builder.localeFlag = true 2004 return builder 2005 } 2006 2007 func (builder *CcSearchBuilder) Build() *CcSearch { 2008 req := &CcSearch{} 2009 if builder.userIdFlag { 2010 req.UserId = &builder.userId 2011 2012 } 2013 if builder.approvalCodeFlag { 2014 req.ApprovalCode = &builder.approvalCode 2015 2016 } 2017 if builder.instanceCodeFlag { 2018 req.InstanceCode = &builder.instanceCode 2019 2020 } 2021 if builder.instanceExternalIdFlag { 2022 req.InstanceExternalId = &builder.instanceExternalId 2023 2024 } 2025 if builder.groupExternalIdFlag { 2026 req.GroupExternalId = &builder.groupExternalId 2027 2028 } 2029 if builder.ccTitleFlag { 2030 req.CcTitle = &builder.ccTitle 2031 2032 } 2033 if builder.readStatusFlag { 2034 req.ReadStatus = &builder.readStatus 2035 2036 } 2037 if builder.ccCreateTimeFromFlag { 2038 req.CcCreateTimeFrom = &builder.ccCreateTimeFrom 2039 2040 } 2041 if builder.ccCreateTimeToFlag { 2042 req.CcCreateTimeTo = &builder.ccCreateTimeTo 2043 2044 } 2045 if builder.localeFlag { 2046 req.Locale = &builder.locale 2047 2048 } 2049 return req 2050 } 2051 2052 type CcSearchItem struct { 2053 Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义 2054 Group *InstanceSearchGroup `json:"group,omitempty"` // 审批定义分组 2055 Instance *InstanceSearchNode `json:"instance,omitempty"` // 审批实例信息 2056 Cc *CcSearchNode `json:"cc,omitempty"` // 审批抄送 2057 } 2058 2059 type CcSearchItemBuilder struct { 2060 approval *InstanceSearchApproval // 审批定义 2061 approvalFlag bool 2062 group *InstanceSearchGroup // 审批定义分组 2063 groupFlag bool 2064 instance *InstanceSearchNode // 审批实例信息 2065 instanceFlag bool 2066 cc *CcSearchNode // 审批抄送 2067 ccFlag bool 2068 } 2069 2070 func NewCcSearchItemBuilder() *CcSearchItemBuilder { 2071 builder := &CcSearchItemBuilder{} 2072 return builder 2073 } 2074 2075 // 审批定义 2076 // 2077 // 示例值: 2078 func (builder *CcSearchItemBuilder) Approval(approval *InstanceSearchApproval) *CcSearchItemBuilder { 2079 builder.approval = approval 2080 builder.approvalFlag = true 2081 return builder 2082 } 2083 2084 // 审批定义分组 2085 // 2086 // 示例值: 2087 func (builder *CcSearchItemBuilder) Group(group *InstanceSearchGroup) *CcSearchItemBuilder { 2088 builder.group = group 2089 builder.groupFlag = true 2090 return builder 2091 } 2092 2093 // 审批实例信息 2094 // 2095 // 示例值: 2096 func (builder *CcSearchItemBuilder) Instance(instance *InstanceSearchNode) *CcSearchItemBuilder { 2097 builder.instance = instance 2098 builder.instanceFlag = true 2099 return builder 2100 } 2101 2102 // 审批抄送 2103 // 2104 // 示例值: 2105 func (builder *CcSearchItemBuilder) Cc(cc *CcSearchNode) *CcSearchItemBuilder { 2106 builder.cc = cc 2107 builder.ccFlag = true 2108 return builder 2109 } 2110 2111 func (builder *CcSearchItemBuilder) Build() *CcSearchItem { 2112 req := &CcSearchItem{} 2113 if builder.approvalFlag { 2114 req.Approval = builder.approval 2115 } 2116 if builder.groupFlag { 2117 req.Group = builder.group 2118 } 2119 if builder.instanceFlag { 2120 req.Instance = builder.instance 2121 } 2122 if builder.ccFlag { 2123 req.Cc = builder.cc 2124 } 2125 return req 2126 } 2127 2128 type CcSearchNode struct { 2129 UserId *string `json:"user_id,omitempty"` // 审批抄送发起人 id 2130 CreateTime *string `json:"create_time,omitempty"` // 审批抄送开始时间 2131 ReadStatus *string `json:"read_status,omitempty"` // 审批抄送状态 2132 Title *string `json:"title,omitempty"` // 审批抄送名称(只有第三方审批有) 2133 Extra *string `json:"extra,omitempty"` // 审批抄送扩展字段,string型json 2134 Link *InstanceSearchLink `json:"link,omitempty"` // 审批抄送链接(只有第三方审批有) 2135 } 2136 2137 type CcSearchNodeBuilder struct { 2138 userId string // 审批抄送发起人 id 2139 userIdFlag bool 2140 createTime string // 审批抄送开始时间 2141 createTimeFlag bool 2142 readStatus string // 审批抄送状态 2143 readStatusFlag bool 2144 title string // 审批抄送名称(只有第三方审批有) 2145 titleFlag bool 2146 extra string // 审批抄送扩展字段,string型json 2147 extraFlag bool 2148 link *InstanceSearchLink // 审批抄送链接(只有第三方审批有) 2149 linkFlag bool 2150 } 2151 2152 func NewCcSearchNodeBuilder() *CcSearchNodeBuilder { 2153 builder := &CcSearchNodeBuilder{} 2154 return builder 2155 } 2156 2157 // 审批抄送发起人 id 2158 // 2159 // 示例值:lwiu098wj 2160 func (builder *CcSearchNodeBuilder) UserId(userId string) *CcSearchNodeBuilder { 2161 builder.userId = userId 2162 builder.userIdFlag = true 2163 return builder 2164 } 2165 2166 // 审批抄送开始时间 2167 // 2168 // 示例值:1547654251506 2169 func (builder *CcSearchNodeBuilder) CreateTime(createTime string) *CcSearchNodeBuilder { 2170 builder.createTime = createTime 2171 builder.createTimeFlag = true 2172 return builder 2173 } 2174 2175 // 审批抄送状态 2176 // 2177 // 示例值:read 2178 func (builder *CcSearchNodeBuilder) ReadStatus(readStatus string) *CcSearchNodeBuilder { 2179 builder.readStatus = readStatus 2180 builder.readStatusFlag = true 2181 return builder 2182 } 2183 2184 // 审批抄送名称(只有第三方审批有) 2185 // 2186 // 示例值:test 2187 func (builder *CcSearchNodeBuilder) Title(title string) *CcSearchNodeBuilder { 2188 builder.title = title 2189 builder.titleFlag = true 2190 return builder 2191 } 2192 2193 // 审批抄送扩展字段,string型json 2194 // 2195 // 示例值:{} 2196 func (builder *CcSearchNodeBuilder) Extra(extra string) *CcSearchNodeBuilder { 2197 builder.extra = extra 2198 builder.extraFlag = true 2199 return builder 2200 } 2201 2202 // 审批抄送链接(只有第三方审批有) 2203 // 2204 // 示例值: 2205 func (builder *CcSearchNodeBuilder) Link(link *InstanceSearchLink) *CcSearchNodeBuilder { 2206 builder.link = link 2207 builder.linkFlag = true 2208 return builder 2209 } 2210 2211 func (builder *CcSearchNodeBuilder) Build() *CcSearchNode { 2212 req := &CcSearchNode{} 2213 if builder.userIdFlag { 2214 req.UserId = &builder.userId 2215 2216 } 2217 if builder.createTimeFlag { 2218 req.CreateTime = &builder.createTime 2219 2220 } 2221 if builder.readStatusFlag { 2222 req.ReadStatus = &builder.readStatus 2223 2224 } 2225 if builder.titleFlag { 2226 req.Title = &builder.title 2227 2228 } 2229 if builder.extraFlag { 2230 req.Extra = &builder.extra 2231 2232 } 2233 if builder.linkFlag { 2234 req.Link = builder.link 2235 } 2236 return req 2237 } 2238 2239 type Comment struct { 2240 Id *string `json:"id,omitempty"` // 评论ID 2241 Content *string `json:"content,omitempty"` // 评论内容 2242 CreateTime *string `json:"create_time,omitempty"` // 评论创建时间 2243 UpdateTime *string `json:"update_time,omitempty"` // 评论更新时间 2244 IsDelete *int `json:"is_delete,omitempty"` // 是否删除,0:未删除,1:已删除 2245 Replies []*CommentReply `json:"replies,omitempty"` // 评论的回复 2246 AtInfoList []*CommentAtInfo `json:"at_info_list,omitempty"` // 评论中艾特人信息 2247 Commentator *string `json:"commentator,omitempty"` // 评论创建人 2248 Extra *string `json:"extra,omitempty"` // 附加字段 2249 } 2250 2251 type CommentBuilder struct { 2252 id string // 评论ID 2253 idFlag bool 2254 content string // 评论内容 2255 contentFlag bool 2256 createTime string // 评论创建时间 2257 createTimeFlag bool 2258 updateTime string // 评论更新时间 2259 updateTimeFlag bool 2260 isDelete int // 是否删除,0:未删除,1:已删除 2261 isDeleteFlag bool 2262 replies []*CommentReply // 评论的回复 2263 repliesFlag bool 2264 atInfoList []*CommentAtInfo // 评论中艾特人信息 2265 atInfoListFlag bool 2266 commentator string // 评论创建人 2267 commentatorFlag bool 2268 extra string // 附加字段 2269 extraFlag bool 2270 } 2271 2272 func NewCommentBuilder() *CommentBuilder { 2273 builder := &CommentBuilder{} 2274 return builder 2275 } 2276 2277 // 评论ID 2278 // 2279 // 示例值:7081516627711524883 2280 func (builder *CommentBuilder) Id(id string) *CommentBuilder { 2281 builder.id = id 2282 builder.idFlag = true 2283 return builder 2284 } 2285 2286 // 评论内容 2287 // 2288 // 示例值:{\"text\":\"x@王某自小程序的评论111我带了附件,而且我艾特了人 \",\"files\":[{\"url\":\"https://xx-xxx-xxx.bytedance.net/lark-approval-attachment/image/20220401/1/d43216ca-93b5-43a8-8a34-23c66820463a.png~tplv-k7bg0smxju-image.image?x-orig-authkey=boeorigin\&x-orig-expires=1650963890\&x-orig-sign=668QhQbRSt6638x2Ws8wFI%2FxqVg%3D#.png\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\"}]} 2289 func (builder *CommentBuilder) Content(content string) *CommentBuilder { 2290 builder.content = content 2291 builder.contentFlag = true 2292 return builder 2293 } 2294 2295 // 评论创建时间 2296 // 2297 // 示例值:1648801211000 2298 func (builder *CommentBuilder) CreateTime(createTime string) *CommentBuilder { 2299 builder.createTime = createTime 2300 builder.createTimeFlag = true 2301 return builder 2302 } 2303 2304 // 评论更新时间 2305 // 2306 // 示例值:1648801211000 2307 func (builder *CommentBuilder) UpdateTime(updateTime string) *CommentBuilder { 2308 builder.updateTime = updateTime 2309 builder.updateTimeFlag = true 2310 return builder 2311 } 2312 2313 // 是否删除,0:未删除,1:已删除 2314 // 2315 // 示例值:1 2316 func (builder *CommentBuilder) IsDelete(isDelete int) *CommentBuilder { 2317 builder.isDelete = isDelete 2318 builder.isDeleteFlag = true 2319 return builder 2320 } 2321 2322 // 评论的回复 2323 // 2324 // 示例值: 2325 func (builder *CommentBuilder) Replies(replies []*CommentReply) *CommentBuilder { 2326 builder.replies = replies 2327 builder.repliesFlag = true 2328 return builder 2329 } 2330 2331 // 评论中艾特人信息 2332 // 2333 // 示例值: 2334 func (builder *CommentBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentBuilder { 2335 builder.atInfoList = atInfoList 2336 builder.atInfoListFlag = true 2337 return builder 2338 } 2339 2340 // 评论创建人 2341 // 2342 // 示例值:893g4c45 2343 func (builder *CommentBuilder) Commentator(commentator string) *CommentBuilder { 2344 builder.commentator = commentator 2345 builder.commentatorFlag = true 2346 return builder 2347 } 2348 2349 // 附加字段 2350 // 2351 // 示例值:{\"a\":\"a\"} 2352 func (builder *CommentBuilder) Extra(extra string) *CommentBuilder { 2353 builder.extra = extra 2354 builder.extraFlag = true 2355 return builder 2356 } 2357 2358 func (builder *CommentBuilder) Build() *Comment { 2359 req := &Comment{} 2360 if builder.idFlag { 2361 req.Id = &builder.id 2362 2363 } 2364 if builder.contentFlag { 2365 req.Content = &builder.content 2366 2367 } 2368 if builder.createTimeFlag { 2369 req.CreateTime = &builder.createTime 2370 2371 } 2372 if builder.updateTimeFlag { 2373 req.UpdateTime = &builder.updateTime 2374 2375 } 2376 if builder.isDeleteFlag { 2377 req.IsDelete = &builder.isDelete 2378 2379 } 2380 if builder.repliesFlag { 2381 req.Replies = builder.replies 2382 } 2383 if builder.atInfoListFlag { 2384 req.AtInfoList = builder.atInfoList 2385 } 2386 if builder.commentatorFlag { 2387 req.Commentator = &builder.commentator 2388 2389 } 2390 if builder.extraFlag { 2391 req.Extra = &builder.extra 2392 2393 } 2394 return req 2395 } 2396 2397 type CommentAtInfo struct { 2398 UserId *string `json:"user_id,omitempty"` // 被艾特人的ID 2399 Name *string `json:"name,omitempty"` // 被艾特人的姓名 2400 Offset *string `json:"offset,omitempty"` // 被艾特人在评论中的位置,从0开始 2401 } 2402 2403 type CommentAtInfoBuilder struct { 2404 userId string // 被艾特人的ID 2405 userIdFlag bool 2406 name string // 被艾特人的姓名 2407 nameFlag bool 2408 offset string // 被艾特人在评论中的位置,从0开始 2409 offsetFlag bool 2410 } 2411 2412 func NewCommentAtInfoBuilder() *CommentAtInfoBuilder { 2413 builder := &CommentAtInfoBuilder{} 2414 return builder 2415 } 2416 2417 // 被艾特人的ID 2418 // 2419 // 示例值:579fd9c4 2420 func (builder *CommentAtInfoBuilder) UserId(userId string) *CommentAtInfoBuilder { 2421 builder.userId = userId 2422 builder.userIdFlag = true 2423 return builder 2424 } 2425 2426 // 被艾特人的姓名 2427 // 2428 // 示例值:张某 2429 func (builder *CommentAtInfoBuilder) Name(name string) *CommentAtInfoBuilder { 2430 builder.name = name 2431 builder.nameFlag = true 2432 return builder 2433 } 2434 2435 // 被艾特人在评论中的位置,从0开始 2436 // 2437 // 示例值:1 2438 func (builder *CommentAtInfoBuilder) Offset(offset string) *CommentAtInfoBuilder { 2439 builder.offset = offset 2440 builder.offsetFlag = true 2441 return builder 2442 } 2443 2444 func (builder *CommentAtInfoBuilder) Build() *CommentAtInfo { 2445 req := &CommentAtInfo{} 2446 if builder.userIdFlag { 2447 req.UserId = &builder.userId 2448 2449 } 2450 if builder.nameFlag { 2451 req.Name = &builder.name 2452 2453 } 2454 if builder.offsetFlag { 2455 req.Offset = &builder.offset 2456 2457 } 2458 return req 2459 } 2460 2461 type CommentReply struct { 2462 Id *string `json:"id,omitempty"` // 评论ID 2463 Content *string `json:"content,omitempty"` // 评论内容 2464 CreateTime *string `json:"create_time,omitempty"` // 评论创建时间 2465 UpdateTime *string `json:"update_time,omitempty"` // 评论更新时间 2466 IsDelete *int `json:"is_delete,omitempty"` // 是否删除,0:未删除,1:已删除 2467 AtInfoList []*CommentAtInfo `json:"at_info_list,omitempty"` // 评论中艾特人信息 2468 Commentator *string `json:"commentator,omitempty"` // 评论创建人 2469 Extra *string `json:"extra,omitempty"` // 附加字段 2470 } 2471 2472 type CommentReplyBuilder struct { 2473 id string // 评论ID 2474 idFlag bool 2475 content string // 评论内容 2476 contentFlag bool 2477 createTime string // 评论创建时间 2478 createTimeFlag bool 2479 updateTime string // 评论更新时间 2480 updateTimeFlag bool 2481 isDelete int // 是否删除,0:未删除,1:已删除 2482 isDeleteFlag bool 2483 atInfoList []*CommentAtInfo // 评论中艾特人信息 2484 atInfoListFlag bool 2485 commentator string // 评论创建人 2486 commentatorFlag bool 2487 extra string // 附加字段 2488 extraFlag bool 2489 } 2490 2491 func NewCommentReplyBuilder() *CommentReplyBuilder { 2492 builder := &CommentReplyBuilder{} 2493 return builder 2494 } 2495 2496 // 评论ID 2497 // 2498 // 示例值:7081516611634741268 2499 func (builder *CommentReplyBuilder) Id(id string) *CommentReplyBuilder { 2500 builder.id = id 2501 builder.idFlag = true 2502 return builder 2503 } 2504 2505 // 评论内容 2506 // 2507 // 示例值:{\"text\":\"x@张某来自小程序的评论111,这是一条回复\",\"files\":[{\"url\":\"https://xx-xxx-xxx.bytedance.net/lark-approval-attachment/image/20220401/1/d43216ca-93b5-43a8-8a34-23c66820463a.png~tplv-k7bg0smxju-image.image?x-orig-authkey=boeorigin\&x-orig-expires=1650963890\&x-orig-sign=668QhQbRSt6638x2Ws8wFI%2FxqVg%3D#.png\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\"}]} 2508 func (builder *CommentReplyBuilder) Content(content string) *CommentReplyBuilder { 2509 builder.content = content 2510 builder.contentFlag = true 2511 return builder 2512 } 2513 2514 // 评论创建时间 2515 // 2516 // 示例值:1648803677000 2517 func (builder *CommentReplyBuilder) CreateTime(createTime string) *CommentReplyBuilder { 2518 builder.createTime = createTime 2519 builder.createTimeFlag = true 2520 return builder 2521 } 2522 2523 // 评论更新时间 2524 // 2525 // 示例值:1648803677000 2526 func (builder *CommentReplyBuilder) UpdateTime(updateTime string) *CommentReplyBuilder { 2527 builder.updateTime = updateTime 2528 builder.updateTimeFlag = true 2529 return builder 2530 } 2531 2532 // 是否删除,0:未删除,1:已删除 2533 // 2534 // 示例值:0 2535 func (builder *CommentReplyBuilder) IsDelete(isDelete int) *CommentReplyBuilder { 2536 builder.isDelete = isDelete 2537 builder.isDeleteFlag = true 2538 return builder 2539 } 2540 2541 // 评论中艾特人信息 2542 // 2543 // 示例值: 2544 func (builder *CommentReplyBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentReplyBuilder { 2545 builder.atInfoList = atInfoList 2546 builder.atInfoListFlag = true 2547 return builder 2548 } 2549 2550 // 评论创建人 2551 // 2552 // 示例值:893g4c45 2553 func (builder *CommentReplyBuilder) Commentator(commentator string) *CommentReplyBuilder { 2554 builder.commentator = commentator 2555 builder.commentatorFlag = true 2556 return builder 2557 } 2558 2559 // 附加字段 2560 // 2561 // 示例值:{\"a\":\"a\"} 2562 func (builder *CommentReplyBuilder) Extra(extra string) *CommentReplyBuilder { 2563 builder.extra = extra 2564 builder.extraFlag = true 2565 return builder 2566 } 2567 2568 func (builder *CommentReplyBuilder) Build() *CommentReply { 2569 req := &CommentReply{} 2570 if builder.idFlag { 2571 req.Id = &builder.id 2572 2573 } 2574 if builder.contentFlag { 2575 req.Content = &builder.content 2576 2577 } 2578 if builder.createTimeFlag { 2579 req.CreateTime = &builder.createTime 2580 2581 } 2582 if builder.updateTimeFlag { 2583 req.UpdateTime = &builder.updateTime 2584 2585 } 2586 if builder.isDeleteFlag { 2587 req.IsDelete = &builder.isDelete 2588 2589 } 2590 if builder.atInfoListFlag { 2591 req.AtInfoList = builder.atInfoList 2592 } 2593 if builder.commentatorFlag { 2594 req.Commentator = &builder.commentator 2595 2596 } 2597 if builder.extraFlag { 2598 req.Extra = &builder.extra 2599 2600 } 2601 return req 2602 } 2603 2604 type CommentRequest struct { 2605 Content *string `json:"content,omitempty"` // 评论内容,包含艾特人、附件等 2606 AtInfoList []*CommentAtInfo `json:"at_info_list,omitempty"` // 评论中艾特人信息 2607 ParentCommentId *string `json:"parent_comment_id,omitempty"` // 父评论ID,如果是回复评论,需要传 2608 CommentId *string `json:"comment_id,omitempty"` // 评论ID,如果是编辑、删除一条评论,需要传 2609 DisableBot *bool `json:"disable_bot,omitempty"` // disable_bot=true只同步数据,不触发bot 2610 Extra *string `json:"extra,omitempty"` // 附加字段 2611 } 2612 2613 type CommentRequestBuilder struct { 2614 content string // 评论内容,包含艾特人、附件等 2615 contentFlag bool 2616 atInfoList []*CommentAtInfo // 评论中艾特人信息 2617 atInfoListFlag bool 2618 parentCommentId string // 父评论ID,如果是回复评论,需要传 2619 parentCommentIdFlag bool 2620 commentId string // 评论ID,如果是编辑、删除一条评论,需要传 2621 commentIdFlag bool 2622 disableBot bool // disable_bot=true只同步数据,不触发bot 2623 disableBotFlag bool 2624 extra string // 附加字段 2625 extraFlag bool 2626 } 2627 2628 func NewCommentRequestBuilder() *CommentRequestBuilder { 2629 builder := &CommentRequestBuilder{} 2630 return builder 2631 } 2632 2633 // 评论内容,包含艾特人、附件等 2634 // 2635 // 示例值:{\"text\":\"来自小程序的评论111我带附件中有extra \",\"files\":[{\"url\":\"xxx\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\",\"extra\":\"\"}]} 2636 func (builder *CommentRequestBuilder) Content(content string) *CommentRequestBuilder { 2637 builder.content = content 2638 builder.contentFlag = true 2639 return builder 2640 } 2641 2642 // 评论中艾特人信息 2643 // 2644 // 示例值: 2645 func (builder *CommentRequestBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentRequestBuilder { 2646 builder.atInfoList = atInfoList 2647 builder.atInfoListFlag = true 2648 return builder 2649 } 2650 2651 // 父评论ID,如果是回复评论,需要传 2652 // 2653 // 示例值:7081516627711524883 2654 func (builder *CommentRequestBuilder) ParentCommentId(parentCommentId string) *CommentRequestBuilder { 2655 builder.parentCommentId = parentCommentId 2656 builder.parentCommentIdFlag = true 2657 return builder 2658 } 2659 2660 // 评论ID,如果是编辑、删除一条评论,需要传 2661 // 2662 // 示例值:7081516627711524883 2663 func (builder *CommentRequestBuilder) CommentId(commentId string) *CommentRequestBuilder { 2664 builder.commentId = commentId 2665 builder.commentIdFlag = true 2666 return builder 2667 } 2668 2669 // disable_bot=true只同步数据,不触发bot 2670 // 2671 // 示例值:false 2672 func (builder *CommentRequestBuilder) DisableBot(disableBot bool) *CommentRequestBuilder { 2673 builder.disableBot = disableBot 2674 builder.disableBotFlag = true 2675 return builder 2676 } 2677 2678 // 附加字段 2679 // 2680 // 示例值:{\"a\":\"a\"} 2681 func (builder *CommentRequestBuilder) Extra(extra string) *CommentRequestBuilder { 2682 builder.extra = extra 2683 builder.extraFlag = true 2684 return builder 2685 } 2686 2687 func (builder *CommentRequestBuilder) Build() *CommentRequest { 2688 req := &CommentRequest{} 2689 if builder.contentFlag { 2690 req.Content = &builder.content 2691 2692 } 2693 if builder.atInfoListFlag { 2694 req.AtInfoList = builder.atInfoList 2695 } 2696 if builder.parentCommentIdFlag { 2697 req.ParentCommentId = &builder.parentCommentId 2698 2699 } 2700 if builder.commentIdFlag { 2701 req.CommentId = &builder.commentId 2702 2703 } 2704 if builder.disableBotFlag { 2705 req.DisableBot = &builder.disableBot 2706 2707 } 2708 if builder.extraFlag { 2709 req.Extra = &builder.extra 2710 2711 } 2712 return req 2713 } 2714 2715 type Count struct { 2716 Total *int `json:"total,omitempty"` // 总数,大于等于 1000 个项目时将返回 999 2717 HasMore *bool `json:"has_more,omitempty"` // 还有更多,当大于等于 1000 时将返回 true 2718 } 2719 2720 type CountBuilder struct { 2721 total int // 总数,大于等于 1000 个项目时将返回 999 2722 totalFlag bool 2723 hasMore bool // 还有更多,当大于等于 1000 时将返回 true 2724 hasMoreFlag bool 2725 } 2726 2727 func NewCountBuilder() *CountBuilder { 2728 builder := &CountBuilder{} 2729 return builder 2730 } 2731 2732 // 总数,大于等于 1000 个项目时将返回 999 2733 // 2734 // 示例值:123 2735 func (builder *CountBuilder) Total(total int) *CountBuilder { 2736 builder.total = total 2737 builder.totalFlag = true 2738 return builder 2739 } 2740 2741 // 还有更多,当大于等于 1000 时将返回 true 2742 // 2743 // 示例值:false 2744 func (builder *CountBuilder) HasMore(hasMore bool) *CountBuilder { 2745 builder.hasMore = hasMore 2746 builder.hasMoreFlag = true 2747 return builder 2748 } 2749 2750 func (builder *CountBuilder) Build() *Count { 2751 req := &Count{} 2752 if builder.totalFlag { 2753 req.Total = &builder.total 2754 2755 } 2756 if builder.hasMoreFlag { 2757 req.HasMore = &builder.hasMore 2758 2759 } 2760 return req 2761 } 2762 2763 type ExteranlInstanceCheck struct { 2764 InstanceId *string `json:"instance_id,omitempty"` // 审批实例 id 2765 UpdateTime *string `json:"update_time,omitempty"` // 审批实例最近更新时间 2766 Tasks []*ExternalInstanceTask `json:"tasks,omitempty"` // 任务信息 2767 } 2768 2769 type ExteranlInstanceCheckBuilder struct { 2770 instanceId string // 审批实例 id 2771 instanceIdFlag bool 2772 updateTime string // 审批实例最近更新时间 2773 updateTimeFlag bool 2774 tasks []*ExternalInstanceTask // 任务信息 2775 tasksFlag bool 2776 } 2777 2778 func NewExteranlInstanceCheckBuilder() *ExteranlInstanceCheckBuilder { 2779 builder := &ExteranlInstanceCheckBuilder{} 2780 return builder 2781 } 2782 2783 // 审批实例 id 2784 // 2785 // 示例值:1234234234242423 2786 func (builder *ExteranlInstanceCheckBuilder) InstanceId(instanceId string) *ExteranlInstanceCheckBuilder { 2787 builder.instanceId = instanceId 2788 builder.instanceIdFlag = true 2789 return builder 2790 } 2791 2792 // 审批实例最近更新时间 2793 // 2794 // 示例值:1591603040000 2795 func (builder *ExteranlInstanceCheckBuilder) UpdateTime(updateTime string) *ExteranlInstanceCheckBuilder { 2796 builder.updateTime = updateTime 2797 builder.updateTimeFlag = true 2798 return builder 2799 } 2800 2801 // 任务信息 2802 // 2803 // 示例值: 2804 func (builder *ExteranlInstanceCheckBuilder) Tasks(tasks []*ExternalInstanceTask) *ExteranlInstanceCheckBuilder { 2805 builder.tasks = tasks 2806 builder.tasksFlag = true 2807 return builder 2808 } 2809 2810 func (builder *ExteranlInstanceCheckBuilder) Build() *ExteranlInstanceCheck { 2811 req := &ExteranlInstanceCheck{} 2812 if builder.instanceIdFlag { 2813 req.InstanceId = &builder.instanceId 2814 2815 } 2816 if builder.updateTimeFlag { 2817 req.UpdateTime = &builder.updateTime 2818 2819 } 2820 if builder.tasksFlag { 2821 req.Tasks = builder.tasks 2822 } 2823 return req 2824 } 2825 2826 type ExteranlInstanceCheckResponse struct { 2827 InstanceId *string `json:"instance_id,omitempty"` // 审批实例 id 2828 UpdateTime *string `json:"update_time,omitempty"` // 任务最近更新时间 2829 Tasks []*ExternalInstanceTask `json:"tasks,omitempty"` // 任务信息 2830 } 2831 2832 type ExteranlInstanceCheckResponseBuilder struct { 2833 instanceId string // 审批实例 id 2834 instanceIdFlag bool 2835 updateTime string // 任务最近更新时间 2836 updateTimeFlag bool 2837 tasks []*ExternalInstanceTask // 任务信息 2838 tasksFlag bool 2839 } 2840 2841 func NewExteranlInstanceCheckResponseBuilder() *ExteranlInstanceCheckResponseBuilder { 2842 builder := &ExteranlInstanceCheckResponseBuilder{} 2843 return builder 2844 } 2845 2846 // 审批实例 id 2847 // 2848 // 示例值:1234234234242423 2849 func (builder *ExteranlInstanceCheckResponseBuilder) InstanceId(instanceId string) *ExteranlInstanceCheckResponseBuilder { 2850 builder.instanceId = instanceId 2851 builder.instanceIdFlag = true 2852 return builder 2853 } 2854 2855 // 任务最近更新时间 2856 // 2857 // 示例值:1591603040000 2858 func (builder *ExteranlInstanceCheckResponseBuilder) UpdateTime(updateTime string) *ExteranlInstanceCheckResponseBuilder { 2859 builder.updateTime = updateTime 2860 builder.updateTimeFlag = true 2861 return builder 2862 } 2863 2864 // 任务信息 2865 // 2866 // 示例值: 2867 func (builder *ExteranlInstanceCheckResponseBuilder) Tasks(tasks []*ExternalInstanceTask) *ExteranlInstanceCheckResponseBuilder { 2868 builder.tasks = tasks 2869 builder.tasksFlag = true 2870 return builder 2871 } 2872 2873 func (builder *ExteranlInstanceCheckResponseBuilder) Build() *ExteranlInstanceCheckResponse { 2874 req := &ExteranlInstanceCheckResponse{} 2875 if builder.instanceIdFlag { 2876 req.InstanceId = &builder.instanceId 2877 2878 } 2879 if builder.updateTimeFlag { 2880 req.UpdateTime = &builder.updateTime 2881 2882 } 2883 if builder.tasksFlag { 2884 req.Tasks = builder.tasks 2885 } 2886 return req 2887 } 2888 2889 type ExternalApproval struct { 2890 ApprovalName *string `json:"approval_name,omitempty"` // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。 2891 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新 2892 GroupCode *string `json:"group_code,omitempty"` // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称 2893 GroupName *string `json:"group_name,omitempty"` // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段 2894 Description *string `json:"description,omitempty"` // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段 2895 External *ApprovalCreateExternal `json:"external,omitempty"` // 三方审批相关 2896 Viewers []*ApprovalCreateViewers `json:"viewers,omitempty"` // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见 2897 I18nResources []*I18nResource `json:"i18n_resources,omitempty"` // 国际化文案 2898 Managers []string `json:"managers,omitempty"` // 根据user_id_type填写流程管理员id 2899 } 2900 2901 type ExternalApprovalBuilder struct { 2902 approvalName string // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。 2903 approvalNameFlag bool 2904 approvalCode string // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新 2905 approvalCodeFlag bool 2906 groupCode string // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称 2907 groupCodeFlag bool 2908 groupName string // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段 2909 groupNameFlag bool 2910 description string // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段 2911 descriptionFlag bool 2912 external *ApprovalCreateExternal // 三方审批相关 2913 externalFlag bool 2914 viewers []*ApprovalCreateViewers // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见 2915 viewersFlag bool 2916 i18nResources []*I18nResource // 国际化文案 2917 i18nResourcesFlag bool 2918 managers []string // 根据user_id_type填写流程管理员id 2919 managersFlag bool 2920 } 2921 2922 func NewExternalApprovalBuilder() *ExternalApprovalBuilder { 2923 builder := &ExternalApprovalBuilder{} 2924 return builder 2925 } 2926 2927 // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。 2928 // 2929 // 示例值:@i18n@1 2930 func (builder *ExternalApprovalBuilder) ApprovalName(approvalName string) *ExternalApprovalBuilder { 2931 builder.approvalName = approvalName 2932 builder.approvalNameFlag = true 2933 return builder 2934 } 2935 2936 // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新 2937 // 2938 // 示例值:permission_test 2939 func (builder *ExternalApprovalBuilder) ApprovalCode(approvalCode string) *ExternalApprovalBuilder { 2940 builder.approvalCode = approvalCode 2941 builder.approvalCodeFlag = true 2942 return builder 2943 } 2944 2945 // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称 2946 // 2947 // 示例值:work_group 2948 func (builder *ExternalApprovalBuilder) GroupCode(groupCode string) *ExternalApprovalBuilder { 2949 builder.groupCode = groupCode 2950 builder.groupCodeFlag = true 2951 return builder 2952 } 2953 2954 // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段 2955 // 2956 // 示例值:@i18n@2 2957 func (builder *ExternalApprovalBuilder) GroupName(groupName string) *ExternalApprovalBuilder { 2958 builder.groupName = groupName 2959 builder.groupNameFlag = true 2960 return builder 2961 } 2962 2963 // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段 2964 // 2965 // 示例值:@i18n@2 2966 func (builder *ExternalApprovalBuilder) Description(description string) *ExternalApprovalBuilder { 2967 builder.description = description 2968 builder.descriptionFlag = true 2969 return builder 2970 } 2971 2972 // 三方审批相关 2973 // 2974 // 示例值: 2975 func (builder *ExternalApprovalBuilder) External(external *ApprovalCreateExternal) *ExternalApprovalBuilder { 2976 builder.external = external 2977 builder.externalFlag = true 2978 return builder 2979 } 2980 2981 // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见 2982 // 2983 // 示例值: 2984 func (builder *ExternalApprovalBuilder) Viewers(viewers []*ApprovalCreateViewers) *ExternalApprovalBuilder { 2985 builder.viewers = viewers 2986 builder.viewersFlag = true 2987 return builder 2988 } 2989 2990 // 国际化文案 2991 // 2992 // 示例值: 2993 func (builder *ExternalApprovalBuilder) I18nResources(i18nResources []*I18nResource) *ExternalApprovalBuilder { 2994 builder.i18nResources = i18nResources 2995 builder.i18nResourcesFlag = true 2996 return builder 2997 } 2998 2999 // 根据user_id_type填写流程管理员id 3000 // 3001 // 示例值:19a294c2 3002 func (builder *ExternalApprovalBuilder) Managers(managers []string) *ExternalApprovalBuilder { 3003 builder.managers = managers 3004 builder.managersFlag = true 3005 return builder 3006 } 3007 3008 func (builder *ExternalApprovalBuilder) Build() *ExternalApproval { 3009 req := &ExternalApproval{} 3010 if builder.approvalNameFlag { 3011 req.ApprovalName = &builder.approvalName 3012 3013 } 3014 if builder.approvalCodeFlag { 3015 req.ApprovalCode = &builder.approvalCode 3016 3017 } 3018 if builder.groupCodeFlag { 3019 req.GroupCode = &builder.groupCode 3020 3021 } 3022 if builder.groupNameFlag { 3023 req.GroupName = &builder.groupName 3024 3025 } 3026 if builder.descriptionFlag { 3027 req.Description = &builder.description 3028 3029 } 3030 if builder.externalFlag { 3031 req.External = builder.external 3032 } 3033 if builder.viewersFlag { 3034 req.Viewers = builder.viewers 3035 } 3036 if builder.i18nResourcesFlag { 3037 req.I18nResources = builder.i18nResources 3038 } 3039 if builder.managersFlag { 3040 req.Managers = builder.managers 3041 } 3042 return req 3043 } 3044 3045 type ExternalInstance struct { 3046 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段 3047 Status *string `json:"status,omitempty"` // 审批实例状态 3048 Extra *string `json:"extra,omitempty"` // 审批实例扩展 JSON 3049 InstanceId *string `json:"instance_id,omitempty"` // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一 3050 Links *ExternalInstanceLink `json:"links,omitempty"` // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3051 Title *string `json:"title,omitempty"` // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称 3052 Form []*ExternalInstanceForm `json:"form,omitempty"` // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符 3053 UserId *string `json:"user_id,omitempty"` // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。 3054 UserName *string `json:"user_name,omitempty"` // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称 3055 OpenId *string `json:"open_id,omitempty"` // 审批发起人 open id,和 user id 二选一 3056 DepartmentId *string `json:"department_id,omitempty"` // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称 3057 DepartmentName *string `json:"department_name,omitempty"` // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称 3058 StartTime *string `json:"start_time,omitempty"` // 审批发起时间,Unix毫秒时间戳 3059 EndTime *string `json:"end_time,omitempty"` // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳 3060 UpdateTime *string `json:"update_time,omitempty"` // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据 3061 DisplayMethod *string `json:"display_method,omitempty"` // 列表页打开审批实例的方式 3062 UpdateMode *string `json:"update_mode,omitempty"` // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据 3063 TaskList []*ExternalInstanceTaskNode `json:"task_list,omitempty"` // 任务列表 3064 CcList []*CcNode `json:"cc_list,omitempty"` // 抄送列表 3065 I18nResources []*I18nResource `json:"i18n_resources,omitempty"` // 国际化文案 3066 TrusteeshipUrlToken *string `json:"trusteeship_url_token,omitempty"` // 单据托管认证token,托管回调会附带此token,帮助业务方认证 3067 TrusteeshipUserIdType *string `json:"trusteeship_user_id_type,omitempty"` // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id" 3068 TrusteeshipUrls *TrusteeshipUrls `json:"trusteeship_urls,omitempty"` // 单据托管回调接入方的接口的URL地址 3069 } 3070 3071 type ExternalInstanceBuilder struct { 3072 approvalCode string // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段 3073 approvalCodeFlag bool 3074 status string // 审批实例状态 3075 statusFlag bool 3076 extra string // 审批实例扩展 JSON 3077 extraFlag bool 3078 instanceId string // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一 3079 instanceIdFlag bool 3080 links *ExternalInstanceLink // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3081 linksFlag bool 3082 title string // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称 3083 titleFlag bool 3084 form []*ExternalInstanceForm // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符 3085 formFlag bool 3086 userId string // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。 3087 userIdFlag bool 3088 userName string // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称 3089 userNameFlag bool 3090 openId string // 审批发起人 open id,和 user id 二选一 3091 openIdFlag bool 3092 departmentId string // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称 3093 departmentIdFlag bool 3094 departmentName string // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称 3095 departmentNameFlag bool 3096 startTime string // 审批发起时间,Unix毫秒时间戳 3097 startTimeFlag bool 3098 endTime string // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳 3099 endTimeFlag bool 3100 updateTime string // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据 3101 updateTimeFlag bool 3102 displayMethod string // 列表页打开审批实例的方式 3103 displayMethodFlag bool 3104 updateMode string // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据 3105 updateModeFlag bool 3106 taskList []*ExternalInstanceTaskNode // 任务列表 3107 taskListFlag bool 3108 ccList []*CcNode // 抄送列表 3109 ccListFlag bool 3110 i18nResources []*I18nResource // 国际化文案 3111 i18nResourcesFlag bool 3112 trusteeshipUrlToken string // 单据托管认证token,托管回调会附带此token,帮助业务方认证 3113 trusteeshipUrlTokenFlag bool 3114 trusteeshipUserIdType string // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id" 3115 trusteeshipUserIdTypeFlag bool 3116 trusteeshipUrls *TrusteeshipUrls // 单据托管回调接入方的接口的URL地址 3117 trusteeshipUrlsFlag bool 3118 } 3119 3120 func NewExternalInstanceBuilder() *ExternalInstanceBuilder { 3121 builder := &ExternalInstanceBuilder{} 3122 return builder 3123 } 3124 3125 // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段 3126 // 3127 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 3128 func (builder *ExternalInstanceBuilder) ApprovalCode(approvalCode string) *ExternalInstanceBuilder { 3129 builder.approvalCode = approvalCode 3130 builder.approvalCodeFlag = true 3131 return builder 3132 } 3133 3134 // 审批实例状态 3135 // 3136 // 示例值:PENDING 3137 func (builder *ExternalInstanceBuilder) Status(status string) *ExternalInstanceBuilder { 3138 builder.status = status 3139 builder.statusFlag = true 3140 return builder 3141 } 3142 3143 // 审批实例扩展 JSON 3144 // 3145 // 示例值:{\"xxx\":\"xxx\"} 3146 func (builder *ExternalInstanceBuilder) Extra(extra string) *ExternalInstanceBuilder { 3147 builder.extra = extra 3148 builder.extraFlag = true 3149 return builder 3150 } 3151 3152 // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一 3153 // 3154 // 示例值:24492654 3155 func (builder *ExternalInstanceBuilder) InstanceId(instanceId string) *ExternalInstanceBuilder { 3156 builder.instanceId = instanceId 3157 builder.instanceIdFlag = true 3158 return builder 3159 } 3160 3161 // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3162 // 3163 // 示例值: 3164 func (builder *ExternalInstanceBuilder) Links(links *ExternalInstanceLink) *ExternalInstanceBuilder { 3165 builder.links = links 3166 builder.linksFlag = true 3167 return builder 3168 } 3169 3170 // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称 3171 // 3172 // 示例值:@i18n@1 3173 func (builder *ExternalInstanceBuilder) Title(title string) *ExternalInstanceBuilder { 3174 builder.title = title 3175 builder.titleFlag = true 3176 return builder 3177 } 3178 3179 // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符 3180 // 3181 // 示例值:[{ "name": "@i18n@2", "value": "@i18n@3" }] 3182 func (builder *ExternalInstanceBuilder) Form(form []*ExternalInstanceForm) *ExternalInstanceBuilder { 3183 builder.form = form 3184 builder.formFlag = true 3185 return builder 3186 } 3187 3188 // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。 3189 // 3190 // 示例值:a987sf9s 3191 func (builder *ExternalInstanceBuilder) UserId(userId string) *ExternalInstanceBuilder { 3192 builder.userId = userId 3193 builder.userIdFlag = true 3194 return builder 3195 } 3196 3197 // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称 3198 // 3199 // 示例值:@i18n@9 3200 func (builder *ExternalInstanceBuilder) UserName(userName string) *ExternalInstanceBuilder { 3201 builder.userName = userName 3202 builder.userNameFlag = true 3203 return builder 3204 } 3205 3206 // 审批发起人 open id,和 user id 二选一 3207 // 3208 // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1 3209 func (builder *ExternalInstanceBuilder) OpenId(openId string) *ExternalInstanceBuilder { 3210 builder.openId = openId 3211 builder.openIdFlag = true 3212 return builder 3213 } 3214 3215 // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称 3216 // 3217 // 示例值:od-8ec33278bc2 3218 func (builder *ExternalInstanceBuilder) DepartmentId(departmentId string) *ExternalInstanceBuilder { 3219 builder.departmentId = departmentId 3220 builder.departmentIdFlag = true 3221 return builder 3222 } 3223 3224 // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称 3225 // 3226 // 示例值:@i18n@10 3227 func (builder *ExternalInstanceBuilder) DepartmentName(departmentName string) *ExternalInstanceBuilder { 3228 builder.departmentName = departmentName 3229 builder.departmentNameFlag = true 3230 return builder 3231 } 3232 3233 // 审批发起时间,Unix毫秒时间戳 3234 // 3235 // 示例值:1556468012678 3236 func (builder *ExternalInstanceBuilder) StartTime(startTime string) *ExternalInstanceBuilder { 3237 builder.startTime = startTime 3238 builder.startTimeFlag = true 3239 return builder 3240 } 3241 3242 // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳 3243 // 3244 // 示例值:1556468012678 3245 func (builder *ExternalInstanceBuilder) EndTime(endTime string) *ExternalInstanceBuilder { 3246 builder.endTime = endTime 3247 builder.endTimeFlag = true 3248 return builder 3249 } 3250 3251 // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据 3252 // 3253 // 示例值:1556468012678 3254 func (builder *ExternalInstanceBuilder) UpdateTime(updateTime string) *ExternalInstanceBuilder { 3255 builder.updateTime = updateTime 3256 builder.updateTimeFlag = true 3257 return builder 3258 } 3259 3260 // 列表页打开审批实例的方式 3261 // 3262 // 示例值:BROWSER 3263 func (builder *ExternalInstanceBuilder) DisplayMethod(displayMethod string) *ExternalInstanceBuilder { 3264 builder.displayMethod = displayMethod 3265 builder.displayMethodFlag = true 3266 return builder 3267 } 3268 3269 // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据 3270 // 3271 // 示例值:UPDATE 3272 func (builder *ExternalInstanceBuilder) UpdateMode(updateMode string) *ExternalInstanceBuilder { 3273 builder.updateMode = updateMode 3274 builder.updateModeFlag = true 3275 return builder 3276 } 3277 3278 // 任务列表 3279 // 3280 // 示例值: 3281 func (builder *ExternalInstanceBuilder) TaskList(taskList []*ExternalInstanceTaskNode) *ExternalInstanceBuilder { 3282 builder.taskList = taskList 3283 builder.taskListFlag = true 3284 return builder 3285 } 3286 3287 // 抄送列表 3288 // 3289 // 示例值: 3290 func (builder *ExternalInstanceBuilder) CcList(ccList []*CcNode) *ExternalInstanceBuilder { 3291 builder.ccList = ccList 3292 builder.ccListFlag = true 3293 return builder 3294 } 3295 3296 // 国际化文案 3297 // 3298 // 示例值: 3299 func (builder *ExternalInstanceBuilder) I18nResources(i18nResources []*I18nResource) *ExternalInstanceBuilder { 3300 builder.i18nResources = i18nResources 3301 builder.i18nResourcesFlag = true 3302 return builder 3303 } 3304 3305 // 单据托管认证token,托管回调会附带此token,帮助业务方认证 3306 // 3307 // 示例值:788981c886b1c28ac29d1e68efd60683d6d90dfce80938ee9453e2a5f3e9e306 3308 func (builder *ExternalInstanceBuilder) TrusteeshipUrlToken(trusteeshipUrlToken string) *ExternalInstanceBuilder { 3309 builder.trusteeshipUrlToken = trusteeshipUrlToken 3310 builder.trusteeshipUrlTokenFlag = true 3311 return builder 3312 } 3313 3314 // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id" 3315 // 3316 // 示例值:user_id 3317 func (builder *ExternalInstanceBuilder) TrusteeshipUserIdType(trusteeshipUserIdType string) *ExternalInstanceBuilder { 3318 builder.trusteeshipUserIdType = trusteeshipUserIdType 3319 builder.trusteeshipUserIdTypeFlag = true 3320 return builder 3321 } 3322 3323 // 单据托管回调接入方的接口的URL地址 3324 // 3325 // 示例值: 3326 func (builder *ExternalInstanceBuilder) TrusteeshipUrls(trusteeshipUrls *TrusteeshipUrls) *ExternalInstanceBuilder { 3327 builder.trusteeshipUrls = trusteeshipUrls 3328 builder.trusteeshipUrlsFlag = true 3329 return builder 3330 } 3331 3332 func (builder *ExternalInstanceBuilder) Build() *ExternalInstance { 3333 req := &ExternalInstance{} 3334 if builder.approvalCodeFlag { 3335 req.ApprovalCode = &builder.approvalCode 3336 3337 } 3338 if builder.statusFlag { 3339 req.Status = &builder.status 3340 3341 } 3342 if builder.extraFlag { 3343 req.Extra = &builder.extra 3344 3345 } 3346 if builder.instanceIdFlag { 3347 req.InstanceId = &builder.instanceId 3348 3349 } 3350 if builder.linksFlag { 3351 req.Links = builder.links 3352 } 3353 if builder.titleFlag { 3354 req.Title = &builder.title 3355 3356 } 3357 if builder.formFlag { 3358 req.Form = builder.form 3359 } 3360 if builder.userIdFlag { 3361 req.UserId = &builder.userId 3362 3363 } 3364 if builder.userNameFlag { 3365 req.UserName = &builder.userName 3366 3367 } 3368 if builder.openIdFlag { 3369 req.OpenId = &builder.openId 3370 3371 } 3372 if builder.departmentIdFlag { 3373 req.DepartmentId = &builder.departmentId 3374 3375 } 3376 if builder.departmentNameFlag { 3377 req.DepartmentName = &builder.departmentName 3378 3379 } 3380 if builder.startTimeFlag { 3381 req.StartTime = &builder.startTime 3382 3383 } 3384 if builder.endTimeFlag { 3385 req.EndTime = &builder.endTime 3386 3387 } 3388 if builder.updateTimeFlag { 3389 req.UpdateTime = &builder.updateTime 3390 3391 } 3392 if builder.displayMethodFlag { 3393 req.DisplayMethod = &builder.displayMethod 3394 3395 } 3396 if builder.updateModeFlag { 3397 req.UpdateMode = &builder.updateMode 3398 3399 } 3400 if builder.taskListFlag { 3401 req.TaskList = builder.taskList 3402 } 3403 if builder.ccListFlag { 3404 req.CcList = builder.ccList 3405 } 3406 if builder.i18nResourcesFlag { 3407 req.I18nResources = builder.i18nResources 3408 } 3409 if builder.trusteeshipUrlTokenFlag { 3410 req.TrusteeshipUrlToken = &builder.trusteeshipUrlToken 3411 3412 } 3413 if builder.trusteeshipUserIdTypeFlag { 3414 req.TrusteeshipUserIdType = &builder.trusteeshipUserIdType 3415 3416 } 3417 if builder.trusteeshipUrlsFlag { 3418 req.TrusteeshipUrls = builder.trusteeshipUrls 3419 } 3420 return req 3421 } 3422 3423 type ExternalInstanceForm struct { 3424 Name *string `json:"name,omitempty"` // 表单字段名称 3425 Value *string `json:"value,omitempty"` // 表单值 3426 } 3427 3428 type ExternalInstanceFormBuilder struct { 3429 name string // 表单字段名称 3430 nameFlag bool 3431 value string // 表单值 3432 valueFlag bool 3433 } 3434 3435 func NewExternalInstanceFormBuilder() *ExternalInstanceFormBuilder { 3436 builder := &ExternalInstanceFormBuilder{} 3437 return builder 3438 } 3439 3440 // 表单字段名称 3441 // 3442 // 示例值:@i18n@2 3443 func (builder *ExternalInstanceFormBuilder) Name(name string) *ExternalInstanceFormBuilder { 3444 builder.name = name 3445 builder.nameFlag = true 3446 return builder 3447 } 3448 3449 // 表单值 3450 // 3451 // 示例值:@i18n@3 3452 func (builder *ExternalInstanceFormBuilder) Value(value string) *ExternalInstanceFormBuilder { 3453 builder.value = value 3454 builder.valueFlag = true 3455 return builder 3456 } 3457 3458 func (builder *ExternalInstanceFormBuilder) Build() *ExternalInstanceForm { 3459 req := &ExternalInstanceForm{} 3460 if builder.nameFlag { 3461 req.Name = &builder.name 3462 3463 } 3464 if builder.valueFlag { 3465 req.Value = &builder.value 3466 3467 } 3468 return req 3469 } 3470 3471 type ExternalInstanceLink struct { 3472 PcLink *string `json:"pc_link,omitempty"` // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转 3473 MobileLink *string `json:"mobile_link,omitempty"` // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转 3474 } 3475 3476 type ExternalInstanceLinkBuilder struct { 3477 pcLink string // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转 3478 pcLinkFlag bool 3479 mobileLink string // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转 3480 mobileLinkFlag bool 3481 } 3482 3483 func NewExternalInstanceLinkBuilder() *ExternalInstanceLinkBuilder { 3484 builder := &ExternalInstanceLinkBuilder{} 3485 return builder 3486 } 3487 3488 // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转 3489 // 3490 // 示例值:https://applink.feishu.cn/client/mini_program/open?mode=appCenter&appId=cli_9c90fc38e07a9101&path=pc/pages/detail?id=1234 3491 func (builder *ExternalInstanceLinkBuilder) PcLink(pcLink string) *ExternalInstanceLinkBuilder { 3492 builder.pcLink = pcLink 3493 builder.pcLinkFlag = true 3494 return builder 3495 } 3496 3497 // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转 3498 // 3499 // 示例值:https://applink.feishu.cn/client/mini_program/open?appId=cli_9c90fc38e07a9101&path=pages/detail?id=1234 3500 func (builder *ExternalInstanceLinkBuilder) MobileLink(mobileLink string) *ExternalInstanceLinkBuilder { 3501 builder.mobileLink = mobileLink 3502 builder.mobileLinkFlag = true 3503 return builder 3504 } 3505 3506 func (builder *ExternalInstanceLinkBuilder) Build() *ExternalInstanceLink { 3507 req := &ExternalInstanceLink{} 3508 if builder.pcLinkFlag { 3509 req.PcLink = &builder.pcLink 3510 3511 } 3512 if builder.mobileLinkFlag { 3513 req.MobileLink = &builder.mobileLink 3514 3515 } 3516 return req 3517 } 3518 3519 type ExternalInstanceTask struct { 3520 TaskId *string `json:"task_id,omitempty"` // 任务 id 3521 UpdateTime *string `json:"update_time,omitempty"` // 任务最近更新时间 3522 } 3523 3524 type ExternalInstanceTaskBuilder struct { 3525 taskId string // 任务 id 3526 taskIdFlag bool 3527 updateTime string // 任务最近更新时间 3528 updateTimeFlag bool 3529 } 3530 3531 func NewExternalInstanceTaskBuilder() *ExternalInstanceTaskBuilder { 3532 builder := &ExternalInstanceTaskBuilder{} 3533 return builder 3534 } 3535 3536 // 任务 id 3537 // 3538 // 示例值:112253 3539 func (builder *ExternalInstanceTaskBuilder) TaskId(taskId string) *ExternalInstanceTaskBuilder { 3540 builder.taskId = taskId 3541 builder.taskIdFlag = true 3542 return builder 3543 } 3544 3545 // 任务最近更新时间 3546 // 3547 // 示例值:1591603040000 3548 func (builder *ExternalInstanceTaskBuilder) UpdateTime(updateTime string) *ExternalInstanceTaskBuilder { 3549 builder.updateTime = updateTime 3550 builder.updateTimeFlag = true 3551 return builder 3552 } 3553 3554 func (builder *ExternalInstanceTaskBuilder) Build() *ExternalInstanceTask { 3555 req := &ExternalInstanceTask{} 3556 if builder.taskIdFlag { 3557 req.TaskId = &builder.taskId 3558 3559 } 3560 if builder.updateTimeFlag { 3561 req.UpdateTime = &builder.updateTime 3562 3563 } 3564 return req 3565 } 3566 3567 type ExternalInstanceTaskNode struct { 3568 TaskId *string `json:"task_id,omitempty"` // 审批实例内的唯一标识,用于更新审批任务时定位数据 3569 UserId *string `json:"user_id,omitempty"` // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中 3570 OpenId *string `json:"open_id,omitempty"` // 审批人 open id,和 user id 二选一 3571 Title *string `json:"title,omitempty"` // 审批任务名称 3572 Links *ExternalInstanceLink `json:"links,omitempty"` // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3573 Status *string `json:"status,omitempty"` // 任务状态 3574 Extra *string `json:"extra,omitempty"` // 扩展 json 3575 CreateTime *string `json:"create_time,omitempty"` // 任务创建时间,Unix 毫秒时间戳 3576 EndTime *string `json:"end_time,omitempty"` // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳 3577 UpdateTime *string `json:"update_time,omitempty"` // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time 3578 ActionContext *string `json:"action_context,omitempty"` // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据 3579 ActionConfigs []*ActionConfig `json:"action_configs,omitempty"` // 任务级别操作配置,快捷审批目前支持移动端操作 3580 DisplayMethod *string `json:"display_method,omitempty"` // 列表页打开审批任务的方式 3581 ExcludeStatistics *bool `json:"exclude_statistics,omitempty"` // 三方任务支持不纳入效率统计 3582 } 3583 3584 type ExternalInstanceTaskNodeBuilder struct { 3585 taskId string // 审批实例内的唯一标识,用于更新审批任务时定位数据 3586 taskIdFlag bool 3587 userId string // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中 3588 userIdFlag bool 3589 openId string // 审批人 open id,和 user id 二选一 3590 openIdFlag bool 3591 title string // 审批任务名称 3592 titleFlag bool 3593 links *ExternalInstanceLink // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3594 linksFlag bool 3595 status string // 任务状态 3596 statusFlag bool 3597 extra string // 扩展 json 3598 extraFlag bool 3599 createTime string // 任务创建时间,Unix 毫秒时间戳 3600 createTimeFlag bool 3601 endTime string // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳 3602 endTimeFlag bool 3603 updateTime string // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time 3604 updateTimeFlag bool 3605 actionContext string // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据 3606 actionContextFlag bool 3607 actionConfigs []*ActionConfig // 任务级别操作配置,快捷审批目前支持移动端操作 3608 actionConfigsFlag bool 3609 displayMethod string // 列表页打开审批任务的方式 3610 displayMethodFlag bool 3611 excludeStatistics bool // 三方任务支持不纳入效率统计 3612 excludeStatisticsFlag bool 3613 } 3614 3615 func NewExternalInstanceTaskNodeBuilder() *ExternalInstanceTaskNodeBuilder { 3616 builder := &ExternalInstanceTaskNodeBuilder{} 3617 return builder 3618 } 3619 3620 // 审批实例内的唯一标识,用于更新审批任务时定位数据 3621 // 3622 // 示例值:112534 3623 func (builder *ExternalInstanceTaskNodeBuilder) TaskId(taskId string) *ExternalInstanceTaskNodeBuilder { 3624 builder.taskId = taskId 3625 builder.taskIdFlag = true 3626 return builder 3627 } 3628 3629 // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中 3630 // 3631 // 示例值:a987sf9s 3632 func (builder *ExternalInstanceTaskNodeBuilder) UserId(userId string) *ExternalInstanceTaskNodeBuilder { 3633 builder.userId = userId 3634 builder.userIdFlag = true 3635 return builder 3636 } 3637 3638 // 审批人 open id,和 user id 二选一 3639 // 3640 // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1 3641 func (builder *ExternalInstanceTaskNodeBuilder) OpenId(openId string) *ExternalInstanceTaskNodeBuilder { 3642 builder.openId = openId 3643 builder.openIdFlag = true 3644 return builder 3645 } 3646 3647 // 审批任务名称 3648 // 3649 // 示例值:i18n1 3650 func (builder *ExternalInstanceTaskNodeBuilder) Title(title string) *ExternalInstanceTaskNodeBuilder { 3651 builder.title = title 3652 builder.titleFlag = true 3653 return builder 3654 } 3655 3656 // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响 3657 // 3658 // 示例值: 3659 func (builder *ExternalInstanceTaskNodeBuilder) Links(links *ExternalInstanceLink) *ExternalInstanceTaskNodeBuilder { 3660 builder.links = links 3661 builder.linksFlag = true 3662 return builder 3663 } 3664 3665 // 任务状态 3666 // 3667 // 示例值:PENDING 3668 func (builder *ExternalInstanceTaskNodeBuilder) Status(status string) *ExternalInstanceTaskNodeBuilder { 3669 builder.status = status 3670 builder.statusFlag = true 3671 return builder 3672 } 3673 3674 // 扩展 json 3675 // 3676 // 示例值:{\"xxx\":\"xxx\"} 3677 func (builder *ExternalInstanceTaskNodeBuilder) Extra(extra string) *ExternalInstanceTaskNodeBuilder { 3678 builder.extra = extra 3679 builder.extraFlag = true 3680 return builder 3681 } 3682 3683 // 任务创建时间,Unix 毫秒时间戳 3684 // 3685 // 示例值:1556468012678 3686 func (builder *ExternalInstanceTaskNodeBuilder) CreateTime(createTime string) *ExternalInstanceTaskNodeBuilder { 3687 builder.createTime = createTime 3688 builder.createTimeFlag = true 3689 return builder 3690 } 3691 3692 // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳 3693 // 3694 // 示例值:1556468012678 3695 func (builder *ExternalInstanceTaskNodeBuilder) EndTime(endTime string) *ExternalInstanceTaskNodeBuilder { 3696 builder.endTime = endTime 3697 builder.endTimeFlag = true 3698 return builder 3699 } 3700 3701 // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time 3702 // 3703 // 示例值:1556468012678 3704 func (builder *ExternalInstanceTaskNodeBuilder) UpdateTime(updateTime string) *ExternalInstanceTaskNodeBuilder { 3705 builder.updateTime = updateTime 3706 builder.updateTimeFlag = true 3707 return builder 3708 } 3709 3710 // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据 3711 // 3712 // 示例值:123456 3713 func (builder *ExternalInstanceTaskNodeBuilder) ActionContext(actionContext string) *ExternalInstanceTaskNodeBuilder { 3714 builder.actionContext = actionContext 3715 builder.actionContextFlag = true 3716 return builder 3717 } 3718 3719 // 任务级别操作配置,快捷审批目前支持移动端操作 3720 // 3721 // 示例值: 3722 func (builder *ExternalInstanceTaskNodeBuilder) ActionConfigs(actionConfigs []*ActionConfig) *ExternalInstanceTaskNodeBuilder { 3723 builder.actionConfigs = actionConfigs 3724 builder.actionConfigsFlag = true 3725 return builder 3726 } 3727 3728 // 列表页打开审批任务的方式 3729 // 3730 // 示例值:BROWSER 3731 func (builder *ExternalInstanceTaskNodeBuilder) DisplayMethod(displayMethod string) *ExternalInstanceTaskNodeBuilder { 3732 builder.displayMethod = displayMethod 3733 builder.displayMethodFlag = true 3734 return builder 3735 } 3736 3737 // 三方任务支持不纳入效率统计 3738 // 3739 // 示例值:true 3740 func (builder *ExternalInstanceTaskNodeBuilder) ExcludeStatistics(excludeStatistics bool) *ExternalInstanceTaskNodeBuilder { 3741 builder.excludeStatistics = excludeStatistics 3742 builder.excludeStatisticsFlag = true 3743 return builder 3744 } 3745 3746 func (builder *ExternalInstanceTaskNodeBuilder) Build() *ExternalInstanceTaskNode { 3747 req := &ExternalInstanceTaskNode{} 3748 if builder.taskIdFlag { 3749 req.TaskId = &builder.taskId 3750 3751 } 3752 if builder.userIdFlag { 3753 req.UserId = &builder.userId 3754 3755 } 3756 if builder.openIdFlag { 3757 req.OpenId = &builder.openId 3758 3759 } 3760 if builder.titleFlag { 3761 req.Title = &builder.title 3762 3763 } 3764 if builder.linksFlag { 3765 req.Links = builder.links 3766 } 3767 if builder.statusFlag { 3768 req.Status = &builder.status 3769 3770 } 3771 if builder.extraFlag { 3772 req.Extra = &builder.extra 3773 3774 } 3775 if builder.createTimeFlag { 3776 req.CreateTime = &builder.createTime 3777 3778 } 3779 if builder.endTimeFlag { 3780 req.EndTime = &builder.endTime 3781 3782 } 3783 if builder.updateTimeFlag { 3784 req.UpdateTime = &builder.updateTime 3785 3786 } 3787 if builder.actionContextFlag { 3788 req.ActionContext = &builder.actionContext 3789 3790 } 3791 if builder.actionConfigsFlag { 3792 req.ActionConfigs = builder.actionConfigs 3793 } 3794 if builder.displayMethodFlag { 3795 req.DisplayMethod = &builder.displayMethod 3796 3797 } 3798 if builder.excludeStatisticsFlag { 3799 req.ExcludeStatistics = &builder.excludeStatistics 3800 3801 } 3802 return req 3803 } 3804 3805 type ExternalTaskItem struct { 3806 Id *string `json:"id,omitempty"` // 审批任务 ID 3807 Status *string `json:"status,omitempty"` // 审批任务状态 3808 UpdateTime *string `json:"update_time,omitempty"` // 审批任务最后更新时间,单位 毫秒 3809 } 3810 3811 type ExternalTaskItemBuilder struct { 3812 id string // 审批任务 ID 3813 idFlag bool 3814 status string // 审批任务状态 3815 statusFlag bool 3816 updateTime string // 审批任务最后更新时间,单位 毫秒 3817 updateTimeFlag bool 3818 } 3819 3820 func NewExternalTaskItemBuilder() *ExternalTaskItemBuilder { 3821 builder := &ExternalTaskItemBuilder{} 3822 return builder 3823 } 3824 3825 // 审批任务 ID 3826 // 3827 // 示例值:310 3828 func (builder *ExternalTaskItemBuilder) Id(id string) *ExternalTaskItemBuilder { 3829 builder.id = id 3830 builder.idFlag = true 3831 return builder 3832 } 3833 3834 // 审批任务状态 3835 // 3836 // 示例值:PENDING 3837 func (builder *ExternalTaskItemBuilder) Status(status string) *ExternalTaskItemBuilder { 3838 builder.status = status 3839 builder.statusFlag = true 3840 return builder 3841 } 3842 3843 // 审批任务最后更新时间,单位 毫秒 3844 // 3845 // 示例值:1621863215000 3846 func (builder *ExternalTaskItemBuilder) UpdateTime(updateTime string) *ExternalTaskItemBuilder { 3847 builder.updateTime = updateTime 3848 builder.updateTimeFlag = true 3849 return builder 3850 } 3851 3852 func (builder *ExternalTaskItemBuilder) Build() *ExternalTaskItem { 3853 req := &ExternalTaskItem{} 3854 if builder.idFlag { 3855 req.Id = &builder.id 3856 3857 } 3858 if builder.statusFlag { 3859 req.Status = &builder.status 3860 3861 } 3862 if builder.updateTimeFlag { 3863 req.UpdateTime = &builder.updateTime 3864 3865 } 3866 return req 3867 } 3868 3869 type ExternalTaskList struct { 3870 InstanceId *string `json:"instance_id,omitempty"` // 审批实例 ID 3871 ApprovalId *string `json:"approval_id,omitempty"` // 审批的id 3872 ApprovalCode *string `json:"approval_code,omitempty"` // 审批对应的 approval_code 3873 Status *string `json:"status,omitempty"` // 审批实例当前的状态 3874 UpdateTime *string `json:"update_time,omitempty"` // 审批实例最后更新时间,单位 毫秒 3875 Tasks []*ExternalTaskItem `json:"tasks,omitempty"` // 审批实例下的审批任务 3876 } 3877 3878 type ExternalTaskListBuilder struct { 3879 instanceId string // 审批实例 ID 3880 instanceIdFlag bool 3881 approvalId string // 审批的id 3882 approvalIdFlag bool 3883 approvalCode string // 审批对应的 approval_code 3884 approvalCodeFlag bool 3885 status string // 审批实例当前的状态 3886 statusFlag bool 3887 updateTime string // 审批实例最后更新时间,单位 毫秒 3888 updateTimeFlag bool 3889 tasks []*ExternalTaskItem // 审批实例下的审批任务 3890 tasksFlag bool 3891 } 3892 3893 func NewExternalTaskListBuilder() *ExternalTaskListBuilder { 3894 builder := &ExternalTaskListBuilder{} 3895 return builder 3896 } 3897 3898 // 审批实例 ID 3899 // 3900 // 示例值:29075 3901 func (builder *ExternalTaskListBuilder) InstanceId(instanceId string) *ExternalTaskListBuilder { 3902 builder.instanceId = instanceId 3903 builder.instanceIdFlag = true 3904 return builder 3905 } 3906 3907 // 审批的id 3908 // 3909 // 示例值:fwwweffff33111133xxx 3910 func (builder *ExternalTaskListBuilder) ApprovalId(approvalId string) *ExternalTaskListBuilder { 3911 builder.approvalId = approvalId 3912 builder.approvalIdFlag = true 3913 return builder 3914 } 3915 3916 // 审批对应的 approval_code 3917 // 3918 // 示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6 3919 func (builder *ExternalTaskListBuilder) ApprovalCode(approvalCode string) *ExternalTaskListBuilder { 3920 builder.approvalCode = approvalCode 3921 builder.approvalCodeFlag = true 3922 return builder 3923 } 3924 3925 // 审批实例当前的状态 3926 // 3927 // 示例值:PENDING 3928 func (builder *ExternalTaskListBuilder) Status(status string) *ExternalTaskListBuilder { 3929 builder.status = status 3930 builder.statusFlag = true 3931 return builder 3932 } 3933 3934 // 审批实例最后更新时间,单位 毫秒 3935 // 3936 // 示例值:1621863215000 3937 func (builder *ExternalTaskListBuilder) UpdateTime(updateTime string) *ExternalTaskListBuilder { 3938 builder.updateTime = updateTime 3939 builder.updateTimeFlag = true 3940 return builder 3941 } 3942 3943 // 审批实例下的审批任务 3944 // 3945 // 示例值: 3946 func (builder *ExternalTaskListBuilder) Tasks(tasks []*ExternalTaskItem) *ExternalTaskListBuilder { 3947 builder.tasks = tasks 3948 builder.tasksFlag = true 3949 return builder 3950 } 3951 3952 func (builder *ExternalTaskListBuilder) Build() *ExternalTaskList { 3953 req := &ExternalTaskList{} 3954 if builder.instanceIdFlag { 3955 req.InstanceId = &builder.instanceId 3956 3957 } 3958 if builder.approvalIdFlag { 3959 req.ApprovalId = &builder.approvalId 3960 3961 } 3962 if builder.approvalCodeFlag { 3963 req.ApprovalCode = &builder.approvalCode 3964 3965 } 3966 if builder.statusFlag { 3967 req.Status = &builder.status 3968 3969 } 3970 if builder.updateTimeFlag { 3971 req.UpdateTime = &builder.updateTime 3972 3973 } 3974 if builder.tasksFlag { 3975 req.Tasks = builder.tasks 3976 } 3977 return req 3978 } 3979 3980 type FieldGroup struct { 3981 Writable []string `json:"writable,omitempty"` // 可写权限的表单项的 id列表 3982 Readable []string `json:"readable,omitempty"` // 可读权限的表单项的 id列表 3983 } 3984 3985 type FieldGroupBuilder struct { 3986 writable []string // 可写权限的表单项的 id列表 3987 writableFlag bool 3988 readable []string // 可读权限的表单项的 id列表 3989 readableFlag bool 3990 } 3991 3992 func NewFieldGroupBuilder() *FieldGroupBuilder { 3993 builder := &FieldGroupBuilder{} 3994 return builder 3995 } 3996 3997 // 可写权限的表单项的 id列表 3998 // 3999 // 示例值:9293493 4000 func (builder *FieldGroupBuilder) Writable(writable []string) *FieldGroupBuilder { 4001 builder.writable = writable 4002 builder.writableFlag = true 4003 return builder 4004 } 4005 4006 // 可读权限的表单项的 id列表 4007 // 4008 // 示例值:9293493 4009 func (builder *FieldGroupBuilder) Readable(readable []string) *FieldGroupBuilder { 4010 builder.readable = readable 4011 builder.readableFlag = true 4012 return builder 4013 } 4014 4015 func (builder *FieldGroupBuilder) Build() *FieldGroup { 4016 req := &FieldGroup{} 4017 if builder.writableFlag { 4018 req.Writable = builder.writable 4019 } 4020 if builder.readableFlag { 4021 req.Readable = builder.readable 4022 } 4023 return req 4024 } 4025 4026 type File struct { 4027 Url *string `json:"url,omitempty"` // 附件路径 4028 FileSize *int `json:"file_size,omitempty"` // 附件大小 4029 Title *string `json:"title,omitempty"` // 附件标题 4030 Type *string `json:"type,omitempty"` // 附件类别 4031 } 4032 4033 type FileBuilder struct { 4034 url string // 附件路径 4035 urlFlag bool 4036 fileSize int // 附件大小 4037 fileSizeFlag bool 4038 title string // 附件标题 4039 titleFlag bool 4040 type_ string // 附件类别 4041 typeFlag bool 4042 } 4043 4044 func NewFileBuilder() *FileBuilder { 4045 builder := &FileBuilder{} 4046 return builder 4047 } 4048 4049 // 附件路径 4050 // 4051 // 示例值:https://p3-approval-sign.byteimg.com/lark-approval-attachment/image/20220714/1/332f3596-0845-4746-a4bc-818d54ad435b.png~tplv-ottatrvjsm-image.image?x-expires=1659033558&x-signature=6edF3k%2BaHeAuvfcBRGOkbckoUl4%3D#.png 4052 func (builder *FileBuilder) Url(url string) *FileBuilder { 4053 builder.url = url 4054 builder.urlFlag = true 4055 return builder 4056 } 4057 4058 // 附件大小 4059 // 4060 // 示例值:186823 4061 func (builder *FileBuilder) FileSize(fileSize int) *FileBuilder { 4062 builder.fileSize = fileSize 4063 builder.fileSizeFlag = true 4064 return builder 4065 } 4066 4067 // 附件标题 4068 // 4069 // 示例值:e018906140ed9388234bd03b0.png 4070 func (builder *FileBuilder) Title(title string) *FileBuilder { 4071 builder.title = title 4072 builder.titleFlag = true 4073 return builder 4074 } 4075 4076 // 附件类别 4077 // 4078 // 示例值:image 4079 func (builder *FileBuilder) Type(type_ string) *FileBuilder { 4080 builder.type_ = type_ 4081 builder.typeFlag = true 4082 return builder 4083 } 4084 4085 func (builder *FileBuilder) Build() *File { 4086 req := &File{} 4087 if builder.urlFlag { 4088 req.Url = &builder.url 4089 4090 } 4091 if builder.fileSizeFlag { 4092 req.FileSize = &builder.fileSize 4093 4094 } 4095 if builder.titleFlag { 4096 req.Title = &builder.title 4097 4098 } 4099 if builder.typeFlag { 4100 req.Type = &builder.type_ 4101 4102 } 4103 return req 4104 } 4105 4106 type I18nResource struct { 4107 Locale *string `json:"locale,omitempty"` // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文 4108 Texts []*I18nResourceText `json:"texts,omitempty"` // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。 4109 IsDefault *bool `json:"is_default,omitempty"` // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替 4110 } 4111 4112 type I18nResourceBuilder struct { 4113 locale string // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文 4114 localeFlag bool 4115 texts []*I18nResourceText // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。 4116 textsFlag bool 4117 isDefault bool // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替 4118 isDefaultFlag bool 4119 } 4120 4121 func NewI18nResourceBuilder() *I18nResourceBuilder { 4122 builder := &I18nResourceBuilder{} 4123 return builder 4124 } 4125 4126 // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文 4127 // 4128 // 示例值:zh-CN 4129 func (builder *I18nResourceBuilder) Locale(locale string) *I18nResourceBuilder { 4130 builder.locale = locale 4131 builder.localeFlag = true 4132 return builder 4133 } 4134 4135 // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。 4136 // 4137 // 示例值:{ "@i18n@1": "权限申请", "@i18n@2": "OA审批", "@i18n@3": "Permission" } 4138 func (builder *I18nResourceBuilder) Texts(texts []*I18nResourceText) *I18nResourceBuilder { 4139 builder.texts = texts 4140 builder.textsFlag = true 4141 return builder 4142 } 4143 4144 // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替 4145 // 4146 // 示例值:true 4147 func (builder *I18nResourceBuilder) IsDefault(isDefault bool) *I18nResourceBuilder { 4148 builder.isDefault = isDefault 4149 builder.isDefaultFlag = true 4150 return builder 4151 } 4152 4153 func (builder *I18nResourceBuilder) Build() *I18nResource { 4154 req := &I18nResource{} 4155 if builder.localeFlag { 4156 req.Locale = &builder.locale 4157 4158 } 4159 if builder.textsFlag { 4160 req.Texts = builder.texts 4161 } 4162 if builder.isDefaultFlag { 4163 req.IsDefault = &builder.isDefault 4164 4165 } 4166 return req 4167 } 4168 4169 type I18nResourceText struct { 4170 Key *string `json:"key,omitempty"` // 文案key 4171 Value *string `json:"value,omitempty"` // 文案 4172 } 4173 4174 type I18nResourceTextBuilder struct { 4175 key string // 文案key 4176 keyFlag bool 4177 value string // 文案 4178 valueFlag bool 4179 } 4180 4181 func NewI18nResourceTextBuilder() *I18nResourceTextBuilder { 4182 builder := &I18nResourceTextBuilder{} 4183 return builder 4184 } 4185 4186 // 文案key 4187 // 4188 // 示例值:@i18n@1 4189 func (builder *I18nResourceTextBuilder) Key(key string) *I18nResourceTextBuilder { 4190 builder.key = key 4191 builder.keyFlag = true 4192 return builder 4193 } 4194 4195 // 文案 4196 // 4197 // 示例值:people 4198 func (builder *I18nResourceTextBuilder) Value(value string) *I18nResourceTextBuilder { 4199 builder.value = value 4200 builder.valueFlag = true 4201 return builder 4202 } 4203 4204 func (builder *I18nResourceTextBuilder) Build() *I18nResourceText { 4205 req := &I18nResourceText{} 4206 if builder.keyFlag { 4207 req.Key = &builder.key 4208 4209 } 4210 if builder.valueFlag { 4211 req.Value = &builder.value 4212 4213 } 4214 return req 4215 } 4216 4217 type Instance struct { 4218 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例code 4219 ApprovalName *string `json:"approval_name,omitempty"` // 审批名称 4220 StartTime *string `json:"start_time,omitempty"` // 审批实例发起时间戳 4221 EndTime *string `json:"end_time,omitempty"` // 审批实例结束时间戳 4222 UserId *string `json:"user_id,omitempty"` // 发起人 4223 SerialId *string `json:"serial_id,omitempty"` // 申请编号 4224 } 4225 4226 type InstanceBuilder struct { 4227 instanceCode string // 审批实例code 4228 instanceCodeFlag bool 4229 approvalName string // 审批名称 4230 approvalNameFlag bool 4231 startTime string // 审批实例发起时间戳 4232 startTimeFlag bool 4233 endTime string // 审批实例结束时间戳 4234 endTimeFlag bool 4235 userId string // 发起人 4236 userIdFlag bool 4237 serialId string // 申请编号 4238 serialIdFlag bool 4239 } 4240 4241 func NewInstanceBuilder() *InstanceBuilder { 4242 builder := &InstanceBuilder{} 4243 return builder 4244 } 4245 4246 // 审批实例code 4247 // 4248 // 示例值: 4249 func (builder *InstanceBuilder) InstanceCode(instanceCode string) *InstanceBuilder { 4250 builder.instanceCode = instanceCode 4251 builder.instanceCodeFlag = true 4252 return builder 4253 } 4254 4255 // 审批名称 4256 // 4257 // 示例值: 4258 func (builder *InstanceBuilder) ApprovalName(approvalName string) *InstanceBuilder { 4259 builder.approvalName = approvalName 4260 builder.approvalNameFlag = true 4261 return builder 4262 } 4263 4264 // 审批实例发起时间戳 4265 // 4266 // 示例值: 4267 func (builder *InstanceBuilder) StartTime(startTime string) *InstanceBuilder { 4268 builder.startTime = startTime 4269 builder.startTimeFlag = true 4270 return builder 4271 } 4272 4273 // 审批实例结束时间戳 4274 // 4275 // 示例值: 4276 func (builder *InstanceBuilder) EndTime(endTime string) *InstanceBuilder { 4277 builder.endTime = endTime 4278 builder.endTimeFlag = true 4279 return builder 4280 } 4281 4282 // 发起人 4283 // 4284 // 示例值: 4285 func (builder *InstanceBuilder) UserId(userId string) *InstanceBuilder { 4286 builder.userId = userId 4287 builder.userIdFlag = true 4288 return builder 4289 } 4290 4291 // 申请编号 4292 // 4293 // 示例值: 4294 func (builder *InstanceBuilder) SerialId(serialId string) *InstanceBuilder { 4295 builder.serialId = serialId 4296 builder.serialIdFlag = true 4297 return builder 4298 } 4299 4300 func (builder *InstanceBuilder) Build() *Instance { 4301 req := &Instance{} 4302 if builder.instanceCodeFlag { 4303 req.InstanceCode = &builder.instanceCode 4304 4305 } 4306 if builder.approvalNameFlag { 4307 req.ApprovalName = &builder.approvalName 4308 4309 } 4310 if builder.startTimeFlag { 4311 req.StartTime = &builder.startTime 4312 4313 } 4314 if builder.endTimeFlag { 4315 req.EndTime = &builder.endTime 4316 4317 } 4318 if builder.userIdFlag { 4319 req.UserId = &builder.userId 4320 4321 } 4322 if builder.serialIdFlag { 4323 req.SerialId = &builder.serialId 4324 4325 } 4326 return req 4327 } 4328 4329 type InstanceCancel struct { 4330 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义Code 4331 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例Code 4332 UserId *string `json:"user_id,omitempty"` // 操作用户, 根据user_id_type填写 4333 } 4334 4335 type InstanceCancelBuilder struct { 4336 approvalCode string // 审批定义Code 4337 approvalCodeFlag bool 4338 instanceCode string // 审批实例Code 4339 instanceCodeFlag bool 4340 userId string // 操作用户, 根据user_id_type填写 4341 userIdFlag bool 4342 } 4343 4344 func NewInstanceCancelBuilder() *InstanceCancelBuilder { 4345 builder := &InstanceCancelBuilder{} 4346 return builder 4347 } 4348 4349 // 审批定义Code 4350 // 4351 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 4352 func (builder *InstanceCancelBuilder) ApprovalCode(approvalCode string) *InstanceCancelBuilder { 4353 builder.approvalCode = approvalCode 4354 builder.approvalCodeFlag = true 4355 return builder 4356 } 4357 4358 // 审批实例Code 4359 // 4360 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 4361 func (builder *InstanceCancelBuilder) InstanceCode(instanceCode string) *InstanceCancelBuilder { 4362 builder.instanceCode = instanceCode 4363 builder.instanceCodeFlag = true 4364 return builder 4365 } 4366 4367 // 操作用户, 根据user_id_type填写 4368 // 4369 // 示例值:f7cb567e 4370 func (builder *InstanceCancelBuilder) UserId(userId string) *InstanceCancelBuilder { 4371 builder.userId = userId 4372 builder.userIdFlag = true 4373 return builder 4374 } 4375 4376 func (builder *InstanceCancelBuilder) Build() *InstanceCancel { 4377 req := &InstanceCancel{} 4378 if builder.approvalCodeFlag { 4379 req.ApprovalCode = &builder.approvalCode 4380 4381 } 4382 if builder.instanceCodeFlag { 4383 req.InstanceCode = &builder.instanceCode 4384 4385 } 4386 if builder.userIdFlag { 4387 req.UserId = &builder.userId 4388 4389 } 4390 return req 4391 } 4392 4393 type InstanceCc struct { 4394 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code 4395 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 code 4396 UserId *string `json:"user_id,omitempty"` // 根据user_id_type填写发起抄送的人的用户id 4397 CcUserIds []string `json:"cc_user_ids,omitempty"` // 根据user_id_type填写被抄送人的 用户id 列表 4398 Comment *string `json:"comment,omitempty"` // 抄送留言 4399 } 4400 4401 type InstanceCcBuilder struct { 4402 approvalCode string // 审批定义 code 4403 approvalCodeFlag bool 4404 instanceCode string // 审批实例 code 4405 instanceCodeFlag bool 4406 userId string // 根据user_id_type填写发起抄送的人的用户id 4407 userIdFlag bool 4408 ccUserIds []string // 根据user_id_type填写被抄送人的 用户id 列表 4409 ccUserIdsFlag bool 4410 comment string // 抄送留言 4411 commentFlag bool 4412 } 4413 4414 func NewInstanceCcBuilder() *InstanceCcBuilder { 4415 builder := &InstanceCcBuilder{} 4416 return builder 4417 } 4418 4419 // 审批定义 code 4420 // 4421 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 4422 func (builder *InstanceCcBuilder) ApprovalCode(approvalCode string) *InstanceCcBuilder { 4423 builder.approvalCode = approvalCode 4424 builder.approvalCodeFlag = true 4425 return builder 4426 } 4427 4428 // 审批实例 code 4429 // 4430 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 4431 func (builder *InstanceCcBuilder) InstanceCode(instanceCode string) *InstanceCcBuilder { 4432 builder.instanceCode = instanceCode 4433 builder.instanceCodeFlag = true 4434 return builder 4435 } 4436 4437 // 根据user_id_type填写发起抄送的人的用户id 4438 // 4439 // 示例值:f7cb567e 4440 func (builder *InstanceCcBuilder) UserId(userId string) *InstanceCcBuilder { 4441 builder.userId = userId 4442 builder.userIdFlag = true 4443 return builder 4444 } 4445 4446 // 根据user_id_type填写被抄送人的 用户id 列表 4447 // 4448 // 示例值:f7cb567e 4449 func (builder *InstanceCcBuilder) CcUserIds(ccUserIds []string) *InstanceCcBuilder { 4450 builder.ccUserIds = ccUserIds 4451 builder.ccUserIdsFlag = true 4452 return builder 4453 } 4454 4455 // 抄送留言 4456 // 4457 // 示例值:ok 4458 func (builder *InstanceCcBuilder) Comment(comment string) *InstanceCcBuilder { 4459 builder.comment = comment 4460 builder.commentFlag = true 4461 return builder 4462 } 4463 4464 func (builder *InstanceCcBuilder) Build() *InstanceCc { 4465 req := &InstanceCc{} 4466 if builder.approvalCodeFlag { 4467 req.ApprovalCode = &builder.approvalCode 4468 4469 } 4470 if builder.instanceCodeFlag { 4471 req.InstanceCode = &builder.instanceCode 4472 4473 } 4474 if builder.userIdFlag { 4475 req.UserId = &builder.userId 4476 4477 } 4478 if builder.ccUserIdsFlag { 4479 req.CcUserIds = builder.ccUserIds 4480 } 4481 if builder.commentFlag { 4482 req.Comment = &builder.comment 4483 4484 } 4485 return req 4486 } 4487 4488 type InstanceCcUser struct { 4489 UserId *string `json:"user_id,omitempty"` // 抄送人 user id 4490 CcId *string `json:"cc_id,omitempty"` // 审批实例内抄送唯一标识 4491 OpenId *string `json:"open_id,omitempty"` // 抄送人 open id 4492 } 4493 4494 type InstanceCcUserBuilder struct { 4495 userId string // 抄送人 user id 4496 userIdFlag bool 4497 ccId string // 审批实例内抄送唯一标识 4498 ccIdFlag bool 4499 openId string // 抄送人 open id 4500 openIdFlag bool 4501 } 4502 4503 func NewInstanceCcUserBuilder() *InstanceCcUserBuilder { 4504 builder := &InstanceCcUserBuilder{} 4505 return builder 4506 } 4507 4508 // 抄送人 user id 4509 // 4510 // 示例值:eea5gefe 4511 func (builder *InstanceCcUserBuilder) UserId(userId string) *InstanceCcUserBuilder { 4512 builder.userId = userId 4513 builder.userIdFlag = true 4514 return builder 4515 } 4516 4517 // 审批实例内抄送唯一标识 4518 // 4519 // 示例值:123445 4520 func (builder *InstanceCcUserBuilder) CcId(ccId string) *InstanceCcUserBuilder { 4521 builder.ccId = ccId 4522 builder.ccIdFlag = true 4523 return builder 4524 } 4525 4526 // 抄送人 open id 4527 // 4528 // 示例值:ou_12345 4529 func (builder *InstanceCcUserBuilder) OpenId(openId string) *InstanceCcUserBuilder { 4530 builder.openId = openId 4531 builder.openIdFlag = true 4532 return builder 4533 } 4534 4535 func (builder *InstanceCcUserBuilder) Build() *InstanceCcUser { 4536 req := &InstanceCcUser{} 4537 if builder.userIdFlag { 4538 req.UserId = &builder.userId 4539 4540 } 4541 if builder.ccIdFlag { 4542 req.CcId = &builder.ccId 4543 4544 } 4545 if builder.openIdFlag { 4546 req.OpenId = &builder.openId 4547 4548 } 4549 return req 4550 } 4551 4552 type InstanceComment struct { 4553 Id *string `json:"id,omitempty"` // 评论 id 4554 UserId *string `json:"user_id,omitempty"` // 发表评论用户 4555 OpenId *string `json:"open_id,omitempty"` // 发表评论用户 open id 4556 Comment *string `json:"comment,omitempty"` // 评论内容 4557 CreateTime *string `json:"create_time,omitempty"` // 1564590532967 4558 Files []*File `json:"files,omitempty"` // 评论附件 4559 } 4560 4561 type InstanceCommentBuilder struct { 4562 id string // 评论 id 4563 idFlag bool 4564 userId string // 发表评论用户 4565 userIdFlag bool 4566 openId string // 发表评论用户 open id 4567 openIdFlag bool 4568 comment string // 评论内容 4569 commentFlag bool 4570 createTime string // 1564590532967 4571 createTimeFlag bool 4572 files []*File // 评论附件 4573 filesFlag bool 4574 } 4575 4576 func NewInstanceCommentBuilder() *InstanceCommentBuilder { 4577 builder := &InstanceCommentBuilder{} 4578 return builder 4579 } 4580 4581 // 评论 id 4582 // 4583 // 示例值:1234 4584 func (builder *InstanceCommentBuilder) Id(id string) *InstanceCommentBuilder { 4585 builder.id = id 4586 builder.idFlag = true 4587 return builder 4588 } 4589 4590 // 发表评论用户 4591 // 4592 // 示例值:f7cb567e 4593 func (builder *InstanceCommentBuilder) UserId(userId string) *InstanceCommentBuilder { 4594 builder.userId = userId 4595 builder.userIdFlag = true 4596 return builder 4597 } 4598 4599 // 发表评论用户 open id 4600 // 4601 // 示例值:ou_123456 4602 func (builder *InstanceCommentBuilder) OpenId(openId string) *InstanceCommentBuilder { 4603 builder.openId = openId 4604 builder.openIdFlag = true 4605 return builder 4606 } 4607 4608 // 评论内容 4609 // 4610 // 示例值:ok 4611 func (builder *InstanceCommentBuilder) Comment(comment string) *InstanceCommentBuilder { 4612 builder.comment = comment 4613 builder.commentFlag = true 4614 return builder 4615 } 4616 4617 // 1564590532967 4618 // 4619 // 示例值:评论时间 4620 func (builder *InstanceCommentBuilder) CreateTime(createTime string) *InstanceCommentBuilder { 4621 builder.createTime = createTime 4622 builder.createTimeFlag = true 4623 return builder 4624 } 4625 4626 // 评论附件 4627 // 4628 // 示例值: 4629 func (builder *InstanceCommentBuilder) Files(files []*File) *InstanceCommentBuilder { 4630 builder.files = files 4631 builder.filesFlag = true 4632 return builder 4633 } 4634 4635 func (builder *InstanceCommentBuilder) Build() *InstanceComment { 4636 req := &InstanceComment{} 4637 if builder.idFlag { 4638 req.Id = &builder.id 4639 4640 } 4641 if builder.userIdFlag { 4642 req.UserId = &builder.userId 4643 4644 } 4645 if builder.openIdFlag { 4646 req.OpenId = &builder.openId 4647 4648 } 4649 if builder.commentFlag { 4650 req.Comment = &builder.comment 4651 4652 } 4653 if builder.createTimeFlag { 4654 req.CreateTime = &builder.createTime 4655 4656 } 4657 if builder.filesFlag { 4658 req.Files = builder.files 4659 } 4660 return req 4661 } 4662 4663 type InstanceCreate struct { 4664 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code 4665 UserId *string `json:"user_id,omitempty"` // 发起审批用户 4666 OpenId *string `json:"open_id,omitempty"` // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id 4667 DepartmentId *string `json:"department_id,omitempty"` // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门 4668 Form *string `json:"form,omitempty"` // json 数组,控件值 4669 NodeApproverUserIdList []*NodeApprover `json:"node_approver_user_id_list,omitempty"` // 如果有发起人自选节点,则需要填写对应节点的审批人 4670 NodeApproverOpenIdList []*NodeApprover `json:"node_approver_open_id_list,omitempty"` // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集 4671 NodeCcUserIdList []*NodeCc `json:"node_cc_user_id_list,omitempty"` // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人 4672 NodeCcOpenIdList []*NodeCc `json:"node_cc_open_id_list,omitempty"` // 抄送人发起人自选 open id 单个节点最多选择20位抄送人 4673 Uuid *string `json:"uuid,omitempty"` // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写 4674 AllowResubmit *bool `json:"allow_resubmit,omitempty"` // 可配置是否可以再次提交 4675 AllowSubmitAgain *bool `json:"allow_submit_again,omitempty"` // 可配置是否可以重新提交 4676 } 4677 4678 type InstanceCreateBuilder struct { 4679 approvalCode string // 审批定义 code 4680 approvalCodeFlag bool 4681 userId string // 发起审批用户 4682 userIdFlag bool 4683 openId string // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id 4684 openIdFlag bool 4685 departmentId string // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门 4686 departmentIdFlag bool 4687 form string // json 数组,控件值 4688 formFlag bool 4689 nodeApproverUserIdList []*NodeApprover // 如果有发起人自选节点,则需要填写对应节点的审批人 4690 nodeApproverUserIdListFlag bool 4691 nodeApproverOpenIdList []*NodeApprover // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集 4692 nodeApproverOpenIdListFlag bool 4693 nodeCcUserIdList []*NodeCc // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人 4694 nodeCcUserIdListFlag bool 4695 nodeCcOpenIdList []*NodeCc // 抄送人发起人自选 open id 单个节点最多选择20位抄送人 4696 nodeCcOpenIdListFlag bool 4697 uuid string // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写 4698 uuidFlag bool 4699 allowResubmit bool // 可配置是否可以再次提交 4700 allowResubmitFlag bool 4701 allowSubmitAgain bool // 可配置是否可以重新提交 4702 allowSubmitAgainFlag bool 4703 } 4704 4705 func NewInstanceCreateBuilder() *InstanceCreateBuilder { 4706 builder := &InstanceCreateBuilder{} 4707 return builder 4708 } 4709 4710 // 审批定义 code 4711 // 4712 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 4713 func (builder *InstanceCreateBuilder) ApprovalCode(approvalCode string) *InstanceCreateBuilder { 4714 builder.approvalCode = approvalCode 4715 builder.approvalCodeFlag = true 4716 return builder 4717 } 4718 4719 // 发起审批用户 4720 // 4721 // 示例值:f7cb567e 4722 func (builder *InstanceCreateBuilder) UserId(userId string) *InstanceCreateBuilder { 4723 builder.userId = userId 4724 builder.userIdFlag = true 4725 return builder 4726 } 4727 4728 // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id 4729 // 4730 // 示例值:ou_3cda9c969f737aaa05e6915dce306cb9 4731 func (builder *InstanceCreateBuilder) OpenId(openId string) *InstanceCreateBuilder { 4732 builder.openId = openId 4733 builder.openIdFlag = true 4734 return builder 4735 } 4736 4737 // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门 4738 // 4739 // 示例值:9293493ccacbdb9a 4740 func (builder *InstanceCreateBuilder) DepartmentId(departmentId string) *InstanceCreateBuilder { 4741 builder.departmentId = departmentId 4742 builder.departmentIdFlag = true 4743 return builder 4744 } 4745 4746 // json 数组,控件值 4747 // 4748 // 示例值:[{\"id\":\"111\", \"type\": \"input\", \"value\":\"test\"}] 4749 func (builder *InstanceCreateBuilder) Form(form string) *InstanceCreateBuilder { 4750 builder.form = form 4751 builder.formFlag = true 4752 return builder 4753 } 4754 4755 // 如果有发起人自选节点,则需要填写对应节点的审批人 4756 // 4757 // 示例值: 4758 func (builder *InstanceCreateBuilder) NodeApproverUserIdList(nodeApproverUserIdList []*NodeApprover) *InstanceCreateBuilder { 4759 builder.nodeApproverUserIdList = nodeApproverUserIdList 4760 builder.nodeApproverUserIdListFlag = true 4761 return builder 4762 } 4763 4764 // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集 4765 // 4766 // 示例值: 4767 func (builder *InstanceCreateBuilder) NodeApproverOpenIdList(nodeApproverOpenIdList []*NodeApprover) *InstanceCreateBuilder { 4768 builder.nodeApproverOpenIdList = nodeApproverOpenIdList 4769 builder.nodeApproverOpenIdListFlag = true 4770 return builder 4771 } 4772 4773 // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人 4774 // 4775 // 示例值: 4776 func (builder *InstanceCreateBuilder) NodeCcUserIdList(nodeCcUserIdList []*NodeCc) *InstanceCreateBuilder { 4777 builder.nodeCcUserIdList = nodeCcUserIdList 4778 builder.nodeCcUserIdListFlag = true 4779 return builder 4780 } 4781 4782 // 抄送人发起人自选 open id 单个节点最多选择20位抄送人 4783 // 4784 // 示例值: 4785 func (builder *InstanceCreateBuilder) NodeCcOpenIdList(nodeCcOpenIdList []*NodeCc) *InstanceCreateBuilder { 4786 builder.nodeCcOpenIdList = nodeCcOpenIdList 4787 builder.nodeCcOpenIdListFlag = true 4788 return builder 4789 } 4790 4791 // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写 4792 // 4793 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A87 4794 func (builder *InstanceCreateBuilder) Uuid(uuid string) *InstanceCreateBuilder { 4795 builder.uuid = uuid 4796 builder.uuidFlag = true 4797 return builder 4798 } 4799 4800 // 可配置是否可以再次提交 4801 // 4802 // 示例值:true 4803 func (builder *InstanceCreateBuilder) AllowResubmit(allowResubmit bool) *InstanceCreateBuilder { 4804 builder.allowResubmit = allowResubmit 4805 builder.allowResubmitFlag = true 4806 return builder 4807 } 4808 4809 // 可配置是否可以重新提交 4810 // 4811 // 示例值:true 4812 func (builder *InstanceCreateBuilder) AllowSubmitAgain(allowSubmitAgain bool) *InstanceCreateBuilder { 4813 builder.allowSubmitAgain = allowSubmitAgain 4814 builder.allowSubmitAgainFlag = true 4815 return builder 4816 } 4817 4818 func (builder *InstanceCreateBuilder) Build() *InstanceCreate { 4819 req := &InstanceCreate{} 4820 if builder.approvalCodeFlag { 4821 req.ApprovalCode = &builder.approvalCode 4822 4823 } 4824 if builder.userIdFlag { 4825 req.UserId = &builder.userId 4826 4827 } 4828 if builder.openIdFlag { 4829 req.OpenId = &builder.openId 4830 4831 } 4832 if builder.departmentIdFlag { 4833 req.DepartmentId = &builder.departmentId 4834 4835 } 4836 if builder.formFlag { 4837 req.Form = &builder.form 4838 4839 } 4840 if builder.nodeApproverUserIdListFlag { 4841 req.NodeApproverUserIdList = builder.nodeApproverUserIdList 4842 } 4843 if builder.nodeApproverOpenIdListFlag { 4844 req.NodeApproverOpenIdList = builder.nodeApproverOpenIdList 4845 } 4846 if builder.nodeCcUserIdListFlag { 4847 req.NodeCcUserIdList = builder.nodeCcUserIdList 4848 } 4849 if builder.nodeCcOpenIdListFlag { 4850 req.NodeCcOpenIdList = builder.nodeCcOpenIdList 4851 } 4852 if builder.uuidFlag { 4853 req.Uuid = &builder.uuid 4854 4855 } 4856 if builder.allowResubmitFlag { 4857 req.AllowResubmit = &builder.allowResubmit 4858 4859 } 4860 if builder.allowSubmitAgainFlag { 4861 req.AllowSubmitAgain = &builder.allowSubmitAgain 4862 4863 } 4864 return req 4865 } 4866 4867 type InstanceSearch struct { 4868 UserId *string `json:"user_id,omitempty"` // 根据x_user_type填写用户 id 4869 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code 4870 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 code 4871 InstanceExternalId *string `json:"instance_external_id,omitempty"` // 审批实例第三方 id 注:和 approval_code 取并集 4872 GroupExternalId *string `json:"group_external_id,omitempty"` // 审批定义分组第三方 id 注:和 instance_code 取并集 4873 InstanceTitle *string `json:"instance_title,omitempty"` // 审批实例标题(只有第三方审批有) 4874 InstanceStatus *string `json:"instance_status,omitempty"` // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错 4875 InstanceStartTimeFrom *string `json:"instance_start_time_from,omitempty"` // 实例查询开始时间(unix毫秒时间戳) 4876 InstanceStartTimeTo *string `json:"instance_start_time_to,omitempty"` // 实例查询结束时间 (unix毫秒时间戳) 4877 Locale *string `json:"locale,omitempty"` // 地区 4878 } 4879 4880 type InstanceSearchBuilder struct { 4881 userId string // 根据x_user_type填写用户 id 4882 userIdFlag bool 4883 approvalCode string // 审批定义 code 4884 approvalCodeFlag bool 4885 instanceCode string // 审批实例 code 4886 instanceCodeFlag bool 4887 instanceExternalId string // 审批实例第三方 id 注:和 approval_code 取并集 4888 instanceExternalIdFlag bool 4889 groupExternalId string // 审批定义分组第三方 id 注:和 instance_code 取并集 4890 groupExternalIdFlag bool 4891 instanceTitle string // 审批实例标题(只有第三方审批有) 4892 instanceTitleFlag bool 4893 instanceStatus string // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错 4894 instanceStatusFlag bool 4895 instanceStartTimeFrom string // 实例查询开始时间(unix毫秒时间戳) 4896 instanceStartTimeFromFlag bool 4897 instanceStartTimeTo string // 实例查询结束时间 (unix毫秒时间戳) 4898 instanceStartTimeToFlag bool 4899 locale string // 地区 4900 localeFlag bool 4901 } 4902 4903 func NewInstanceSearchBuilder() *InstanceSearchBuilder { 4904 builder := &InstanceSearchBuilder{} 4905 return builder 4906 } 4907 4908 // 根据x_user_type填写用户 id 4909 // 4910 // 示例值:lwiu098wj 4911 func (builder *InstanceSearchBuilder) UserId(userId string) *InstanceSearchBuilder { 4912 builder.userId = userId 4913 builder.userIdFlag = true 4914 return builder 4915 } 4916 4917 // 审批定义 code 4918 // 4919 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942 4920 func (builder *InstanceSearchBuilder) ApprovalCode(approvalCode string) *InstanceSearchBuilder { 4921 builder.approvalCode = approvalCode 4922 builder.approvalCodeFlag = true 4923 return builder 4924 } 4925 4926 // 审批实例 code 4927 // 4928 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943 4929 func (builder *InstanceSearchBuilder) InstanceCode(instanceCode string) *InstanceSearchBuilder { 4930 builder.instanceCode = instanceCode 4931 builder.instanceCodeFlag = true 4932 return builder 4933 } 4934 4935 // 审批实例第三方 id 注:和 approval_code 取并集 4936 // 4937 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976 4938 func (builder *InstanceSearchBuilder) InstanceExternalId(instanceExternalId string) *InstanceSearchBuilder { 4939 builder.instanceExternalId = instanceExternalId 4940 builder.instanceExternalIdFlag = true 4941 return builder 4942 } 4943 4944 // 审批定义分组第三方 id 注:和 instance_code 取并集 4945 // 4946 // 示例值:1234567 4947 func (builder *InstanceSearchBuilder) GroupExternalId(groupExternalId string) *InstanceSearchBuilder { 4948 builder.groupExternalId = groupExternalId 4949 builder.groupExternalIdFlag = true 4950 return builder 4951 } 4952 4953 // 审批实例标题(只有第三方审批有) 4954 // 4955 // 示例值:test 4956 func (builder *InstanceSearchBuilder) InstanceTitle(instanceTitle string) *InstanceSearchBuilder { 4957 builder.instanceTitle = instanceTitle 4958 builder.instanceTitleFlag = true 4959 return builder 4960 } 4961 4962 // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错 4963 // 4964 // 示例值:PENDING 4965 func (builder *InstanceSearchBuilder) InstanceStatus(instanceStatus string) *InstanceSearchBuilder { 4966 builder.instanceStatus = instanceStatus 4967 builder.instanceStatusFlag = true 4968 return builder 4969 } 4970 4971 // 实例查询开始时间(unix毫秒时间戳) 4972 // 4973 // 示例值:1547654251506 4974 func (builder *InstanceSearchBuilder) InstanceStartTimeFrom(instanceStartTimeFrom string) *InstanceSearchBuilder { 4975 builder.instanceStartTimeFrom = instanceStartTimeFrom 4976 builder.instanceStartTimeFromFlag = true 4977 return builder 4978 } 4979 4980 // 实例查询结束时间 (unix毫秒时间戳) 4981 // 4982 // 示例值:1547654251506 4983 func (builder *InstanceSearchBuilder) InstanceStartTimeTo(instanceStartTimeTo string) *InstanceSearchBuilder { 4984 builder.instanceStartTimeTo = instanceStartTimeTo 4985 builder.instanceStartTimeToFlag = true 4986 return builder 4987 } 4988 4989 // 地区 4990 // 4991 // 示例值:zh-CN 4992 func (builder *InstanceSearchBuilder) Locale(locale string) *InstanceSearchBuilder { 4993 builder.locale = locale 4994 builder.localeFlag = true 4995 return builder 4996 } 4997 4998 func (builder *InstanceSearchBuilder) Build() *InstanceSearch { 4999 req := &InstanceSearch{} 5000 if builder.userIdFlag { 5001 req.UserId = &builder.userId 5002 5003 } 5004 if builder.approvalCodeFlag { 5005 req.ApprovalCode = &builder.approvalCode 5006 5007 } 5008 if builder.instanceCodeFlag { 5009 req.InstanceCode = &builder.instanceCode 5010 5011 } 5012 if builder.instanceExternalIdFlag { 5013 req.InstanceExternalId = &builder.instanceExternalId 5014 5015 } 5016 if builder.groupExternalIdFlag { 5017 req.GroupExternalId = &builder.groupExternalId 5018 5019 } 5020 if builder.instanceTitleFlag { 5021 req.InstanceTitle = &builder.instanceTitle 5022 5023 } 5024 if builder.instanceStatusFlag { 5025 req.InstanceStatus = &builder.instanceStatus 5026 5027 } 5028 if builder.instanceStartTimeFromFlag { 5029 req.InstanceStartTimeFrom = &builder.instanceStartTimeFrom 5030 5031 } 5032 if builder.instanceStartTimeToFlag { 5033 req.InstanceStartTimeTo = &builder.instanceStartTimeTo 5034 5035 } 5036 if builder.localeFlag { 5037 req.Locale = &builder.locale 5038 5039 } 5040 return req 5041 } 5042 5043 type InstanceSearchApproval struct { 5044 Code *string `json:"code,omitempty"` // 审批定义 code 5045 Name *string `json:"name,omitempty"` // 审批定义名称 5046 IsExternal *bool `json:"is_external,omitempty"` // 是否为第三方审批 5047 External *InstanceSearchApprovalExternal `json:"external,omitempty"` // 第三方审批信息 5048 } 5049 5050 type InstanceSearchApprovalBuilder struct { 5051 code string // 审批定义 code 5052 codeFlag bool 5053 name string // 审批定义名称 5054 nameFlag bool 5055 isExternal bool // 是否为第三方审批 5056 isExternalFlag bool 5057 external *InstanceSearchApprovalExternal // 第三方审批信息 5058 externalFlag bool 5059 } 5060 5061 func NewInstanceSearchApprovalBuilder() *InstanceSearchApprovalBuilder { 5062 builder := &InstanceSearchApprovalBuilder{} 5063 return builder 5064 } 5065 5066 // 审批定义 code 5067 // 5068 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943 5069 func (builder *InstanceSearchApprovalBuilder) Code(code string) *InstanceSearchApprovalBuilder { 5070 builder.code = code 5071 builder.codeFlag = true 5072 return builder 5073 } 5074 5075 // 审批定义名称 5076 // 5077 // 示例值:approval 5078 func (builder *InstanceSearchApprovalBuilder) Name(name string) *InstanceSearchApprovalBuilder { 5079 builder.name = name 5080 builder.nameFlag = true 5081 return builder 5082 } 5083 5084 // 是否为第三方审批 5085 // 5086 // 示例值:true 5087 func (builder *InstanceSearchApprovalBuilder) IsExternal(isExternal bool) *InstanceSearchApprovalBuilder { 5088 builder.isExternal = isExternal 5089 builder.isExternalFlag = true 5090 return builder 5091 } 5092 5093 // 第三方审批信息 5094 // 5095 // 示例值: 5096 func (builder *InstanceSearchApprovalBuilder) External(external *InstanceSearchApprovalExternal) *InstanceSearchApprovalBuilder { 5097 builder.external = external 5098 builder.externalFlag = true 5099 return builder 5100 } 5101 5102 func (builder *InstanceSearchApprovalBuilder) Build() *InstanceSearchApproval { 5103 req := &InstanceSearchApproval{} 5104 if builder.codeFlag { 5105 req.Code = &builder.code 5106 5107 } 5108 if builder.nameFlag { 5109 req.Name = &builder.name 5110 5111 } 5112 if builder.isExternalFlag { 5113 req.IsExternal = &builder.isExternal 5114 5115 } 5116 if builder.externalFlag { 5117 req.External = builder.external 5118 } 5119 return req 5120 } 5121 5122 type InstanceSearchApprovalExternal struct { 5123 BatchCcRead *bool `json:"batch_cc_read,omitempty"` // 是否支持批量读 5124 } 5125 5126 type InstanceSearchApprovalExternalBuilder struct { 5127 batchCcRead bool // 是否支持批量读 5128 batchCcReadFlag bool 5129 } 5130 5131 func NewInstanceSearchApprovalExternalBuilder() *InstanceSearchApprovalExternalBuilder { 5132 builder := &InstanceSearchApprovalExternalBuilder{} 5133 return builder 5134 } 5135 5136 // 是否支持批量读 5137 // 5138 // 示例值:false 5139 func (builder *InstanceSearchApprovalExternalBuilder) BatchCcRead(batchCcRead bool) *InstanceSearchApprovalExternalBuilder { 5140 builder.batchCcRead = batchCcRead 5141 builder.batchCcReadFlag = true 5142 return builder 5143 } 5144 5145 func (builder *InstanceSearchApprovalExternalBuilder) Build() *InstanceSearchApprovalExternal { 5146 req := &InstanceSearchApprovalExternal{} 5147 if builder.batchCcReadFlag { 5148 req.BatchCcRead = &builder.batchCcRead 5149 5150 } 5151 return req 5152 } 5153 5154 type InstanceSearchGroup struct { 5155 ExternalId *string `json:"external_id,omitempty"` // 审批定义分组外部 id 5156 Name *string `json:"name,omitempty"` // 审批定义分组名称 5157 } 5158 5159 type InstanceSearchGroupBuilder struct { 5160 externalId string // 审批定义分组外部 id 5161 externalIdFlag bool 5162 name string // 审批定义分组名称 5163 nameFlag bool 5164 } 5165 5166 func NewInstanceSearchGroupBuilder() *InstanceSearchGroupBuilder { 5167 builder := &InstanceSearchGroupBuilder{} 5168 return builder 5169 } 5170 5171 // 审批定义分组外部 id 5172 // 5173 // 示例值:0004 5174 func (builder *InstanceSearchGroupBuilder) ExternalId(externalId string) *InstanceSearchGroupBuilder { 5175 builder.externalId = externalId 5176 builder.externalIdFlag = true 5177 return builder 5178 } 5179 5180 // 审批定义分组名称 5181 // 5182 // 示例值:groupA 5183 func (builder *InstanceSearchGroupBuilder) Name(name string) *InstanceSearchGroupBuilder { 5184 builder.name = name 5185 builder.nameFlag = true 5186 return builder 5187 } 5188 5189 func (builder *InstanceSearchGroupBuilder) Build() *InstanceSearchGroup { 5190 req := &InstanceSearchGroup{} 5191 if builder.externalIdFlag { 5192 req.ExternalId = &builder.externalId 5193 5194 } 5195 if builder.nameFlag { 5196 req.Name = &builder.name 5197 5198 } 5199 return req 5200 } 5201 5202 type InstanceSearchItem struct { 5203 Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义 5204 Group *InstanceSearchGroup `json:"group,omitempty"` // 审批定义分组 5205 Instance *InstanceSearchNode `json:"instance,omitempty"` // 审批实例信息 5206 } 5207 5208 type InstanceSearchItemBuilder struct { 5209 approval *InstanceSearchApproval // 审批定义 5210 approvalFlag bool 5211 group *InstanceSearchGroup // 审批定义分组 5212 groupFlag bool 5213 instance *InstanceSearchNode // 审批实例信息 5214 instanceFlag bool 5215 } 5216 5217 func NewInstanceSearchItemBuilder() *InstanceSearchItemBuilder { 5218 builder := &InstanceSearchItemBuilder{} 5219 return builder 5220 } 5221 5222 // 审批定义 5223 // 5224 // 示例值: 5225 func (builder *InstanceSearchItemBuilder) Approval(approval *InstanceSearchApproval) *InstanceSearchItemBuilder { 5226 builder.approval = approval 5227 builder.approvalFlag = true 5228 return builder 5229 } 5230 5231 // 审批定义分组 5232 // 5233 // 示例值: 5234 func (builder *InstanceSearchItemBuilder) Group(group *InstanceSearchGroup) *InstanceSearchItemBuilder { 5235 builder.group = group 5236 builder.groupFlag = true 5237 return builder 5238 } 5239 5240 // 审批实例信息 5241 // 5242 // 示例值: 5243 func (builder *InstanceSearchItemBuilder) Instance(instance *InstanceSearchNode) *InstanceSearchItemBuilder { 5244 builder.instance = instance 5245 builder.instanceFlag = true 5246 return builder 5247 } 5248 5249 func (builder *InstanceSearchItemBuilder) Build() *InstanceSearchItem { 5250 req := &InstanceSearchItem{} 5251 if builder.approvalFlag { 5252 req.Approval = builder.approval 5253 } 5254 if builder.groupFlag { 5255 req.Group = builder.group 5256 } 5257 if builder.instanceFlag { 5258 req.Instance = builder.instance 5259 } 5260 return req 5261 } 5262 5263 type InstanceSearchLink struct { 5264 PcLink *string `json:"pc_link,omitempty"` // 审批实例 pc 端链接 5265 MobileLink *string `json:"mobile_link,omitempty"` // 审批实例移动端链接 5266 } 5267 5268 type InstanceSearchLinkBuilder struct { 5269 pcLink string // 审批实例 pc 端链接 5270 pcLinkFlag bool 5271 mobileLink string // 审批实例移动端链接 5272 mobileLinkFlag bool 5273 } 5274 5275 func NewInstanceSearchLinkBuilder() *InstanceSearchLinkBuilder { 5276 builder := &InstanceSearchLinkBuilder{} 5277 return builder 5278 } 5279 5280 // 审批实例 pc 端链接 5281 // 5282 // 示例值:https://www.baidu.com/ 5283 func (builder *InstanceSearchLinkBuilder) PcLink(pcLink string) *InstanceSearchLinkBuilder { 5284 builder.pcLink = pcLink 5285 builder.pcLinkFlag = true 5286 return builder 5287 } 5288 5289 // 审批实例移动端链接 5290 // 5291 // 示例值:https://www.baidu.com/ 5292 func (builder *InstanceSearchLinkBuilder) MobileLink(mobileLink string) *InstanceSearchLinkBuilder { 5293 builder.mobileLink = mobileLink 5294 builder.mobileLinkFlag = true 5295 return builder 5296 } 5297 5298 func (builder *InstanceSearchLinkBuilder) Build() *InstanceSearchLink { 5299 req := &InstanceSearchLink{} 5300 if builder.pcLinkFlag { 5301 req.PcLink = &builder.pcLink 5302 5303 } 5304 if builder.mobileLinkFlag { 5305 req.MobileLink = &builder.mobileLink 5306 5307 } 5308 return req 5309 } 5310 5311 type InstanceSearchNode struct { 5312 Code *string `json:"code,omitempty"` // 审批实例 code 5313 ExternalId *string `json:"external_id,omitempty"` // 审批实例外部 id 5314 UserId *string `json:"user_id,omitempty"` // 审批实例发起人 id 5315 StartTime *string `json:"start_time,omitempty"` // 审批实例开始时间 5316 EndTime *string `json:"end_time,omitempty"` // 审批实例结束时间 5317 Status *string `json:"status,omitempty"` // 审批实例状态 5318 Title *string `json:"title,omitempty"` // 审批实例名称(只有第三方审批有) 5319 Extra *string `json:"extra,omitempty"` // 审批实例扩展字段,string型json 5320 SerialId *string `json:"serial_id,omitempty"` // 审批流水号 5321 Link *InstanceSearchLink `json:"link,omitempty"` // 审批实例链接(只有第三方审批有) 5322 } 5323 5324 type InstanceSearchNodeBuilder struct { 5325 code string // 审批实例 code 5326 codeFlag bool 5327 externalId string // 审批实例外部 id 5328 externalIdFlag bool 5329 userId string // 审批实例发起人 id 5330 userIdFlag bool 5331 startTime string // 审批实例开始时间 5332 startTimeFlag bool 5333 endTime string // 审批实例结束时间 5334 endTimeFlag bool 5335 status string // 审批实例状态 5336 statusFlag bool 5337 title string // 审批实例名称(只有第三方审批有) 5338 titleFlag bool 5339 extra string // 审批实例扩展字段,string型json 5340 extraFlag bool 5341 serialId string // 审批流水号 5342 serialIdFlag bool 5343 link *InstanceSearchLink // 审批实例链接(只有第三方审批有) 5344 linkFlag bool 5345 } 5346 5347 func NewInstanceSearchNodeBuilder() *InstanceSearchNodeBuilder { 5348 builder := &InstanceSearchNodeBuilder{} 5349 return builder 5350 } 5351 5352 // 审批实例 code 5353 // 5354 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943 5355 func (builder *InstanceSearchNodeBuilder) Code(code string) *InstanceSearchNodeBuilder { 5356 builder.code = code 5357 builder.codeFlag = true 5358 return builder 5359 } 5360 5361 // 审批实例外部 id 5362 // 5363 // 示例值:0004_3ED52DC1-AA6C 5364 func (builder *InstanceSearchNodeBuilder) ExternalId(externalId string) *InstanceSearchNodeBuilder { 5365 builder.externalId = externalId 5366 builder.externalIdFlag = true 5367 return builder 5368 } 5369 5370 // 审批实例发起人 id 5371 // 5372 // 示例值:lwiu098wj 5373 func (builder *InstanceSearchNodeBuilder) UserId(userId string) *InstanceSearchNodeBuilder { 5374 builder.userId = userId 5375 builder.userIdFlag = true 5376 return builder 5377 } 5378 5379 // 审批实例开始时间 5380 // 5381 // 示例值:1547654251506 5382 func (builder *InstanceSearchNodeBuilder) StartTime(startTime string) *InstanceSearchNodeBuilder { 5383 builder.startTime = startTime 5384 builder.startTimeFlag = true 5385 return builder 5386 } 5387 5388 // 审批实例结束时间 5389 // 5390 // 示例值:1547654251506 5391 func (builder *InstanceSearchNodeBuilder) EndTime(endTime string) *InstanceSearchNodeBuilder { 5392 builder.endTime = endTime 5393 builder.endTimeFlag = true 5394 return builder 5395 } 5396 5397 // 审批实例状态 5398 // 5399 // 示例值:pending 5400 func (builder *InstanceSearchNodeBuilder) Status(status string) *InstanceSearchNodeBuilder { 5401 builder.status = status 5402 builder.statusFlag = true 5403 return builder 5404 } 5405 5406 // 审批实例名称(只有第三方审批有) 5407 // 5408 // 示例值:test 5409 func (builder *InstanceSearchNodeBuilder) Title(title string) *InstanceSearchNodeBuilder { 5410 builder.title = title 5411 builder.titleFlag = true 5412 return builder 5413 } 5414 5415 // 审批实例扩展字段,string型json 5416 // 5417 // 示例值:{} 5418 func (builder *InstanceSearchNodeBuilder) Extra(extra string) *InstanceSearchNodeBuilder { 5419 builder.extra = extra 5420 builder.extraFlag = true 5421 return builder 5422 } 5423 5424 // 审批流水号 5425 // 5426 // 示例值:201902020001 5427 func (builder *InstanceSearchNodeBuilder) SerialId(serialId string) *InstanceSearchNodeBuilder { 5428 builder.serialId = serialId 5429 builder.serialIdFlag = true 5430 return builder 5431 } 5432 5433 // 审批实例链接(只有第三方审批有) 5434 // 5435 // 示例值: 5436 func (builder *InstanceSearchNodeBuilder) Link(link *InstanceSearchLink) *InstanceSearchNodeBuilder { 5437 builder.link = link 5438 builder.linkFlag = true 5439 return builder 5440 } 5441 5442 func (builder *InstanceSearchNodeBuilder) Build() *InstanceSearchNode { 5443 req := &InstanceSearchNode{} 5444 if builder.codeFlag { 5445 req.Code = &builder.code 5446 5447 } 5448 if builder.externalIdFlag { 5449 req.ExternalId = &builder.externalId 5450 5451 } 5452 if builder.userIdFlag { 5453 req.UserId = &builder.userId 5454 5455 } 5456 if builder.startTimeFlag { 5457 req.StartTime = &builder.startTime 5458 5459 } 5460 if builder.endTimeFlag { 5461 req.EndTime = &builder.endTime 5462 5463 } 5464 if builder.statusFlag { 5465 req.Status = &builder.status 5466 5467 } 5468 if builder.titleFlag { 5469 req.Title = &builder.title 5470 5471 } 5472 if builder.extraFlag { 5473 req.Extra = &builder.extra 5474 5475 } 5476 if builder.serialIdFlag { 5477 req.SerialId = &builder.serialId 5478 5479 } 5480 if builder.linkFlag { 5481 req.Link = builder.link 5482 } 5483 return req 5484 } 5485 5486 type InstanceTask struct { 5487 Id *string `json:"id,omitempty"` // task id 5488 UserId *string `json:"user_id,omitempty"` // 审批人的用户id,自动通过、自动拒绝 时为空 5489 OpenId *string `json:"open_id,omitempty"` // 审批人 open id 5490 Status *string `json:"status,omitempty"` // 任务状态 5491 NodeId *string `json:"node_id,omitempty"` // task 所属节点 id 5492 NodeName *string `json:"node_name,omitempty"` // task 所属节点名称 5493 CustomNodeId *string `json:"custom_node_id,omitempty"` // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段 5494 Type *string `json:"type,omitempty"` // 审批方式 5495 StartTime *string `json:"start_time,omitempty"` // task 开始时间 5496 EndTime *string `json:"end_time,omitempty"` // task 完成时间, 未完成为 0 5497 } 5498 5499 type InstanceTaskBuilder struct { 5500 id string // task id 5501 idFlag bool 5502 userId string // 审批人的用户id,自动通过、自动拒绝 时为空 5503 userIdFlag bool 5504 openId string // 审批人 open id 5505 openIdFlag bool 5506 status string // 任务状态 5507 statusFlag bool 5508 nodeId string // task 所属节点 id 5509 nodeIdFlag bool 5510 nodeName string // task 所属节点名称 5511 nodeNameFlag bool 5512 customNodeId string // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段 5513 customNodeIdFlag bool 5514 type_ string // 审批方式 5515 typeFlag bool 5516 startTime string // task 开始时间 5517 startTimeFlag bool 5518 endTime string // task 完成时间, 未完成为 0 5519 endTimeFlag bool 5520 } 5521 5522 func NewInstanceTaskBuilder() *InstanceTaskBuilder { 5523 builder := &InstanceTaskBuilder{} 5524 return builder 5525 } 5526 5527 // task id 5528 // 5529 // 示例值:1234 5530 func (builder *InstanceTaskBuilder) Id(id string) *InstanceTaskBuilder { 5531 builder.id = id 5532 builder.idFlag = true 5533 return builder 5534 } 5535 5536 // 审批人的用户id,自动通过、自动拒绝 时为空 5537 // 5538 // 示例值:f7cb567e 5539 func (builder *InstanceTaskBuilder) UserId(userId string) *InstanceTaskBuilder { 5540 builder.userId = userId 5541 builder.userIdFlag = true 5542 return builder 5543 } 5544 5545 // 审批人 open id 5546 // 5547 // 示例值:ou_123457 5548 func (builder *InstanceTaskBuilder) OpenId(openId string) *InstanceTaskBuilder { 5549 builder.openId = openId 5550 builder.openIdFlag = true 5551 return builder 5552 } 5553 5554 // 任务状态 5555 // 5556 // 示例值:PENDING 5557 func (builder *InstanceTaskBuilder) Status(status string) *InstanceTaskBuilder { 5558 builder.status = status 5559 builder.statusFlag = true 5560 return builder 5561 } 5562 5563 // task 所属节点 id 5564 // 5565 // 示例值:46e6d96cfa756980907209209ec03b64 5566 func (builder *InstanceTaskBuilder) NodeId(nodeId string) *InstanceTaskBuilder { 5567 builder.nodeId = nodeId 5568 builder.nodeIdFlag = true 5569 return builder 5570 } 5571 5572 // task 所属节点名称 5573 // 5574 // 示例值:开始 5575 func (builder *InstanceTaskBuilder) NodeName(nodeName string) *InstanceTaskBuilder { 5576 builder.nodeName = nodeName 5577 builder.nodeNameFlag = true 5578 return builder 5579 } 5580 5581 // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段 5582 // 5583 // 示例值:manager 5584 func (builder *InstanceTaskBuilder) CustomNodeId(customNodeId string) *InstanceTaskBuilder { 5585 builder.customNodeId = customNodeId 5586 builder.customNodeIdFlag = true 5587 return builder 5588 } 5589 5590 // 审批方式 5591 // 5592 // 示例值:AND 5593 func (builder *InstanceTaskBuilder) Type(type_ string) *InstanceTaskBuilder { 5594 builder.type_ = type_ 5595 builder.typeFlag = true 5596 return builder 5597 } 5598 5599 // task 开始时间 5600 // 5601 // 示例值:1564590532967 5602 func (builder *InstanceTaskBuilder) StartTime(startTime string) *InstanceTaskBuilder { 5603 builder.startTime = startTime 5604 builder.startTimeFlag = true 5605 return builder 5606 } 5607 5608 // task 完成时间, 未完成为 0 5609 // 5610 // 示例值:0 5611 func (builder *InstanceTaskBuilder) EndTime(endTime string) *InstanceTaskBuilder { 5612 builder.endTime = endTime 5613 builder.endTimeFlag = true 5614 return builder 5615 } 5616 5617 func (builder *InstanceTaskBuilder) Build() *InstanceTask { 5618 req := &InstanceTask{} 5619 if builder.idFlag { 5620 req.Id = &builder.id 5621 5622 } 5623 if builder.userIdFlag { 5624 req.UserId = &builder.userId 5625 5626 } 5627 if builder.openIdFlag { 5628 req.OpenId = &builder.openId 5629 5630 } 5631 if builder.statusFlag { 5632 req.Status = &builder.status 5633 5634 } 5635 if builder.nodeIdFlag { 5636 req.NodeId = &builder.nodeId 5637 5638 } 5639 if builder.nodeNameFlag { 5640 req.NodeName = &builder.nodeName 5641 5642 } 5643 if builder.customNodeIdFlag { 5644 req.CustomNodeId = &builder.customNodeId 5645 5646 } 5647 if builder.typeFlag { 5648 req.Type = &builder.type_ 5649 5650 } 5651 if builder.startTimeFlag { 5652 req.StartTime = &builder.startTime 5653 5654 } 5655 if builder.endTimeFlag { 5656 req.EndTime = &builder.endTime 5657 5658 } 5659 return req 5660 } 5661 5662 type InstanceTimeline struct { 5663 Type *string `json:"type,omitempty"` // 动态类型,不同类型 ext 内的 user_id_list 含义不一样 5664 CreateTime *string `json:"create_time,omitempty"` // 发生时间 5665 UserId *string `json:"user_id,omitempty"` // 动态产生用户 5666 OpenId *string `json:"open_id,omitempty"` // 动态产生用户 open id 5667 UserIdList []string `json:"user_id_list,omitempty"` // 被抄送人列表 5668 OpenIdList []string `json:"open_id_list,omitempty"` // 被抄送人列表 5669 TaskId *string `json:"task_id,omitempty"` // 产生动态关联的task_id 5670 Comment *string `json:"comment,omitempty"` // 理由 5671 CcUserList []*InstanceCcUser `json:"cc_user_list,omitempty"` // 抄送人列表 5672 Ext *string `json:"ext,omitempty"` // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id 5673 NodeKey *string `json:"node_key,omitempty"` // 产生task的节点key 5674 Files []*File `json:"files,omitempty"` // 审批附件 5675 } 5676 5677 type InstanceTimelineBuilder struct { 5678 type_ string // 动态类型,不同类型 ext 内的 user_id_list 含义不一样 5679 typeFlag bool 5680 createTime string // 发生时间 5681 createTimeFlag bool 5682 userId string // 动态产生用户 5683 userIdFlag bool 5684 openId string // 动态产生用户 open id 5685 openIdFlag bool 5686 userIdList []string // 被抄送人列表 5687 userIdListFlag bool 5688 openIdList []string // 被抄送人列表 5689 openIdListFlag bool 5690 taskId string // 产生动态关联的task_id 5691 taskIdFlag bool 5692 comment string // 理由 5693 commentFlag bool 5694 ccUserList []*InstanceCcUser // 抄送人列表 5695 ccUserListFlag bool 5696 ext string // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id 5697 extFlag bool 5698 nodeKey string // 产生task的节点key 5699 nodeKeyFlag bool 5700 files []*File // 审批附件 5701 filesFlag bool 5702 } 5703 5704 func NewInstanceTimelineBuilder() *InstanceTimelineBuilder { 5705 builder := &InstanceTimelineBuilder{} 5706 return builder 5707 } 5708 5709 // 动态类型,不同类型 ext 内的 user_id_list 含义不一样 5710 // 5711 // 示例值:PASS 5712 func (builder *InstanceTimelineBuilder) Type(type_ string) *InstanceTimelineBuilder { 5713 builder.type_ = type_ 5714 builder.typeFlag = true 5715 return builder 5716 } 5717 5718 // 发生时间 5719 // 5720 // 示例值:1564590532967 5721 func (builder *InstanceTimelineBuilder) CreateTime(createTime string) *InstanceTimelineBuilder { 5722 builder.createTime = createTime 5723 builder.createTimeFlag = true 5724 return builder 5725 } 5726 5727 // 动态产生用户 5728 // 5729 // 示例值:f7cb567e 5730 func (builder *InstanceTimelineBuilder) UserId(userId string) *InstanceTimelineBuilder { 5731 builder.userId = userId 5732 builder.userIdFlag = true 5733 return builder 5734 } 5735 5736 // 动态产生用户 open id 5737 // 5738 // 示例值:ou_123456 5739 func (builder *InstanceTimelineBuilder) OpenId(openId string) *InstanceTimelineBuilder { 5740 builder.openId = openId 5741 builder.openIdFlag = true 5742 return builder 5743 } 5744 5745 // 被抄送人列表 5746 // 5747 // 示例值:f7cb567e 5748 func (builder *InstanceTimelineBuilder) UserIdList(userIdList []string) *InstanceTimelineBuilder { 5749 builder.userIdList = userIdList 5750 builder.userIdListFlag = true 5751 return builder 5752 } 5753 5754 // 被抄送人列表 5755 // 5756 // 示例值:ou_123456 5757 func (builder *InstanceTimelineBuilder) OpenIdList(openIdList []string) *InstanceTimelineBuilder { 5758 builder.openIdList = openIdList 5759 builder.openIdListFlag = true 5760 return builder 5761 } 5762 5763 // 产生动态关联的task_id 5764 // 5765 // 示例值:1234 5766 func (builder *InstanceTimelineBuilder) TaskId(taskId string) *InstanceTimelineBuilder { 5767 builder.taskId = taskId 5768 builder.taskIdFlag = true 5769 return builder 5770 } 5771 5772 // 理由 5773 // 5774 // 示例值:ok 5775 func (builder *InstanceTimelineBuilder) Comment(comment string) *InstanceTimelineBuilder { 5776 builder.comment = comment 5777 builder.commentFlag = true 5778 return builder 5779 } 5780 5781 // 抄送人列表 5782 // 5783 // 示例值: 5784 func (builder *InstanceTimelineBuilder) CcUserList(ccUserList []*InstanceCcUser) *InstanceTimelineBuilder { 5785 builder.ccUserList = ccUserList 5786 builder.ccUserListFlag = true 5787 return builder 5788 } 5789 5790 // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id 5791 // 5792 // 示例值:{\"user_id\":\"62d4a44c\",\"open_id\":\"ou_123456\"} 5793 func (builder *InstanceTimelineBuilder) Ext(ext string) *InstanceTimelineBuilder { 5794 builder.ext = ext 5795 builder.extFlag = true 5796 return builder 5797 } 5798 5799 // 产生task的节点key 5800 // 5801 // 示例值:APPROVAL_240330_4058663 5802 func (builder *InstanceTimelineBuilder) NodeKey(nodeKey string) *InstanceTimelineBuilder { 5803 builder.nodeKey = nodeKey 5804 builder.nodeKeyFlag = true 5805 return builder 5806 } 5807 5808 // 审批附件 5809 // 5810 // 示例值: 5811 func (builder *InstanceTimelineBuilder) Files(files []*File) *InstanceTimelineBuilder { 5812 builder.files = files 5813 builder.filesFlag = true 5814 return builder 5815 } 5816 5817 func (builder *InstanceTimelineBuilder) Build() *InstanceTimeline { 5818 req := &InstanceTimeline{} 5819 if builder.typeFlag { 5820 req.Type = &builder.type_ 5821 5822 } 5823 if builder.createTimeFlag { 5824 req.CreateTime = &builder.createTime 5825 5826 } 5827 if builder.userIdFlag { 5828 req.UserId = &builder.userId 5829 5830 } 5831 if builder.openIdFlag { 5832 req.OpenId = &builder.openId 5833 5834 } 5835 if builder.userIdListFlag { 5836 req.UserIdList = builder.userIdList 5837 } 5838 if builder.openIdListFlag { 5839 req.OpenIdList = builder.openIdList 5840 } 5841 if builder.taskIdFlag { 5842 req.TaskId = &builder.taskId 5843 5844 } 5845 if builder.commentFlag { 5846 req.Comment = &builder.comment 5847 5848 } 5849 if builder.ccUserListFlag { 5850 req.CcUserList = builder.ccUserList 5851 } 5852 if builder.extFlag { 5853 req.Ext = &builder.ext 5854 5855 } 5856 if builder.nodeKeyFlag { 5857 req.NodeKey = &builder.nodeKey 5858 5859 } 5860 if builder.filesFlag { 5861 req.Files = builder.files 5862 } 5863 return req 5864 } 5865 5866 type Message struct { 5867 Id *string `json:"id,omitempty"` // 消息id标识 5868 ReceiveId *string `json:"receive_id,omitempty"` // 接受消息的各类id 5869 Content *string `json:"content,omitempty"` // 消息体, json格式 5870 MsgType *string `json:"msg_type,omitempty"` // 消息类型 5871 Config *string `json:"config,omitempty"` // 发送配置 5872 Extra *string `json:"extra,omitempty"` // 特殊配制 5873 Uuid *string `json:"uuid,omitempty"` // 幂等key 5874 } 5875 5876 type MessageBuilder struct { 5877 id string // 消息id标识 5878 idFlag bool 5879 receiveId string // 接受消息的各类id 5880 receiveIdFlag bool 5881 content string // 消息体, json格式 5882 contentFlag bool 5883 msgType string // 消息类型 5884 msgTypeFlag bool 5885 config string // 发送配置 5886 configFlag bool 5887 extra string // 特殊配制 5888 extraFlag bool 5889 uuid string // 幂等key 5890 uuidFlag bool 5891 } 5892 5893 func NewMessageBuilder() *MessageBuilder { 5894 builder := &MessageBuilder{} 5895 return builder 5896 } 5897 5898 // 消息id标识 5899 // 5900 // 示例值:1705036822442409986 5901 func (builder *MessageBuilder) Id(id string) *MessageBuilder { 5902 builder.id = id 5903 builder.idFlag = true 5904 return builder 5905 } 5906 5907 // 接受消息的各类id 5908 // 5909 // 示例值:ou_xxx 5910 func (builder *MessageBuilder) ReceiveId(receiveId string) *MessageBuilder { 5911 builder.receiveId = receiveId 5912 builder.receiveIdFlag = true 5913 return builder 5914 } 5915 5916 // 消息体, json格式 5917 // 5918 // 示例值:{} 5919 func (builder *MessageBuilder) Content(content string) *MessageBuilder { 5920 builder.content = content 5921 builder.contentFlag = true 5922 return builder 5923 } 5924 5925 // 消息类型 5926 // 5927 // 示例值:interactive 5928 func (builder *MessageBuilder) MsgType(msgType string) *MessageBuilder { 5929 builder.msgType = msgType 5930 builder.msgTypeFlag = true 5931 return builder 5932 } 5933 5934 // 发送配置 5935 // 5936 // 示例值:{} 5937 func (builder *MessageBuilder) Config(config string) *MessageBuilder { 5938 builder.config = config 5939 builder.configFlag = true 5940 return builder 5941 } 5942 5943 // 特殊配制 5944 // 5945 // 示例值:v2 5946 func (builder *MessageBuilder) Extra(extra string) *MessageBuilder { 5947 builder.extra = extra 5948 builder.extraFlag = true 5949 return builder 5950 } 5951 5952 // 幂等key 5953 // 5954 // 示例值:a60cfe61268e10f054a3211ab72185c 5955 func (builder *MessageBuilder) Uuid(uuid string) *MessageBuilder { 5956 builder.uuid = uuid 5957 builder.uuidFlag = true 5958 return builder 5959 } 5960 5961 func (builder *MessageBuilder) Build() *Message { 5962 req := &Message{} 5963 if builder.idFlag { 5964 req.Id = &builder.id 5965 5966 } 5967 if builder.receiveIdFlag { 5968 req.ReceiveId = &builder.receiveId 5969 5970 } 5971 if builder.contentFlag { 5972 req.Content = &builder.content 5973 5974 } 5975 if builder.msgTypeFlag { 5976 req.MsgType = &builder.msgType 5977 5978 } 5979 if builder.configFlag { 5980 req.Config = &builder.config 5981 5982 } 5983 if builder.extraFlag { 5984 req.Extra = &builder.extra 5985 5986 } 5987 if builder.uuidFlag { 5988 req.Uuid = &builder.uuid 5989 5990 } 5991 return req 5992 } 5993 5994 type NodeApprover struct { 5995 Key *string `json:"key,omitempty"` // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 5996 Value []string `json:"value,omitempty"` // value: 审批人列表 5997 } 5998 5999 type NodeApproverBuilder struct { 6000 key string // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 6001 keyFlag bool 6002 value []string // value: 审批人列表 6003 valueFlag bool 6004 } 6005 6006 func NewNodeApproverBuilder() *NodeApproverBuilder { 6007 builder := &NodeApproverBuilder{} 6008 return builder 6009 } 6010 6011 // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 6012 // 6013 // 示例值:46e6d96cfa756980907209209ec03b64 6014 func (builder *NodeApproverBuilder) Key(key string) *NodeApproverBuilder { 6015 builder.key = key 6016 builder.keyFlag = true 6017 return builder 6018 } 6019 6020 // value: 审批人列表 6021 // 6022 // 示例值:["f7cb567e"] 6023 func (builder *NodeApproverBuilder) Value(value []string) *NodeApproverBuilder { 6024 builder.value = value 6025 builder.valueFlag = true 6026 return builder 6027 } 6028 6029 func (builder *NodeApproverBuilder) Build() *NodeApprover { 6030 req := &NodeApprover{} 6031 if builder.keyFlag { 6032 req.Key = &builder.key 6033 6034 } 6035 if builder.valueFlag { 6036 req.Value = builder.value 6037 } 6038 return req 6039 } 6040 6041 type NodeCc struct { 6042 Key *string `json:"key,omitempty"` // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 6043 Value []string `json:"value,omitempty"` // value: 审批人列表 6044 } 6045 6046 type NodeCcBuilder struct { 6047 key string // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 6048 keyFlag bool 6049 value []string // value: 审批人列表 6050 valueFlag bool 6051 } 6052 6053 func NewNodeCcBuilder() *NodeCcBuilder { 6054 builder := &NodeCcBuilder{} 6055 return builder 6056 } 6057 6058 // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取 6059 // 6060 // 示例值:46e6d96cfa756980907209209ec03b75 6061 func (builder *NodeCcBuilder) Key(key string) *NodeCcBuilder { 6062 builder.key = key 6063 builder.keyFlag = true 6064 return builder 6065 } 6066 6067 // value: 审批人列表 6068 // 6069 // 示例值:["f7cb567e"] 6070 func (builder *NodeCcBuilder) Value(value []string) *NodeCcBuilder { 6071 builder.value = value 6072 builder.valueFlag = true 6073 return builder 6074 } 6075 6076 func (builder *NodeCcBuilder) Build() *NodeCc { 6077 req := &NodeCc{} 6078 if builder.keyFlag { 6079 req.Key = &builder.key 6080 6081 } 6082 if builder.valueFlag { 6083 req.Value = builder.value 6084 } 6085 return req 6086 } 6087 6088 type PreviewNode struct { 6089 NodeId *string `json:"node_id,omitempty"` // 节点id 6090 NodeName *string `json:"node_name,omitempty"` // 节点名称 6091 NodeType *string `json:"node_type,omitempty"` // 节点类型 “AND":会签 “OR”:或签 6092 Comments []string `json:"comments,omitempty"` // 节点描述 6093 CustomNodeId *string `json:"custom_node_id,omitempty"` // 租户节点id 6094 UserIdList []string `json:"user_id_list,omitempty"` // 审批人id列表 6095 EndCcIdList []string `json:"end_cc_id_list,omitempty"` // 节点结束抄送人id列表 6096 IsEmptyLogic *bool `json:"is_empty_logic,omitempty"` // 审批人是否为空 6097 IsApproverTypeFree *bool `json:"is_approver_type_free,omitempty"` // 是否是发起人自选类型 6098 HasCcTypeFree *bool `json:"has_cc_type_free,omitempty"` // 是否包含抄送人自选类型 6099 } 6100 6101 type PreviewNodeBuilder struct { 6102 nodeId string // 节点id 6103 nodeIdFlag bool 6104 nodeName string // 节点名称 6105 nodeNameFlag bool 6106 nodeType string // 节点类型 “AND":会签 “OR”:或签 6107 nodeTypeFlag bool 6108 comments []string // 节点描述 6109 commentsFlag bool 6110 customNodeId string // 租户节点id 6111 customNodeIdFlag bool 6112 userIdList []string // 审批人id列表 6113 userIdListFlag bool 6114 endCcIdList []string // 节点结束抄送人id列表 6115 endCcIdListFlag bool 6116 isEmptyLogic bool // 审批人是否为空 6117 isEmptyLogicFlag bool 6118 isApproverTypeFree bool // 是否是发起人自选类型 6119 isApproverTypeFreeFlag bool 6120 hasCcTypeFree bool // 是否包含抄送人自选类型 6121 hasCcTypeFreeFlag bool 6122 } 6123 6124 func NewPreviewNodeBuilder() *PreviewNodeBuilder { 6125 builder := &PreviewNodeBuilder{} 6126 return builder 6127 } 6128 6129 // 节点id 6130 // 6131 // 示例值: 6132 func (builder *PreviewNodeBuilder) NodeId(nodeId string) *PreviewNodeBuilder { 6133 builder.nodeId = nodeId 6134 builder.nodeIdFlag = true 6135 return builder 6136 } 6137 6138 // 节点名称 6139 // 6140 // 示例值: 6141 func (builder *PreviewNodeBuilder) NodeName(nodeName string) *PreviewNodeBuilder { 6142 builder.nodeName = nodeName 6143 builder.nodeNameFlag = true 6144 return builder 6145 } 6146 6147 // 节点类型 “AND":会签 “OR”:或签 6148 // 6149 // 示例值: 6150 func (builder *PreviewNodeBuilder) NodeType(nodeType string) *PreviewNodeBuilder { 6151 builder.nodeType = nodeType 6152 builder.nodeTypeFlag = true 6153 return builder 6154 } 6155 6156 // 节点描述 6157 // 6158 // 示例值: 6159 func (builder *PreviewNodeBuilder) Comments(comments []string) *PreviewNodeBuilder { 6160 builder.comments = comments 6161 builder.commentsFlag = true 6162 return builder 6163 } 6164 6165 // 租户节点id 6166 // 6167 // 示例值: 6168 func (builder *PreviewNodeBuilder) CustomNodeId(customNodeId string) *PreviewNodeBuilder { 6169 builder.customNodeId = customNodeId 6170 builder.customNodeIdFlag = true 6171 return builder 6172 } 6173 6174 // 审批人id列表 6175 // 6176 // 示例值: 6177 func (builder *PreviewNodeBuilder) UserIdList(userIdList []string) *PreviewNodeBuilder { 6178 builder.userIdList = userIdList 6179 builder.userIdListFlag = true 6180 return builder 6181 } 6182 6183 // 节点结束抄送人id列表 6184 // 6185 // 示例值: 6186 func (builder *PreviewNodeBuilder) EndCcIdList(endCcIdList []string) *PreviewNodeBuilder { 6187 builder.endCcIdList = endCcIdList 6188 builder.endCcIdListFlag = true 6189 return builder 6190 } 6191 6192 // 审批人是否为空 6193 // 6194 // 示例值: 6195 func (builder *PreviewNodeBuilder) IsEmptyLogic(isEmptyLogic bool) *PreviewNodeBuilder { 6196 builder.isEmptyLogic = isEmptyLogic 6197 builder.isEmptyLogicFlag = true 6198 return builder 6199 } 6200 6201 // 是否是发起人自选类型 6202 // 6203 // 示例值: 6204 func (builder *PreviewNodeBuilder) IsApproverTypeFree(isApproverTypeFree bool) *PreviewNodeBuilder { 6205 builder.isApproverTypeFree = isApproverTypeFree 6206 builder.isApproverTypeFreeFlag = true 6207 return builder 6208 } 6209 6210 // 是否包含抄送人自选类型 6211 // 6212 // 示例值: 6213 func (builder *PreviewNodeBuilder) HasCcTypeFree(hasCcTypeFree bool) *PreviewNodeBuilder { 6214 builder.hasCcTypeFree = hasCcTypeFree 6215 builder.hasCcTypeFreeFlag = true 6216 return builder 6217 } 6218 6219 func (builder *PreviewNodeBuilder) Build() *PreviewNode { 6220 req := &PreviewNode{} 6221 if builder.nodeIdFlag { 6222 req.NodeId = &builder.nodeId 6223 6224 } 6225 if builder.nodeNameFlag { 6226 req.NodeName = &builder.nodeName 6227 6228 } 6229 if builder.nodeTypeFlag { 6230 req.NodeType = &builder.nodeType 6231 6232 } 6233 if builder.commentsFlag { 6234 req.Comments = builder.comments 6235 } 6236 if builder.customNodeIdFlag { 6237 req.CustomNodeId = &builder.customNodeId 6238 6239 } 6240 if builder.userIdListFlag { 6241 req.UserIdList = builder.userIdList 6242 } 6243 if builder.endCcIdListFlag { 6244 req.EndCcIdList = builder.endCcIdList 6245 } 6246 if builder.isEmptyLogicFlag { 6247 req.IsEmptyLogic = &builder.isEmptyLogic 6248 6249 } 6250 if builder.isApproverTypeFreeFlag { 6251 req.IsApproverTypeFree = &builder.isApproverTypeFree 6252 6253 } 6254 if builder.hasCcTypeFreeFlag { 6255 req.HasCcTypeFree = &builder.hasCcTypeFree 6256 6257 } 6258 return req 6259 } 6260 6261 type Reason struct { 6262 Text *string `json:"text,omitempty"` // 原因说明 6263 Files []*File `json:"files,omitempty"` // 附件集合 6264 } 6265 6266 type ReasonBuilder struct { 6267 text string // 原因说明 6268 textFlag bool 6269 files []*File // 附件集合 6270 filesFlag bool 6271 } 6272 6273 func NewReasonBuilder() *ReasonBuilder { 6274 builder := &ReasonBuilder{} 6275 return builder 6276 } 6277 6278 // 原因说明 6279 // 6280 // 示例值: 6281 func (builder *ReasonBuilder) Text(text string) *ReasonBuilder { 6282 builder.text = text 6283 builder.textFlag = true 6284 return builder 6285 } 6286 6287 // 附件集合 6288 // 6289 // 示例值: 6290 func (builder *ReasonBuilder) Files(files []*File) *ReasonBuilder { 6291 builder.files = files 6292 builder.filesFlag = true 6293 return builder 6294 } 6295 6296 func (builder *ReasonBuilder) Build() *Reason { 6297 req := &Reason{} 6298 if builder.textFlag { 6299 req.Text = &builder.text 6300 6301 } 6302 if builder.filesFlag { 6303 req.Files = builder.files 6304 } 6305 return req 6306 } 6307 6308 type RemedyGroup struct { 6309 Type *string `json:"type,omitempty"` // 6310 InstanceCode *string `json:"instance_code,omitempty"` // 6311 EmployeeId *string `json:"employee_id,omitempty"` // 6312 StartTime *int `json:"start_time,omitempty"` // 6313 EndTime *int `json:"end_time,omitempty"` // 6314 RemedyTime *int `json:"remedy_time,omitempty"` // 6315 RemedyReason *string `json:"remedy_reason,omitempty"` // 6316 Status *string `json:"status,omitempty"` // 6317 } 6318 6319 type RemedyGroupBuilder struct { 6320 type_ string // 6321 typeFlag bool 6322 instanceCode string // 6323 instanceCodeFlag bool 6324 employeeId string // 6325 employeeIdFlag bool 6326 startTime int // 6327 startTimeFlag bool 6328 endTime int // 6329 endTimeFlag bool 6330 remedyTime int // 6331 remedyTimeFlag bool 6332 remedyReason string // 6333 remedyReasonFlag bool 6334 status string // 6335 statusFlag bool 6336 } 6337 6338 func NewRemedyGroupBuilder() *RemedyGroupBuilder { 6339 builder := &RemedyGroupBuilder{} 6340 return builder 6341 } 6342 6343 // 6344 // 6345 // 示例值: 6346 func (builder *RemedyGroupBuilder) Type(type_ string) *RemedyGroupBuilder { 6347 builder.type_ = type_ 6348 builder.typeFlag = true 6349 return builder 6350 } 6351 6352 // 6353 // 6354 // 示例值: 6355 func (builder *RemedyGroupBuilder) InstanceCode(instanceCode string) *RemedyGroupBuilder { 6356 builder.instanceCode = instanceCode 6357 builder.instanceCodeFlag = true 6358 return builder 6359 } 6360 6361 // 6362 // 6363 // 示例值: 6364 func (builder *RemedyGroupBuilder) EmployeeId(employeeId string) *RemedyGroupBuilder { 6365 builder.employeeId = employeeId 6366 builder.employeeIdFlag = true 6367 return builder 6368 } 6369 6370 // 6371 // 6372 // 示例值: 6373 func (builder *RemedyGroupBuilder) StartTime(startTime int) *RemedyGroupBuilder { 6374 builder.startTime = startTime 6375 builder.startTimeFlag = true 6376 return builder 6377 } 6378 6379 // 6380 // 6381 // 示例值: 6382 func (builder *RemedyGroupBuilder) EndTime(endTime int) *RemedyGroupBuilder { 6383 builder.endTime = endTime 6384 builder.endTimeFlag = true 6385 return builder 6386 } 6387 6388 // 6389 // 6390 // 示例值: 6391 func (builder *RemedyGroupBuilder) RemedyTime(remedyTime int) *RemedyGroupBuilder { 6392 builder.remedyTime = remedyTime 6393 builder.remedyTimeFlag = true 6394 return builder 6395 } 6396 6397 // 6398 // 6399 // 示例值: 6400 func (builder *RemedyGroupBuilder) RemedyReason(remedyReason string) *RemedyGroupBuilder { 6401 builder.remedyReason = remedyReason 6402 builder.remedyReasonFlag = true 6403 return builder 6404 } 6405 6406 // 6407 // 6408 // 示例值: 6409 func (builder *RemedyGroupBuilder) Status(status string) *RemedyGroupBuilder { 6410 builder.status = status 6411 builder.statusFlag = true 6412 return builder 6413 } 6414 6415 func (builder *RemedyGroupBuilder) Build() *RemedyGroup { 6416 req := &RemedyGroup{} 6417 if builder.typeFlag { 6418 req.Type = &builder.type_ 6419 6420 } 6421 if builder.instanceCodeFlag { 6422 req.InstanceCode = &builder.instanceCode 6423 6424 } 6425 if builder.employeeIdFlag { 6426 req.EmployeeId = &builder.employeeId 6427 6428 } 6429 if builder.startTimeFlag { 6430 req.StartTime = &builder.startTime 6431 6432 } 6433 if builder.endTimeFlag { 6434 req.EndTime = &builder.endTime 6435 6436 } 6437 if builder.remedyTimeFlag { 6438 req.RemedyTime = &builder.remedyTime 6439 6440 } 6441 if builder.remedyReasonFlag { 6442 req.RemedyReason = &builder.remedyReason 6443 6444 } 6445 if builder.statusFlag { 6446 req.Status = &builder.status 6447 6448 } 6449 return req 6450 } 6451 6452 type SignGroup struct { 6453 InstanceCode *string `json:"instance_code,omitempty"` // 6454 UserId *UserId `json:"user_id,omitempty"` // 6455 AccountCode *string `json:"account_code,omitempty"` // 6456 BoilerplateUniqueCode *string `json:"boilerplate_unique_code,omitempty"` // 6457 StartTime *int `json:"start_time,omitempty"` // 6458 EndTime *int `json:"end_time,omitempty"` // 6459 Type *string `json:"type,omitempty"` // 6460 } 6461 6462 type SignGroupBuilder struct { 6463 instanceCode string // 6464 instanceCodeFlag bool 6465 userId *UserId // 6466 userIdFlag bool 6467 accountCode string // 6468 accountCodeFlag bool 6469 boilerplateUniqueCode string // 6470 boilerplateUniqueCodeFlag bool 6471 startTime int // 6472 startTimeFlag bool 6473 endTime int // 6474 endTimeFlag bool 6475 type_ string // 6476 typeFlag bool 6477 } 6478 6479 func NewSignGroupBuilder() *SignGroupBuilder { 6480 builder := &SignGroupBuilder{} 6481 return builder 6482 } 6483 6484 // 6485 // 6486 // 示例值: 6487 func (builder *SignGroupBuilder) InstanceCode(instanceCode string) *SignGroupBuilder { 6488 builder.instanceCode = instanceCode 6489 builder.instanceCodeFlag = true 6490 return builder 6491 } 6492 6493 // 6494 // 6495 // 示例值: 6496 func (builder *SignGroupBuilder) UserId(userId *UserId) *SignGroupBuilder { 6497 builder.userId = userId 6498 builder.userIdFlag = true 6499 return builder 6500 } 6501 6502 // 6503 // 6504 // 示例值: 6505 func (builder *SignGroupBuilder) AccountCode(accountCode string) *SignGroupBuilder { 6506 builder.accountCode = accountCode 6507 builder.accountCodeFlag = true 6508 return builder 6509 } 6510 6511 // 6512 // 6513 // 示例值: 6514 func (builder *SignGroupBuilder) BoilerplateUniqueCode(boilerplateUniqueCode string) *SignGroupBuilder { 6515 builder.boilerplateUniqueCode = boilerplateUniqueCode 6516 builder.boilerplateUniqueCodeFlag = true 6517 return builder 6518 } 6519 6520 // 6521 // 6522 // 示例值: 6523 func (builder *SignGroupBuilder) StartTime(startTime int) *SignGroupBuilder { 6524 builder.startTime = startTime 6525 builder.startTimeFlag = true 6526 return builder 6527 } 6528 6529 // 6530 // 6531 // 示例值: 6532 func (builder *SignGroupBuilder) EndTime(endTime int) *SignGroupBuilder { 6533 builder.endTime = endTime 6534 builder.endTimeFlag = true 6535 return builder 6536 } 6537 6538 // 6539 // 6540 // 示例值: 6541 func (builder *SignGroupBuilder) Type(type_ string) *SignGroupBuilder { 6542 builder.type_ = type_ 6543 builder.typeFlag = true 6544 return builder 6545 } 6546 6547 func (builder *SignGroupBuilder) Build() *SignGroup { 6548 req := &SignGroup{} 6549 if builder.instanceCodeFlag { 6550 req.InstanceCode = &builder.instanceCode 6551 6552 } 6553 if builder.userIdFlag { 6554 req.UserId = builder.userId 6555 } 6556 if builder.accountCodeFlag { 6557 req.AccountCode = &builder.accountCode 6558 6559 } 6560 if builder.boilerplateUniqueCodeFlag { 6561 req.BoilerplateUniqueCode = &builder.boilerplateUniqueCode 6562 6563 } 6564 if builder.startTimeFlag { 6565 req.StartTime = &builder.startTime 6566 6567 } 6568 if builder.endTimeFlag { 6569 req.EndTime = &builder.endTime 6570 6571 } 6572 if builder.typeFlag { 6573 req.Type = &builder.type_ 6574 6575 } 6576 return req 6577 } 6578 6579 type SpecifiedRollback struct { 6580 UserId *string `json:"user_id,omitempty"` // 用户ID 6581 TaskId *string `json:"task_id,omitempty"` // 回退的任务ID 6582 Reason *string `json:"reason,omitempty"` // 退回原因 6583 Extra *string `json:"extra,omitempty"` // 扩展字段 6584 TaskDefKeyList []string `json:"task_def_key_list,omitempty"` // 退回到节点列表 6585 } 6586 6587 type SpecifiedRollbackBuilder struct { 6588 userId string // 用户ID 6589 userIdFlag bool 6590 taskId string // 回退的任务ID 6591 taskIdFlag bool 6592 reason string // 退回原因 6593 reasonFlag bool 6594 extra string // 扩展字段 6595 extraFlag bool 6596 taskDefKeyList []string // 退回到节点列表 6597 taskDefKeyListFlag bool 6598 } 6599 6600 func NewSpecifiedRollbackBuilder() *SpecifiedRollbackBuilder { 6601 builder := &SpecifiedRollbackBuilder{} 6602 return builder 6603 } 6604 6605 // 用户ID 6606 // 6607 // 示例值:893g4c45 6608 func (builder *SpecifiedRollbackBuilder) UserId(userId string) *SpecifiedRollbackBuilder { 6609 builder.userId = userId 6610 builder.userIdFlag = true 6611 return builder 6612 } 6613 6614 // 回退的任务ID 6615 // 6616 // 示例值:7026591166355210260 6617 func (builder *SpecifiedRollbackBuilder) TaskId(taskId string) *SpecifiedRollbackBuilder { 6618 builder.taskId = taskId 6619 builder.taskIdFlag = true 6620 return builder 6621 } 6622 6623 // 退回原因 6624 // 6625 // 示例值:申请事项填写不具体,请重新填写 6626 func (builder *SpecifiedRollbackBuilder) Reason(reason string) *SpecifiedRollbackBuilder { 6627 builder.reason = reason 6628 builder.reasonFlag = true 6629 return builder 6630 } 6631 6632 // 扩展字段 6633 // 6634 // 示例值:暂不填写 6635 func (builder *SpecifiedRollbackBuilder) Extra(extra string) *SpecifiedRollbackBuilder { 6636 builder.extra = extra 6637 builder.extraFlag = true 6638 return builder 6639 } 6640 6641 // 退回到节点列表 6642 // 6643 // 示例值:["START","APPROVAL_27997_285502","APPROVAL_462205_2734554"] 6644 func (builder *SpecifiedRollbackBuilder) TaskDefKeyList(taskDefKeyList []string) *SpecifiedRollbackBuilder { 6645 builder.taskDefKeyList = taskDefKeyList 6646 builder.taskDefKeyListFlag = true 6647 return builder 6648 } 6649 6650 func (builder *SpecifiedRollbackBuilder) Build() *SpecifiedRollback { 6651 req := &SpecifiedRollback{} 6652 if builder.userIdFlag { 6653 req.UserId = &builder.userId 6654 6655 } 6656 if builder.taskIdFlag { 6657 req.TaskId = &builder.taskId 6658 6659 } 6660 if builder.reasonFlag { 6661 req.Reason = &builder.reason 6662 6663 } 6664 if builder.extraFlag { 6665 req.Extra = &builder.extra 6666 6667 } 6668 if builder.taskDefKeyListFlag { 6669 req.TaskDefKeyList = builder.taskDefKeyList 6670 } 6671 return req 6672 } 6673 6674 type Task struct { 6675 Topic *string `json:"topic,omitempty"` // 任务所属的任务分组,如「待办」、「已办」等 6676 UserId *string `json:"user_id,omitempty"` // 任务所属的用户 ID 6677 Title *string `json:"title,omitempty"` // 任务题目 6678 Urls *TaskUrls `json:"urls,omitempty"` // 任务相关 URL 6679 ProcessExternalId *string `json:"process_external_id,omitempty"` // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一 6680 TaskExternalId *string `json:"task_external_id,omitempty"` // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一 6681 Status *string `json:"status,omitempty"` // 任务状态 6682 ProcessStatus *string `json:"process_status,omitempty"` // 流程实例状态 6683 DefinitionCode *string `json:"definition_code,omitempty"` // 流程定义 Code 6684 Initiators []string `json:"initiators,omitempty"` // 发起人 ID 列表 6685 InitiatorNames []string `json:"initiator_names,omitempty"` // 发起人姓名列表 6686 TaskId *string `json:"task_id,omitempty"` // 任务 ID,全局唯一 6687 ProcessId *string `json:"process_id,omitempty"` // 流程 ID,全局唯一 6688 ProcessCode *string `json:"process_code,omitempty"` // 流程 Code 6689 DefinitionGroupId *string `json:"definition_group_id,omitempty"` // 流程定义分组 ID 6690 DefinitionGroupName *string `json:"definition_group_name,omitempty"` // 流程定义分组名称 6691 DefinitionId *string `json:"definition_id,omitempty"` // 流程定义 ID 6692 DefinitionName *string `json:"definition_name,omitempty"` // 流程定义名称 6693 } 6694 6695 type TaskBuilder struct { 6696 topic string // 任务所属的任务分组,如「待办」、「已办」等 6697 topicFlag bool 6698 userId string // 任务所属的用户 ID 6699 userIdFlag bool 6700 title string // 任务题目 6701 titleFlag bool 6702 urls *TaskUrls // 任务相关 URL 6703 urlsFlag bool 6704 processExternalId string // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一 6705 processExternalIdFlag bool 6706 taskExternalId string // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一 6707 taskExternalIdFlag bool 6708 status string // 任务状态 6709 statusFlag bool 6710 processStatus string // 流程实例状态 6711 processStatusFlag bool 6712 definitionCode string // 流程定义 Code 6713 definitionCodeFlag bool 6714 initiators []string // 发起人 ID 列表 6715 initiatorsFlag bool 6716 initiatorNames []string // 发起人姓名列表 6717 initiatorNamesFlag bool 6718 taskId string // 任务 ID,全局唯一 6719 taskIdFlag bool 6720 processId string // 流程 ID,全局唯一 6721 processIdFlag bool 6722 processCode string // 流程 Code 6723 processCodeFlag bool 6724 definitionGroupId string // 流程定义分组 ID 6725 definitionGroupIdFlag bool 6726 definitionGroupName string // 流程定义分组名称 6727 definitionGroupNameFlag bool 6728 definitionId string // 流程定义 ID 6729 definitionIdFlag bool 6730 definitionName string // 流程定义名称 6731 definitionNameFlag bool 6732 } 6733 6734 func NewTaskBuilder() *TaskBuilder { 6735 builder := &TaskBuilder{} 6736 return builder 6737 } 6738 6739 // 任务所属的任务分组,如「待办」、「已办」等 6740 // 6741 // 示例值:1 6742 func (builder *TaskBuilder) Topic(topic string) *TaskBuilder { 6743 builder.topic = topic 6744 builder.topicFlag = true 6745 return builder 6746 } 6747 6748 // 任务所属的用户 ID 6749 // 6750 // 示例值:example_user_id 6751 func (builder *TaskBuilder) UserId(userId string) *TaskBuilder { 6752 builder.userId = userId 6753 builder.userIdFlag = true 6754 return builder 6755 } 6756 6757 // 任务题目 6758 // 6759 // 示例值:任务题目示例 6760 func (builder *TaskBuilder) Title(title string) *TaskBuilder { 6761 builder.title = title 6762 builder.titleFlag = true 6763 return builder 6764 } 6765 6766 // 任务相关 URL 6767 // 6768 // 示例值: 6769 func (builder *TaskBuilder) Urls(urls *TaskUrls) *TaskBuilder { 6770 builder.urls = urls 6771 builder.urlsFlag = true 6772 return builder 6773 } 6774 6775 // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一 6776 // 6777 // 示例值:example_instance_id 6778 func (builder *TaskBuilder) ProcessExternalId(processExternalId string) *TaskBuilder { 6779 builder.processExternalId = processExternalId 6780 builder.processExternalIdFlag = true 6781 return builder 6782 } 6783 6784 // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一 6785 // 6786 // 示例值:example_task_id 6787 func (builder *TaskBuilder) TaskExternalId(taskExternalId string) *TaskBuilder { 6788 builder.taskExternalId = taskExternalId 6789 builder.taskExternalIdFlag = true 6790 return builder 6791 } 6792 6793 // 任务状态 6794 // 6795 // 示例值:Todo 6796 func (builder *TaskBuilder) Status(status string) *TaskBuilder { 6797 builder.status = status 6798 builder.statusFlag = true 6799 return builder 6800 } 6801 6802 // 流程实例状态 6803 // 6804 // 示例值:Running 6805 func (builder *TaskBuilder) ProcessStatus(processStatus string) *TaskBuilder { 6806 builder.processStatus = processStatus 6807 builder.processStatusFlag = true 6808 return builder 6809 } 6810 6811 // 流程定义 Code 6812 // 6813 // 示例值:000000-00000000000000-0example 6814 func (builder *TaskBuilder) DefinitionCode(definitionCode string) *TaskBuilder { 6815 builder.definitionCode = definitionCode 6816 builder.definitionCodeFlag = true 6817 return builder 6818 } 6819 6820 // 发起人 ID 列表 6821 // 6822 // 示例值: 6823 func (builder *TaskBuilder) Initiators(initiators []string) *TaskBuilder { 6824 builder.initiators = initiators 6825 builder.initiatorsFlag = true 6826 return builder 6827 } 6828 6829 // 发起人姓名列表 6830 // 6831 // 示例值: 6832 func (builder *TaskBuilder) InitiatorNames(initiatorNames []string) *TaskBuilder { 6833 builder.initiatorNames = initiatorNames 6834 builder.initiatorNamesFlag = true 6835 return builder 6836 } 6837 6838 // 任务 ID,全局唯一 6839 // 6840 // 示例值:1212564555454 6841 func (builder *TaskBuilder) TaskId(taskId string) *TaskBuilder { 6842 builder.taskId = taskId 6843 builder.taskIdFlag = true 6844 return builder 6845 } 6846 6847 // 流程 ID,全局唯一 6848 // 6849 // 示例值:1214564545474 6850 func (builder *TaskBuilder) ProcessId(processId string) *TaskBuilder { 6851 builder.processId = processId 6852 builder.processIdFlag = true 6853 return builder 6854 } 6855 6856 // 流程 Code 6857 // 6858 // 示例值:123e4567-e89b-12d3-a456-426655440000 6859 func (builder *TaskBuilder) ProcessCode(processCode string) *TaskBuilder { 6860 builder.processCode = processCode 6861 builder.processCodeFlag = true 6862 return builder 6863 } 6864 6865 // 流程定义分组 ID 6866 // 6867 // 示例值:1212564555454 6868 func (builder *TaskBuilder) DefinitionGroupId(definitionGroupId string) *TaskBuilder { 6869 builder.definitionGroupId = definitionGroupId 6870 builder.definitionGroupIdFlag = true 6871 return builder 6872 } 6873 6874 // 流程定义分组名称 6875 // 6876 // 示例值:流程定义名称 6877 func (builder *TaskBuilder) DefinitionGroupName(definitionGroupName string) *TaskBuilder { 6878 builder.definitionGroupName = definitionGroupName 6879 builder.definitionGroupNameFlag = true 6880 return builder 6881 } 6882 6883 // 流程定义 ID 6884 // 6885 // 示例值:1212564555454 6886 func (builder *TaskBuilder) DefinitionId(definitionId string) *TaskBuilder { 6887 builder.definitionId = definitionId 6888 builder.definitionIdFlag = true 6889 return builder 6890 } 6891 6892 // 流程定义名称 6893 // 6894 // 示例值:流程定义组名称 6895 func (builder *TaskBuilder) DefinitionName(definitionName string) *TaskBuilder { 6896 builder.definitionName = definitionName 6897 builder.definitionNameFlag = true 6898 return builder 6899 } 6900 6901 func (builder *TaskBuilder) Build() *Task { 6902 req := &Task{} 6903 if builder.topicFlag { 6904 req.Topic = &builder.topic 6905 6906 } 6907 if builder.userIdFlag { 6908 req.UserId = &builder.userId 6909 6910 } 6911 if builder.titleFlag { 6912 req.Title = &builder.title 6913 6914 } 6915 if builder.urlsFlag { 6916 req.Urls = builder.urls 6917 } 6918 if builder.processExternalIdFlag { 6919 req.ProcessExternalId = &builder.processExternalId 6920 6921 } 6922 if builder.taskExternalIdFlag { 6923 req.TaskExternalId = &builder.taskExternalId 6924 6925 } 6926 if builder.statusFlag { 6927 req.Status = &builder.status 6928 6929 } 6930 if builder.processStatusFlag { 6931 req.ProcessStatus = &builder.processStatus 6932 6933 } 6934 if builder.definitionCodeFlag { 6935 req.DefinitionCode = &builder.definitionCode 6936 6937 } 6938 if builder.initiatorsFlag { 6939 req.Initiators = builder.initiators 6940 } 6941 if builder.initiatorNamesFlag { 6942 req.InitiatorNames = builder.initiatorNames 6943 } 6944 if builder.taskIdFlag { 6945 req.TaskId = &builder.taskId 6946 6947 } 6948 if builder.processIdFlag { 6949 req.ProcessId = &builder.processId 6950 6951 } 6952 if builder.processCodeFlag { 6953 req.ProcessCode = &builder.processCode 6954 6955 } 6956 if builder.definitionGroupIdFlag { 6957 req.DefinitionGroupId = &builder.definitionGroupId 6958 6959 } 6960 if builder.definitionGroupNameFlag { 6961 req.DefinitionGroupName = &builder.definitionGroupName 6962 6963 } 6964 if builder.definitionIdFlag { 6965 req.DefinitionId = &builder.definitionId 6966 6967 } 6968 if builder.definitionNameFlag { 6969 req.DefinitionName = &builder.definitionName 6970 6971 } 6972 return req 6973 } 6974 6975 type TaskApprove struct { 6976 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code 6977 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code 6978 UserId *string `json:"user_id,omitempty"` // 根据user_id_type填写操作用户id 6979 Comment *string `json:"comment,omitempty"` // 意见 6980 TaskId *string `json:"task_id,omitempty"` // 任务 ID, 审批实例详情task_list中id 6981 Form *string `json:"form,omitempty"` // json 数组,控件值 6982 } 6983 6984 type TaskApproveBuilder struct { 6985 approvalCode string // 审批定义 Code 6986 approvalCodeFlag bool 6987 instanceCode string // 审批实例 Code 6988 instanceCodeFlag bool 6989 userId string // 根据user_id_type填写操作用户id 6990 userIdFlag bool 6991 comment string // 意见 6992 commentFlag bool 6993 taskId string // 任务 ID, 审批实例详情task_list中id 6994 taskIdFlag bool 6995 form string // json 数组,控件值 6996 formFlag bool 6997 } 6998 6999 func NewTaskApproveBuilder() *TaskApproveBuilder { 7000 builder := &TaskApproveBuilder{} 7001 return builder 7002 } 7003 7004 // 审批定义 Code 7005 // 7006 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 7007 func (builder *TaskApproveBuilder) ApprovalCode(approvalCode string) *TaskApproveBuilder { 7008 builder.approvalCode = approvalCode 7009 builder.approvalCodeFlag = true 7010 return builder 7011 } 7012 7013 // 审批实例 Code 7014 // 7015 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 7016 func (builder *TaskApproveBuilder) InstanceCode(instanceCode string) *TaskApproveBuilder { 7017 builder.instanceCode = instanceCode 7018 builder.instanceCodeFlag = true 7019 return builder 7020 } 7021 7022 // 根据user_id_type填写操作用户id 7023 // 7024 // 示例值:f7cb567e 7025 func (builder *TaskApproveBuilder) UserId(userId string) *TaskApproveBuilder { 7026 builder.userId = userId 7027 builder.userIdFlag = true 7028 return builder 7029 } 7030 7031 // 意见 7032 // 7033 // 示例值:OK 7034 func (builder *TaskApproveBuilder) Comment(comment string) *TaskApproveBuilder { 7035 builder.comment = comment 7036 builder.commentFlag = true 7037 return builder 7038 } 7039 7040 // 任务 ID, 审批实例详情task_list中id 7041 // 7042 // 示例值:12345 7043 func (builder *TaskApproveBuilder) TaskId(taskId string) *TaskApproveBuilder { 7044 builder.taskId = taskId 7045 builder.taskIdFlag = true 7046 return builder 7047 } 7048 7049 // json 数组,控件值 7050 // 7051 // 示例值:[{\"id\":\"111\", \"type\": \"input\", \"value\":\"test\"}] 7052 func (builder *TaskApproveBuilder) Form(form string) *TaskApproveBuilder { 7053 builder.form = form 7054 builder.formFlag = true 7055 return builder 7056 } 7057 7058 func (builder *TaskApproveBuilder) Build() *TaskApprove { 7059 req := &TaskApprove{} 7060 if builder.approvalCodeFlag { 7061 req.ApprovalCode = &builder.approvalCode 7062 7063 } 7064 if builder.instanceCodeFlag { 7065 req.InstanceCode = &builder.instanceCode 7066 7067 } 7068 if builder.userIdFlag { 7069 req.UserId = &builder.userId 7070 7071 } 7072 if builder.commentFlag { 7073 req.Comment = &builder.comment 7074 7075 } 7076 if builder.taskIdFlag { 7077 req.TaskId = &builder.taskId 7078 7079 } 7080 if builder.formFlag { 7081 req.Form = &builder.form 7082 7083 } 7084 return req 7085 } 7086 7087 type TaskResubmit struct { 7088 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code 7089 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code 7090 UserId *string `json:"user_id,omitempty"` // 根据user_id_type填写操作用户id 7091 Comment *string `json:"comment,omitempty"` // 意见 7092 TaskId *string `json:"task_id,omitempty"` // 任务 ID, 审批实例详情task_list中id 7093 Form *string `json:"form,omitempty"` // json 数组,控件值,同创建审批实例接口中form字段 7094 } 7095 7096 type TaskResubmitBuilder struct { 7097 approvalCode string // 审批定义 Code 7098 approvalCodeFlag bool 7099 instanceCode string // 审批实例 Code 7100 instanceCodeFlag bool 7101 userId string // 根据user_id_type填写操作用户id 7102 userIdFlag bool 7103 comment string // 意见 7104 commentFlag bool 7105 taskId string // 任务 ID, 审批实例详情task_list中id 7106 taskIdFlag bool 7107 form string // json 数组,控件值,同创建审批实例接口中form字段 7108 formFlag bool 7109 } 7110 7111 func NewTaskResubmitBuilder() *TaskResubmitBuilder { 7112 builder := &TaskResubmitBuilder{} 7113 return builder 7114 } 7115 7116 // 审批定义 Code 7117 // 7118 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 7119 func (builder *TaskResubmitBuilder) ApprovalCode(approvalCode string) *TaskResubmitBuilder { 7120 builder.approvalCode = approvalCode 7121 builder.approvalCodeFlag = true 7122 return builder 7123 } 7124 7125 // 审批实例 Code 7126 // 7127 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 7128 func (builder *TaskResubmitBuilder) InstanceCode(instanceCode string) *TaskResubmitBuilder { 7129 builder.instanceCode = instanceCode 7130 builder.instanceCodeFlag = true 7131 return builder 7132 } 7133 7134 // 根据user_id_type填写操作用户id 7135 // 7136 // 示例值:f7cb567e 7137 func (builder *TaskResubmitBuilder) UserId(userId string) *TaskResubmitBuilder { 7138 builder.userId = userId 7139 builder.userIdFlag = true 7140 return builder 7141 } 7142 7143 // 意见 7144 // 7145 // 示例值:{\"text\":\"评论\",\"file_codes\":[\"ABCD1232s\",\"ABC12334d22\"]} 7146 func (builder *TaskResubmitBuilder) Comment(comment string) *TaskResubmitBuilder { 7147 builder.comment = comment 7148 builder.commentFlag = true 7149 return builder 7150 } 7151 7152 // 任务 ID, 审批实例详情task_list中id 7153 // 7154 // 示例值:12345 7155 func (builder *TaskResubmitBuilder) TaskId(taskId string) *TaskResubmitBuilder { 7156 builder.taskId = taskId 7157 builder.taskIdFlag = true 7158 return builder 7159 } 7160 7161 // json 数组,控件值,同创建审批实例接口中form字段 7162 // 7163 // 示例值:[{\"id\":\"user_name\", \"type\": \"input\", \"value\":\"test\"}] 7164 func (builder *TaskResubmitBuilder) Form(form string) *TaskResubmitBuilder { 7165 builder.form = form 7166 builder.formFlag = true 7167 return builder 7168 } 7169 7170 func (builder *TaskResubmitBuilder) Build() *TaskResubmit { 7171 req := &TaskResubmit{} 7172 if builder.approvalCodeFlag { 7173 req.ApprovalCode = &builder.approvalCode 7174 7175 } 7176 if builder.instanceCodeFlag { 7177 req.InstanceCode = &builder.instanceCode 7178 7179 } 7180 if builder.userIdFlag { 7181 req.UserId = &builder.userId 7182 7183 } 7184 if builder.commentFlag { 7185 req.Comment = &builder.comment 7186 7187 } 7188 if builder.taskIdFlag { 7189 req.TaskId = &builder.taskId 7190 7191 } 7192 if builder.formFlag { 7193 req.Form = &builder.form 7194 7195 } 7196 return req 7197 } 7198 7199 type TaskSearch struct { 7200 UserId *string `json:"user_id,omitempty"` // 根据x_user_type填写用户 id 7201 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code 7202 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 code 7203 InstanceExternalId *string `json:"instance_external_id,omitempty"` // 审批实例第三方 id 注:和 approval_code 取并集 7204 GroupExternalId *string `json:"group_external_id,omitempty"` // 审批定义分组第三方 id 注:和 instance_code 取并集 7205 TaskTitle *string `json:"task_title,omitempty"` // 审批任务标题(只有第三方审批有) 7206 TaskStatus *string `json:"task_status,omitempty"` // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错 7207 TaskStartTimeFrom *string `json:"task_start_time_from,omitempty"` // 任务查询开始时间(unix毫秒时间戳) 7208 TaskStartTimeTo *string `json:"task_start_time_to,omitempty"` // 任务查询结束时间 (unix毫秒时间戳) 7209 Locale *string `json:"locale,omitempty"` // 地区 7210 } 7211 7212 type TaskSearchBuilder struct { 7213 userId string // 根据x_user_type填写用户 id 7214 userIdFlag bool 7215 approvalCode string // 审批定义 code 7216 approvalCodeFlag bool 7217 instanceCode string // 审批实例 code 7218 instanceCodeFlag bool 7219 instanceExternalId string // 审批实例第三方 id 注:和 approval_code 取并集 7220 instanceExternalIdFlag bool 7221 groupExternalId string // 审批定义分组第三方 id 注:和 instance_code 取并集 7222 groupExternalIdFlag bool 7223 taskTitle string // 审批任务标题(只有第三方审批有) 7224 taskTitleFlag bool 7225 taskStatus string // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错 7226 taskStatusFlag bool 7227 taskStartTimeFrom string // 任务查询开始时间(unix毫秒时间戳) 7228 taskStartTimeFromFlag bool 7229 taskStartTimeTo string // 任务查询结束时间 (unix毫秒时间戳) 7230 taskStartTimeToFlag bool 7231 locale string // 地区 7232 localeFlag bool 7233 } 7234 7235 func NewTaskSearchBuilder() *TaskSearchBuilder { 7236 builder := &TaskSearchBuilder{} 7237 return builder 7238 } 7239 7240 // 根据x_user_type填写用户 id 7241 // 7242 // 示例值:lwiu098wj 7243 func (builder *TaskSearchBuilder) UserId(userId string) *TaskSearchBuilder { 7244 builder.userId = userId 7245 builder.userIdFlag = true 7246 return builder 7247 } 7248 7249 // 审批定义 code 7250 // 7251 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942 7252 func (builder *TaskSearchBuilder) ApprovalCode(approvalCode string) *TaskSearchBuilder { 7253 builder.approvalCode = approvalCode 7254 builder.approvalCodeFlag = true 7255 return builder 7256 } 7257 7258 // 审批实例 code 7259 // 7260 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943 7261 func (builder *TaskSearchBuilder) InstanceCode(instanceCode string) *TaskSearchBuilder { 7262 builder.instanceCode = instanceCode 7263 builder.instanceCodeFlag = true 7264 return builder 7265 } 7266 7267 // 审批实例第三方 id 注:和 approval_code 取并集 7268 // 7269 // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976 7270 func (builder *TaskSearchBuilder) InstanceExternalId(instanceExternalId string) *TaskSearchBuilder { 7271 builder.instanceExternalId = instanceExternalId 7272 builder.instanceExternalIdFlag = true 7273 return builder 7274 } 7275 7276 // 审批定义分组第三方 id 注:和 instance_code 取并集 7277 // 7278 // 示例值:1234567 7279 func (builder *TaskSearchBuilder) GroupExternalId(groupExternalId string) *TaskSearchBuilder { 7280 builder.groupExternalId = groupExternalId 7281 builder.groupExternalIdFlag = true 7282 return builder 7283 } 7284 7285 // 审批任务标题(只有第三方审批有) 7286 // 7287 // 示例值:test 7288 func (builder *TaskSearchBuilder) TaskTitle(taskTitle string) *TaskSearchBuilder { 7289 builder.taskTitle = taskTitle 7290 builder.taskTitleFlag = true 7291 return builder 7292 } 7293 7294 // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错 7295 // 7296 // 示例值:PENDING 7297 func (builder *TaskSearchBuilder) TaskStatus(taskStatus string) *TaskSearchBuilder { 7298 builder.taskStatus = taskStatus 7299 builder.taskStatusFlag = true 7300 return builder 7301 } 7302 7303 // 任务查询开始时间(unix毫秒时间戳) 7304 // 7305 // 示例值:1547654251506 7306 func (builder *TaskSearchBuilder) TaskStartTimeFrom(taskStartTimeFrom string) *TaskSearchBuilder { 7307 builder.taskStartTimeFrom = taskStartTimeFrom 7308 builder.taskStartTimeFromFlag = true 7309 return builder 7310 } 7311 7312 // 任务查询结束时间 (unix毫秒时间戳) 7313 // 7314 // 示例值:1547654251506 7315 func (builder *TaskSearchBuilder) TaskStartTimeTo(taskStartTimeTo string) *TaskSearchBuilder { 7316 builder.taskStartTimeTo = taskStartTimeTo 7317 builder.taskStartTimeToFlag = true 7318 return builder 7319 } 7320 7321 // 地区 7322 // 7323 // 示例值:zh-CN 7324 func (builder *TaskSearchBuilder) Locale(locale string) *TaskSearchBuilder { 7325 builder.locale = locale 7326 builder.localeFlag = true 7327 return builder 7328 } 7329 7330 func (builder *TaskSearchBuilder) Build() *TaskSearch { 7331 req := &TaskSearch{} 7332 if builder.userIdFlag { 7333 req.UserId = &builder.userId 7334 7335 } 7336 if builder.approvalCodeFlag { 7337 req.ApprovalCode = &builder.approvalCode 7338 7339 } 7340 if builder.instanceCodeFlag { 7341 req.InstanceCode = &builder.instanceCode 7342 7343 } 7344 if builder.instanceExternalIdFlag { 7345 req.InstanceExternalId = &builder.instanceExternalId 7346 7347 } 7348 if builder.groupExternalIdFlag { 7349 req.GroupExternalId = &builder.groupExternalId 7350 7351 } 7352 if builder.taskTitleFlag { 7353 req.TaskTitle = &builder.taskTitle 7354 7355 } 7356 if builder.taskStatusFlag { 7357 req.TaskStatus = &builder.taskStatus 7358 7359 } 7360 if builder.taskStartTimeFromFlag { 7361 req.TaskStartTimeFrom = &builder.taskStartTimeFrom 7362 7363 } 7364 if builder.taskStartTimeToFlag { 7365 req.TaskStartTimeTo = &builder.taskStartTimeTo 7366 7367 } 7368 if builder.localeFlag { 7369 req.Locale = &builder.locale 7370 7371 } 7372 return req 7373 } 7374 7375 type TaskSearchItem struct { 7376 Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义 7377 Group *InstanceSearchGroup `json:"group,omitempty"` // 审批定义分组 7378 Instance *InstanceSearchNode `json:"instance,omitempty"` // 审批实例信息 7379 Task *TaskSearchNode `json:"task,omitempty"` // 审批任务 7380 } 7381 7382 type TaskSearchItemBuilder struct { 7383 approval *InstanceSearchApproval // 审批定义 7384 approvalFlag bool 7385 group *InstanceSearchGroup // 审批定义分组 7386 groupFlag bool 7387 instance *InstanceSearchNode // 审批实例信息 7388 instanceFlag bool 7389 task *TaskSearchNode // 审批任务 7390 taskFlag bool 7391 } 7392 7393 func NewTaskSearchItemBuilder() *TaskSearchItemBuilder { 7394 builder := &TaskSearchItemBuilder{} 7395 return builder 7396 } 7397 7398 // 审批定义 7399 // 7400 // 示例值: 7401 func (builder *TaskSearchItemBuilder) Approval(approval *InstanceSearchApproval) *TaskSearchItemBuilder { 7402 builder.approval = approval 7403 builder.approvalFlag = true 7404 return builder 7405 } 7406 7407 // 审批定义分组 7408 // 7409 // 示例值: 7410 func (builder *TaskSearchItemBuilder) Group(group *InstanceSearchGroup) *TaskSearchItemBuilder { 7411 builder.group = group 7412 builder.groupFlag = true 7413 return builder 7414 } 7415 7416 // 审批实例信息 7417 // 7418 // 示例值: 7419 func (builder *TaskSearchItemBuilder) Instance(instance *InstanceSearchNode) *TaskSearchItemBuilder { 7420 builder.instance = instance 7421 builder.instanceFlag = true 7422 return builder 7423 } 7424 7425 // 审批任务 7426 // 7427 // 示例值: 7428 func (builder *TaskSearchItemBuilder) Task(task *TaskSearchNode) *TaskSearchItemBuilder { 7429 builder.task = task 7430 builder.taskFlag = true 7431 return builder 7432 } 7433 7434 func (builder *TaskSearchItemBuilder) Build() *TaskSearchItem { 7435 req := &TaskSearchItem{} 7436 if builder.approvalFlag { 7437 req.Approval = builder.approval 7438 } 7439 if builder.groupFlag { 7440 req.Group = builder.group 7441 } 7442 if builder.instanceFlag { 7443 req.Instance = builder.instance 7444 } 7445 if builder.taskFlag { 7446 req.Task = builder.task 7447 } 7448 return req 7449 } 7450 7451 type TaskSearchNode struct { 7452 UserId *string `json:"user_id,omitempty"` // 审批任务发起人 id 7453 StartTime *string `json:"start_time,omitempty"` // 审批任务开始时间 7454 EndTime *string `json:"end_time,omitempty"` // 审批任务结束时间 7455 Status *string `json:"status,omitempty"` // 审批任务状态 7456 Title *string `json:"title,omitempty"` // 审批任务名称(只有第三方审批有) 7457 Extra *string `json:"extra,omitempty"` // 审批任务扩展字段,string型json 7458 Link *InstanceSearchLink `json:"link,omitempty"` // 审批任务链接(只有第三方审批有) 7459 TaskId *string `json:"task_id,omitempty"` // 任务id 7460 } 7461 7462 type TaskSearchNodeBuilder struct { 7463 userId string // 审批任务发起人 id 7464 userIdFlag bool 7465 startTime string // 审批任务开始时间 7466 startTimeFlag bool 7467 endTime string // 审批任务结束时间 7468 endTimeFlag bool 7469 status string // 审批任务状态 7470 statusFlag bool 7471 title string // 审批任务名称(只有第三方审批有) 7472 titleFlag bool 7473 extra string // 审批任务扩展字段,string型json 7474 extraFlag bool 7475 link *InstanceSearchLink // 审批任务链接(只有第三方审批有) 7476 linkFlag bool 7477 taskId string // 任务id 7478 taskIdFlag bool 7479 } 7480 7481 func NewTaskSearchNodeBuilder() *TaskSearchNodeBuilder { 7482 builder := &TaskSearchNodeBuilder{} 7483 return builder 7484 } 7485 7486 // 审批任务发起人 id 7487 // 7488 // 示例值:lwiu098wj 7489 func (builder *TaskSearchNodeBuilder) UserId(userId string) *TaskSearchNodeBuilder { 7490 builder.userId = userId 7491 builder.userIdFlag = true 7492 return builder 7493 } 7494 7495 // 审批任务开始时间 7496 // 7497 // 示例值:1547654251506 7498 func (builder *TaskSearchNodeBuilder) StartTime(startTime string) *TaskSearchNodeBuilder { 7499 builder.startTime = startTime 7500 builder.startTimeFlag = true 7501 return builder 7502 } 7503 7504 // 审批任务结束时间 7505 // 7506 // 示例值:1547654251506 7507 func (builder *TaskSearchNodeBuilder) EndTime(endTime string) *TaskSearchNodeBuilder { 7508 builder.endTime = endTime 7509 builder.endTimeFlag = true 7510 return builder 7511 } 7512 7513 // 审批任务状态 7514 // 7515 // 示例值:pending 7516 func (builder *TaskSearchNodeBuilder) Status(status string) *TaskSearchNodeBuilder { 7517 builder.status = status 7518 builder.statusFlag = true 7519 return builder 7520 } 7521 7522 // 审批任务名称(只有第三方审批有) 7523 // 7524 // 示例值:test 7525 func (builder *TaskSearchNodeBuilder) Title(title string) *TaskSearchNodeBuilder { 7526 builder.title = title 7527 builder.titleFlag = true 7528 return builder 7529 } 7530 7531 // 审批任务扩展字段,string型json 7532 // 7533 // 示例值:{} 7534 func (builder *TaskSearchNodeBuilder) Extra(extra string) *TaskSearchNodeBuilder { 7535 builder.extra = extra 7536 builder.extraFlag = true 7537 return builder 7538 } 7539 7540 // 审批任务链接(只有第三方审批有) 7541 // 7542 // 示例值: 7543 func (builder *TaskSearchNodeBuilder) Link(link *InstanceSearchLink) *TaskSearchNodeBuilder { 7544 builder.link = link 7545 builder.linkFlag = true 7546 return builder 7547 } 7548 7549 // 任务id 7550 // 7551 // 示例值:7110153401253494803 7552 func (builder *TaskSearchNodeBuilder) TaskId(taskId string) *TaskSearchNodeBuilder { 7553 builder.taskId = taskId 7554 builder.taskIdFlag = true 7555 return builder 7556 } 7557 7558 func (builder *TaskSearchNodeBuilder) Build() *TaskSearchNode { 7559 req := &TaskSearchNode{} 7560 if builder.userIdFlag { 7561 req.UserId = &builder.userId 7562 7563 } 7564 if builder.startTimeFlag { 7565 req.StartTime = &builder.startTime 7566 7567 } 7568 if builder.endTimeFlag { 7569 req.EndTime = &builder.endTime 7570 7571 } 7572 if builder.statusFlag { 7573 req.Status = &builder.status 7574 7575 } 7576 if builder.titleFlag { 7577 req.Title = &builder.title 7578 7579 } 7580 if builder.extraFlag { 7581 req.Extra = &builder.extra 7582 7583 } 7584 if builder.linkFlag { 7585 req.Link = builder.link 7586 } 7587 if builder.taskIdFlag { 7588 req.TaskId = &builder.taskId 7589 7590 } 7591 return req 7592 } 7593 7594 type TaskTransfer struct { 7595 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code 7596 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code 7597 UserId *string `json:"user_id,omitempty"` // 根据user_id_type填写操作用户id 7598 Comment *string `json:"comment,omitempty"` // 意见 7599 TransferUserId *string `json:"transfer_user_id,omitempty"` // 根据user_id_type填写被转交人唯一 ID 7600 TaskId *string `json:"task_id,omitempty"` // 任务 ID, 审批实例详情task_list中id 7601 } 7602 7603 type TaskTransferBuilder struct { 7604 approvalCode string // 审批定义 Code 7605 approvalCodeFlag bool 7606 instanceCode string // 审批实例 Code 7607 instanceCodeFlag bool 7608 userId string // 根据user_id_type填写操作用户id 7609 userIdFlag bool 7610 comment string // 意见 7611 commentFlag bool 7612 transferUserId string // 根据user_id_type填写被转交人唯一 ID 7613 transferUserIdFlag bool 7614 taskId string // 任务 ID, 审批实例详情task_list中id 7615 taskIdFlag bool 7616 } 7617 7618 func NewTaskTransferBuilder() *TaskTransferBuilder { 7619 builder := &TaskTransferBuilder{} 7620 return builder 7621 } 7622 7623 // 审批定义 Code 7624 // 7625 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 7626 func (builder *TaskTransferBuilder) ApprovalCode(approvalCode string) *TaskTransferBuilder { 7627 builder.approvalCode = approvalCode 7628 builder.approvalCodeFlag = true 7629 return builder 7630 } 7631 7632 // 审批实例 Code 7633 // 7634 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 7635 func (builder *TaskTransferBuilder) InstanceCode(instanceCode string) *TaskTransferBuilder { 7636 builder.instanceCode = instanceCode 7637 builder.instanceCodeFlag = true 7638 return builder 7639 } 7640 7641 // 根据user_id_type填写操作用户id 7642 // 7643 // 示例值:f7cb567e 7644 func (builder *TaskTransferBuilder) UserId(userId string) *TaskTransferBuilder { 7645 builder.userId = userId 7646 builder.userIdFlag = true 7647 return builder 7648 } 7649 7650 // 意见 7651 // 7652 // 示例值:OK 7653 func (builder *TaskTransferBuilder) Comment(comment string) *TaskTransferBuilder { 7654 builder.comment = comment 7655 builder.commentFlag = true 7656 return builder 7657 } 7658 7659 // 根据user_id_type填写被转交人唯一 ID 7660 // 7661 // 示例值:f4ip317q 7662 func (builder *TaskTransferBuilder) TransferUserId(transferUserId string) *TaskTransferBuilder { 7663 builder.transferUserId = transferUserId 7664 builder.transferUserIdFlag = true 7665 return builder 7666 } 7667 7668 // 任务 ID, 审批实例详情task_list中id 7669 // 7670 // 示例值:12345 7671 func (builder *TaskTransferBuilder) TaskId(taskId string) *TaskTransferBuilder { 7672 builder.taskId = taskId 7673 builder.taskIdFlag = true 7674 return builder 7675 } 7676 7677 func (builder *TaskTransferBuilder) Build() *TaskTransfer { 7678 req := &TaskTransfer{} 7679 if builder.approvalCodeFlag { 7680 req.ApprovalCode = &builder.approvalCode 7681 7682 } 7683 if builder.instanceCodeFlag { 7684 req.InstanceCode = &builder.instanceCode 7685 7686 } 7687 if builder.userIdFlag { 7688 req.UserId = &builder.userId 7689 7690 } 7691 if builder.commentFlag { 7692 req.Comment = &builder.comment 7693 7694 } 7695 if builder.transferUserIdFlag { 7696 req.TransferUserId = &builder.transferUserId 7697 7698 } 7699 if builder.taskIdFlag { 7700 req.TaskId = &builder.taskId 7701 7702 } 7703 return req 7704 } 7705 7706 type TaskUrls struct { 7707 Helpdesk *string `json:"helpdesk,omitempty"` // 帮助服务台 URL 7708 Mobile *string `json:"mobile,omitempty"` // 移动端 URL 7709 Pc *string `json:"pc,omitempty"` // PC 端 URL 7710 } 7711 7712 type TaskUrlsBuilder struct { 7713 helpdesk string // 帮助服务台 URL 7714 helpdeskFlag bool 7715 mobile string // 移动端 URL 7716 mobileFlag bool 7717 pc string // PC 端 URL 7718 pcFlag bool 7719 } 7720 7721 func NewTaskUrlsBuilder() *TaskUrlsBuilder { 7722 builder := &TaskUrlsBuilder{} 7723 return builder 7724 } 7725 7726 // 帮助服务台 URL 7727 // 7728 // 示例值:https://blabla 7729 func (builder *TaskUrlsBuilder) Helpdesk(helpdesk string) *TaskUrlsBuilder { 7730 builder.helpdesk = helpdesk 7731 builder.helpdeskFlag = true 7732 return builder 7733 } 7734 7735 // 移动端 URL 7736 // 7737 // 示例值:https://blabla 7738 func (builder *TaskUrlsBuilder) Mobile(mobile string) *TaskUrlsBuilder { 7739 builder.mobile = mobile 7740 builder.mobileFlag = true 7741 return builder 7742 } 7743 7744 // PC 端 URL 7745 // 7746 // 示例值:https://blabla 7747 func (builder *TaskUrlsBuilder) Pc(pc string) *TaskUrlsBuilder { 7748 builder.pc = pc 7749 builder.pcFlag = true 7750 return builder 7751 } 7752 7753 func (builder *TaskUrlsBuilder) Build() *TaskUrls { 7754 req := &TaskUrls{} 7755 if builder.helpdeskFlag { 7756 req.Helpdesk = &builder.helpdesk 7757 7758 } 7759 if builder.mobileFlag { 7760 req.Mobile = &builder.mobile 7761 7762 } 7763 if builder.pcFlag { 7764 req.Pc = &builder.pc 7765 7766 } 7767 return req 7768 } 7769 7770 type TripGroup struct { 7771 Type *string `json:"type,omitempty"` // 出差类型 7772 InstanceCode *string `json:"instance_code,omitempty"` // 实例code 7773 StartUser *User `json:"start_user,omitempty"` // 发起人 7774 StartTime *string `json:"start_time,omitempty"` // 开始时间 7775 EndTime *string `json:"end_time,omitempty"` // 结束时间 7776 TripInterval *string `json:"trip_interval,omitempty"` // 出差时间 7777 TripReason *string `json:"trip_reason,omitempty"` // 出差理由 7778 Schedules []*TripGroupSchedule `json:"schedules,omitempty"` // 出差计划 7779 TripPeers []*User `json:"trip_peers,omitempty"` // 同行人 7780 } 7781 7782 type TripGroupBuilder struct { 7783 type_ string // 出差类型 7784 typeFlag bool 7785 instanceCode string // 实例code 7786 instanceCodeFlag bool 7787 startUser *User // 发起人 7788 startUserFlag bool 7789 startTime string // 开始时间 7790 startTimeFlag bool 7791 endTime string // 结束时间 7792 endTimeFlag bool 7793 tripInterval string // 出差时间 7794 tripIntervalFlag bool 7795 tripReason string // 出差理由 7796 tripReasonFlag bool 7797 schedules []*TripGroupSchedule // 出差计划 7798 schedulesFlag bool 7799 tripPeers []*User // 同行人 7800 tripPeersFlag bool 7801 } 7802 7803 func NewTripGroupBuilder() *TripGroupBuilder { 7804 builder := &TripGroupBuilder{} 7805 return builder 7806 } 7807 7808 // 出差类型 7809 // 7810 // 示例值: 7811 func (builder *TripGroupBuilder) Type(type_ string) *TripGroupBuilder { 7812 builder.type_ = type_ 7813 builder.typeFlag = true 7814 return builder 7815 } 7816 7817 // 实例code 7818 // 7819 // 示例值: 7820 func (builder *TripGroupBuilder) InstanceCode(instanceCode string) *TripGroupBuilder { 7821 builder.instanceCode = instanceCode 7822 builder.instanceCodeFlag = true 7823 return builder 7824 } 7825 7826 // 发起人 7827 // 7828 // 示例值: 7829 func (builder *TripGroupBuilder) StartUser(startUser *User) *TripGroupBuilder { 7830 builder.startUser = startUser 7831 builder.startUserFlag = true 7832 return builder 7833 } 7834 7835 // 开始时间 7836 // 7837 // 示例值: 7838 func (builder *TripGroupBuilder) StartTime(startTime string) *TripGroupBuilder { 7839 builder.startTime = startTime 7840 builder.startTimeFlag = true 7841 return builder 7842 } 7843 7844 // 结束时间 7845 // 7846 // 示例值: 7847 func (builder *TripGroupBuilder) EndTime(endTime string) *TripGroupBuilder { 7848 builder.endTime = endTime 7849 builder.endTimeFlag = true 7850 return builder 7851 } 7852 7853 // 出差时间 7854 // 7855 // 示例值: 7856 func (builder *TripGroupBuilder) TripInterval(tripInterval string) *TripGroupBuilder { 7857 builder.tripInterval = tripInterval 7858 builder.tripIntervalFlag = true 7859 return builder 7860 } 7861 7862 // 出差理由 7863 // 7864 // 示例值: 7865 func (builder *TripGroupBuilder) TripReason(tripReason string) *TripGroupBuilder { 7866 builder.tripReason = tripReason 7867 builder.tripReasonFlag = true 7868 return builder 7869 } 7870 7871 // 出差计划 7872 // 7873 // 示例值: 7874 func (builder *TripGroupBuilder) Schedules(schedules []*TripGroupSchedule) *TripGroupBuilder { 7875 builder.schedules = schedules 7876 builder.schedulesFlag = true 7877 return builder 7878 } 7879 7880 // 同行人 7881 // 7882 // 示例值: 7883 func (builder *TripGroupBuilder) TripPeers(tripPeers []*User) *TripGroupBuilder { 7884 builder.tripPeers = tripPeers 7885 builder.tripPeersFlag = true 7886 return builder 7887 } 7888 7889 func (builder *TripGroupBuilder) Build() *TripGroup { 7890 req := &TripGroup{} 7891 if builder.typeFlag { 7892 req.Type = &builder.type_ 7893 7894 } 7895 if builder.instanceCodeFlag { 7896 req.InstanceCode = &builder.instanceCode 7897 7898 } 7899 if builder.startUserFlag { 7900 req.StartUser = builder.startUser 7901 } 7902 if builder.startTimeFlag { 7903 req.StartTime = &builder.startTime 7904 7905 } 7906 if builder.endTimeFlag { 7907 req.EndTime = &builder.endTime 7908 7909 } 7910 if builder.tripIntervalFlag { 7911 req.TripInterval = &builder.tripInterval 7912 7913 } 7914 if builder.tripReasonFlag { 7915 req.TripReason = &builder.tripReason 7916 7917 } 7918 if builder.schedulesFlag { 7919 req.Schedules = builder.schedules 7920 } 7921 if builder.tripPeersFlag { 7922 req.TripPeers = builder.tripPeers 7923 } 7924 return req 7925 } 7926 7927 type TripGroupSchedule struct { 7928 TripStartTime *string `json:"trip_start_time,omitempty"` // 开始时间 7929 TripEndTime *string `json:"trip_end_time,omitempty"` // 结束时间 7930 TripInterval *string `json:"trip_interval,omitempty"` // 周期 7931 Departure *string `json:"departure,omitempty"` // 出发地 7932 Destination *string `json:"destination,omitempty"` // 目的地 7933 Transportation *string `json:"transportation,omitempty"` // 交通工具 7934 TripType *string `json:"trip_type,omitempty"` // 出差类型 7935 Remark *string `json:"remark,omitempty"` // 备注 7936 } 7937 7938 type TripGroupScheduleBuilder struct { 7939 tripStartTime string // 开始时间 7940 tripStartTimeFlag bool 7941 tripEndTime string // 结束时间 7942 tripEndTimeFlag bool 7943 tripInterval string // 周期 7944 tripIntervalFlag bool 7945 departure string // 出发地 7946 departureFlag bool 7947 destination string // 目的地 7948 destinationFlag bool 7949 transportation string // 交通工具 7950 transportationFlag bool 7951 tripType string // 出差类型 7952 tripTypeFlag bool 7953 remark string // 备注 7954 remarkFlag bool 7955 } 7956 7957 func NewTripGroupScheduleBuilder() *TripGroupScheduleBuilder { 7958 builder := &TripGroupScheduleBuilder{} 7959 return builder 7960 } 7961 7962 // 开始时间 7963 // 7964 // 示例值: 7965 func (builder *TripGroupScheduleBuilder) TripStartTime(tripStartTime string) *TripGroupScheduleBuilder { 7966 builder.tripStartTime = tripStartTime 7967 builder.tripStartTimeFlag = true 7968 return builder 7969 } 7970 7971 // 结束时间 7972 // 7973 // 示例值: 7974 func (builder *TripGroupScheduleBuilder) TripEndTime(tripEndTime string) *TripGroupScheduleBuilder { 7975 builder.tripEndTime = tripEndTime 7976 builder.tripEndTimeFlag = true 7977 return builder 7978 } 7979 7980 // 周期 7981 // 7982 // 示例值: 7983 func (builder *TripGroupScheduleBuilder) TripInterval(tripInterval string) *TripGroupScheduleBuilder { 7984 builder.tripInterval = tripInterval 7985 builder.tripIntervalFlag = true 7986 return builder 7987 } 7988 7989 // 出发地 7990 // 7991 // 示例值: 7992 func (builder *TripGroupScheduleBuilder) Departure(departure string) *TripGroupScheduleBuilder { 7993 builder.departure = departure 7994 builder.departureFlag = true 7995 return builder 7996 } 7997 7998 // 目的地 7999 // 8000 // 示例值: 8001 func (builder *TripGroupScheduleBuilder) Destination(destination string) *TripGroupScheduleBuilder { 8002 builder.destination = destination 8003 builder.destinationFlag = true 8004 return builder 8005 } 8006 8007 // 交通工具 8008 // 8009 // 示例值: 8010 func (builder *TripGroupScheduleBuilder) Transportation(transportation string) *TripGroupScheduleBuilder { 8011 builder.transportation = transportation 8012 builder.transportationFlag = true 8013 return builder 8014 } 8015 8016 // 出差类型 8017 // 8018 // 示例值: 8019 func (builder *TripGroupScheduleBuilder) TripType(tripType string) *TripGroupScheduleBuilder { 8020 builder.tripType = tripType 8021 builder.tripTypeFlag = true 8022 return builder 8023 } 8024 8025 // 备注 8026 // 8027 // 示例值: 8028 func (builder *TripGroupScheduleBuilder) Remark(remark string) *TripGroupScheduleBuilder { 8029 builder.remark = remark 8030 builder.remarkFlag = true 8031 return builder 8032 } 8033 8034 func (builder *TripGroupScheduleBuilder) Build() *TripGroupSchedule { 8035 req := &TripGroupSchedule{} 8036 if builder.tripStartTimeFlag { 8037 req.TripStartTime = &builder.tripStartTime 8038 8039 } 8040 if builder.tripEndTimeFlag { 8041 req.TripEndTime = &builder.tripEndTime 8042 8043 } 8044 if builder.tripIntervalFlag { 8045 req.TripInterval = &builder.tripInterval 8046 8047 } 8048 if builder.departureFlag { 8049 req.Departure = &builder.departure 8050 8051 } 8052 if builder.destinationFlag { 8053 req.Destination = &builder.destination 8054 8055 } 8056 if builder.transportationFlag { 8057 req.Transportation = &builder.transportation 8058 8059 } 8060 if builder.tripTypeFlag { 8061 req.TripType = &builder.tripType 8062 8063 } 8064 if builder.remarkFlag { 8065 req.Remark = &builder.remark 8066 8067 } 8068 return req 8069 } 8070 8071 type TrusteeshipUrls struct { 8072 FormDetailUrl *string `json:"form_detail_url,omitempty"` // 获取表单schema相关数据的url地址 8073 ActionDefinitionUrl *string `json:"action_definition_url,omitempty"` // 表示获取审批操作区数据的url地址 8074 ApprovalNodeUrl *string `json:"approval_node_url,omitempty"` // 获取审批记录相关数据的url地址 8075 ActionCallbackUrl *string `json:"action_callback_url,omitempty"` // 进行审批操作时回调的url地址 8076 } 8077 8078 type TrusteeshipUrlsBuilder struct { 8079 formDetailUrl string // 获取表单schema相关数据的url地址 8080 formDetailUrlFlag bool 8081 actionDefinitionUrl string // 表示获取审批操作区数据的url地址 8082 actionDefinitionUrlFlag bool 8083 approvalNodeUrl string // 获取审批记录相关数据的url地址 8084 approvalNodeUrlFlag bool 8085 actionCallbackUrl string // 进行审批操作时回调的url地址 8086 actionCallbackUrlFlag bool 8087 } 8088 8089 func NewTrusteeshipUrlsBuilder() *TrusteeshipUrlsBuilder { 8090 builder := &TrusteeshipUrlsBuilder{} 8091 return builder 8092 } 8093 8094 // 获取表单schema相关数据的url地址 8095 // 8096 // 示例值:https://#{your_domain}/api/form_detail 8097 func (builder *TrusteeshipUrlsBuilder) FormDetailUrl(formDetailUrl string) *TrusteeshipUrlsBuilder { 8098 builder.formDetailUrl = formDetailUrl 8099 builder.formDetailUrlFlag = true 8100 return builder 8101 } 8102 8103 // 表示获取审批操作区数据的url地址 8104 // 8105 // 示例值:https://#{your_domain}/api/action_definition 8106 func (builder *TrusteeshipUrlsBuilder) ActionDefinitionUrl(actionDefinitionUrl string) *TrusteeshipUrlsBuilder { 8107 builder.actionDefinitionUrl = actionDefinitionUrl 8108 builder.actionDefinitionUrlFlag = true 8109 return builder 8110 } 8111 8112 // 获取审批记录相关数据的url地址 8113 // 8114 // 示例值:https://#{your_domain}/api/approval_node 8115 func (builder *TrusteeshipUrlsBuilder) ApprovalNodeUrl(approvalNodeUrl string) *TrusteeshipUrlsBuilder { 8116 builder.approvalNodeUrl = approvalNodeUrl 8117 builder.approvalNodeUrlFlag = true 8118 return builder 8119 } 8120 8121 // 进行审批操作时回调的url地址 8122 // 8123 // 示例值:https://#{your_domain}/api/approval_node 8124 func (builder *TrusteeshipUrlsBuilder) ActionCallbackUrl(actionCallbackUrl string) *TrusteeshipUrlsBuilder { 8125 builder.actionCallbackUrl = actionCallbackUrl 8126 builder.actionCallbackUrlFlag = true 8127 return builder 8128 } 8129 8130 func (builder *TrusteeshipUrlsBuilder) Build() *TrusteeshipUrls { 8131 req := &TrusteeshipUrls{} 8132 if builder.formDetailUrlFlag { 8133 req.FormDetailUrl = &builder.formDetailUrl 8134 8135 } 8136 if builder.actionDefinitionUrlFlag { 8137 req.ActionDefinitionUrl = &builder.actionDefinitionUrl 8138 8139 } 8140 if builder.approvalNodeUrlFlag { 8141 req.ApprovalNodeUrl = &builder.approvalNodeUrl 8142 8143 } 8144 if builder.actionCallbackUrlFlag { 8145 req.ActionCallbackUrl = &builder.actionCallbackUrl 8146 8147 } 8148 return req 8149 } 8150 8151 type User struct { 8152 Id *UserId `json:"id,omitempty"` // 用户id 8153 Name *string `json:"name,omitempty"` // 用户名 8154 } 8155 8156 type UserBuilder struct { 8157 id *UserId // 用户id 8158 idFlag bool 8159 name string // 用户名 8160 nameFlag bool 8161 } 8162 8163 func NewUserBuilder() *UserBuilder { 8164 builder := &UserBuilder{} 8165 return builder 8166 } 8167 8168 // 用户id 8169 // 8170 // 示例值: 8171 func (builder *UserBuilder) Id(id *UserId) *UserBuilder { 8172 builder.id = id 8173 builder.idFlag = true 8174 return builder 8175 } 8176 8177 // 用户名 8178 // 8179 // 示例值: 8180 func (builder *UserBuilder) Name(name string) *UserBuilder { 8181 builder.name = name 8182 builder.nameFlag = true 8183 return builder 8184 } 8185 8186 func (builder *UserBuilder) Build() *User { 8187 req := &User{} 8188 if builder.idFlag { 8189 req.Id = builder.id 8190 } 8191 if builder.nameFlag { 8192 req.Name = &builder.name 8193 8194 } 8195 return req 8196 } 8197 8198 type UserId struct { 8199 UserId *string `json:"user_id,omitempty"` // 8200 OpenId *string `json:"open_id,omitempty"` // 8201 UnionId *string `json:"union_id,omitempty"` // 8202 } 8203 8204 type UserIdBuilder struct { 8205 userId string // 8206 userIdFlag bool 8207 openId string // 8208 openIdFlag bool 8209 unionId string // 8210 unionIdFlag bool 8211 } 8212 8213 func NewUserIdBuilder() *UserIdBuilder { 8214 builder := &UserIdBuilder{} 8215 return builder 8216 } 8217 8218 // 8219 // 8220 // 示例值: 8221 func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder { 8222 builder.userId = userId 8223 builder.userIdFlag = true 8224 return builder 8225 } 8226 8227 // 8228 // 8229 // 示例值: 8230 func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder { 8231 builder.openId = openId 8232 builder.openIdFlag = true 8233 return builder 8234 } 8235 8236 // 8237 // 8238 // 示例值: 8239 func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder { 8240 builder.unionId = unionId 8241 builder.unionIdFlag = true 8242 return builder 8243 } 8244 8245 func (builder *UserIdBuilder) Build() *UserId { 8246 req := &UserId{} 8247 if builder.userIdFlag { 8248 req.UserId = &builder.userId 8249 8250 } 8251 if builder.openIdFlag { 8252 req.OpenId = &builder.openId 8253 8254 } 8255 if builder.unionIdFlag { 8256 req.UnionId = &builder.unionId 8257 8258 } 8259 return req 8260 } 8261 8262 type CreateApprovalReqBuilder struct { 8263 apiReq *larkcore.ApiReq 8264 approvalCreate *ApprovalCreate 8265 } 8266 8267 func NewCreateApprovalReqBuilder() *CreateApprovalReqBuilder { 8268 builder := &CreateApprovalReqBuilder{} 8269 builder.apiReq = &larkcore.ApiReq{ 8270 PathParams: larkcore.PathParams{}, 8271 QueryParams: larkcore.QueryParams{}, 8272 } 8273 return builder 8274 } 8275 8276 // 此次调用中使用的部门ID的类型 8277 // 8278 // 示例值:open_department_id 8279 func (builder *CreateApprovalReqBuilder) DepartmentIdType(departmentIdType string) *CreateApprovalReqBuilder { 8280 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 8281 return builder 8282 } 8283 8284 // 此次调用中使用的用户ID的类型 8285 // 8286 // 示例值: 8287 func (builder *CreateApprovalReqBuilder) UserIdType(userIdType string) *CreateApprovalReqBuilder { 8288 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8289 return builder 8290 } 8291 8292 // 用于通过接口创建简单的审批定义,可以灵活指定定义的基础信息、表单和流程等。创建成功后,不支持从审批管理后台删除该定义。不推荐企业自建应用使用,如有需要尽量联系管理员在审批管理后台创建定义。 8293 func (builder *CreateApprovalReqBuilder) ApprovalCreate(approvalCreate *ApprovalCreate) *CreateApprovalReqBuilder { 8294 builder.approvalCreate = approvalCreate 8295 return builder 8296 } 8297 8298 func (builder *CreateApprovalReqBuilder) Build() *CreateApprovalReq { 8299 req := &CreateApprovalReq{} 8300 req.apiReq = &larkcore.ApiReq{} 8301 req.apiReq.QueryParams = builder.apiReq.QueryParams 8302 req.apiReq.Body = builder.approvalCreate 8303 return req 8304 } 8305 8306 type CreateApprovalReq struct { 8307 apiReq *larkcore.ApiReq 8308 ApprovalCreate *ApprovalCreate `body:""` 8309 } 8310 8311 type CreateApprovalRespData struct { 8312 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code 8313 ApprovalId *string `json:"approval_id,omitempty"` // 审批定义 id 8314 } 8315 8316 type CreateApprovalResp struct { 8317 *larkcore.ApiResp `json:"-"` 8318 larkcore.CodeError 8319 Data *CreateApprovalRespData `json:"data"` // 业务数据 8320 } 8321 8322 func (resp *CreateApprovalResp) Success() bool { 8323 return resp.Code == 0 8324 } 8325 8326 type GetApprovalReqBuilder struct { 8327 apiReq *larkcore.ApiReq 8328 } 8329 8330 func NewGetApprovalReqBuilder() *GetApprovalReqBuilder { 8331 builder := &GetApprovalReqBuilder{} 8332 builder.apiReq = &larkcore.ApiReq{ 8333 PathParams: larkcore.PathParams{}, 8334 QueryParams: larkcore.QueryParams{}, 8335 } 8336 return builder 8337 } 8338 8339 // 审批定义 Code 8340 // 8341 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 8342 func (builder *GetApprovalReqBuilder) ApprovalCode(approvalCode string) *GetApprovalReqBuilder { 8343 builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode)) 8344 return builder 8345 } 8346 8347 // 语言可选值 8348 // 8349 // 示例值:zh-CN 8350 func (builder *GetApprovalReqBuilder) Locale(locale string) *GetApprovalReqBuilder { 8351 builder.apiReq.QueryParams.Set("locale", fmt.Sprint(locale)) 8352 return builder 8353 } 8354 8355 func (builder *GetApprovalReqBuilder) Build() *GetApprovalReq { 8356 req := &GetApprovalReq{} 8357 req.apiReq = &larkcore.ApiReq{} 8358 req.apiReq.PathParams = builder.apiReq.PathParams 8359 req.apiReq.QueryParams = builder.apiReq.QueryParams 8360 return req 8361 } 8362 8363 type GetApprovalReq struct { 8364 apiReq *larkcore.ApiReq 8365 } 8366 8367 type GetApprovalRespData struct { 8368 ApprovalName *string `json:"approval_name,omitempty"` // 审批名称 8369 Status *string `json:"status,omitempty"` // 审批定义状态 8370 Form *string `json:"form,omitempty"` // 控件信息,见下方form字段说明 8371 NodeList []*ApprovalNodeInfo `json:"node_list,omitempty"` // 节点信息 8372 Viewers []*ApprovalViewerInfo `json:"viewers,omitempty"` // 可见人列表 8373 } 8374 8375 type GetApprovalResp struct { 8376 *larkcore.ApiResp `json:"-"` 8377 larkcore.CodeError 8378 Data *GetApprovalRespData `json:"data"` // 业务数据 8379 } 8380 8381 func (resp *GetApprovalResp) Success() bool { 8382 return resp.Code == 0 8383 } 8384 8385 type SubscribeApprovalReqBuilder struct { 8386 apiReq *larkcore.ApiReq 8387 } 8388 8389 func NewSubscribeApprovalReqBuilder() *SubscribeApprovalReqBuilder { 8390 builder := &SubscribeApprovalReqBuilder{} 8391 builder.apiReq = &larkcore.ApiReq{ 8392 PathParams: larkcore.PathParams{}, 8393 QueryParams: larkcore.QueryParams{}, 8394 } 8395 return builder 8396 } 8397 8398 // 审批定义唯一标识 8399 // 8400 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 8401 func (builder *SubscribeApprovalReqBuilder) ApprovalCode(approvalCode string) *SubscribeApprovalReqBuilder { 8402 builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode)) 8403 return builder 8404 } 8405 8406 func (builder *SubscribeApprovalReqBuilder) Build() *SubscribeApprovalReq { 8407 req := &SubscribeApprovalReq{} 8408 req.apiReq = &larkcore.ApiReq{} 8409 req.apiReq.PathParams = builder.apiReq.PathParams 8410 return req 8411 } 8412 8413 type SubscribeApprovalReq struct { 8414 apiReq *larkcore.ApiReq 8415 } 8416 8417 type SubscribeApprovalResp struct { 8418 *larkcore.ApiResp `json:"-"` 8419 larkcore.CodeError 8420 } 8421 8422 func (resp *SubscribeApprovalResp) Success() bool { 8423 return resp.Code == 0 8424 } 8425 8426 type UnsubscribeApprovalReqBuilder struct { 8427 apiReq *larkcore.ApiReq 8428 } 8429 8430 func NewUnsubscribeApprovalReqBuilder() *UnsubscribeApprovalReqBuilder { 8431 builder := &UnsubscribeApprovalReqBuilder{} 8432 builder.apiReq = &larkcore.ApiReq{ 8433 PathParams: larkcore.PathParams{}, 8434 QueryParams: larkcore.QueryParams{}, 8435 } 8436 return builder 8437 } 8438 8439 // 审批定义唯一标识 8440 // 8441 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 8442 func (builder *UnsubscribeApprovalReqBuilder) ApprovalCode(approvalCode string) *UnsubscribeApprovalReqBuilder { 8443 builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode)) 8444 return builder 8445 } 8446 8447 func (builder *UnsubscribeApprovalReqBuilder) Build() *UnsubscribeApprovalReq { 8448 req := &UnsubscribeApprovalReq{} 8449 req.apiReq = &larkcore.ApiReq{} 8450 req.apiReq.PathParams = builder.apiReq.PathParams 8451 return req 8452 } 8453 8454 type UnsubscribeApprovalReq struct { 8455 apiReq *larkcore.ApiReq 8456 } 8457 8458 type UnsubscribeApprovalResp struct { 8459 *larkcore.ApiResp `json:"-"` 8460 larkcore.CodeError 8461 } 8462 8463 func (resp *UnsubscribeApprovalResp) Success() bool { 8464 return resp.Code == 0 8465 } 8466 8467 type CreateExternalApprovalReqBuilder struct { 8468 apiReq *larkcore.ApiReq 8469 externalApproval *ExternalApproval 8470 } 8471 8472 func NewCreateExternalApprovalReqBuilder() *CreateExternalApprovalReqBuilder { 8473 builder := &CreateExternalApprovalReqBuilder{} 8474 builder.apiReq = &larkcore.ApiReq{ 8475 PathParams: larkcore.PathParams{}, 8476 QueryParams: larkcore.QueryParams{}, 8477 } 8478 return builder 8479 } 8480 8481 // 此次调用中使用的部门ID的类型 8482 // 8483 // 示例值:open_department_id 8484 func (builder *CreateExternalApprovalReqBuilder) DepartmentIdType(departmentIdType string) *CreateExternalApprovalReqBuilder { 8485 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 8486 return builder 8487 } 8488 8489 // 此次调用中使用的用户ID的类型 8490 // 8491 // 示例值: 8492 func (builder *CreateExternalApprovalReqBuilder) UserIdType(userIdType string) *CreateExternalApprovalReqBuilder { 8493 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 8494 return builder 8495 } 8496 8497 // 审批定义是审批的描述,包括审批名称、图标、描述等基础信息。创建好审批定义,用户就可以在审批应用的发起页中看到审批,如果用户点击发起,则会跳转到配置的发起三方系统地址去发起审批。;;另外,审批定义还配置了审批操作时的回调地址:审批人在待审批列表中进行【同意】【拒绝】操作时,审批中心会调用回调地址通知三方系统。 8498 func (builder *CreateExternalApprovalReqBuilder) ExternalApproval(externalApproval *ExternalApproval) *CreateExternalApprovalReqBuilder { 8499 builder.externalApproval = externalApproval 8500 return builder 8501 } 8502 8503 func (builder *CreateExternalApprovalReqBuilder) Build() *CreateExternalApprovalReq { 8504 req := &CreateExternalApprovalReq{} 8505 req.apiReq = &larkcore.ApiReq{} 8506 req.apiReq.QueryParams = builder.apiReq.QueryParams 8507 req.apiReq.Body = builder.externalApproval 8508 return req 8509 } 8510 8511 type CreateExternalApprovalReq struct { 8512 apiReq *larkcore.ApiReq 8513 ExternalApproval *ExternalApproval `body:""` 8514 } 8515 8516 type CreateExternalApprovalRespData struct { 8517 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code,用户自定义,定义的唯一标识 8518 } 8519 8520 type CreateExternalApprovalResp struct { 8521 *larkcore.ApiResp `json:"-"` 8522 larkcore.CodeError 8523 Data *CreateExternalApprovalRespData `json:"data"` // 业务数据 8524 } 8525 8526 func (resp *CreateExternalApprovalResp) Success() bool { 8527 return resp.Code == 0 8528 } 8529 8530 type CheckExternalInstanceReqBodyBuilder struct { 8531 instances []*ExteranlInstanceCheck // 校验的实例信息 8532 instancesFlag bool 8533 } 8534 8535 func NewCheckExternalInstanceReqBodyBuilder() *CheckExternalInstanceReqBodyBuilder { 8536 builder := &CheckExternalInstanceReqBodyBuilder{} 8537 return builder 8538 } 8539 8540 // 校验的实例信息 8541 // 8542 //示例值: 8543 func (builder *CheckExternalInstanceReqBodyBuilder) Instances(instances []*ExteranlInstanceCheck) *CheckExternalInstanceReqBodyBuilder { 8544 builder.instances = instances 8545 builder.instancesFlag = true 8546 return builder 8547 } 8548 8549 func (builder *CheckExternalInstanceReqBodyBuilder) Build() *CheckExternalInstanceReqBody { 8550 req := &CheckExternalInstanceReqBody{} 8551 if builder.instancesFlag { 8552 req.Instances = builder.instances 8553 } 8554 return req 8555 } 8556 8557 type CheckExternalInstancePathReqBodyBuilder struct { 8558 instances []*ExteranlInstanceCheck // 校验的实例信息 8559 instancesFlag bool 8560 } 8561 8562 func NewCheckExternalInstancePathReqBodyBuilder() *CheckExternalInstancePathReqBodyBuilder { 8563 builder := &CheckExternalInstancePathReqBodyBuilder{} 8564 return builder 8565 } 8566 8567 // 校验的实例信息 8568 // 8569 // 示例值: 8570 func (builder *CheckExternalInstancePathReqBodyBuilder) Instances(instances []*ExteranlInstanceCheck) *CheckExternalInstancePathReqBodyBuilder { 8571 builder.instances = instances 8572 builder.instancesFlag = true 8573 return builder 8574 } 8575 8576 func (builder *CheckExternalInstancePathReqBodyBuilder) Build() (*CheckExternalInstanceReqBody, error) { 8577 req := &CheckExternalInstanceReqBody{} 8578 if builder.instancesFlag { 8579 req.Instances = builder.instances 8580 } 8581 return req, nil 8582 } 8583 8584 type CheckExternalInstanceReqBuilder struct { 8585 apiReq *larkcore.ApiReq 8586 body *CheckExternalInstanceReqBody 8587 } 8588 8589 func NewCheckExternalInstanceReqBuilder() *CheckExternalInstanceReqBuilder { 8590 builder := &CheckExternalInstanceReqBuilder{} 8591 builder.apiReq = &larkcore.ApiReq{ 8592 PathParams: larkcore.PathParams{}, 8593 QueryParams: larkcore.QueryParams{}, 8594 } 8595 return builder 8596 } 8597 8598 // 校验三方审批实例数据,用于判断服务端数据是否为最新的。用户提交实例最新更新时间,如果服务端不存在该实例,或者服务端实例更新时间不是最新的,则返回对应实例 id。;;例如,用户可以每隔5分钟,将最近5分钟产生的实例使用该接口进行对比。 8599 func (builder *CheckExternalInstanceReqBuilder) Body(body *CheckExternalInstanceReqBody) *CheckExternalInstanceReqBuilder { 8600 builder.body = body 8601 return builder 8602 } 8603 8604 func (builder *CheckExternalInstanceReqBuilder) Build() *CheckExternalInstanceReq { 8605 req := &CheckExternalInstanceReq{} 8606 req.apiReq = &larkcore.ApiReq{} 8607 req.apiReq.Body = builder.body 8608 return req 8609 } 8610 8611 type CheckExternalInstanceReqBody struct { 8612 Instances []*ExteranlInstanceCheck `json:"instances,omitempty"` // 校验的实例信息 8613 } 8614 8615 type CheckExternalInstanceReq struct { 8616 apiReq *larkcore.ApiReq 8617 Body *CheckExternalInstanceReqBody `body:""` 8618 } 8619 8620 type CheckExternalInstanceRespData struct { 8621 DiffInstances []*ExteranlInstanceCheckResponse `json:"diff_instances,omitempty"` // 更新时间不一致的实例信息 8622 } 8623 8624 type CheckExternalInstanceResp struct { 8625 *larkcore.ApiResp `json:"-"` 8626 larkcore.CodeError 8627 Data *CheckExternalInstanceRespData `json:"data"` // 业务数据 8628 } 8629 8630 func (resp *CheckExternalInstanceResp) Success() bool { 8631 return resp.Code == 0 8632 } 8633 8634 type CreateExternalInstanceReqBuilder struct { 8635 apiReq *larkcore.ApiReq 8636 externalInstance *ExternalInstance 8637 } 8638 8639 func NewCreateExternalInstanceReqBuilder() *CreateExternalInstanceReqBuilder { 8640 builder := &CreateExternalInstanceReqBuilder{} 8641 builder.apiReq = &larkcore.ApiReq{ 8642 PathParams: larkcore.PathParams{}, 8643 QueryParams: larkcore.QueryParams{}, 8644 } 8645 return builder 8646 } 8647 8648 // 审批中心不负责审批的流转,审批的流转在三方系统,三方系统在审批流转后生成的审批实例、审批任务、审批抄送数据同步到审批中心。;;用户可以在审批中心中浏览三方系统同步过来的实例、任务、抄送信息,并且可以跳转回三方系统进行更详细的查看和操作,其中实例信息在【已发起】列表,任务信息在【待审批】和【已审批】列表,抄送信息在【抄送我】列表;;:::html;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/9dff4434afbeb0ef69de7f36b9a6e995_z5iwmTzEgg.png" alt="" style="zoom:17%;" />;;;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6e0e984a7a6d64e1b16a0bac4bf868_tfqjCiaJQM.png" alt="" style="zoom:17%;" />;;;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/529377e238df78d391bbd22e962ad195_T7eefLI1GA.png" alt="" style="zoom:17%;" />;:::;;对于审批任务,三方系统也可以配置审批任务的回调接口,这样审批人可以在审批中心中直接进行审批操作,审批中心会回调三方系统,三方系统收到回调后更新任务信息,并将新的任务信息同步回审批中心,形成闭环。;;:::html;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/721c35428bc1187db3318c572f9979ad_je75QpElcg.png" alt="" style="zoom:25%;" />;:::;<br> 8649 func (builder *CreateExternalInstanceReqBuilder) ExternalInstance(externalInstance *ExternalInstance) *CreateExternalInstanceReqBuilder { 8650 builder.externalInstance = externalInstance 8651 return builder 8652 } 8653 8654 func (builder *CreateExternalInstanceReqBuilder) Build() *CreateExternalInstanceReq { 8655 req := &CreateExternalInstanceReq{} 8656 req.apiReq = &larkcore.ApiReq{} 8657 req.apiReq.Body = builder.externalInstance 8658 return req 8659 } 8660 8661 type CreateExternalInstanceReq struct { 8662 apiReq *larkcore.ApiReq 8663 ExternalInstance *ExternalInstance `body:""` 8664 } 8665 8666 type CreateExternalInstanceRespData struct { 8667 Data *ExternalInstance `json:"data,omitempty"` // 同步的实例数据 8668 } 8669 8670 type CreateExternalInstanceResp struct { 8671 *larkcore.ApiResp `json:"-"` 8672 larkcore.CodeError 8673 Data *CreateExternalInstanceRespData `json:"data"` // 业务数据 8674 } 8675 8676 func (resp *CreateExternalInstanceResp) Success() bool { 8677 return resp.Code == 0 8678 } 8679 8680 type ListExternalTaskReqBodyBuilder struct { 8681 approvalCodes []string // 审批定义 Code,用于指定只获取这些定义下的数据 8682 approvalCodesFlag bool 8683 instanceIds []string // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个 8684 instanceIdsFlag bool 8685 userIds []string // 审批人 user_id,用于指定只获取这些用户的数据 8686 userIdsFlag bool 8687 status string // 审批任务状态,用于指定获取该状态下的数据 8688 statusFlag bool 8689 } 8690 8691 func NewListExternalTaskReqBodyBuilder() *ListExternalTaskReqBodyBuilder { 8692 builder := &ListExternalTaskReqBodyBuilder{} 8693 return builder 8694 } 8695 8696 // 审批定义 Code,用于指定只获取这些定义下的数据 8697 // 8698 //示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6 8699 func (builder *ListExternalTaskReqBodyBuilder) ApprovalCodes(approvalCodes []string) *ListExternalTaskReqBodyBuilder { 8700 builder.approvalCodes = approvalCodes 8701 builder.approvalCodesFlag = true 8702 return builder 8703 } 8704 8705 // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个 8706 // 8707 //示例值:oa_159160304 8708 func (builder *ListExternalTaskReqBodyBuilder) InstanceIds(instanceIds []string) *ListExternalTaskReqBodyBuilder { 8709 builder.instanceIds = instanceIds 8710 builder.instanceIdsFlag = true 8711 return builder 8712 } 8713 8714 // 审批人 user_id,用于指定只获取这些用户的数据 8715 // 8716 //示例值:112321 8717 func (builder *ListExternalTaskReqBodyBuilder) UserIds(userIds []string) *ListExternalTaskReqBodyBuilder { 8718 builder.userIds = userIds 8719 builder.userIdsFlag = true 8720 return builder 8721 } 8722 8723 // 审批任务状态,用于指定获取该状态下的数据 8724 // 8725 //示例值:PENDING 8726 func (builder *ListExternalTaskReqBodyBuilder) Status(status string) *ListExternalTaskReqBodyBuilder { 8727 builder.status = status 8728 builder.statusFlag = true 8729 return builder 8730 } 8731 8732 func (builder *ListExternalTaskReqBodyBuilder) Build() *ListExternalTaskReqBody { 8733 req := &ListExternalTaskReqBody{} 8734 if builder.approvalCodesFlag { 8735 req.ApprovalCodes = builder.approvalCodes 8736 } 8737 if builder.instanceIdsFlag { 8738 req.InstanceIds = builder.instanceIds 8739 } 8740 if builder.userIdsFlag { 8741 req.UserIds = builder.userIds 8742 } 8743 if builder.statusFlag { 8744 req.Status = &builder.status 8745 } 8746 return req 8747 } 8748 8749 type ListExternalTaskPathReqBodyBuilder struct { 8750 approvalCodes []string // 审批定义 Code,用于指定只获取这些定义下的数据 8751 approvalCodesFlag bool 8752 instanceIds []string // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个 8753 instanceIdsFlag bool 8754 userIds []string // 审批人 user_id,用于指定只获取这些用户的数据 8755 userIdsFlag bool 8756 status string // 审批任务状态,用于指定获取该状态下的数据 8757 statusFlag bool 8758 } 8759 8760 func NewListExternalTaskPathReqBodyBuilder() *ListExternalTaskPathReqBodyBuilder { 8761 builder := &ListExternalTaskPathReqBodyBuilder{} 8762 return builder 8763 } 8764 8765 // 审批定义 Code,用于指定只获取这些定义下的数据 8766 // 8767 // 示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6 8768 func (builder *ListExternalTaskPathReqBodyBuilder) ApprovalCodes(approvalCodes []string) *ListExternalTaskPathReqBodyBuilder { 8769 builder.approvalCodes = approvalCodes 8770 builder.approvalCodesFlag = true 8771 return builder 8772 } 8773 8774 // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个 8775 // 8776 // 示例值:oa_159160304 8777 func (builder *ListExternalTaskPathReqBodyBuilder) InstanceIds(instanceIds []string) *ListExternalTaskPathReqBodyBuilder { 8778 builder.instanceIds = instanceIds 8779 builder.instanceIdsFlag = true 8780 return builder 8781 } 8782 8783 // 审批人 user_id,用于指定只获取这些用户的数据 8784 // 8785 // 示例值:112321 8786 func (builder *ListExternalTaskPathReqBodyBuilder) UserIds(userIds []string) *ListExternalTaskPathReqBodyBuilder { 8787 builder.userIds = userIds 8788 builder.userIdsFlag = true 8789 return builder 8790 } 8791 8792 // 审批任务状态,用于指定获取该状态下的数据 8793 // 8794 // 示例值:PENDING 8795 func (builder *ListExternalTaskPathReqBodyBuilder) Status(status string) *ListExternalTaskPathReqBodyBuilder { 8796 builder.status = status 8797 builder.statusFlag = true 8798 return builder 8799 } 8800 8801 func (builder *ListExternalTaskPathReqBodyBuilder) Build() (*ListExternalTaskReqBody, error) { 8802 req := &ListExternalTaskReqBody{} 8803 if builder.approvalCodesFlag { 8804 req.ApprovalCodes = builder.approvalCodes 8805 } 8806 if builder.instanceIdsFlag { 8807 req.InstanceIds = builder.instanceIds 8808 } 8809 if builder.userIdsFlag { 8810 req.UserIds = builder.userIds 8811 } 8812 if builder.statusFlag { 8813 req.Status = &builder.status 8814 } 8815 return req, nil 8816 } 8817 8818 type ListExternalTaskReqBuilder struct { 8819 apiReq *larkcore.ApiReq 8820 body *ListExternalTaskReqBody 8821 limit int // 最大返回多少记录,当使用迭代器访问时才有效 8822 } 8823 8824 func NewListExternalTaskReqBuilder() *ListExternalTaskReqBuilder { 8825 builder := &ListExternalTaskReqBuilder{} 8826 builder.apiReq = &larkcore.ApiReq{ 8827 PathParams: larkcore.PathParams{}, 8828 QueryParams: larkcore.QueryParams{}, 8829 } 8830 return builder 8831 } 8832 8833 // 最大返回多少记录,当使用迭代器访问时才有效 8834 func (builder *ListExternalTaskReqBuilder) Limit(limit int) *ListExternalTaskReqBuilder { 8835 builder.limit = limit 8836 return builder 8837 } 8838 8839 // 分页大小 8840 // 8841 // 示例值:100 8842 func (builder *ListExternalTaskReqBuilder) PageSize(pageSize int) *ListExternalTaskReqBuilder { 8843 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 8844 return builder 8845 } 8846 8847 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 8848 // 8849 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 8850 func (builder *ListExternalTaskReqBuilder) PageToken(pageToken string) *ListExternalTaskReqBuilder { 8851 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 8852 return builder 8853 } 8854 8855 // 该接口用于获取三方审批的状态。用户传入查询条件,接口返回满足条件的审批实例的状态。该接口支持多种参数的组合,包括如下组合:;;1.通过 instance_ids 获取指定实例的任务状态;;2.通过 user_ids 获取指定用户的任务状态;;3.通过 status 获取指定状态的所有任务;;4.通过page_token获取下一批数据 8856 func (builder *ListExternalTaskReqBuilder) Body(body *ListExternalTaskReqBody) *ListExternalTaskReqBuilder { 8857 builder.body = body 8858 return builder 8859 } 8860 8861 func (builder *ListExternalTaskReqBuilder) Build() *ListExternalTaskReq { 8862 req := &ListExternalTaskReq{} 8863 req.apiReq = &larkcore.ApiReq{} 8864 req.Limit = builder.limit 8865 req.apiReq.QueryParams = builder.apiReq.QueryParams 8866 req.apiReq.Body = builder.body 8867 return req 8868 } 8869 8870 type ListExternalTaskReqBody struct { 8871 ApprovalCodes []string `json:"approval_codes,omitempty"` // 审批定义 Code,用于指定只获取这些定义下的数据 8872 InstanceIds []string `json:"instance_ids,omitempty"` // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个 8873 UserIds []string `json:"user_ids,omitempty"` // 审批人 user_id,用于指定只获取这些用户的数据 8874 Status *string `json:"status,omitempty"` // 审批任务状态,用于指定获取该状态下的数据 8875 } 8876 8877 type ListExternalTaskReq struct { 8878 apiReq *larkcore.ApiReq 8879 Body *ListExternalTaskReqBody `body:""` 8880 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 8881 8882 } 8883 8884 type ListExternalTaskRespData struct { 8885 Data []*ExternalTaskList `json:"data,omitempty"` // 返回数据 8886 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 8887 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 8888 } 8889 8890 type ListExternalTaskResp struct { 8891 *larkcore.ApiResp `json:"-"` 8892 larkcore.CodeError 8893 Data *ListExternalTaskRespData `json:"data"` // 业务数据 8894 } 8895 8896 func (resp *ListExternalTaskResp) Success() bool { 8897 return resp.Code == 0 8898 } 8899 8900 type AddSignInstanceReqBodyBuilder struct { 8901 userId string // 8902 userIdFlag bool 8903 approvalCode string // 8904 approvalCodeFlag bool 8905 instanceCode string // 8906 instanceCodeFlag bool 8907 taskId string // 8908 taskIdFlag bool 8909 comment string // 8910 commentFlag bool 8911 addSignUserIds []string // 8912 addSignUserIdsFlag bool 8913 addSignType int // 8914 addSignTypeFlag bool 8915 approvalMethod int // 8916 approvalMethodFlag bool 8917 } 8918 8919 func NewAddSignInstanceReqBodyBuilder() *AddSignInstanceReqBodyBuilder { 8920 builder := &AddSignInstanceReqBodyBuilder{} 8921 return builder 8922 } 8923 8924 // 8925 // 8926 //示例值: 8927 func (builder *AddSignInstanceReqBodyBuilder) UserId(userId string) *AddSignInstanceReqBodyBuilder { 8928 builder.userId = userId 8929 builder.userIdFlag = true 8930 return builder 8931 } 8932 8933 // 8934 // 8935 //示例值: 8936 func (builder *AddSignInstanceReqBodyBuilder) ApprovalCode(approvalCode string) *AddSignInstanceReqBodyBuilder { 8937 builder.approvalCode = approvalCode 8938 builder.approvalCodeFlag = true 8939 return builder 8940 } 8941 8942 // 8943 // 8944 //示例值: 8945 func (builder *AddSignInstanceReqBodyBuilder) InstanceCode(instanceCode string) *AddSignInstanceReqBodyBuilder { 8946 builder.instanceCode = instanceCode 8947 builder.instanceCodeFlag = true 8948 return builder 8949 } 8950 8951 // 8952 // 8953 //示例值: 8954 func (builder *AddSignInstanceReqBodyBuilder) TaskId(taskId string) *AddSignInstanceReqBodyBuilder { 8955 builder.taskId = taskId 8956 builder.taskIdFlag = true 8957 return builder 8958 } 8959 8960 // 8961 // 8962 //示例值: 8963 func (builder *AddSignInstanceReqBodyBuilder) Comment(comment string) *AddSignInstanceReqBodyBuilder { 8964 builder.comment = comment 8965 builder.commentFlag = true 8966 return builder 8967 } 8968 8969 // 8970 // 8971 //示例值: 8972 func (builder *AddSignInstanceReqBodyBuilder) AddSignUserIds(addSignUserIds []string) *AddSignInstanceReqBodyBuilder { 8973 builder.addSignUserIds = addSignUserIds 8974 builder.addSignUserIdsFlag = true 8975 return builder 8976 } 8977 8978 // 8979 // 8980 //示例值:1 8981 func (builder *AddSignInstanceReqBodyBuilder) AddSignType(addSignType int) *AddSignInstanceReqBodyBuilder { 8982 builder.addSignType = addSignType 8983 builder.addSignTypeFlag = true 8984 return builder 8985 } 8986 8987 // 8988 // 8989 //示例值:1 8990 func (builder *AddSignInstanceReqBodyBuilder) ApprovalMethod(approvalMethod int) *AddSignInstanceReqBodyBuilder { 8991 builder.approvalMethod = approvalMethod 8992 builder.approvalMethodFlag = true 8993 return builder 8994 } 8995 8996 func (builder *AddSignInstanceReqBodyBuilder) Build() *AddSignInstanceReqBody { 8997 req := &AddSignInstanceReqBody{} 8998 if builder.userIdFlag { 8999 req.UserId = &builder.userId 9000 } 9001 if builder.approvalCodeFlag { 9002 req.ApprovalCode = &builder.approvalCode 9003 } 9004 if builder.instanceCodeFlag { 9005 req.InstanceCode = &builder.instanceCode 9006 } 9007 if builder.taskIdFlag { 9008 req.TaskId = &builder.taskId 9009 } 9010 if builder.commentFlag { 9011 req.Comment = &builder.comment 9012 } 9013 if builder.addSignUserIdsFlag { 9014 req.AddSignUserIds = builder.addSignUserIds 9015 } 9016 if builder.addSignTypeFlag { 9017 req.AddSignType = &builder.addSignType 9018 } 9019 if builder.approvalMethodFlag { 9020 req.ApprovalMethod = &builder.approvalMethod 9021 } 9022 return req 9023 } 9024 9025 type AddSignInstancePathReqBodyBuilder struct { 9026 userId string // 9027 userIdFlag bool 9028 approvalCode string // 9029 approvalCodeFlag bool 9030 instanceCode string // 9031 instanceCodeFlag bool 9032 taskId string // 9033 taskIdFlag bool 9034 comment string // 9035 commentFlag bool 9036 addSignUserIds []string // 9037 addSignUserIdsFlag bool 9038 addSignType int // 9039 addSignTypeFlag bool 9040 approvalMethod int // 9041 approvalMethodFlag bool 9042 } 9043 9044 func NewAddSignInstancePathReqBodyBuilder() *AddSignInstancePathReqBodyBuilder { 9045 builder := &AddSignInstancePathReqBodyBuilder{} 9046 return builder 9047 } 9048 9049 // 9050 // 9051 // 示例值: 9052 func (builder *AddSignInstancePathReqBodyBuilder) UserId(userId string) *AddSignInstancePathReqBodyBuilder { 9053 builder.userId = userId 9054 builder.userIdFlag = true 9055 return builder 9056 } 9057 9058 // 9059 // 9060 // 示例值: 9061 func (builder *AddSignInstancePathReqBodyBuilder) ApprovalCode(approvalCode string) *AddSignInstancePathReqBodyBuilder { 9062 builder.approvalCode = approvalCode 9063 builder.approvalCodeFlag = true 9064 return builder 9065 } 9066 9067 // 9068 // 9069 // 示例值: 9070 func (builder *AddSignInstancePathReqBodyBuilder) InstanceCode(instanceCode string) *AddSignInstancePathReqBodyBuilder { 9071 builder.instanceCode = instanceCode 9072 builder.instanceCodeFlag = true 9073 return builder 9074 } 9075 9076 // 9077 // 9078 // 示例值: 9079 func (builder *AddSignInstancePathReqBodyBuilder) TaskId(taskId string) *AddSignInstancePathReqBodyBuilder { 9080 builder.taskId = taskId 9081 builder.taskIdFlag = true 9082 return builder 9083 } 9084 9085 // 9086 // 9087 // 示例值: 9088 func (builder *AddSignInstancePathReqBodyBuilder) Comment(comment string) *AddSignInstancePathReqBodyBuilder { 9089 builder.comment = comment 9090 builder.commentFlag = true 9091 return builder 9092 } 9093 9094 // 9095 // 9096 // 示例值: 9097 func (builder *AddSignInstancePathReqBodyBuilder) AddSignUserIds(addSignUserIds []string) *AddSignInstancePathReqBodyBuilder { 9098 builder.addSignUserIds = addSignUserIds 9099 builder.addSignUserIdsFlag = true 9100 return builder 9101 } 9102 9103 // 9104 // 9105 // 示例值:1 9106 func (builder *AddSignInstancePathReqBodyBuilder) AddSignType(addSignType int) *AddSignInstancePathReqBodyBuilder { 9107 builder.addSignType = addSignType 9108 builder.addSignTypeFlag = true 9109 return builder 9110 } 9111 9112 // 9113 // 9114 // 示例值:1 9115 func (builder *AddSignInstancePathReqBodyBuilder) ApprovalMethod(approvalMethod int) *AddSignInstancePathReqBodyBuilder { 9116 builder.approvalMethod = approvalMethod 9117 builder.approvalMethodFlag = true 9118 return builder 9119 } 9120 9121 func (builder *AddSignInstancePathReqBodyBuilder) Build() (*AddSignInstanceReqBody, error) { 9122 req := &AddSignInstanceReqBody{} 9123 if builder.userIdFlag { 9124 req.UserId = &builder.userId 9125 } 9126 if builder.approvalCodeFlag { 9127 req.ApprovalCode = &builder.approvalCode 9128 } 9129 if builder.instanceCodeFlag { 9130 req.InstanceCode = &builder.instanceCode 9131 } 9132 if builder.taskIdFlag { 9133 req.TaskId = &builder.taskId 9134 } 9135 if builder.commentFlag { 9136 req.Comment = &builder.comment 9137 } 9138 if builder.addSignUserIdsFlag { 9139 req.AddSignUserIds = builder.addSignUserIds 9140 } 9141 if builder.addSignTypeFlag { 9142 req.AddSignType = &builder.addSignType 9143 } 9144 if builder.approvalMethodFlag { 9145 req.ApprovalMethod = &builder.approvalMethod 9146 } 9147 return req, nil 9148 } 9149 9150 type AddSignInstanceReqBuilder struct { 9151 apiReq *larkcore.ApiReq 9152 body *AddSignInstanceReqBody 9153 } 9154 9155 func NewAddSignInstanceReqBuilder() *AddSignInstanceReqBuilder { 9156 builder := &AddSignInstanceReqBuilder{} 9157 builder.apiReq = &larkcore.ApiReq{ 9158 PathParams: larkcore.PathParams{}, 9159 QueryParams: larkcore.QueryParams{}, 9160 } 9161 return builder 9162 } 9163 9164 // 9165 func (builder *AddSignInstanceReqBuilder) Body(body *AddSignInstanceReqBody) *AddSignInstanceReqBuilder { 9166 builder.body = body 9167 return builder 9168 } 9169 9170 func (builder *AddSignInstanceReqBuilder) Build() *AddSignInstanceReq { 9171 req := &AddSignInstanceReq{} 9172 req.apiReq = &larkcore.ApiReq{} 9173 req.apiReq.Body = builder.body 9174 return req 9175 } 9176 9177 type AddSignInstanceReqBody struct { 9178 UserId *string `json:"user_id,omitempty"` // 9179 ApprovalCode *string `json:"approval_code,omitempty"` // 9180 InstanceCode *string `json:"instance_code,omitempty"` // 9181 TaskId *string `json:"task_id,omitempty"` // 9182 Comment *string `json:"comment,omitempty"` // 9183 AddSignUserIds []string `json:"add_sign_user_ids,omitempty"` // 9184 AddSignType *int `json:"add_sign_type,omitempty"` // 9185 ApprovalMethod *int `json:"approval_method,omitempty"` // 9186 } 9187 9188 type AddSignInstanceReq struct { 9189 apiReq *larkcore.ApiReq 9190 Body *AddSignInstanceReqBody `body:""` 9191 } 9192 9193 type AddSignInstanceResp struct { 9194 *larkcore.ApiResp `json:"-"` 9195 larkcore.CodeError 9196 } 9197 9198 func (resp *AddSignInstanceResp) Success() bool { 9199 return resp.Code == 0 9200 } 9201 9202 type CancelInstanceReqBuilder struct { 9203 apiReq *larkcore.ApiReq 9204 instanceCancel *InstanceCancel 9205 } 9206 9207 func NewCancelInstanceReqBuilder() *CancelInstanceReqBuilder { 9208 builder := &CancelInstanceReqBuilder{} 9209 builder.apiReq = &larkcore.ApiReq{ 9210 PathParams: larkcore.PathParams{}, 9211 QueryParams: larkcore.QueryParams{}, 9212 } 9213 return builder 9214 } 9215 9216 // 此次调用中使用的用户ID的类型 9217 // 9218 // 示例值: 9219 func (builder *CancelInstanceReqBuilder) UserIdType(userIdType string) *CancelInstanceReqBuilder { 9220 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9221 return builder 9222 } 9223 9224 // 对于状态为“审批中”的单个审批实例进行撤销操作,撤销后审批流程结束 9225 func (builder *CancelInstanceReqBuilder) InstanceCancel(instanceCancel *InstanceCancel) *CancelInstanceReqBuilder { 9226 builder.instanceCancel = instanceCancel 9227 return builder 9228 } 9229 9230 func (builder *CancelInstanceReqBuilder) Build() *CancelInstanceReq { 9231 req := &CancelInstanceReq{} 9232 req.apiReq = &larkcore.ApiReq{} 9233 req.apiReq.QueryParams = builder.apiReq.QueryParams 9234 req.apiReq.Body = builder.instanceCancel 9235 return req 9236 } 9237 9238 type CancelInstanceReq struct { 9239 apiReq *larkcore.ApiReq 9240 InstanceCancel *InstanceCancel `body:""` 9241 } 9242 9243 type CancelInstanceResp struct { 9244 *larkcore.ApiResp `json:"-"` 9245 larkcore.CodeError 9246 } 9247 9248 func (resp *CancelInstanceResp) Success() bool { 9249 return resp.Code == 0 9250 } 9251 9252 type CcInstanceReqBuilder struct { 9253 apiReq *larkcore.ApiReq 9254 instanceCc *InstanceCc 9255 } 9256 9257 func NewCcInstanceReqBuilder() *CcInstanceReqBuilder { 9258 builder := &CcInstanceReqBuilder{} 9259 builder.apiReq = &larkcore.ApiReq{ 9260 PathParams: larkcore.PathParams{}, 9261 QueryParams: larkcore.QueryParams{}, 9262 } 9263 return builder 9264 } 9265 9266 // 此次调用中使用的用户ID的类型 9267 // 9268 // 示例值: 9269 func (builder *CcInstanceReqBuilder) UserIdType(userIdType string) *CcInstanceReqBuilder { 9270 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9271 return builder 9272 } 9273 9274 // 通过接口可以将当前审批实例抄送给其他人。 9275 func (builder *CcInstanceReqBuilder) InstanceCc(instanceCc *InstanceCc) *CcInstanceReqBuilder { 9276 builder.instanceCc = instanceCc 9277 return builder 9278 } 9279 9280 func (builder *CcInstanceReqBuilder) Build() *CcInstanceReq { 9281 req := &CcInstanceReq{} 9282 req.apiReq = &larkcore.ApiReq{} 9283 req.apiReq.QueryParams = builder.apiReq.QueryParams 9284 req.apiReq.Body = builder.instanceCc 9285 return req 9286 } 9287 9288 type CcInstanceReq struct { 9289 apiReq *larkcore.ApiReq 9290 InstanceCc *InstanceCc `body:""` 9291 } 9292 9293 type CcInstanceResp struct { 9294 *larkcore.ApiResp `json:"-"` 9295 larkcore.CodeError 9296 } 9297 9298 func (resp *CcInstanceResp) Success() bool { 9299 return resp.Code == 0 9300 } 9301 9302 type CreateInstanceReqBuilder struct { 9303 apiReq *larkcore.ApiReq 9304 instanceCreate *InstanceCreate 9305 } 9306 9307 func NewCreateInstanceReqBuilder() *CreateInstanceReqBuilder { 9308 builder := &CreateInstanceReqBuilder{} 9309 builder.apiReq = &larkcore.ApiReq{ 9310 PathParams: larkcore.PathParams{}, 9311 QueryParams: larkcore.QueryParams{}, 9312 } 9313 return builder 9314 } 9315 9316 // 创建一个审批实例,调用方需对审批定义的表单有详细了解,将按照定义的表单结构,将表单 Value 通过接口传入 9317 func (builder *CreateInstanceReqBuilder) InstanceCreate(instanceCreate *InstanceCreate) *CreateInstanceReqBuilder { 9318 builder.instanceCreate = instanceCreate 9319 return builder 9320 } 9321 9322 func (builder *CreateInstanceReqBuilder) Build() *CreateInstanceReq { 9323 req := &CreateInstanceReq{} 9324 req.apiReq = &larkcore.ApiReq{} 9325 req.apiReq.Body = builder.instanceCreate 9326 return req 9327 } 9328 9329 type CreateInstanceReq struct { 9330 apiReq *larkcore.ApiReq 9331 InstanceCreate *InstanceCreate `body:""` 9332 } 9333 9334 type CreateInstanceRespData struct { 9335 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code 9336 } 9337 9338 type CreateInstanceResp struct { 9339 *larkcore.ApiResp `json:"-"` 9340 larkcore.CodeError 9341 Data *CreateInstanceRespData `json:"data"` // 业务数据 9342 } 9343 9344 func (resp *CreateInstanceResp) Success() bool { 9345 return resp.Code == 0 9346 } 9347 9348 type GetInstanceReqBuilder struct { 9349 apiReq *larkcore.ApiReq 9350 } 9351 9352 func NewGetInstanceReqBuilder() *GetInstanceReqBuilder { 9353 builder := &GetInstanceReqBuilder{} 9354 builder.apiReq = &larkcore.ApiReq{ 9355 PathParams: larkcore.PathParams{}, 9356 QueryParams: larkcore.QueryParams{}, 9357 } 9358 return builder 9359 } 9360 9361 // 审批实例 Code, 若在创建的时候传了uuid, 也可以通过传uuid获取 9362 // 9363 // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71 9364 func (builder *GetInstanceReqBuilder) InstanceId(instanceId string) *GetInstanceReqBuilder { 9365 builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId)) 9366 return builder 9367 } 9368 9369 // 语言 9370 // 9371 // 示例值:zh-CN 9372 func (builder *GetInstanceReqBuilder) Locale(locale string) *GetInstanceReqBuilder { 9373 builder.apiReq.QueryParams.Set("locale", fmt.Sprint(locale)) 9374 return builder 9375 } 9376 9377 // 发起审批用户id,仅自建应用可返回 9378 // 9379 // 示例值:f7cb567e 9380 func (builder *GetInstanceReqBuilder) UserId(userId string) *GetInstanceReqBuilder { 9381 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 9382 return builder 9383 } 9384 9385 // 此次调用中使用的用户ID的类型 9386 // 9387 // 示例值:user_id 9388 func (builder *GetInstanceReqBuilder) UserIdType(userIdType string) *GetInstanceReqBuilder { 9389 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9390 return builder 9391 } 9392 9393 func (builder *GetInstanceReqBuilder) Build() *GetInstanceReq { 9394 req := &GetInstanceReq{} 9395 req.apiReq = &larkcore.ApiReq{} 9396 req.apiReq.PathParams = builder.apiReq.PathParams 9397 req.apiReq.QueryParams = builder.apiReq.QueryParams 9398 return req 9399 } 9400 9401 type GetInstanceReq struct { 9402 apiReq *larkcore.ApiReq 9403 } 9404 9405 type GetInstanceRespData struct { 9406 ApprovalName *string `json:"approval_name,omitempty"` // 审批名称 9407 StartTime *string `json:"start_time,omitempty"` // 审批创建时间 9408 EndTime *string `json:"end_time,omitempty"` // 审批完成时间,未完成为 0 9409 UserId *string `json:"user_id,omitempty"` // 发起审批用户 9410 OpenId *string `json:"open_id,omitempty"` // 发起审批用户 open id 9411 SerialNumber *string `json:"serial_number,omitempty"` // 审批单编号 9412 DepartmentId *string `json:"department_id,omitempty"` // 发起审批用户所在部门 9413 Status *string `json:"status,omitempty"` // 审批实例状态 9414 Uuid *string `json:"uuid,omitempty"` // 用户的唯一标识id 9415 Form *string `json:"form,omitempty"` // json字符串,控件值详情见下方 9416 TaskList []*InstanceTask `json:"task_list,omitempty"` // 审批任务列表 9417 CommentList []*InstanceComment `json:"comment_list,omitempty"` // 评论列表 9418 Timeline []*InstanceTimeline `json:"timeline,omitempty"` // 审批动态 9419 ModifiedInstanceCode *string `json:"modified_instance_code,omitempty"` // 修改的原实例 code,仅在查询修改实例时显示该字段 9420 RevertedInstanceCode *string `json:"reverted_instance_code,omitempty"` // 撤销的原实例 code,仅在查询撤销实例时显示该字段 9421 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code 9422 Reverted *bool `json:"reverted,omitempty"` // 单据是否被撤销 9423 } 9424 9425 type GetInstanceResp struct { 9426 *larkcore.ApiResp `json:"-"` 9427 larkcore.CodeError 9428 Data *GetInstanceRespData `json:"data"` // 业务数据 9429 } 9430 9431 func (resp *GetInstanceResp) Success() bool { 9432 return resp.Code == 0 9433 } 9434 9435 type ListInstanceReqBuilder struct { 9436 apiReq *larkcore.ApiReq 9437 limit int // 最大返回多少记录,当使用迭代器访问时才有效 9438 } 9439 9440 func NewListInstanceReqBuilder() *ListInstanceReqBuilder { 9441 builder := &ListInstanceReqBuilder{} 9442 builder.apiReq = &larkcore.ApiReq{ 9443 PathParams: larkcore.PathParams{}, 9444 QueryParams: larkcore.QueryParams{}, 9445 } 9446 return builder 9447 } 9448 9449 // 最大返回多少记录,当使用迭代器访问时才有效 9450 func (builder *ListInstanceReqBuilder) Limit(limit int) *ListInstanceReqBuilder { 9451 builder.limit = limit 9452 return builder 9453 } 9454 9455 // 分页大小 9456 // 9457 // 示例值:100 9458 func (builder *ListInstanceReqBuilder) PageSize(pageSize int) *ListInstanceReqBuilder { 9459 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 9460 return builder 9461 } 9462 9463 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 9464 // 9465 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 9466 func (builder *ListInstanceReqBuilder) PageToken(pageToken string) *ListInstanceReqBuilder { 9467 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 9468 return builder 9469 } 9470 9471 // 审批定义唯一标识 9472 // 9473 // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85 9474 func (builder *ListInstanceReqBuilder) ApprovalCode(approvalCode string) *ListInstanceReqBuilder { 9475 builder.apiReq.QueryParams.Set("approval_code", fmt.Sprint(approvalCode)) 9476 return builder 9477 } 9478 9479 // 审批实例创建时间区间(毫秒) 9480 // 9481 // 示例值:1567690398020 9482 func (builder *ListInstanceReqBuilder) StartTime(startTime string) *ListInstanceReqBuilder { 9483 builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime)) 9484 return builder 9485 } 9486 9487 // 审批实例创建时间区间(毫秒) 9488 // 9489 // 示例值:1567690398020 9490 func (builder *ListInstanceReqBuilder) EndTime(endTime string) *ListInstanceReqBuilder { 9491 builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime)) 9492 return builder 9493 } 9494 9495 func (builder *ListInstanceReqBuilder) Build() *ListInstanceReq { 9496 req := &ListInstanceReq{} 9497 req.apiReq = &larkcore.ApiReq{} 9498 req.Limit = builder.limit 9499 req.apiReq.QueryParams = builder.apiReq.QueryParams 9500 return req 9501 } 9502 9503 type ListInstanceReq struct { 9504 apiReq *larkcore.ApiReq 9505 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 9506 9507 } 9508 9509 type ListInstanceRespData struct { 9510 InstanceCodeList []string `json:"instance_code_list,omitempty"` // 审批实例 Code 9511 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 9512 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 9513 } 9514 9515 type ListInstanceResp struct { 9516 *larkcore.ApiResp `json:"-"` 9517 larkcore.CodeError 9518 Data *ListInstanceRespData `json:"data"` // 业务数据 9519 } 9520 9521 func (resp *ListInstanceResp) Success() bool { 9522 return resp.Code == 0 9523 } 9524 9525 type PreviewInstanceReqBodyBuilder struct { 9526 userId string // 用户id 9527 userIdFlag bool 9528 approvalCode string // 审批定义code 9529 approvalCodeFlag bool 9530 departmentId string // 部门id 9531 departmentIdFlag bool 9532 form string // 表单数据 9533 formFlag bool 9534 instanceCode string // 审批实例code 9535 instanceCodeFlag bool 9536 locale string // 语言类型 9537 localeFlag bool 9538 taskId string // 任务id 9539 taskIdFlag bool 9540 } 9541 9542 func NewPreviewInstanceReqBodyBuilder() *PreviewInstanceReqBodyBuilder { 9543 builder := &PreviewInstanceReqBodyBuilder{} 9544 return builder 9545 } 9546 9547 // 用户id 9548 // 9549 //示例值: 9550 func (builder *PreviewInstanceReqBodyBuilder) UserId(userId string) *PreviewInstanceReqBodyBuilder { 9551 builder.userId = userId 9552 builder.userIdFlag = true 9553 return builder 9554 } 9555 9556 // 审批定义code 9557 // 9558 //示例值: 9559 func (builder *PreviewInstanceReqBodyBuilder) ApprovalCode(approvalCode string) *PreviewInstanceReqBodyBuilder { 9560 builder.approvalCode = approvalCode 9561 builder.approvalCodeFlag = true 9562 return builder 9563 } 9564 9565 // 部门id 9566 // 9567 //示例值: 9568 func (builder *PreviewInstanceReqBodyBuilder) DepartmentId(departmentId string) *PreviewInstanceReqBodyBuilder { 9569 builder.departmentId = departmentId 9570 builder.departmentIdFlag = true 9571 return builder 9572 } 9573 9574 // 表单数据 9575 // 9576 //示例值: 9577 func (builder *PreviewInstanceReqBodyBuilder) Form(form string) *PreviewInstanceReqBodyBuilder { 9578 builder.form = form 9579 builder.formFlag = true 9580 return builder 9581 } 9582 9583 // 审批实例code 9584 // 9585 //示例值: 9586 func (builder *PreviewInstanceReqBodyBuilder) InstanceCode(instanceCode string) *PreviewInstanceReqBodyBuilder { 9587 builder.instanceCode = instanceCode 9588 builder.instanceCodeFlag = true 9589 return builder 9590 } 9591 9592 // 语言类型 9593 // 9594 //示例值:zh-CN: 中文 en-US: 英文 9595 func (builder *PreviewInstanceReqBodyBuilder) Locale(locale string) *PreviewInstanceReqBodyBuilder { 9596 builder.locale = locale 9597 builder.localeFlag = true 9598 return builder 9599 } 9600 9601 // 任务id 9602 // 9603 //示例值: 9604 func (builder *PreviewInstanceReqBodyBuilder) TaskId(taskId string) *PreviewInstanceReqBodyBuilder { 9605 builder.taskId = taskId 9606 builder.taskIdFlag = true 9607 return builder 9608 } 9609 9610 func (builder *PreviewInstanceReqBodyBuilder) Build() *PreviewInstanceReqBody { 9611 req := &PreviewInstanceReqBody{} 9612 if builder.userIdFlag { 9613 req.UserId = &builder.userId 9614 } 9615 if builder.approvalCodeFlag { 9616 req.ApprovalCode = &builder.approvalCode 9617 } 9618 if builder.departmentIdFlag { 9619 req.DepartmentId = &builder.departmentId 9620 } 9621 if builder.formFlag { 9622 req.Form = &builder.form 9623 } 9624 if builder.instanceCodeFlag { 9625 req.InstanceCode = &builder.instanceCode 9626 } 9627 if builder.localeFlag { 9628 req.Locale = &builder.locale 9629 } 9630 if builder.taskIdFlag { 9631 req.TaskId = &builder.taskId 9632 } 9633 return req 9634 } 9635 9636 type PreviewInstancePathReqBodyBuilder struct { 9637 userId string // 用户id 9638 userIdFlag bool 9639 approvalCode string // 审批定义code 9640 approvalCodeFlag bool 9641 departmentId string // 部门id 9642 departmentIdFlag bool 9643 form string // 表单数据 9644 formFlag bool 9645 instanceCode string // 审批实例code 9646 instanceCodeFlag bool 9647 locale string // 语言类型 9648 localeFlag bool 9649 taskId string // 任务id 9650 taskIdFlag bool 9651 } 9652 9653 func NewPreviewInstancePathReqBodyBuilder() *PreviewInstancePathReqBodyBuilder { 9654 builder := &PreviewInstancePathReqBodyBuilder{} 9655 return builder 9656 } 9657 9658 // 用户id 9659 // 9660 // 示例值: 9661 func (builder *PreviewInstancePathReqBodyBuilder) UserId(userId string) *PreviewInstancePathReqBodyBuilder { 9662 builder.userId = userId 9663 builder.userIdFlag = true 9664 return builder 9665 } 9666 9667 // 审批定义code 9668 // 9669 // 示例值: 9670 func (builder *PreviewInstancePathReqBodyBuilder) ApprovalCode(approvalCode string) *PreviewInstancePathReqBodyBuilder { 9671 builder.approvalCode = approvalCode 9672 builder.approvalCodeFlag = true 9673 return builder 9674 } 9675 9676 // 部门id 9677 // 9678 // 示例值: 9679 func (builder *PreviewInstancePathReqBodyBuilder) DepartmentId(departmentId string) *PreviewInstancePathReqBodyBuilder { 9680 builder.departmentId = departmentId 9681 builder.departmentIdFlag = true 9682 return builder 9683 } 9684 9685 // 表单数据 9686 // 9687 // 示例值: 9688 func (builder *PreviewInstancePathReqBodyBuilder) Form(form string) *PreviewInstancePathReqBodyBuilder { 9689 builder.form = form 9690 builder.formFlag = true 9691 return builder 9692 } 9693 9694 // 审批实例code 9695 // 9696 // 示例值: 9697 func (builder *PreviewInstancePathReqBodyBuilder) InstanceCode(instanceCode string) *PreviewInstancePathReqBodyBuilder { 9698 builder.instanceCode = instanceCode 9699 builder.instanceCodeFlag = true 9700 return builder 9701 } 9702 9703 // 语言类型 9704 // 9705 // 示例值:zh-CN: 中文 en-US: 英文 9706 func (builder *PreviewInstancePathReqBodyBuilder) Locale(locale string) *PreviewInstancePathReqBodyBuilder { 9707 builder.locale = locale 9708 builder.localeFlag = true 9709 return builder 9710 } 9711 9712 // 任务id 9713 // 9714 // 示例值: 9715 func (builder *PreviewInstancePathReqBodyBuilder) TaskId(taskId string) *PreviewInstancePathReqBodyBuilder { 9716 builder.taskId = taskId 9717 builder.taskIdFlag = true 9718 return builder 9719 } 9720 9721 func (builder *PreviewInstancePathReqBodyBuilder) Build() (*PreviewInstanceReqBody, error) { 9722 req := &PreviewInstanceReqBody{} 9723 if builder.userIdFlag { 9724 req.UserId = &builder.userId 9725 } 9726 if builder.approvalCodeFlag { 9727 req.ApprovalCode = &builder.approvalCode 9728 } 9729 if builder.departmentIdFlag { 9730 req.DepartmentId = &builder.departmentId 9731 } 9732 if builder.formFlag { 9733 req.Form = &builder.form 9734 } 9735 if builder.instanceCodeFlag { 9736 req.InstanceCode = &builder.instanceCode 9737 } 9738 if builder.localeFlag { 9739 req.Locale = &builder.locale 9740 } 9741 if builder.taskIdFlag { 9742 req.TaskId = &builder.taskId 9743 } 9744 return req, nil 9745 } 9746 9747 type PreviewInstanceReqBuilder struct { 9748 apiReq *larkcore.ApiReq 9749 body *PreviewInstanceReqBody 9750 } 9751 9752 func NewPreviewInstanceReqBuilder() *PreviewInstanceReqBuilder { 9753 builder := &PreviewInstanceReqBuilder{} 9754 builder.apiReq = &larkcore.ApiReq{ 9755 PathParams: larkcore.PathParams{}, 9756 QueryParams: larkcore.QueryParams{}, 9757 } 9758 return builder 9759 } 9760 9761 // open_id(ou_开头),union_id(on_开头),user_id(字符串)。user_id_type不填默认为open_id 9762 // 9763 // 示例值: 9764 func (builder *PreviewInstanceReqBuilder) UserIdType(userIdType string) *PreviewInstanceReqBuilder { 9765 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9766 return builder 9767 } 9768 9769 // 9770 func (builder *PreviewInstanceReqBuilder) Body(body *PreviewInstanceReqBody) *PreviewInstanceReqBuilder { 9771 builder.body = body 9772 return builder 9773 } 9774 9775 func (builder *PreviewInstanceReqBuilder) Build() *PreviewInstanceReq { 9776 req := &PreviewInstanceReq{} 9777 req.apiReq = &larkcore.ApiReq{} 9778 req.apiReq.QueryParams = builder.apiReq.QueryParams 9779 req.apiReq.Body = builder.body 9780 return req 9781 } 9782 9783 type PreviewInstanceReqBody struct { 9784 UserId *string `json:"user_id,omitempty"` // 用户id 9785 ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义code 9786 DepartmentId *string `json:"department_id,omitempty"` // 部门id 9787 Form *string `json:"form,omitempty"` // 表单数据 9788 InstanceCode *string `json:"instance_code,omitempty"` // 审批实例code 9789 Locale *string `json:"locale,omitempty"` // 语言类型 9790 TaskId *string `json:"task_id,omitempty"` // 任务id 9791 } 9792 9793 type PreviewInstanceReq struct { 9794 apiReq *larkcore.ApiReq 9795 Body *PreviewInstanceReqBody `body:""` 9796 } 9797 9798 type PreviewInstanceRespData struct { 9799 PreviewNodes []*PreviewNode `json:"preview_nodes,omitempty"` // 9800 } 9801 9802 type PreviewInstanceResp struct { 9803 *larkcore.ApiResp `json:"-"` 9804 larkcore.CodeError 9805 Data *PreviewInstanceRespData `json:"data"` // 业务数据 9806 } 9807 9808 func (resp *PreviewInstanceResp) Success() bool { 9809 return resp.Code == 0 9810 } 9811 9812 type QueryInstanceReqBuilder struct { 9813 apiReq *larkcore.ApiReq 9814 instanceSearch *InstanceSearch 9815 limit int // 最大返回多少记录,当使用迭代器访问时才有效 9816 } 9817 9818 func NewQueryInstanceReqBuilder() *QueryInstanceReqBuilder { 9819 builder := &QueryInstanceReqBuilder{} 9820 builder.apiReq = &larkcore.ApiReq{ 9821 PathParams: larkcore.PathParams{}, 9822 QueryParams: larkcore.QueryParams{}, 9823 } 9824 return builder 9825 } 9826 9827 // 最大返回多少记录,当使用迭代器访问时才有效 9828 func (builder *QueryInstanceReqBuilder) Limit(limit int) *QueryInstanceReqBuilder { 9829 builder.limit = limit 9830 return builder 9831 } 9832 9833 // 分页大小 9834 // 9835 // 示例值:10 9836 func (builder *QueryInstanceReqBuilder) PageSize(pageSize int) *QueryInstanceReqBuilder { 9837 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 9838 return builder 9839 } 9840 9841 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 9842 // 9843 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 9844 func (builder *QueryInstanceReqBuilder) PageToken(pageToken string) *QueryInstanceReqBuilder { 9845 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 9846 return builder 9847 } 9848 9849 // 此次调用中使用的用户ID的类型 9850 // 9851 // 示例值: 9852 func (builder *QueryInstanceReqBuilder) UserIdType(userIdType string) *QueryInstanceReqBuilder { 9853 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9854 return builder 9855 } 9856 9857 // 该接口通过不同条件查询审批系统中符合条件的审批实例列表。 9858 func (builder *QueryInstanceReqBuilder) InstanceSearch(instanceSearch *InstanceSearch) *QueryInstanceReqBuilder { 9859 builder.instanceSearch = instanceSearch 9860 return builder 9861 } 9862 9863 func (builder *QueryInstanceReqBuilder) Build() *QueryInstanceReq { 9864 req := &QueryInstanceReq{} 9865 req.apiReq = &larkcore.ApiReq{} 9866 req.Limit = builder.limit 9867 req.apiReq.QueryParams = builder.apiReq.QueryParams 9868 req.apiReq.Body = builder.instanceSearch 9869 return req 9870 } 9871 9872 type QueryInstanceReq struct { 9873 apiReq *larkcore.ApiReq 9874 InstanceSearch *InstanceSearch `body:""` 9875 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 9876 9877 } 9878 9879 type QueryInstanceRespData struct { 9880 Count *int `json:"count,omitempty"` // 查询返回条数 9881 InstanceList []*InstanceSearchItem `json:"instance_list,omitempty"` // 审批实例列表 9882 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 9883 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 9884 } 9885 9886 type QueryInstanceResp struct { 9887 *larkcore.ApiResp `json:"-"` 9888 larkcore.CodeError 9889 Data *QueryInstanceRespData `json:"data"` // 业务数据 9890 } 9891 9892 func (resp *QueryInstanceResp) Success() bool { 9893 return resp.Code == 0 9894 } 9895 9896 type SearchCcInstanceReqBuilder struct { 9897 apiReq *larkcore.ApiReq 9898 ccSearch *CcSearch 9899 } 9900 9901 func NewSearchCcInstanceReqBuilder() *SearchCcInstanceReqBuilder { 9902 builder := &SearchCcInstanceReqBuilder{} 9903 builder.apiReq = &larkcore.ApiReq{ 9904 PathParams: larkcore.PathParams{}, 9905 QueryParams: larkcore.QueryParams{}, 9906 } 9907 return builder 9908 } 9909 9910 // 分页大小 9911 // 9912 // 示例值:10 9913 func (builder *SearchCcInstanceReqBuilder) PageSize(pageSize int) *SearchCcInstanceReqBuilder { 9914 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 9915 return builder 9916 } 9917 9918 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 9919 // 9920 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 9921 func (builder *SearchCcInstanceReqBuilder) PageToken(pageToken string) *SearchCcInstanceReqBuilder { 9922 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 9923 return builder 9924 } 9925 9926 // 此次调用中使用的用户ID的类型 9927 // 9928 // 示例值: 9929 func (builder *SearchCcInstanceReqBuilder) UserIdType(userIdType string) *SearchCcInstanceReqBuilder { 9930 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9931 return builder 9932 } 9933 9934 // 该接口通过不同条件查询审批系统中符合条件的审批抄送列表。 9935 func (builder *SearchCcInstanceReqBuilder) CcSearch(ccSearch *CcSearch) *SearchCcInstanceReqBuilder { 9936 builder.ccSearch = ccSearch 9937 return builder 9938 } 9939 9940 func (builder *SearchCcInstanceReqBuilder) Build() *SearchCcInstanceReq { 9941 req := &SearchCcInstanceReq{} 9942 req.apiReq = &larkcore.ApiReq{} 9943 req.apiReq.QueryParams = builder.apiReq.QueryParams 9944 req.apiReq.Body = builder.ccSearch 9945 return req 9946 } 9947 9948 type SearchCcInstanceReq struct { 9949 apiReq *larkcore.ApiReq 9950 CcSearch *CcSearch `body:""` 9951 } 9952 9953 type SearchCcInstanceRespData struct { 9954 Count *int `json:"count,omitempty"` // 查询返回条数 9955 CcList []*CcSearchItem `json:"cc_list,omitempty"` // 审批实例列表 9956 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 9957 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 9958 } 9959 9960 type SearchCcInstanceResp struct { 9961 *larkcore.ApiResp `json:"-"` 9962 larkcore.CodeError 9963 Data *SearchCcInstanceRespData `json:"data"` // 业务数据 9964 } 9965 9966 func (resp *SearchCcInstanceResp) Success() bool { 9967 return resp.Code == 0 9968 } 9969 9970 type SpecifiedRollbackInstanceReqBuilder struct { 9971 apiReq *larkcore.ApiReq 9972 specifiedRollback *SpecifiedRollback 9973 } 9974 9975 func NewSpecifiedRollbackInstanceReqBuilder() *SpecifiedRollbackInstanceReqBuilder { 9976 builder := &SpecifiedRollbackInstanceReqBuilder{} 9977 builder.apiReq = &larkcore.ApiReq{ 9978 PathParams: larkcore.PathParams{}, 9979 QueryParams: larkcore.QueryParams{}, 9980 } 9981 return builder 9982 } 9983 9984 // 此次调用中使用的用户ID的类型 9985 // 9986 // 示例值: 9987 func (builder *SpecifiedRollbackInstanceReqBuilder) UserIdType(userIdType string) *SpecifiedRollbackInstanceReqBuilder { 9988 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 9989 return builder 9990 } 9991 9992 // 从当前审批任务,退回到已审批的一个或多个任务节点。退回后,已审批节点重新生成审批任务 9993 func (builder *SpecifiedRollbackInstanceReqBuilder) SpecifiedRollback(specifiedRollback *SpecifiedRollback) *SpecifiedRollbackInstanceReqBuilder { 9994 builder.specifiedRollback = specifiedRollback 9995 return builder 9996 } 9997 9998 func (builder *SpecifiedRollbackInstanceReqBuilder) Build() *SpecifiedRollbackInstanceReq { 9999 req := &SpecifiedRollbackInstanceReq{} 10000 req.apiReq = &larkcore.ApiReq{} 10001 req.apiReq.QueryParams = builder.apiReq.QueryParams 10002 req.apiReq.Body = builder.specifiedRollback 10003 return req 10004 } 10005 10006 type SpecifiedRollbackInstanceReq struct { 10007 apiReq *larkcore.ApiReq 10008 SpecifiedRollback *SpecifiedRollback `body:""` 10009 } 10010 10011 type SpecifiedRollbackInstanceResp struct { 10012 *larkcore.ApiResp `json:"-"` 10013 larkcore.CodeError 10014 } 10015 10016 func (resp *SpecifiedRollbackInstanceResp) Success() bool { 10017 return resp.Code == 0 10018 } 10019 10020 type CreateInstanceCommentReqBuilder struct { 10021 apiReq *larkcore.ApiReq 10022 commentRequest *CommentRequest 10023 } 10024 10025 func NewCreateInstanceCommentReqBuilder() *CreateInstanceCommentReqBuilder { 10026 builder := &CreateInstanceCommentReqBuilder{} 10027 builder.apiReq = &larkcore.ApiReq{ 10028 PathParams: larkcore.PathParams{}, 10029 QueryParams: larkcore.QueryParams{}, 10030 } 10031 return builder 10032 } 10033 10034 // 审批实例code(或租户自定义审批实例ID) 10035 // 10036 // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0 10037 func (builder *CreateInstanceCommentReqBuilder) InstanceId(instanceId string) *CreateInstanceCommentReqBuilder { 10038 builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId)) 10039 return builder 10040 } 10041 10042 // 用户ID类型,不填默认为open_id 10043 // 10044 // 示例值:user_id 10045 func (builder *CreateInstanceCommentReqBuilder) UserIdType(userIdType string) *CreateInstanceCommentReqBuilder { 10046 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10047 return builder 10048 } 10049 10050 // 用户ID 10051 // 10052 // 示例值:e5286g26 10053 func (builder *CreateInstanceCommentReqBuilder) UserId(userId string) *CreateInstanceCommentReqBuilder { 10054 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 10055 return builder 10056 } 10057 10058 // 在某审批实例下创建、修改评论或评论回复(不包含审批同意、拒绝、转交等附加的理由或意见)。 10059 func (builder *CreateInstanceCommentReqBuilder) CommentRequest(commentRequest *CommentRequest) *CreateInstanceCommentReqBuilder { 10060 builder.commentRequest = commentRequest 10061 return builder 10062 } 10063 10064 func (builder *CreateInstanceCommentReqBuilder) Build() *CreateInstanceCommentReq { 10065 req := &CreateInstanceCommentReq{} 10066 req.apiReq = &larkcore.ApiReq{} 10067 req.apiReq.PathParams = builder.apiReq.PathParams 10068 req.apiReq.QueryParams = builder.apiReq.QueryParams 10069 req.apiReq.Body = builder.commentRequest 10070 return req 10071 } 10072 10073 type CreateInstanceCommentReq struct { 10074 apiReq *larkcore.ApiReq 10075 CommentRequest *CommentRequest `body:""` 10076 } 10077 10078 type CreateInstanceCommentRespData struct { 10079 CommentId *string `json:"comment_id,omitempty"` // 保存成功的comment_id 10080 } 10081 10082 type CreateInstanceCommentResp struct { 10083 *larkcore.ApiResp `json:"-"` 10084 larkcore.CodeError 10085 Data *CreateInstanceCommentRespData `json:"data"` // 业务数据 10086 } 10087 10088 func (resp *CreateInstanceCommentResp) Success() bool { 10089 return resp.Code == 0 10090 } 10091 10092 type DeleteInstanceCommentReqBuilder struct { 10093 apiReq *larkcore.ApiReq 10094 } 10095 10096 func NewDeleteInstanceCommentReqBuilder() *DeleteInstanceCommentReqBuilder { 10097 builder := &DeleteInstanceCommentReqBuilder{} 10098 builder.apiReq = &larkcore.ApiReq{ 10099 PathParams: larkcore.PathParams{}, 10100 QueryParams: larkcore.QueryParams{}, 10101 } 10102 return builder 10103 } 10104 10105 // 审批实例code(或者租户自定义审批实例ID) 10106 // 10107 // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0 10108 func (builder *DeleteInstanceCommentReqBuilder) InstanceId(instanceId string) *DeleteInstanceCommentReqBuilder { 10109 builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId)) 10110 return builder 10111 } 10112 10113 // 评论ID 10114 // 10115 // 示例值:7081516627711606803 10116 func (builder *DeleteInstanceCommentReqBuilder) CommentId(commentId string) *DeleteInstanceCommentReqBuilder { 10117 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 10118 return builder 10119 } 10120 10121 // 用户ID类型,不填默认为open_id 10122 // 10123 // 示例值:user_id 10124 func (builder *DeleteInstanceCommentReqBuilder) UserIdType(userIdType string) *DeleteInstanceCommentReqBuilder { 10125 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10126 return builder 10127 } 10128 10129 // 根据user_id_type填写用户ID 10130 // 10131 // 示例值:ou_806a18fb5bdf525e38ba219733bdbd73 10132 func (builder *DeleteInstanceCommentReqBuilder) UserId(userId string) *DeleteInstanceCommentReqBuilder { 10133 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 10134 return builder 10135 } 10136 10137 func (builder *DeleteInstanceCommentReqBuilder) Build() *DeleteInstanceCommentReq { 10138 req := &DeleteInstanceCommentReq{} 10139 req.apiReq = &larkcore.ApiReq{} 10140 req.apiReq.PathParams = builder.apiReq.PathParams 10141 req.apiReq.QueryParams = builder.apiReq.QueryParams 10142 return req 10143 } 10144 10145 type DeleteInstanceCommentReq struct { 10146 apiReq *larkcore.ApiReq 10147 } 10148 10149 type DeleteInstanceCommentRespData struct { 10150 CommentId *string `json:"comment_id,omitempty"` // 删除的评论ID 10151 } 10152 10153 type DeleteInstanceCommentResp struct { 10154 *larkcore.ApiResp `json:"-"` 10155 larkcore.CodeError 10156 Data *DeleteInstanceCommentRespData `json:"data"` // 业务数据 10157 } 10158 10159 func (resp *DeleteInstanceCommentResp) Success() bool { 10160 return resp.Code == 0 10161 } 10162 10163 type ListInstanceCommentReqBuilder struct { 10164 apiReq *larkcore.ApiReq 10165 } 10166 10167 func NewListInstanceCommentReqBuilder() *ListInstanceCommentReqBuilder { 10168 builder := &ListInstanceCommentReqBuilder{} 10169 builder.apiReq = &larkcore.ApiReq{ 10170 PathParams: larkcore.PathParams{}, 10171 QueryParams: larkcore.QueryParams{}, 10172 } 10173 return builder 10174 } 10175 10176 // 审批实例code(或者租户自定义审批实例ID) 10177 // 10178 // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0 10179 func (builder *ListInstanceCommentReqBuilder) InstanceId(instanceId string) *ListInstanceCommentReqBuilder { 10180 builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId)) 10181 return builder 10182 } 10183 10184 // 用户ID类型,不填默认为open_id 10185 // 10186 // 示例值:user_id 10187 func (builder *ListInstanceCommentReqBuilder) UserIdType(userIdType string) *ListInstanceCommentReqBuilder { 10188 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10189 return builder 10190 } 10191 10192 // 用户ID 10193 // 10194 // 示例值:e5286g26 10195 func (builder *ListInstanceCommentReqBuilder) UserId(userId string) *ListInstanceCommentReqBuilder { 10196 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 10197 return builder 10198 } 10199 10200 // 10201 // 10202 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 10203 func (builder *ListInstanceCommentReqBuilder) PageToken(pageToken string) *ListInstanceCommentReqBuilder { 10204 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 10205 return builder 10206 } 10207 10208 // 10209 // 10210 // 示例值:10 10211 func (builder *ListInstanceCommentReqBuilder) PageSize(pageSize int) *ListInstanceCommentReqBuilder { 10212 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 10213 return builder 10214 } 10215 10216 func (builder *ListInstanceCommentReqBuilder) Build() *ListInstanceCommentReq { 10217 req := &ListInstanceCommentReq{} 10218 req.apiReq = &larkcore.ApiReq{} 10219 req.apiReq.PathParams = builder.apiReq.PathParams 10220 req.apiReq.QueryParams = builder.apiReq.QueryParams 10221 return req 10222 } 10223 10224 type ListInstanceCommentReq struct { 10225 apiReq *larkcore.ApiReq 10226 } 10227 10228 type ListInstanceCommentRespData struct { 10229 Comments []*Comment `json:"comments,omitempty"` // 评论数据列表 10230 } 10231 10232 type ListInstanceCommentResp struct { 10233 *larkcore.ApiResp `json:"-"` 10234 larkcore.CodeError 10235 Data *ListInstanceCommentRespData `json:"data"` // 业务数据 10236 } 10237 10238 func (resp *ListInstanceCommentResp) Success() bool { 10239 return resp.Code == 0 10240 } 10241 10242 type RemoveInstanceCommentReqBuilder struct { 10243 apiReq *larkcore.ApiReq 10244 } 10245 10246 func NewRemoveInstanceCommentReqBuilder() *RemoveInstanceCommentReqBuilder { 10247 builder := &RemoveInstanceCommentReqBuilder{} 10248 builder.apiReq = &larkcore.ApiReq{ 10249 PathParams: larkcore.PathParams{}, 10250 QueryParams: larkcore.QueryParams{}, 10251 } 10252 return builder 10253 } 10254 10255 // 审批实例code(或者租户自定义审批实例ID) 10256 // 10257 // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0 10258 func (builder *RemoveInstanceCommentReqBuilder) InstanceId(instanceId string) *RemoveInstanceCommentReqBuilder { 10259 builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId)) 10260 return builder 10261 } 10262 10263 // 用户ID类型,不填默认为open_id 10264 // 10265 // 示例值:user_id 10266 func (builder *RemoveInstanceCommentReqBuilder) UserIdType(userIdType string) *RemoveInstanceCommentReqBuilder { 10267 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10268 return builder 10269 } 10270 10271 // 根据user_id_type填写用户ID 10272 // 10273 // 示例值:ou_806a18fb5bdf525e38ba219733bdbd73 10274 func (builder *RemoveInstanceCommentReqBuilder) UserId(userId string) *RemoveInstanceCommentReqBuilder { 10275 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 10276 return builder 10277 } 10278 10279 func (builder *RemoveInstanceCommentReqBuilder) Build() *RemoveInstanceCommentReq { 10280 req := &RemoveInstanceCommentReq{} 10281 req.apiReq = &larkcore.ApiReq{} 10282 req.apiReq.PathParams = builder.apiReq.PathParams 10283 req.apiReq.QueryParams = builder.apiReq.QueryParams 10284 return req 10285 } 10286 10287 type RemoveInstanceCommentReq struct { 10288 apiReq *larkcore.ApiReq 10289 } 10290 10291 type RemoveInstanceCommentRespData struct { 10292 InstanceId *string `json:"instance_id,omitempty"` // 审批实例code 10293 ExternalId *string `json:"external_id,omitempty"` // 租户自定义审批实例ID 10294 } 10295 10296 type RemoveInstanceCommentResp struct { 10297 *larkcore.ApiResp `json:"-"` 10298 larkcore.CodeError 10299 Data *RemoveInstanceCommentRespData `json:"data"` // 业务数据 10300 } 10301 10302 func (resp *RemoveInstanceCommentResp) Success() bool { 10303 return resp.Code == 0 10304 } 10305 10306 type ApproveTaskReqBuilder struct { 10307 apiReq *larkcore.ApiReq 10308 taskApprove *TaskApprove 10309 } 10310 10311 func NewApproveTaskReqBuilder() *ApproveTaskReqBuilder { 10312 builder := &ApproveTaskReqBuilder{} 10313 builder.apiReq = &larkcore.ApiReq{ 10314 PathParams: larkcore.PathParams{}, 10315 QueryParams: larkcore.QueryParams{}, 10316 } 10317 return builder 10318 } 10319 10320 // 此次调用中使用的用户ID的类型 10321 // 10322 // 示例值: 10323 func (builder *ApproveTaskReqBuilder) UserIdType(userIdType string) *ApproveTaskReqBuilder { 10324 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10325 return builder 10326 } 10327 10328 // 对于单个审批任务进行同意操作。同意后审批流程会流转到下一个审批人。 10329 func (builder *ApproveTaskReqBuilder) TaskApprove(taskApprove *TaskApprove) *ApproveTaskReqBuilder { 10330 builder.taskApprove = taskApprove 10331 return builder 10332 } 10333 10334 func (builder *ApproveTaskReqBuilder) Build() *ApproveTaskReq { 10335 req := &ApproveTaskReq{} 10336 req.apiReq = &larkcore.ApiReq{} 10337 req.apiReq.QueryParams = builder.apiReq.QueryParams 10338 req.apiReq.Body = builder.taskApprove 10339 return req 10340 } 10341 10342 type ApproveTaskReq struct { 10343 apiReq *larkcore.ApiReq 10344 TaskApprove *TaskApprove `body:""` 10345 } 10346 10347 type ApproveTaskResp struct { 10348 *larkcore.ApiResp `json:"-"` 10349 larkcore.CodeError 10350 } 10351 10352 func (resp *ApproveTaskResp) Success() bool { 10353 return resp.Code == 0 10354 } 10355 10356 type QueryTaskReqBuilder struct { 10357 apiReq *larkcore.ApiReq 10358 limit int // 最大返回多少记录,当使用迭代器访问时才有效 10359 } 10360 10361 func NewQueryTaskReqBuilder() *QueryTaskReqBuilder { 10362 builder := &QueryTaskReqBuilder{} 10363 builder.apiReq = &larkcore.ApiReq{ 10364 PathParams: larkcore.PathParams{}, 10365 QueryParams: larkcore.QueryParams{}, 10366 } 10367 return builder 10368 } 10369 10370 // 最大返回多少记录,当使用迭代器访问时才有效 10371 func (builder *QueryTaskReqBuilder) Limit(limit int) *QueryTaskReqBuilder { 10372 builder.limit = limit 10373 return builder 10374 } 10375 10376 // 分页大小 10377 // 10378 // 示例值:100 10379 func (builder *QueryTaskReqBuilder) PageSize(pageSize int) *QueryTaskReqBuilder { 10380 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 10381 return builder 10382 } 10383 10384 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 10385 // 10386 // 示例值:1 10387 func (builder *QueryTaskReqBuilder) PageToken(pageToken string) *QueryTaskReqBuilder { 10388 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 10389 return builder 10390 } 10391 10392 // 需要查询的 User ID 10393 // 10394 // 示例值:example_user_id 10395 func (builder *QueryTaskReqBuilder) UserId(userId string) *QueryTaskReqBuilder { 10396 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 10397 return builder 10398 } 10399 10400 // 需要查询的任务分组主题,如「待办」、「已办」等 10401 // 10402 // 示例值:1 10403 func (builder *QueryTaskReqBuilder) Topic(topic string) *QueryTaskReqBuilder { 10404 builder.apiReq.QueryParams.Set("topic", fmt.Sprint(topic)) 10405 return builder 10406 } 10407 10408 // 此次调用中使用的用户ID的类型 10409 // 10410 // 示例值: 10411 func (builder *QueryTaskReqBuilder) UserIdType(userIdType string) *QueryTaskReqBuilder { 10412 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10413 return builder 10414 } 10415 10416 func (builder *QueryTaskReqBuilder) Build() *QueryTaskReq { 10417 req := &QueryTaskReq{} 10418 req.apiReq = &larkcore.ApiReq{} 10419 req.Limit = builder.limit 10420 req.apiReq.QueryParams = builder.apiReq.QueryParams 10421 return req 10422 } 10423 10424 type QueryTaskReq struct { 10425 apiReq *larkcore.ApiReq 10426 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 10427 10428 } 10429 10430 type QueryTaskRespData struct { 10431 Tasks []*Task `json:"tasks,omitempty"` // 任务列表 10432 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 10433 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 10434 Count *Count `json:"count,omitempty"` // 列表计数,只在分页第一页返回 10435 } 10436 10437 type QueryTaskResp struct { 10438 *larkcore.ApiResp `json:"-"` 10439 larkcore.CodeError 10440 Data *QueryTaskRespData `json:"data"` // 业务数据 10441 } 10442 10443 func (resp *QueryTaskResp) Success() bool { 10444 return resp.Code == 0 10445 } 10446 10447 type RejectTaskReqBuilder struct { 10448 apiReq *larkcore.ApiReq 10449 taskApprove *TaskApprove 10450 } 10451 10452 func NewRejectTaskReqBuilder() *RejectTaskReqBuilder { 10453 builder := &RejectTaskReqBuilder{} 10454 builder.apiReq = &larkcore.ApiReq{ 10455 PathParams: larkcore.PathParams{}, 10456 QueryParams: larkcore.QueryParams{}, 10457 } 10458 return builder 10459 } 10460 10461 // 此次调用中使用的用户ID的类型 10462 // 10463 // 示例值: 10464 func (builder *RejectTaskReqBuilder) UserIdType(userIdType string) *RejectTaskReqBuilder { 10465 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10466 return builder 10467 } 10468 10469 // 对于单个审批任务进行拒绝操作。拒绝后审批流程结束。 10470 func (builder *RejectTaskReqBuilder) TaskApprove(taskApprove *TaskApprove) *RejectTaskReqBuilder { 10471 builder.taskApprove = taskApprove 10472 return builder 10473 } 10474 10475 func (builder *RejectTaskReqBuilder) Build() *RejectTaskReq { 10476 req := &RejectTaskReq{} 10477 req.apiReq = &larkcore.ApiReq{} 10478 req.apiReq.QueryParams = builder.apiReq.QueryParams 10479 req.apiReq.Body = builder.taskApprove 10480 return req 10481 } 10482 10483 type RejectTaskReq struct { 10484 apiReq *larkcore.ApiReq 10485 TaskApprove *TaskApprove `body:""` 10486 } 10487 10488 type RejectTaskResp struct { 10489 *larkcore.ApiResp `json:"-"` 10490 larkcore.CodeError 10491 } 10492 10493 func (resp *RejectTaskResp) Success() bool { 10494 return resp.Code == 0 10495 } 10496 10497 type ResubmitTaskReqBuilder struct { 10498 apiReq *larkcore.ApiReq 10499 taskResubmit *TaskResubmit 10500 } 10501 10502 func NewResubmitTaskReqBuilder() *ResubmitTaskReqBuilder { 10503 builder := &ResubmitTaskReqBuilder{} 10504 builder.apiReq = &larkcore.ApiReq{ 10505 PathParams: larkcore.PathParams{}, 10506 QueryParams: larkcore.QueryParams{}, 10507 } 10508 return builder 10509 } 10510 10511 // 此次调用中使用的用户ID的类型 10512 // 10513 // 示例值: 10514 func (builder *ResubmitTaskReqBuilder) UserIdType(userIdType string) *ResubmitTaskReqBuilder { 10515 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10516 return builder 10517 } 10518 10519 // 对于单个退回到发起人的审批任务进行重新发起操作。发起后审批流程会流转到下一个审批人。 10520 func (builder *ResubmitTaskReqBuilder) TaskResubmit(taskResubmit *TaskResubmit) *ResubmitTaskReqBuilder { 10521 builder.taskResubmit = taskResubmit 10522 return builder 10523 } 10524 10525 func (builder *ResubmitTaskReqBuilder) Build() *ResubmitTaskReq { 10526 req := &ResubmitTaskReq{} 10527 req.apiReq = &larkcore.ApiReq{} 10528 req.apiReq.QueryParams = builder.apiReq.QueryParams 10529 req.apiReq.Body = builder.taskResubmit 10530 return req 10531 } 10532 10533 type ResubmitTaskReq struct { 10534 apiReq *larkcore.ApiReq 10535 TaskResubmit *TaskResubmit `body:""` 10536 } 10537 10538 type ResubmitTaskResp struct { 10539 *larkcore.ApiResp `json:"-"` 10540 larkcore.CodeError 10541 } 10542 10543 func (resp *ResubmitTaskResp) Success() bool { 10544 return resp.Code == 0 10545 } 10546 10547 type SearchTaskReqBuilder struct { 10548 apiReq *larkcore.ApiReq 10549 taskSearch *TaskSearch 10550 } 10551 10552 func NewSearchTaskReqBuilder() *SearchTaskReqBuilder { 10553 builder := &SearchTaskReqBuilder{} 10554 builder.apiReq = &larkcore.ApiReq{ 10555 PathParams: larkcore.PathParams{}, 10556 QueryParams: larkcore.QueryParams{}, 10557 } 10558 return builder 10559 } 10560 10561 // 分页大小 10562 // 10563 // 示例值:10 10564 func (builder *SearchTaskReqBuilder) PageSize(pageSize int) *SearchTaskReqBuilder { 10565 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 10566 return builder 10567 } 10568 10569 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 10570 // 10571 // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU 10572 func (builder *SearchTaskReqBuilder) PageToken(pageToken string) *SearchTaskReqBuilder { 10573 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 10574 return builder 10575 } 10576 10577 // 此次调用中使用的用户ID的类型 10578 // 10579 // 示例值: 10580 func (builder *SearchTaskReqBuilder) UserIdType(userIdType string) *SearchTaskReqBuilder { 10581 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10582 return builder 10583 } 10584 10585 // 该接口通过不同条件查询审批系统中符合条件的审批任务列表 10586 func (builder *SearchTaskReqBuilder) TaskSearch(taskSearch *TaskSearch) *SearchTaskReqBuilder { 10587 builder.taskSearch = taskSearch 10588 return builder 10589 } 10590 10591 func (builder *SearchTaskReqBuilder) Build() *SearchTaskReq { 10592 req := &SearchTaskReq{} 10593 req.apiReq = &larkcore.ApiReq{} 10594 req.apiReq.QueryParams = builder.apiReq.QueryParams 10595 req.apiReq.Body = builder.taskSearch 10596 return req 10597 } 10598 10599 type SearchTaskReq struct { 10600 apiReq *larkcore.ApiReq 10601 TaskSearch *TaskSearch `body:""` 10602 } 10603 10604 type SearchTaskRespData struct { 10605 Count *int `json:"count,omitempty"` // 查询返回条数 10606 TaskList []*TaskSearchItem `json:"task_list,omitempty"` // 审批任务列表 10607 PageToken *string `json:"page_token,omitempty"` // 翻页 Token 10608 HasMore *bool `json:"has_more,omitempty"` // 是否有更多任务可供拉取 10609 } 10610 10611 type SearchTaskResp struct { 10612 *larkcore.ApiResp `json:"-"` 10613 larkcore.CodeError 10614 Data *SearchTaskRespData `json:"data"` // 业务数据 10615 } 10616 10617 func (resp *SearchTaskResp) Success() bool { 10618 return resp.Code == 0 10619 } 10620 10621 type TransferTaskReqBuilder struct { 10622 apiReq *larkcore.ApiReq 10623 taskTransfer *TaskTransfer 10624 } 10625 10626 func NewTransferTaskReqBuilder() *TransferTaskReqBuilder { 10627 builder := &TransferTaskReqBuilder{} 10628 builder.apiReq = &larkcore.ApiReq{ 10629 PathParams: larkcore.PathParams{}, 10630 QueryParams: larkcore.QueryParams{}, 10631 } 10632 return builder 10633 } 10634 10635 // 此次调用中使用的用户ID的类型 10636 // 10637 // 示例值: 10638 func (builder *TransferTaskReqBuilder) UserIdType(userIdType string) *TransferTaskReqBuilder { 10639 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 10640 return builder 10641 } 10642 10643 // 对于单个审批任务进行转交操作。转交后审批流程流转给被转交人。 10644 func (builder *TransferTaskReqBuilder) TaskTransfer(taskTransfer *TaskTransfer) *TransferTaskReqBuilder { 10645 builder.taskTransfer = taskTransfer 10646 return builder 10647 } 10648 10649 func (builder *TransferTaskReqBuilder) Build() *TransferTaskReq { 10650 req := &TransferTaskReq{} 10651 req.apiReq = &larkcore.ApiReq{} 10652 req.apiReq.QueryParams = builder.apiReq.QueryParams 10653 req.apiReq.Body = builder.taskTransfer 10654 return req 10655 } 10656 10657 type TransferTaskReq struct { 10658 apiReq *larkcore.ApiReq 10659 TaskTransfer *TaskTransfer `body:""` 10660 } 10661 10662 type TransferTaskResp struct { 10663 *larkcore.ApiResp `json:"-"` 10664 larkcore.CodeError 10665 } 10666 10667 func (resp *TransferTaskResp) Success() bool { 10668 return resp.Code == 0 10669 } 10670 10671 type P2ApprovalUpdatedV4Data struct { 10672 Object *ApprovalEvent `json:"object,omitempty"` // 10673 } 10674 10675 type P2ApprovalUpdatedV4 struct { 10676 *larkevent.EventV2Base // 事件基础数据 10677 *larkevent.EventReq // 请求原生数据 10678 Event *P2ApprovalUpdatedV4Data `json:"event"` // 事件内容 10679 } 10680 10681 func (m *P2ApprovalUpdatedV4) RawReq(req *larkevent.EventReq) { 10682 m.EventReq = req 10683 } 10684 10685 type ListExternalTaskIterator struct { 10686 nextPageToken *string 10687 items []*ExternalTaskList 10688 index int 10689 limit int 10690 ctx context.Context 10691 req *ListExternalTaskReq 10692 listFunc func(ctx context.Context, req *ListExternalTaskReq, options ...larkcore.RequestOptionFunc) (*ListExternalTaskResp, error) 10693 options []larkcore.RequestOptionFunc 10694 curlNum int 10695 } 10696 10697 func (iterator *ListExternalTaskIterator) Next() (bool, *ExternalTaskList, error) { 10698 // 达到最大量,则返回 10699 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 10700 return false, nil, nil 10701 } 10702 10703 // 为0则拉取数据 10704 if iterator.index == 0 || iterator.index >= len(iterator.items) { 10705 if iterator.index != 0 && iterator.nextPageToken == nil { 10706 return false, nil, nil 10707 } 10708 if iterator.nextPageToken != nil { 10709 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 10710 } 10711 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 10712 if err != nil { 10713 return false, nil, err 10714 } 10715 10716 if resp.Code != 0 { 10717 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 10718 } 10719 10720 if len(resp.Data.Data) == 0 { 10721 return false, nil, nil 10722 } 10723 10724 iterator.nextPageToken = resp.Data.PageToken 10725 iterator.items = resp.Data.Data 10726 iterator.index = 0 10727 } 10728 10729 block := iterator.items[iterator.index] 10730 iterator.index++ 10731 iterator.curlNum++ 10732 return true, block, nil 10733 } 10734 10735 func (iterator *ListExternalTaskIterator) NextPageToken() *string { 10736 return iterator.nextPageToken 10737 } 10738 10739 type ListInstanceIterator struct { 10740 nextPageToken *string 10741 items []string 10742 index int 10743 limit int 10744 ctx context.Context 10745 req *ListInstanceReq 10746 listFunc func(ctx context.Context, req *ListInstanceReq, options ...larkcore.RequestOptionFunc) (*ListInstanceResp, error) 10747 options []larkcore.RequestOptionFunc 10748 curlNum int 10749 } 10750 10751 func (iterator *ListInstanceIterator) Next() (bool, string, error) { 10752 // 达到最大量,则返回 10753 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 10754 return false, "", nil 10755 } 10756 10757 // 为0则拉取数据 10758 if iterator.index == 0 || iterator.index >= len(iterator.items) { 10759 if iterator.index != 0 && iterator.nextPageToken == nil { 10760 return false, "", nil 10761 } 10762 if iterator.nextPageToken != nil { 10763 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 10764 } 10765 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 10766 if err != nil { 10767 return false, "", err 10768 } 10769 10770 if resp.Code != 0 { 10771 return false, "", errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 10772 } 10773 10774 if len(resp.Data.InstanceCodeList) == 0 { 10775 return false, "", nil 10776 } 10777 10778 iterator.nextPageToken = resp.Data.PageToken 10779 iterator.items = resp.Data.InstanceCodeList 10780 iterator.index = 0 10781 } 10782 10783 block := iterator.items[iterator.index] 10784 iterator.index++ 10785 iterator.curlNum++ 10786 return true, block, nil 10787 } 10788 10789 func (iterator *ListInstanceIterator) NextPageToken() *string { 10790 return iterator.nextPageToken 10791 } 10792 10793 type QueryInstanceIterator struct { 10794 nextPageToken *string 10795 items []*InstanceSearchItem 10796 index int 10797 limit int 10798 ctx context.Context 10799 req *QueryInstanceReq 10800 listFunc func(ctx context.Context, req *QueryInstanceReq, options ...larkcore.RequestOptionFunc) (*QueryInstanceResp, error) 10801 options []larkcore.RequestOptionFunc 10802 curlNum int 10803 } 10804 10805 func (iterator *QueryInstanceIterator) Next() (bool, *InstanceSearchItem, error) { 10806 // 达到最大量,则返回 10807 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 10808 return false, nil, nil 10809 } 10810 10811 // 为0则拉取数据 10812 if iterator.index == 0 || iterator.index >= len(iterator.items) { 10813 if iterator.index != 0 && iterator.nextPageToken == nil { 10814 return false, nil, nil 10815 } 10816 if iterator.nextPageToken != nil { 10817 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 10818 } 10819 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 10820 if err != nil { 10821 return false, nil, err 10822 } 10823 10824 if resp.Code != 0 { 10825 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 10826 } 10827 10828 if len(resp.Data.InstanceList) == 0 { 10829 return false, nil, nil 10830 } 10831 10832 iterator.nextPageToken = resp.Data.PageToken 10833 iterator.items = resp.Data.InstanceList 10834 iterator.index = 0 10835 } 10836 10837 block := iterator.items[iterator.index] 10838 iterator.index++ 10839 iterator.curlNum++ 10840 return true, block, nil 10841 } 10842 10843 func (iterator *QueryInstanceIterator) NextPageToken() *string { 10844 return iterator.nextPageToken 10845 } 10846 10847 type QueryTaskIterator struct { 10848 nextPageToken *string 10849 items []*Task 10850 index int 10851 limit int 10852 ctx context.Context 10853 req *QueryTaskReq 10854 listFunc func(ctx context.Context, req *QueryTaskReq, options ...larkcore.RequestOptionFunc) (*QueryTaskResp, error) 10855 options []larkcore.RequestOptionFunc 10856 curlNum int 10857 } 10858 10859 func (iterator *QueryTaskIterator) Next() (bool, *Task, error) { 10860 // 达到最大量,则返回 10861 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 10862 return false, nil, nil 10863 } 10864 10865 // 为0则拉取数据 10866 if iterator.index == 0 || iterator.index >= len(iterator.items) { 10867 if iterator.index != 0 && iterator.nextPageToken == nil { 10868 return false, nil, nil 10869 } 10870 if iterator.nextPageToken != nil { 10871 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 10872 } 10873 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 10874 if err != nil { 10875 return false, nil, err 10876 } 10877 10878 if resp.Code != 0 { 10879 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 10880 } 10881 10882 if len(resp.Data.Tasks) == 0 { 10883 return false, nil, nil 10884 } 10885 10886 iterator.nextPageToken = resp.Data.PageToken 10887 iterator.items = resp.Data.Tasks 10888 iterator.index = 0 10889 } 10890 10891 block := iterator.items[iterator.index] 10892 iterator.index++ 10893 iterator.curlNum++ 10894 return true, block, nil 10895 } 10896 10897 func (iterator *QueryTaskIterator) NextPageToken() *string { 10898 return iterator.nextPageToken 10899 }