workflow.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package workflow
  2. import (
  3. "dashoo.cn/opms_libary/plugin/dingtalk/base"
  4. "dashoo.cn/opms_libary/plugin/dingtalk/context"
  5. "github.com/alibabacloud-go/tea/tea"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/util/gconv"
  8. )
  9. const (
  10. FormSchemasUrl = "/v1.0/workflow/forms/schemas/processCodes"
  11. CreateInstanceUrl = "/v1.0/workflow/processInstances"
  12. )
  13. //Workflow OA审批
  14. type Workflow struct {
  15. base.Base
  16. }
  17. //NewWorkflow init
  18. func NewWorkflow(context *context.Context) *Workflow {
  19. material := new(Workflow)
  20. material.Context = context
  21. return material
  22. }
  23. //GetFormSchema 获取表单 schema
  24. func (w *Workflow) GetFormSchema(processCode string) (mediaID string, err error) {
  25. resp, _ := w.HTTPGetWithAccessToken(FormSchemasUrl, g.Map{"processCode": processCode})
  26. return gconv.String(resp), nil
  27. }
  28. //CreateProcessInstance 发起审批实例
  29. func (w *Workflow) CreateProcessInstance(originUserId, processCode string, deptId int64) (mediaID string, err error) {
  30. inst1 := new(StartProcessInstanceRequest)
  31. inst1.OriginatorUserId = &originUserId
  32. inst1.ProcessCode = &processCode
  33. inst1.DeptId = &deptId
  34. formComponentValues0 := &StartProcessInstanceRequestFormComponentValues{
  35. Name: tea.String("单行输入框"),
  36. Value: tea.String("22222"),
  37. Id: tea.String("TextField-K2AD4O5B"),
  38. }
  39. //approvers0 := &StartProcessInstanceRequestApprovers{
  40. // ActionType: tea.String("NONE"),
  41. // UserIds: []*string{tea.String("47073111989114")},
  42. //}
  43. inst1.FormComponentValues = []*StartProcessInstanceRequestFormComponentValues{formComponentValues0}
  44. //inst1.Approvers = []*StartProcessInstanceRequestApprovers{approvers0}
  45. resp, _ := w.HTTPPostJSONWithAccessToken(CreateInstanceUrl, inst1)
  46. return gconv.String(resp), nil
  47. }