public static void f() { string s = "N"; bool pushed = false; while (true) { if (s.ToUpper() == "Y" || (DateTime.Now.Hour == int.Parse(ConfigurationManager.AppSettings["Task1_push_time"]) && !pushed)) { //Console.WriteLine(DateTime.Now + " pushing..."); string sql = @"select Asset.Status, Asset.AssetID, Asset.AssetName, Asset.remark, g.NextAdjustDate, a.ApplicantID, a.ApplicantName,g.AdjustNoticeDays from Gage g left join Asset on g.FK_AssetID = Asset.AssetID left join (select * from LendSlip where ReturnDate is null) a on g.FK_AssetID = a.AssetID where StandardAdjustType != '免校' and CHARINDEX('在校', Status) = 0 and Status != '报废' and DATEADD(day, AdjustNoticeDays, CONVERT(varchar(100), GETDATE(), 23)) >= CONVERT(varchar(100), NextAdjustDate, 23)"; DataTable dt = Common.SQLHelper.ExecuteQueryToDataTable(Common.SQLHelper.Asset_strConn, sql); //获取满足提前通知天数的待校量具 if (dt != null) { Dictionary <int, string> requests = new Dictionary <int, string>(); for (int i = 0; i < dt.Rows.Count; i++) { if (IsNeedPush(dt.Rows[i]))//判断是否需要推送 { if ((string)dt.Rows[i]["Status"] == "在库") { string[] AdminId = ConfigurationManager.AppSettings["Task1_Admin"].ToString().Split(','); for (int k = 0; k < AdminId.Length; k++) { int id = int.Parse(AdminId[k].Trim()); if (requests.ContainsKey(id)) { requests[id] += AppendRequestXml(dt.Rows[i]); } else { requests.Add(id, CreateRequestFor(id) + AppendRequestXml(dt.Rows[i])); } } } else//不在库 { sql = @"select id from HrmResource where loginid = '" + (string)dt.Rows[i]["ApplicantID"] + "'"; int id = (int)Common.SQLHelper.ExecuteScalarToObject(Common.SQLHelper.OA_strConn, CommandType.Text, sql, null); //获取满足提前通知天数的待校量具 if (requests.ContainsKey(id)) { requests[id] += AppendRequestXml(dt.Rows[i]); } else { requests.Add(id, CreateRequestFor(id) + AppendRequestXml(dt.Rows[i])); } } } } List <int> ids = new List <int>(); foreach (var v in requests.Keys) { ids.Add(v); } foreach (var v in ids) { string end = @"</workflowRequestTableRecords> </weaver.workflow.webservices.WorkflowDetailTableInfo> </workflowDetailTableInfos> </WorkflowRequestInfo>"; requests[v] += end; OAServiceReference.WorkflowServiceXmlPortTypeClient client = new OAServiceReference.WorkflowServiceXmlPortTypeClient(); string io = client.doCreateWorkflowRequest(requests[v], 1012); //Console.Write(v + "(" + io + "),"); } //Console.WriteLine("\n" + DateTime.Now + " completed\n"); } s = "N"; pushed = true; } if (DateTime.Now.Hour < int.Parse(ConfigurationManager.AppSettings["Task1_push_time"])) //新的一天重置pushed为未推送 { pushed = false; } } }
public static void f() { while (true) { DateTime dateTime = DateTime.Now; if (dateTime.Minute % int.Parse(ConfigurationManager.AppSettings["Task2_Interval_time"]) == 0) { string sql = @"select AA.AssetID, BB.AssetName,BB.ApplicantID,bb.ApplicantName from (select ranked.AssetID,ranked.SysArchiveTime,ranked.rowNum,ranked.AdjustDate from Gage g left join (select *, ROW_NUMBER() over(partition by AssetID order by SysArchiveTime desc) as rowNum from GageAdjustSlip a where a.SysArchiveTime is not null and a.SysArchiveTime >= '{0}' and a.SysArchiveTime < '{1}' ) as ranked on g.FK_AssetID = ranked.AssetID where ranked.rowNum = 1 ) as AA left join (select *, ROW_NUMBER() over(partition by AssetID order by LendDate desc) as rowNum from LendSlip ld) as BB on AA.rowNum = bb.rowNum and aa.AssetID = bb.AssetID where AA.rowNum = 1 and bb.ReturnDate is null and BB.LendDate < aa.AdjustDate"; sql = string.Format(sql, dateTime.AddMinutes(-10).ToString("yyyy-MM-dd HH:mm"), dateTime.ToString("yyyy-MM-dd HH:mm")); DataTable dt = Common.SQLHelper.ExecuteQueryToDataTable(Common.SQLHelper.Asset_strConn, sql); if (dt != null) { Dictionary <int, string> requests = new Dictionary <int, string>(); for (int i = 0; i < dt.Rows.Count; i++) { sql = @"select id from HrmResource where loginid = '" + (string)dt.Rows[i]["ApplicantID"] + "'"; int id = (int)Common.SQLHelper.ExecuteScalarToObject(Common.SQLHelper.OA_strConn, CommandType.Text, sql, null); //获取满足提前通知天数的待校量具 if (requests.ContainsKey(id)) { requests[id] += AppendRequest(dt.Rows[i]); } else { requests.Add(id, CreateRequestFor(id) + AppendRequest(dt.Rows[i])); } } List <int> ids = new List <int>(); foreach (var v in requests.Keys) { ids.Add(v); } foreach (var v in ids) { string end = @"</workflowRequestTableRecords> </weaver.workflow.webservices.WorkflowDetailTableInfo> </workflowDetailTableInfos> </WorkflowRequestInfo>"; requests[v] += end; OAServiceReference.WorkflowServiceXmlPortTypeClient client = new OAServiceReference.WorkflowServiceXmlPortTypeClient(); string io = client.doCreateWorkflowRequest(requests[v], 1012); } } } Thread.Sleep(60000); } }