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