Exemplo n.º 1
0
 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
         });
     }
 }
Exemplo n.º 2
0
        /// <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);
        }