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;
}
}
}