/// <summary> /// 获取审批痕迹 /// </summary> /// <param name="accessToken"></param> /// <param name="formInstId"></param> /// <param name="formCodeId"></param> /// <returns></returns> private string GetFlowRecord(string formInstId, string formCodeId) { string url = "https://yunzhijia.com/gateway/workflow/form/thirdpart/getFlowRecord?accessToken=" + CallExternal.GetAccessToken(); JObject param = new JObject(); param.Add("formInstId", formInstId); param.Add("formCodeId", formCodeId); string response = CallExternal.PostUrl(url, param.ToString(), "application/json"); return(response); }
/// <summary> /// 获取外部日志 /// </summary> /// <param name="accessToken"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="pageId"></param> /// <param name="pageType"></param> /// <returns></returns> private List <PushLogs> GetExternalLog( string accessToken, long startTime, long endTime, string pageId, string pageType) { string url = "https://yunzhijia.com/gateway/workflow/form/thirdpart/getPushLog?accessToken=" + accessToken; //页码信息 JObject pageable = new JObject(); pageable.Add("id", pageId); pageable.Add("pageSize", 100); pageable.Add("type", pageType); //请求参数 JObject postParam = new JObject(); postParam.Add("pageable", pageable); postParam.Add("devType", "user"); postParam.Add("startTime", startTime); postParam.Add("endTime", endTime); postParam.Add("pushType", "all"); string jsonRequest = CallExternal.PostUrl(url, postParam.ToString(), "application/json"); JObject json = JObject.Parse(jsonRequest.ToString()); List <PushLogs> pushlogs = GetPushLogs(json["data"]["pushLogs"].ToString()); if (pushlogs.Count() == 100) { pageId = pushlogs.Last().Id; pageType = "next"; var logs = GetExternalLog(accessToken, startTime, endTime, pageId, pageType); pushlogs.AddRange(logs); } return(pushlogs); }
public async Task <object> TakeMissingLog([FromBody] ParamInput input) { try { using (var db = new TestContext()) { //获取AccessToken string accessToken = CallExternal.GetAccessToken(); //获取外部接口日志 long startTime = input.StartTime; //开始时间 long endTime = input.EndTime; //结束时间 string pageId = null; //页码Id 上一页则传当前最小记录id,下一页则传当前最大id,首页或者最后页传null string pageType = "first"; //页码类型 prev=上一页,next=下一页,first=第一页,last=最后一页 var pushLogs = GetExternalLog(accessToken, startTime, endTime, pageId, pageType); List <string> insList = new List <string>(); pushLogs.ForEach(p => { string ins = GetInstance(p.FormInstId, p.FormCodeId, accessToken); insList.Add(ins); }); insList = insList.Where(i => i.Contains("true")).ToList(); int totalCount = insList.Count(); //获取实例 pushLogs.ForEach(p => { string ins = GetInstance(p.FormInstId, p.FormCodeId, accessToken); JObject jObject = JObject.Parse(ins); if (jObject["success"].ToString() == "True") { //解析数据存入数据库 //获取CGSqlist ParseEntity PE = new ParseEntity(); CGSqlist cg = PE.GetCGSQlist(jObject); cg.FirstInput = false; //审批流 List <Reqlist> rlList = PE.GetReqlist(JObject.Parse(GetFlowRecord(cg.FormInstId, cg.FormCodeId)), cg.Fbillid); rlList.ForEach(r => { var list = db.Reqlist.AsNoTracking().Where(c => c.CreateTime == r.CreateTime) .Where(c => c.Fbillno == r.Fbillno).ToList(); if (list.Count() == 0) { db.Reqlist.Add(r); } }); var query = db.CGSqlist.AsNoTracking() .Where(c => c.SerialNumber.Equals(cg.SerialNumber)) .ToList(); if (query.Count == 0) { //获取CgsqListentry List <CgsqListentry> cleList = PE.GetCgsqListentry(jObject, cg.Fbillid); db.CGSqlist.Add(cg); db.CgsqListentry.AddRange(cleList); } db.SaveChanges(); } }); } return(new ReturnMessage { Success = true, Data = "ok" }); } catch (Exception e) { return(new ReturnMessage { Success = false, Data = e.Message }); } }