|
|
|
|
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<WebSocketSessionEx, string>
|
|
|
|
|
{
|
|
|
|
|
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<KdsHuacaiResponse>();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var huacai = Json.Deserialize<KdsHuacai>(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<ServiceOrderItem>("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("已发送划菜响应");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 收到发送至出品kds的划菜订单项
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class KDSHUACAIRESPONSE : JsonSubCommand<WebSocketSessionEx, string>
|
|
|
|
|
{
|
|
|
|
|
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<BaseDataResponse<KdsHuacaiResponse>>(commandInfo);
|
|
|
|
|
if (response.Status == 1)
|
|
|
|
|
{
|
|
|
|
|
//成功
|
|
|
|
|
var hua = Json.Deserialize<KdsHuacai>(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<ServiceOrderItem>("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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|