using log4net; using POSV.Service; using POSV.Common.JsonObject; using POSV.WindowsService.Core; using POSV.WindowsService.Core.OrderPackage; using SuperSocket.WebSocket.SubProtocol; using System; using System.Collections.Generic; using System.Linq; using System.Text; using POSV.Common; using POSV.Service.Entity; namespace POSV.WindowsService.Command { public class KDSHUACAI : JsonSubCommand { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); protected override void ExecuteJsonCommand(WebSocketSessionEx session, string commandInfo) { logger.Info("收到["+session.Name+"]划菜通知:" + commandInfo); var response = new BaseDataResponse(); try { var huacai = Json.Deserialize(commandInfo); bool isNew = false; string serviceId = null; lock (Global.Instance.SyncLock) { using(var db = Global.Instance.OpenDataBase) { using(var transaction = db.GetTransaction()) { foreach(var temp in huacai.Data) { var item = db.FirstOrDefault("where id = @0 and huacaiTime is null", temp.ItemId); if(item != null) { isNew = true; serviceId = temp.ServiceId; item.HuacaiTime = temp.HuacaiTime; item.ModifyDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); db.Save(item); } } transaction.Complete(); } } } response.Status = 1; response.Message = "服务中心接收成功"; response.Data = new KdsHuacaiResponse(); response.Data.RequestObj = commandInfo; //服务中心向出品通知划菜 if (isNew && !string.IsNullOrEmpty(serviceId)) { OrderUtils.SendHuacaiOrder2Chupin(serviceId); } } catch(Exception ex) { logger.Error( ex, "kds划菜通知处理异常"); response.Status = 0; response.Message = "服务中心接收异常"; } finally { this.SendJsonMessage(session, Json.Serialize(response)); Console.WriteLine("已发送划菜响应"); } } } /// /// 收到发送至出品kds的划菜订单项 /// public class KDSHUACAIRESPONSE : JsonSubCommand { private static ILog logger = LogManager.GetLogger(typeof(KDSHUACAIRESPONSE)); protected override void ExecuteJsonCommand(WebSocketSessionEx session, string commandInfo) { try { logger.Info("收到发送至出品kds["+ session.Name+ "]的划菜回复:" + commandInfo); var response = Json.Deserialize>(commandInfo); if (response.Status == 1) { //成功 var hua = Json.Deserialize(response.Data.RequestObj.ToString()); lock (Global.Instance.SyncLock) { using (var db = Global.Instance.OpenDataBase) { using (var transaction = db.GetTransaction()) { foreach(var temp in hua.Data) { var item = db.FirstOrDefault("where id = @0 and huacai2chupinStatus = 0", temp.ItemId); if(item != null) { item.Huacai2chupinStatus = 1; item.ModifyDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); db.Save(item); } } transaction.Complete(); } } System.Threading.Thread.Sleep(50); } } else { } } catch (Exception ex) { logger.Error("收到发送至出品kds的划菜订单项接收异常", ex); } } } }