workflow.go 1.7 KB

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