コード例 #1
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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
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
         });
     }
 }