using HH.WCS.XiaoMi.api;
using HH.WCS.XiaoMi.device;
using HH.WCS.XiaoMi.process;
using HH.WCS.XiaoMi.util;
using HH.WCS.XiaoMi.wms;
using Newtonsoft.Json;
using NLog.Fluent;
using Opc.Ua;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using static HH.WCS.XiaoMi.device.S7Helper;
namespace HH.WCS.XiaoMi.core
{
internal class WMSCore
{
///
/// 遍历定版的发货单,生产分拣单主表和子表(也可以手动调接口触发)
///
internal static void CheckShippingOrder()
{
//1.0、获取已经定版的发货单,生产分拣单子表和主表,设置【发货单】的业务状态 N_B_STATE = 1(待分拣)
//2.0、如果发货单C_AUTO_SORTING=Y,则自动将分拣单状态设置为开始配货
}
///
/// 开始配货创建分拣单明细(改成调接口触发)
///
internal static void CheckSortingOrder()
{
//new SortingOrder().N_B_STATE
//1.0、获取 N_B_STATE = 1 (开始配货)状态的分拣单
//2.0、遍历分拣单子表,创建分拣单明细,更新分拣单子表的明细汇总F_ACC_S_QTY
//3.0、全部分拣单子表的明细创建完毕,子表明细汇总和子表数量一致,更新分拣单状态,N_B_STATE = 2配货完成
//4.0、如果分拣单是自动作业,就直接更新到 N_B_STATE = 3开始作业
//WMSHelper.GetWaitingSortingOrderList();
}
///
/// 遍历分拣单明细创建出库作业
///
internal static void CheckSortingTask()
{
//new SortingOrder().N_B_STATE
//遍历N_B_STATE = 3的分拣单创建作业
//或 遍历分拣单明细创建分拣作业,因为一个分拣单里面的明细都是批量生成的
var list = WMSHelper.GetWaitingSortingOperationList();
if (list.Count > 0)
{
list.ForEach(a =>
{
if (a.Details != null)
{
WMSHelper.CreateSortingOperation(a);
}
});
}
}
////监测摄像头处货位(送检入库区)空满状态 满的就叉到立库
//public static void MonitorFullStatus()
//{
// //bool result = false;
// //找送检入库区满托盘的货位
// var db = new SqlHelper