package workflow import ( "dashoo.cn/opms_libary/plugin/dingtalk/base" "dashoo.cn/opms_libary/plugin/dingtalk/context" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/util/gconv" ) const ( FormSchemasUrl = "/v1.0/workflow/forms/schemas/processCodes" CreateInstanceUrl = "/v1.0/workflow/processInstances" ) //Workflow OA审批 type Workflow struct { base.Base } //NewWorkflow init func NewWorkflow(context *context.Context) *Workflow { material := new(Workflow) material.Context = context return material } //GetFormSchema 获取表单 schema func (w *Workflow) GetFormSchema(processCode string) (mediaID string, err error) { resp, _ := w.HTTPGetWithAccessToken(FormSchemasUrl, g.Map{"processCode": processCode}) return gconv.String(resp), nil } //CreateProcessInstance 发起审批实例 func (w *Workflow) CreateProcessInstance(originUserId, processCode string, deptId int64) (mediaID string, err error) { inst1 := new(StartProcessInstanceRequest) inst1.OriginatorUserId = &originUserId inst1.ProcessCode = &processCode inst1.DeptId = &deptId //formComponentValues0 := &StartProcessInstanceRequestFormComponentValues{ // Name: tea.String("单行输入框"), // Value: tea.String("22222"), // Id: tea.String("TextField-K2AD4O5B"), //} //approvers0 := &StartProcessInstanceRequestApprovers{ // ActionType: tea.String("NONE"), // UserIds: []*string{tea.String("47073111989114")}, //} //inst1.FormComponentValues = []*StartProcessInstanceRequestFormComponentValues{formComponentValues0} //inst1.Approvers = []*StartProcessInstanceRequestApprovers{approvers0} resp, _ := w.HTTPPostJSONWithAccessToken(CreateInstanceUrl, inst1) return gconv.String(resp), nil }