static int ApprovalDetails(string Id) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = Id; string token = AccessToken.GetAccessToken(); OapiProcessinstanceGetResponse response = client.Execute(request, token); if (response.Errcode == 0) { if (response.ProcessInstance.Status == "COMPLETED") { return(1); } else { return(0); } } else { return(2); } }
public static OapiProcessinstanceGetResponse ApprovalDetails(string ProcessId, string Token) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = ProcessId; OapiProcessinstanceGetResponse response = client.Execute(request, Token); return(response); }
/// <summary> /// 获取审批实例详情 根据审批实例id调用此接口获取审批实例详情,包括审批表单信息、操作记录列表、操作人、抄送人、审批任务列表等。 /// </summary> /// <param name="accessToken"></param> /// <param name="processInstanceId">审批实例id</param> /// <returns></returns> public OapiProcessinstanceGetResponse Get(string accessToken, string processInstanceId) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = processInstanceId; OapiProcessinstanceGetResponse response = client.Execute(request, accessToken); return(response); }
public OapiProcessinstanceGetResponse.ProcessInstanceTopVoDomain GetApprove(string processInstanceId) { IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = processInstanceId; OapiProcessinstanceGetResponse response = client.Execute(request, _oper.AccessToken); if (response.Errcode == 0) { return(response.ProcessInstance); } else { return(null); } }
/// <summary> /// 获取单个审批实例 /// </summary> /// <param name="accessToken">accessToken</param> /// <param name="process_instance_id">审批实例id</param> /// <returns></returns> public static Processinstance GetListIds(string accessToken, string process_instance_id) { try { DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = process_instance_id; OapiProcessinstanceGetResponse response = client.Execute(request, accessToken); if (response.Errcode == 0) { Processinstance processinstance = new Processinstance(); processinstance.Title = response.ProcessInstance.Title; processinstance.CreateTime = response.ProcessInstance.CreateTime; processinstance.FinishTime = response.ProcessInstance.FinishTime; processinstance.OriginatorUserId = response.ProcessInstance.OriginatorUserid; processinstance.OriginatorDeptId = Convert.ToInt32(response.ProcessInstance.OriginatorDeptId); processinstance.Status = response.ProcessInstance.Status; processinstance.CcUserids = response.ProcessInstance.CcUserids; processinstance.Result = response.ProcessInstance.Result; processinstance.BizAction = response.ProcessInstance.BizAction; processinstance.BusinessId = response.ProcessInstance.BusinessId; processinstance.OriginatorDeptName = response.ProcessInstance.OriginatorDeptName; processinstance.FormComponentValues = new List <FormComponentValue>(); foreach (OapiProcessinstanceGetResponse.FormComponentValueVoDomain item in response.ProcessInstance.FormComponentValues) { FormComponentValue form = new FormComponentValue(); form.Name = item.Name; form.Value = item.Value; form.ExtValue = item.ExtValue; processinstance.FormComponentValues.Add(form); } foreach (OapiProcessinstanceGetResponse.OperationRecordsVoDomain item in response.ProcessInstance.OperationRecords) { OperationRecord model = new OperationRecord(); model.UserId = item.Userid; model.Date = Convert.ToDateTime(item.Date);; model.OperationType = item.OperationType; model.OperationResult = item.OperationResult; model.Remark = item.Remark; processinstance.OperationRecords.Add(model); } foreach (OapiProcessinstanceGetResponse.TaskTopVoDomain item in response.ProcessInstance.Tasks) { Task model = new Task(); model.UserId = item.Userid; model.TaskStatus = item.TaskStatus; model.TaskResult = item.TaskResult; model.CreateTime = Convert.ToDateTime(item.CreateTime); model.FinishTime = Convert.ToDateTime(item.FinishTime); processinstance.Tasks.Add(model); } return(processinstance); } else { throw new Exception(response.Errcode.ToString()); } } catch (Exception ex) { throw new Exception(ex.Message); } }
static void Main(string[] args) { try { YiFang_CustomerComplaintEntities DbContext = new YiFang_CustomerComplaintEntities(); var list = DbContext.KS_Customer.Where(p => p.DingTalkApproval != null && p.Number == 4).Select(p => new { p.DingTalkApproval, p.Id }).ToList(); //list.ForEach(ks => //{ // var info = DbContext.KS_Customer.FirstOrDefault(p => p.Id == ks.Id); // var number = ApprovalDetails(ks.DingTalkApproval); // info.Number = number; // Console.WriteLine("同步客诉单【" + ks.Id + "】"); //}); var person = DbContext.OR_Person.Where(p => p.LeaveDate == null); var all = DbContext.KS_Customer_Approval.Where(p => p.state > 2); foreach (var ks in list) { Console.WriteLine("同步客诉单【" + ks.Id + "】"); IDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/processinstance/get"); OapiProcessinstanceGetRequest request = new OapiProcessinstanceGetRequest(); request.ProcessInstanceId = ks.DingTalkApproval; string token = AccessToken.GetAccessToken(); OapiProcessinstanceGetResponse response = client.Execute(request, token); Console.WriteLine(response.Errmsg); if (response.Errcode == 0) { if (response.ProcessInstance.Status == "COMPLETED") { Console.WriteLine("审批单结束"); var info = DbContext.KS_Customer.FirstOrDefault(p => p.Id == ks.Id); if (response.ProcessInstance.Result == "agree") { info.Number = 1; info.DeliveryDate = DateTime.Now; info.State = 2; } if (response.ProcessInstance.Result == "refuse") { info.Number = 2; info.DeliveryDate = DateTime.Now; info.State = 2; } DbContext.SaveChanges(); Console.WriteLine("审批完成"); } //新增审批详情 foreach (var u in response.ProcessInstance.Tasks) { if (u.Userid == null) { continue; } Console.WriteLine(u.Userid); var ren = person.FirstOrDefault(p => p.PsnNum == u.Userid); if (ren == null) { continue; } Console.WriteLine(ren.Id.ToString()); if (all.Any(p => p.IdCustomer == ks.Id && p.IdPerson == ren.Id)) { continue; } if (u.TaskResult == "AGREE") { KS_Customer_Approval kS_Customer = new KS_Customer_Approval { FinishTime = DateTime.Now, IdCustomer = ks.Id, IdPerson = ren.Id, Name = ren.Name, state = 3 }; Console.WriteLine("审批同意"); DbContext.KS_Customer_Approval.Add(kS_Customer); } if (u.TaskResult == "REFUSE") { KS_Customer_Approval kS_Customer = new KS_Customer_Approval { FinishTime = DateTime.Now, IdCustomer = ks.Id, IdPerson = ren.Id, Name = ren.Name, state = 4 }; Console.WriteLine("审批拒绝"); DbContext.KS_Customer_Approval.Add(kS_Customer); } } Console.WriteLine("成功"); } } DbContext.SaveChanges(); Console.WriteLine("同步完成"); //Environment.Exit(0); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } System.Environment.Exit(0); }