You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.0 KiB
C#

using FluentScheduler;
using log4net;
using POSV.WindowsService.Core.OrderPackage;
using POSV.WindowsService.Core.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using POSV.Service;
using POSV.Common;
using POSV.Service.Entity;
using POSV.Service.Utils;
namespace POSV.WindowsService.Core.Job
{
/// <summary>
/// 上传订单至目标节点
/// </summary>
public class UploadOrderJob : IJob
{
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
private bool isRunning = false;
public void Execute()
{
try
{
if (isRunning)
{
logger.Debug("执行中,请稍候...");
return;
}
logger.Debug("执行历史数据分发kds");
isRunning = true;
ServiceOrder order = null;
using (var db = Global.Instance.OpenDataBase)
{
var sql = @"select distinct p.* from pos_order p
inner join pos_order_item i on p.id = i.serviceId
where i.syncHuacaiStatus = 0 and i.syncHuacaiNum < 10
order by p.saleDate limit 1;";
order = db.FirstOrDefault<ServiceOrder>(string.Format(sql));
}
if (order != null)
{
//更新发送次数
lock (Global.Instance.SyncLock)
{
SQLiteUtils.Execute("update pos_order_item set syncHuacaiNum = syncHuacaiNum + 1 where serviceId = '" + order.Id + "'");
}
OrderPackage.OrderUtils.DistributeOrder2KDS(order.Id, KDSCategory.);
}
using(var db = Global.Instance.OpenDataBase)
{
var sql = @"select distinct p.* from pos_order p
inner join pos_order_item i on p.id = i.serviceId
where i.syncChupinStatus = 0 and i.syncChupinNum < 10
order by p.saleDate limit 1;";
order = db.FirstOrDefault<ServiceOrder>(string.Format(sql));
}
if (order != null)
{
//更新发送次数
lock (Global.Instance.SyncLock)
{
SQLiteUtils.Execute("update pos_order_item set syncChupinNum = syncChupinNum + 1 where serviceId = '" + order.Id + "'");
}
OrderPackage.OrderUtils.DistributeOrder2KDS(order.Id, KDSCategory.);
}
}
catch(Exception ex)
{
logger.Error( ex, "分发订单异常");
}
finally
{
isRunning = false;
}
}
}
}