using HH.WCS.JunzhouNongfu.device;
using HH.WCS.Mobox3.YNJT_PT.dispatch;
using HH.WCS.Mobox3.YNJT_PT.models;
using HH.WCS.Mobox3.YNJT_PT.process;
using HH.WCS.Mobox3.YNJT_PT.util;
using HH.WCS.Mobox3.YNJT_PT.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Threading.Tasks;
using static HH.WCS.Mobox3.YNJT_PT.api.ApiModel;
namespace HH.WCS.Mobox3.YNJT_PT.core {
internal class WCSCore {
public static void OperateAgvTaskStatus(AgvTaskState model) {
if (string.IsNullOrEmpty(model.No)) {
}
else {
var TN_Task = WCSHelper.GetTask(model.No);
if (TN_Task != null) {
bool isExist = WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, model.State);
if (!isExist) {
if (model.State <= 7)
{
//有任务号请求
switch (model.State)
{
case 1:
if (!model.ForkliftNo.Equals("0"))
{
TN_Task.S_EQ_NO = model.ForkliftNo;
}
WCSHelper.Begin(TN_Task);
break;
#region MyRegion
case 3:
WCSHelper.UpdateStatus(TN_Task, "开始取货");
break;
case 4:
WCSHelper.UpdateStatus(TN_Task, "取货完成");
TaskProcess.OperateStatus(TN_Task, 4);
break;
case 5:
WCSHelper.UpdateStatus(TN_Task, "开始卸货");
break;
case 6:
WCSHelper.UpdateStatus(TN_Task, "卸货完成");
TaskProcess.OperateStatus(TN_Task, 6);
break;
#endregion
case 2:
WCSHelper.End(TN_Task);
break;
case 7:
//判断是否收到过强制取消,有就不做任何处理
if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 17))
{
TaskProcess.OperateStatus(TN_Task, 7);
WCSHelper.Cancel(TN_Task);
}
break;
}
WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
//调用第三方接口(如果有)TaskProcess.ReportStatus
}
else
{
//安全请求等
TaskProcess.OperateReq(model.No, model.State, model.ForkliftNo, model.ExtData);
}
}
}
}
}
///
/// 任务分发,根据调度类型发给不同的调度系统
///
internal static void Dispatch() {
var db = new SqlHelper