using JwKdsV.Core.Utils; using JwKdsV.Entity.OrderPackage; using NLog; using POSV.Common; using POSV.Common.JsonObject; using POSV.Service; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace JwKdsV.Core.SocketMessage { public class ChupinNotify { private static ILogger logger = NLog.LogManager.GetCurrentClassLogger(); public static void SendOrderChupinNotify(string serviceId) { //整单划菜,通知 List itemList = null; using (var db = Global.Instance.OpenDataBase) { itemList = db.Fetch("where serviceId = @0 and huacaiTime is not null", serviceId); } if (itemList != null && itemList.Count > 0) { logger.Info("向服务中心发送整单出品通知<{0}>" + serviceId); KdsHuacai huacai = new KdsHuacai(); List data = new List(); huacai.Data = data; foreach (var item in itemList) { KdsHuacaiItem hua = new KdsHuacaiItem(); hua.ServiceId = item.ServiceId; hua.ItemId = item.Id; hua.HuacaiTime = item.HuacaiTime; data.Add(hua); } WebSocketEnter.Instance.Query>(CommandName.KDSHUACAI, huacai, SendNewOrderResult); } } /// /// 出品通知服务中心 /// /// public static void SendChupinNotify(string itemId) { ServiceOrderItem item = null; using (var db = Global.Instance.OpenDataBase) { item = db.FirstOrDefault("where id = @0", itemId); } if(item != null) { logger.Info("向服务中心发送出品通知<{0}>" + item.Id); KdsHuacai hua = new KdsHuacai(); //hua.ItemId = item.Id; //hua.HuacaiTime = item.HuacaiTime; WebSocketEnter.Instance.Query>(CommandName.KDSHUACAI, hua, SendNewOrderResult); } } private static void SendNewOrderResult(POSV.Common.JsonObject.BaseDataResponse result) { if(result != null && result.Status == 1) { //处理成功,更新同步状态 var hua = JsonUtils.Deserialize(result.Data.RequestObj.ToString()); lock (Global.Instance.SyncLock) { using(var db = Global.Instance.OpenDataBase) { using(var transaction = db.GetTransaction()) { logger.Info("服务中心收到出品通知后的响应,数量<{0}>", hua.Data.Count); foreach(var temp in hua.Data) { var item = db.FirstOrDefault(@"where id = @0 and huacai2ServiceStatus = 0", temp.ItemId); if(item != null) { item.Huacai2ServiceStatus = 1; item.ModifyDate = DateTime.Now; db.Save(item); } } transaction.Complete(); } } } } } } }