You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.8 KiB
C#

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<ServiceOrderItem> itemList = null;
using (var db = Global.Instance.OpenDataBase)
{
itemList = db.Fetch<ServiceOrderItem>("where serviceId = @0 and huacaiTime is not null", serviceId);
}
if (itemList != null && itemList.Count > 0)
{
logger.Info("向服务中心发送整单出品通知<{0}>" + serviceId);
KdsHuacai huacai = new KdsHuacai();
List<KdsHuacaiItem> data = new List<KdsHuacaiItem>();
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<POSV.Common.JsonObject.BaseDataResponse<POSV.Common.JsonObject.KdsHuacaiResponse>>(CommandName.KDSHUACAI, huacai, SendNewOrderResult);
}
}
/// <summary>
/// 出品通知服务中心
/// </summary>
/// <param name="itemId"></param>
public static void SendChupinNotify(string itemId)
{
ServiceOrderItem item = null;
using (var db = Global.Instance.OpenDataBase)
{
item = db.FirstOrDefault<ServiceOrderItem>("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<POSV.Common.JsonObject.BaseDataResponse<POSV.Common.JsonObject.KdsHuacaiResponse>>(CommandName.KDSHUACAI, hua, SendNewOrderResult);
}
}
private static void SendNewOrderResult(POSV.Common.JsonObject.BaseDataResponse<POSV.Common.JsonObject.KdsHuacaiResponse> result)
{
if(result != null && result.Status == 1)
{
//处理成功,更新同步状态
var hua = JsonUtils.Deserialize<KdsHuacai>(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<ServiceOrderItem>(@"where id = @0 and huacai2ServiceStatus = 0", temp.ItemId);
if(item != null)
{
item.Huacai2ServiceStatus = 1;
item.ModifyDate = DateTime.Now;
db.Save(item);
}
}
transaction.Complete();
}
}
}
}
}
}
}