using Autofac;
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.Entitys.WMS.DTOS;
using Tiger.Model.Minsun;
namespace Tiger.Business.WMS
{
///
/// XCXJ据点到货单推T100
///
public class ReceiptHToErpXCSJJob : TigerJobBase, ITigerJob
{
public string Id { get; set; } = Guid.NewGuid().ToString("N");
public string Tag { get; set; } = "Receipt Header To Erp Interface Job";
public string Name { get; set; } = "Receipt Header To Erp Interface Job";
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
try
{
var result = iWMS.ReceiptHToErp("XCSJ", context.Trigger.ConvertToMonitor());
if (!result.IsSuccessed)
{
Logger.Scheduler.Error($"生成到货异常:{result.Message}");
}
//SaveLog(context, "XCXJ据点到货单推T100");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "生成到货单异常");
}
await Task.CompletedTask;
}
}
///
/// DGXC据点到货单推T100
///
public class ReceiptHToErpDGXCJob : TigerJobBase, ITigerJob
{
public string Id { get; set; } = Guid.NewGuid().ToString("N");
public string Tag { get; set; } = "Receipt Header To Erp Interface Job";
public string Name { get; set; } = "Receipt Header To Erp Interface Job";
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
try
{
var result = iWMS.ReceiptHToErp("DGXC", context.Trigger.ConvertToMonitor());
//Thread.Sleep(10*60*1000);
if (!result.IsSuccessed)
{
Logger.Scheduler.Error($"生成到货异常:{result.Message}");
}
//SaveLog(context, "DGXC据点到货单推T100");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "生成到货单异常");
}
await Task.CompletedTask;
}
}
///
/// AHXC据点到货单推T100
///
public class ReceiptHToErpAHXCJob : TigerJobBase, ITigerJob
{
public string Id { get; set; } = Guid.NewGuid().ToString("N");
public string Tag { get; set; } = "Receipt Header To Erp Interface Job";
public string Name { get; set; } = "Receipt Header To Erp Interface Job";
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
try
{
var result = iWMS.ReceiptHToErp("AHXC", context.Trigger.ConvertToMonitor());
if (!result.IsSuccessed)
{
Logger.Scheduler.Error($"生成到货异常:{result.Message}");
}
//SaveLog(context, "AHXC据点到货单推T100");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "生成到货单异常");
}
await Task.CompletedTask;
}
}
///
/// 从T100获取物料信息
///
public class MaterialInfoToT100Job : TigerJobBase, ITigerJob
{
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
///
/// 构造函数
///
///
//public MaterialInfoToT100Job(IMaterialInfoBusiness materialInfoBusiness)
//{
// _materialInfoBusiness = materialInfoBusiness;
//}
///
/// 同步物料信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
Logger.Scheduler.Info(context.Trigger.ConvertToMonitor()); //计划任务开始日志
foreach (var item in BIZ_WMS_TRANSFER.strongHoldList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetMaterialFromT100(model);
}
SaveLog(context, "同步T100物料信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100物料信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 从T100获取物料信息
///
public class PurchaseInfoFromT100Job : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
/////
///// 构造函数
/////
/////
//public PurchaseInfoFromT100Job(IMaterialInfoBusiness materialInfoBusiness)
//{
// _materialInfoBusiness = materialInfoBusiness;
//}
#endregion DI
///
/// 同步物料信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetPurchaseInfoFromT100(model);
}
SaveLog(context, "同步T100采购单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100采购单信息数据异常");
}
await Task.CompletedTask;
}
}
///
///
///
public class CustomerInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
/////
///// 构造函数
/////
/////
//public CustomerInfoFromT100(IMaterialInfoBusiness materialInfoBusiness)
//{
// _materialInfoBusiness = materialInfoBusiness;
//}
#endregion DI
///
/// 同步采购单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetCustomerInfoFromT100(model);
}
SaveLog(context, "同步T10采购单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100采购单信息数据异常");
}
await Task.CompletedTask;
}
}
///
///
///
public class InspectionNoInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步送检单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var result = _materialInfoBusiness.GetInspectionNoFromT100();
SaveLog(context, "同步T100送检单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100采购单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 其他出库单定时推送给T100——过账
///
public class OtherOutInfoToT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步其他出库单单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item
};
var result = _materialInfoBusiness.GetOtherOutInfoToT100(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 其他出库单定时推送给T100——过账
///
public class SaaleOutInfoToT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步送检单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item
};
var result = _materialInfoBusiness.PutSaleOutInfoToT100(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 过账调拨单定时推送给T100——创单并过账
///
public class TrasferInfoToT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 过账调拨单定时推送给T100——创单并过账
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
var DB = Biz.Db;
var jobData = DB.Queryable().Where(i => i.JobName == "TrasferInfoToT100").First();// 获取定时任务内容
if (!jobData.IsNullOrEmpty() && jobData.ISRUNNING == 1)
{
Logger.Scheduler.Info("调拨定时任务正在执行中,本次任务已主动终止!");
//throw new Exception("调拨定时任务正在执行中,本次任务已主动终止!");
}
else
{
jobData.ISRUNNING = 1;
DB.Updateable(jobData).ExecuteCommand();// 如果当前定时任务不在执行中的状态,则在开始执行前,设定为执行中
}
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item
};
var result = _materialInfoBusiness.GetTrasferInfoToT100(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 过账调拨单定时推送给T100——直接过账
///
public class TrasferInfoToT100Plan2 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 过账调拨单定时推送给T100——直接过账
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item
};
var result = _materialInfoBusiness.GetTrasferInfoToT100Plan2(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 过账调拨单定时推送给T100
///
public class TrasferInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步送检单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetTrasferInfoFromT100(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 过账调拨单定时推送给T100
///
public class OtheroUTInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步送检单信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetOtherOutInfoFromT100(model);
}
SaveLog(context, "同步T100调拨单信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100调拨单信息数据异常");
}
await Task.CompletedTask;
}
}
///
///
///
public class WarehouseCodeInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步仓库信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
var orgList = WMS_ITEMExtension.GetOrgList();
foreach (var item in orgList)
{
var model = new InputDTO()
{
site = item,
startdt = starttime.AddHours(-24),
enddt = starttime
};
var result = _materialInfoBusiness.GetWarehouseCodeInfoFromT100(model);
}
SaveLog(context, "同步T100仓库代码信息数据");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步T100仓库代码信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 从MES获取成品入库信息
///
public class ProductInputInfoFromT100 : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 同步MES成品入库信息定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var DB = Biz.Db;
var jobData = DB.Queryable().Where(i => i.JobName == "ProductInputInfoFromT100").First();// 获取定时任务内容
if (!jobData.IsNullOrEmpty() && jobData.ISRUNNING == 1)
{
Logger.Scheduler.Info("成品入库定时任务正在执行中,本次任务已主动终止!");
return;
//throw new Exception("成品入库定时任务正在执行中,本次任务已主动终止!");
}
else
{
jobData.ISRUNNING = 1;
DB.Updateable(jobData).ExecuteCommand();// 如果当前定时任务不在执行中的状态,则在开始执行前,设定为执行中
}
var result = _materialInfoBusiness.ProductInputInfoFromT100();
SaveLog(context, "同步MES成品入库信息数据成功");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "同步MES成品入库信息数据异常");
}
await Task.CompletedTask;
}
}
///
/// 物料超期预警
///
public class MaterialExtended : TigerJobBase, ITigerJob
{
#region 常量
///
///
///
public new string Id { get; set; } = Guid.NewGuid().ToString("N");
///
///
///
public new string Tag { get; set; } = "Receipt Header To Erp Interface Job";
///
///
///
public new string Name { get; set; } = "Receipt Header To Erp Interface Job";
#endregion 常量
#region DI
///
///
///
private readonly IMaterialInfoBusiness _materialInfoBusiness = BizContext.Container.Resolve();
#endregion DI
///
/// 物料超期预警定时任务
///
///
///
///
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
{
var starttime = DateTime.Now;
try
{
var result = _materialInfoBusiness.MaterialExtended();
SaveLog(context, "物料超期预警定时任务执行成功");
}
catch (System.Exception ex)
{
Logger.Scheduler.Fatal(ex, "物料超期预警定时任务执行成功");
}
await Task.CompletedTask;
}
}
}