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
|
{
|
/// <summary>
|
/// 企企通SRM作业
|
/// </summary>
|
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<Sys_Code>().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<IiSRM>().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<Sys_Code>().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<IiSRM>().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<Sys_Code>().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<IiSRM>().GetSRMList(iSrmParams);
|
}
|
//SaveLog(context, "企企通SRM作业AHXC");
|
}
|
catch (System.Exception ex)
|
{
|
Logger.Scheduler.Fatal(ex, "获取企企业通送货单异常");
|
}
|
await Task.CompletedTask;
|
}
|
}
|
|
/// <summary>
|
/// SRM接口任务
|
/// </summary>
|
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<Sys_Code>().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<WMS_SRMRcece>().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;
|
}
|
}
|
}
|