/// <summary> /// 发起审批实例 /// </summary> /// <param name="accessToken">accessToken</param> /// <param name="agentId">企业应用标识(ISV调用必须设置)</param> /// <param name="processCode">审批流的唯一码,process_code就在审批流编辑的页面URL中</param> /// <param name="approvers">审批人userid列表,最大列表长度:20。多个审批人用逗号分隔,按传入的顺序依次审批</param> /// <param name="originatorUserID">审批实例发起人的userid</param> /// <param name="deptId">发起人所在的部门,如果发起人属于根部门,传-1</param> /// <param name="ccList">抄送人userid列表,最大列表长度:20。多个抄送人用逗号分隔</param> /// <param name="ccPosition">抄送时间,分为(START, FINISH, START_FINISH)</param> /// <param name="name">表单每一栏的名称</param> /// <param name="value">表单每一栏的值</param> /// <returns></returns> public OapiProcessinstanceCreateResponse Create(string accessToken, string processCode, string originatorUserID, long deptId, string name, string value, long?agentId = 0, string approvers = "", string ccList = "", string ccPosition = "") { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest { AgentId = 0, ProcessCode = processCode, Approvers = approvers, OriginatorUserId = originatorUserID, DeptId = deptId, CcList = ccList, CcPosition = ccPosition }; List <FormComponentValueVoDomain> formComponentValues = new List <FormComponentValueVoDomain>(); FormComponentValueVoDomain vo = new FormComponentValueVoDomain { Name = name, Value = value }; formComponentValues.Add(vo); request.FormComponentValues_ = formComponentValues; OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken); return(response); }
/// <summary> /// 发送审批请求 /// </summary> /// <param name="items"></param> /// <returns></returns> public string SendApprove(List <ApproveItem> items) { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = long.Parse(_oper.AgentID); request.ProcessCode = ProcessCode; List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); items.ForEach(p => { OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); vo.Name = p.Name; vo.Value = p.Value; vo.ExtValue = p.ExtValue; formComponentValues.Add(vo); }); request.FormComponentValues_ = formComponentValues; request.OriginatorUserId = User.DdId; request.DeptId = JsonHelper.JsonToList <long>(User.DeptId).First(); OapiProcessinstanceCreateResponse response = client.Execute(request, _oper.AccessToken); if (response.Errcode == 0) { return(response.ProcessInstanceId); } return(""); }
/// <summary> /// 发起钉钉审批 /// </summary> /// <param name="agentid">微应用id</param> /// <param name="processcode">审批表单processcode</param> /// <param name="deptid">发起人部门id</param> /// <param name="userid">发起人userid</param> /// <param name="token">token</param> /// <param name="keys">表单字典内容</param> /// <param name="Imgkeys">表单图片字典内容</param> /// <returns></returns> public string Initiate(long agentid, string processcode, long deptid, string userid, string token, Dictionary <string, string> keys, Dictionary <string, List <string> > Imgkeys) { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = agentid; request.ProcessCode = processcode; request.DeptId = deptid; request.OriginatorUserId = userid; List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); //表单内容 foreach (var item in keys) { formComponentValues.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain { Name = item.Key, Value = item.Value }); } //表单图片 foreach (var item in Imgkeys) { formComponentValues.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = item.Key, Value = $"[{string.Join(",", item.Value)}]" }); } request.FormComponentValues_ = formComponentValues; OapiProcessinstanceCreateResponse response = client.Execute(request, token); return(JsonConvert.SerializeObject(response).ToString()); }
private void btn_Faqi_Click(object sender, EventArgs e) { //DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); //OapiGettokenRequest request = new OapiGettokenRequest(); //request.Appkey = "ding4pmpx3dj9azo1k7s"; //request.Appsecret = "TYETGgC7XXsFB8hfwIg_hSB537kCJQX71O3wcrrqDYY1Gn6xwc3zBWJmfLlxp1Yc"; //request.SetHttpMethod("GET"); //OapiGettokenResponse response = client.Execute(request); //var bb = response.AccessToken; //MessageBox.Show(bb); DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = 41605932L; request.ProcessCode = "PROC-BY6LI83V-4R8T1CHNUX58O0Z6C55M3-DTQJJGEJ-1"; List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); vo.Name = "武汉梓金山科技有限公司"; vo.Value = "test"; formComponentValues.Add(vo); request.FormComponentValues = "formComponentValues"; request.Approvers = "userid1,userid2"; request.OriginatorUserId = "userid1"; request.DeptId = -1L; request.CcList = "userid1,userid2"; request.CcPosition = "START_FINISH"; string accessToken = AccessToken(); OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken); MessageBox.Show(response.Body); //IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); //SmartworkBpmsProcessinstanceCreateRequest req = new SmartworkBpmsProcessinstanceCreateRequest(); //req.AgentId = 41605932L; //req.ProcessCode = "PROC-EF6YJL35P2-SCKICSB7P750S0YISYKV3-17IBLGZI-1"; //req.OriginatorUserId = "manager432"; //req.DeptId = 100L; //req.Approvers = "zhangsan,lisi"; //req.CcList = "zhangsan,lisi"; //req.CcPosition = "START"; //List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain> list2 = new List<SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain>(); //SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain obj3 = new SmartworkBpmsProcessinstanceCreateRequest.FormComponentValueVoDomain(); //list2.Add(obj3); //obj3.Name = "请假类型"; //obj3.Value = "事假"; //obj3.ExtValue = "总天数:1"; //req.FormComponentValues_ = list2; //SmartworkBpmsProcessinstanceCreateResponse rsp = client.Execute(req, accessToken); //MessageBox.Show(rsp.Body); }
/// <summary> /// 发起审批实例 https://open-doc.dingtalk.com/microapp/serverapi2/cmct1a /// </summary> /// <param name="accessToken"></param> /// <param name="processCode">审批流的唯一码,process_code就在审批流编辑的页面URL中</param> /// <param name="list">审批流表单</param> /// <param name="originatorUserId">审批实例发起人的userid</param> /// <param name="deptId">发起人所在的部门,如果发起人属于根部门,传-1</param> /// <param name="agentId">企业应用标识(ISV调用必须设置)</param> /// <param name="approvers">审批人userid列表,最大列表长度:20。多个审批人用逗号分隔,按传入的顺序依次审批</param> /// <param name="cCPosition">抄送时间,分为(START, FINISH, START_FINISH)</param> /// <param name="cCList">抄送人userid列表,最大列表长度:20。多个抄送人用逗号分隔。该参数需要与cc_position参数一起传,抄送人才能生效</param> /// <returns></returns> public OapiProcessinstanceCreateResponse Create(string accessToken, string processCode, List <FormComponentValueVoDomain> list, string originatorUserId, long deptId, long agentId = 0, string approvers = "", string cCPosition = "", string cCList = "") { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = agentId; request.ProcessCode = processCode; request.FormComponentValues_ = list; request.Approvers = approvers; request.OriginatorUserId = originatorUserId; request.DeptId = deptId; request.CcList = cCList; request.CcPosition = cCPosition; OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken); return(response); }
/// <summary> /// 发送审批实列 /// </summary> /// <param name="kSCustomer">客诉</param> /// <param name="Token"></param> /// <param name="DbContext"></param> /// <returns></returns> public static OapiProcessinstanceCreateResponse SendTemplate(KS_Customer kSCustomer, int DepCode, string Userid, string Token, YiFang_CustomerComplaintEntities DbContext) { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); request.AgentId = Allocation.AgentId; request.ProcessCode = Allocation.ProcessCode; request.DeptId = DepCode; request.OriginatorUserId = Userid; List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); //客诉门店 var Person = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPerson); //一方督导 var PersonSupervision = DbContext.OR_Person.FirstOrDefault(p => p.Id == kSCustomer.IdPersonSupervision); //异常归类 var Abnormal = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.AbnormalId)?.Name; //客诉小类名称 var customername = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == kSCustomer.SubclassId).Name; //所属大区 //var regionid = DbContext.AC_SysUsers.FirstOrDefault(k => k.UserName == Person.LoginName).ST_Store.FirstOrDefault().RegionId; var regionid = 1; var RegionName = DbContext.BA_SysEnType.FirstOrDefault(p => p.Id == regionid)?.Name;; switch (kSCustomer.StateId) { case 1: #region 创建客诉类型为原物料的审批 OapiProcessinstanceCreateRequest.FormComponentValueVoDomain from1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "客诉类型", Value = customername }; formComponentValues.Add(from1); var from2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from2.Name = "客诉内容"; from2.Value = kSCustomer.Remark + ""; formComponentValues.Add(from2); var from3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from3.Name = "客诉单号"; from3.Value = kSCustomer.Id + ""; formComponentValues.Add(from3); var from4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from4.Name = "提交时间"; from4.Value = kSCustomer.CreateTime + ""; formComponentValues.Add(from4); var from5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from5.Name = "异常产品"; from5.Value = kSCustomer.ProductIdNames + ""; formComponentValues.Add(from5); var from6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from6.Name = "异常数量"; from6.Value = kSCustomer.Number + ""; formComponentValues.Add(from6); var from7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from7.Name = "异常归类"; from7.Value = Abnormal + ""; formComponentValues.Add(from7); var from8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from8.Name = "到货日期"; from8.Value = kSCustomer.DeliveryDate + ""; formComponentValues.Add(from8); var from9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from9.Name = "生产批次"; from9.Value = kSCustomer.ProductionBatch + ""; formComponentValues.Add(from9); var from10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from10.Name = "一言为订订单号"; from10.Value = kSCustomer.OrderNumber + ""; formComponentValues.Add(from10); var from11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from11.Name = "一芳督导"; from11.Value = PersonSupervision?.Name + ""; formComponentValues.Add(from11); var from12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from12.Name = "客诉门店"; from12.Value = Person?.Id + ""; formComponentValues.Add(from12); var from13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from13.Name = "门店联系人"; from13.Value = kSCustomer.StoreContact + ""; formComponentValues.Add(from13); var from14 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from14.Name = "详情"; from14.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(from14); var from15 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); from15.Name = "所属大区"; from15.Value = RegionName; formComponentValues.Add(from15); #endregion break; case 2: #region 创建客诉类型为设备报修的审批 var Repair1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair1.Name = "客诉类型"; Repair1.Value = customername; formComponentValues.Add(Repair1); var Repair2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair2.Name = "客诉内容"; Repair2.Value = kSCustomer.Remark + ""; formComponentValues.Add(Repair2); var Repair3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair3.Name = "客诉单号"; Repair3.Value = kSCustomer.Id + ""; formComponentValues.Add(Repair3); var Repair4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair4.Name = "提交时间"; Repair4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Repair4); var Repair5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair5.Name = "异常产品"; Repair5.Value = "" + kSCustomer.ProductIdNames; formComponentValues.Add(Repair5); var Repair6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair6.Name = "门店联系人"; Repair6.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Repair6); var Repair7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair7.Name = "门店联系人电话"; Repair7.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Repair7); var Repair8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair8.Name = "门店地址"; Repair8.Value = "" + kSCustomer.StoreAddress; formComponentValues.Add(Repair8); var Repair9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair9.Name = "一芳督导"; Repair9.Value = "" + PersonSupervision?.Name; formComponentValues.Add(Repair9); var Repair10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair10.Name = "详情"; Repair10.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Repair10); var Repair11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Repair11.Name = "所属大区"; Repair11.Value = RegionName; formComponentValues.Add(Repair11); #endregion break; case 3: #region 创建客诉类型为运营反馈的审批 var Operate1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate1.Name = "客诉类型"; Operate1.Value = customername; formComponentValues.Add(Operate1); var Operate2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate2.Name = "客诉内容"; Operate2.Value = "" + kSCustomer.Remark; formComponentValues.Add(Operate2); var Operate3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate3.Name = "客诉单号"; Operate3.Value = "" + kSCustomer.Id; formComponentValues.Add(Operate3); var Operate4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate4.Name = "提交时间"; Operate4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Operate4); var Operate5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate5.Name = "异常产品"; Operate5.Value = "" + kSCustomer.ProductIdNames; formComponentValues.Add(Operate5); var Operate6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate6.Name = "联系人"; Operate6.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Operate6); var Operate7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate7.Name = "联系电话"; Operate7.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Operate7); var Operate8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate8.Name = "邮箱"; Operate8.Value = "" + kSCustomer.StoreEmail; formComponentValues.Add(Operate8); var Operate9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate9.Name = "客诉门店"; Operate9.Value = "" + kSCustomer.Id; formComponentValues.Add(Operate9); var Operate10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate10.Name = "门店联系人"; Operate10.Value = "" + Person?.Name; formComponentValues.Add(Operate10); var Operate11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate11.Name = "门店联系人电话"; Operate11.Value = "" + Person?.PsnMobilePhone; formComponentValues.Add(Operate11); var Operate12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate12.Name = "详情"; Operate12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Operate12); var Operate13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Operate13.Name = "所属大区"; Operate13.Value = RegionName; formComponentValues.Add(Operate13); #endregion break; case 4: #region 创建客诉类型为其他反馈的审批 var Other1 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other1.Name = "客诉类型"; Other1.Value = customername; formComponentValues.Add(Other1); var Other2 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other2.Name = "客诉内容"; Other2.Value = "" + kSCustomer.Remark; formComponentValues.Add(Other2); var Other3 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other3.Name = "客诉单号"; Other3.Value = "" + kSCustomer.Id; formComponentValues.Add(Other3); var Other4 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other4.Name = "提交时间"; Other4.Value = "" + kSCustomer.CreateTime; formComponentValues.Add(Other4); var Other5 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other5.Name = "联系人"; Other5.Value = "" + kSCustomer.StoreContact; formComponentValues.Add(Other5); var Other6 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other6.Name = "联系电话"; Other6.Value = "" + kSCustomer.StoreTel; formComponentValues.Add(Other6); var Other7 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other7.Name = "邮箱"; Other7.Value = "" + kSCustomer.StoreEmail; formComponentValues.Add(Other7); var Other8 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other8.Name = "一芳督导"; Other8.Value = "" + PersonSupervision?.Name; formComponentValues.Add(Other8); var Other9 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other9.Name = "客诉门店"; Other9.Value = "" + Person?.Id; formComponentValues.Add(Other9); var Other10 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other10.Name = "门店联系电话"; Other10.Value = "" + Person?.PsnMobilePhone; formComponentValues.Add(Other10); var Other11 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other11.Name = "门店联系人"; Other11.Value = "" + Person?.Name; formComponentValues.Add(Other11); var Other12 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other12.Name = "详情"; Other12.Value = "http://47.103.125.208:6071/#/detail?id=" + kSCustomer.Id + "&type=" + kSCustomer.StateId + "&state=" + kSCustomer.State + ""; formComponentValues.Add(Other12); var Other13 = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); Other13.Name = "所属大区"; Other13.Value = RegionName; formComponentValues.Add(Other13); #endregion break; } //生成图片至钉钉 //获取当前访问ip信息 string url = HttpContext.Current.Request.Url.ToString().Replace(HttpContext.Current.Request.Url.PathAndQuery, ""); //服务器协议+域名+端口 var attachments = DbContext.BA_Attachment.Where(k => k.SourceId == kSCustomer.Id && k.CodeBusinessType == "KS01").Select(k => "\"" + url + k.FileAccess + "\"").ToList(); if (attachments.Count() > 0) { formComponentValues.Add(new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain() { Name = "图片", Value = $"[{string.Join(",", attachments)}]" }); } request.FormComponentValues_ = formComponentValues; OapiProcessinstanceCreateResponse response = client.Execute(request, Token); return(response); }
/// <summary> /// 发起审批实例 /// </summary> /// <param name="accessToken"></param> /// <param name="processinstance">审批示例表单</param> /// <param name="form"></param> /// <returns></returns> public static string Create(string accessToken, Processinstance processinstance) { try { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/create"); OapiProcessinstanceCreateRequest request = new OapiProcessinstanceCreateRequest(); //request.AgentId = 41605932L; //企业应用标识(ISV调用必须设置) request.ProcessCode = processinstance.ProcessCode; //审批流的唯一码,process_code就在审批流编辑的页面URL中:"PROC-BY6LI83V-4R8T1CHNUX58O0Z6C55M3-DTQJJGEJ-1" List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain> formComponentValues = new List <OapiProcessinstanceCreateRequest.FormComponentValueVoDomain>(); OapiProcessinstanceCreateRequest.FormComponentValueVoDomain vo = new OapiProcessinstanceCreateRequest.FormComponentValueVoDomain(); foreach (FormComponentValue item in processinstance.FormComponentValues) { switch (item.FieldType) { case FormField.singletext: case FormField.multipletext: vo.Name = item.Name; vo.Value = item.Value.ToString(); formComponentValues.Add(vo); break; case FormField.image: vo.Name = item.Name; vo.Value = item.Value.ToString(); formComponentValues.Add(vo); break; case FormField.attach: vo.Name = item.Name; vo.Value = item.Value.ToString(); formComponentValues.Add(vo); break; case FormField.detail: vo.Name = item.Name; var data = item.Value.ToString(); formComponentValues.Add(vo); break; } } request.FormComponentValues_ = formComponentValues; request.Approvers = processinstance.Approvers; //审批人userid列表,最大列表长度:20。多个审批人用逗号分隔,按传入的顺序依次审批 request.OriginatorUserId = processinstance.OriginatorUserId; //审批实例发起人的userid request.DeptId = processinstance.OriginatorDeptId; //发起人所在的部门,如果发起人属于根部门,传-1 request.CcList = Utils.List2String(processinstance.CcUserids); //(可选)抄送人userid列表,最大列表长度:20。多个抄送人用逗号分隔 request.CcPosition = processinstance.CcPosition; //(可选)抄送时间,分为(START, FINISH, START_FINISH) OapiProcessinstanceCreateResponse response = client.Execute(request, accessToken); if (response.Errcode == 0) { return(response.ProcessInstanceId); } else { throw new Exception(response.Errcode.ToString()); } } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 发起审批 /// </summary> /// <returns></returns> public static Result AddApproval() { Result result = new Result() { Code = 1 }; string accessToken = GetDingToken(); var resultUserId = GetDingUserIDByMobile("13968414187"); if (resultUserId.Code == 0) { return(resultUserId); } string curUser = resultUserId.StrOjb; IDingTalkClient client = new DefaultDingTalkClient(dingUrl + "/topapi/processinstance/create"); // 用于整个表单组件的 List <FormComponentValueVoDomain> formComponentValues = new List <FormComponentValueVoDomain>() { new FormComponentValueVoDomain { Name = "客户", Value = "张三" }, new FormComponentValueVoDomain { Name = "结果", Value = "同意" }, new FormComponentValueVoDomain { Name = "原因", Value = "可以" } , new FormComponentValueVoDomain { Name = "日期", Value = "2021-03-06" }, new FormComponentValueVoDomain { Name = "附件", Value = "[\"https://a.vpimg3.com/upload/merchandise/pdcvis/2021/01/20/162/c6180b6a-a849-4d44-88d5-bd1aca3958e8.jpg\"]" } }; OapiProcessinstanceCreateRequest req = new OapiProcessinstanceCreateRequest { //AgentId = 1123887388, ProcessCode = "PROC-CAF86280-39FE-4FC1-8177-588D2B01D8A2", // 自定义审批单,编辑那个审批单的时候在Url找! OriginatorUserId = curUser, DeptId = -1, Approvers = "",//审批人列表 //CcList = curUser, //抄送人 //CcPosition = "START",//抄送时间 FormComponentValues_ = formComponentValues }; req.SetHttpMethod("Post"); OapiProcessinstanceCreateResponse rsp = client.Execute(req, accessToken); result.Obj = rsp; return(result); }