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 { /// /// 上传订单至目标节点 /// 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(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(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; } } } }