using Rhea.Common; using Sundial; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Tiger.IBusiness; using Tiger.Model; using Tiger.Model.Minsun; namespace Tiger.Business.WMS { /// /// 企企通SRM作业 /// public class QqtSrmJob : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "QqtSRM Interface Job"; public string Name { get; set; } = "QqtSRM Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { var _lastRunTime = Cache.SysParam["LastRun"].PARAM_VALUE; var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-30) : Convert.ToDateTime(_lastRunTime); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { iSrmParams iSrmParams = new iSrmParams { company = "XCSJ", serverId = "55", startDate = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endDate = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") }; var result = iSRM.GetSuppDlvy(iSrmParams); if (!result.IsSuccessed) { Logger.Scheduler.Error($"获取送货单异常:{result.Message}"); } } SaveLog(context, "企企通SRM作业XCSJ"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取送货单异常"); } await Task.CompletedTask; } } public class QqtSrmToXCSJJob : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "QqtSRM Interface Job"; public string Name { get; set; } = "QqtSRM Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { DbClient db = ApiConfig.IsTestServer ? Biz.DataSource["Test"].Client : Biz.DataSource["Main"].Client; var LastRun = db.Queryable().Where(q => q.CodeType == "SRM_Interface" && q.Value == "QqtLastRun").Single(); var LastRunTime = LastRun.IsNullOrEmpty() ? DateTime.Now.AddMinutes(-30) : LastRun.Text.ToDateTime(); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { iSrmParams iSrmParams = new iSrmParams { company = "XCSJ", serverId = ApiConfig.IsTestServer ? "55" : "XCSJ", startDate = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endDate = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") }; DI.Resolve().GetSRMList(iSrmParams); } //SaveLog(context, "企企通SRM作业XCSJ"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取企企业通送货单异常"); } await Task.CompletedTask; } } public class QqtSrmToDGXCJob : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "QqtSRM Interface Job"; public string Name { get; set; } = "QqtSRM Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { DbClient db = ApiConfig.IsTestServer ? Biz.DataSource["WMS57"].Client : Biz.DataSource["DGXC"].Client; var LastRun = db.Queryable().Where(q => q.CodeType == "SRM_Interface" && q.Value == "QqtLastRun_dgxc").Single(); var LastRunTime = LastRun.IsNullOrEmpty() ? DateTime.Now.AddMinutes(-30) : LastRun.Text.ToDateTime(); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { iSrmParams iSrmParams = new iSrmParams { company = "DGXC", serverId = ApiConfig.IsTestServer ? "55" : "DGXC", startDate = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endDate = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") }; DI.Resolve().GetSRMList(iSrmParams); } //SaveLog(context, "企企通SRM作业DGXC"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取企企业通送货单异常"); } await Task.CompletedTask; } } public class QqtSrmToAHXCJob : TigerJobBase, ITigerJob { public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "QqtSRM Interface Job"; public string Name { get; set; } = "QqtSRM Interface Job"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { DbClient db = ApiConfig.IsTestServer ? Biz.DataSource["WMS57"].Client : Biz.DataSource["AHXC"].Client; var LastRun = db.Queryable().Where(q => q.CodeType == "SRM_Interface" && q.Value == "QqtLastRun_ahxc").Single(); var LastRunTime = LastRun.IsNullOrEmpty() ? DateTime.Now.AddMinutes(-30) : LastRun.Text.ToDateTime(); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { iSrmParams iSrmParams = new iSrmParams { company = "AHXC", serverId = ApiConfig.IsTestServer ? "55" : "AHXC", startDate = LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"), endDate = LastRunTime.AddMinutes(30).ToString("yyyy-MM-dd HH:mm:ss") }; DI.Resolve().GetSRMList(iSrmParams); } //SaveLog(context, "企企通SRM作业AHXC"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取企企业通送货单异常"); } await Task.CompletedTask; } } /// /// SRM接口任务 /// public class SrmJob : TigerJobBase, ITigerJob { public SrmJob() { } public string Id { get; set; } = Guid.NewGuid().ToString("N"); public string Tag { get; set; } = "SRM Interface Service"; public string Name { get; set; } = "SRM Interface Service"; public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { //Logger.Scheduler.Info(context.JobDetail.ConvertToMonitor()); Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); try { var LastRun = Biz.Db.Queryable().Where(q => q.CodeType == "SRM_Interface" && q.Value == "LastRun").Single(); var LastRunTime = LastRun.IsNullOrEmpty() ? DateTime.Now.AddMinutes(-30) : LastRun.Text.ToDateTime(); if ((DateTime.Now - LastRunTime).TotalMinutes > 30) { iSRM.GetNoList(LastRunTime, LastRunTime.AddMinutes(30)); } //SaveLog(context, "SRM接口任务"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取送货单异常"); } finally { try { var dlvyList = Biz.Db.Queryable().Where(q => q.FLAW == "N").ToList(); foreach (var dlvy in dlvyList) { iSRM.GetDetail(dlvy); } Logger.Scheduler.Info($"SRM Get Delivery List[{dlvyList.Count}] done"); } catch (System.Exception ex) { Logger.Scheduler.Fatal(ex, "获取送货单明细异常"); } } await Task.CompletedTask; } } }