using HH.WCS.Hexafluo;
using HH.WCS.Hexafluo.util;
using HH.WCS.Hexafluo.wms;
using HH.WCS.SJML.Bll;
using HH.WCS.SJML.Comm;
using HH.WCS.SJML.Dto;
using HH.WCS.ZCQTJ.Entitys;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
namespace HH.WCS.SJML.dispatch
{
public class WcsTask
{
private static readonly HttpHelper apiHelper = new HttpHelper();
private static readonly string baseUrl = Settings.WcsHelperList;
///
/// 任务下达
///
///
///
public OperateResult WcsTaskEntity(WMSTask mst, CntrItemRel Item = null)
{
string Type = "";
string TrayType = "";
string Traycode = mst.S_CNTRS;
string isFull = "";
if (mst.S_TYPE == "入库")
{
Type = "1";
}
else if (mst.S_TYPE == "出库")
{
Type = "2";
}
else if (mst.S_TYPE == "移库")
{
Type = "3";
}
if (string.IsNullOrEmpty(Item?.S_ITEM_CODE))
{
isFull = "0";
}
else
{
isFull = "1";
}
if (mst.S_CNTRS.Contains("KJZ"))
{
TrayType = "KJZ";
isFull = "2";
}
// return OperateResult.Succeed();
var interact = new
{
requestPk = mst.S_TASK_NO,//任务号
contNo = Traycode,//托盘号
contType = TrayType,//托盘类型
trkType = Type,//任务类型
trkPrty = mst.N_PRIORITY,//任务优先级
frmPos = mst.S_START_LOC,//起始位置
toPos = mst.S_END_LOC,//目的地
isFull = isFull,//空托 满托 空架子
groupNo = Item?.S_ITEM_NAME,//搬送组号
clientCode = "WMS",//操作人
operationTime = DateTime.Now.ToString()//操作时间
};
LogHelper.Info("立库", "给立库下达任务 参数为:" + JsonConvert.SerializeObject(interact));
LogHelper.Info("立库", " 给立库下达任务 地址为:" + baseUrl + "/wcs-admin/api/receive");
//return OperateResult.Succeed();
var result = apiHelper.Post(baseUrl + "/wcs-admin/api/receive", JsonConvert.SerializeObject(interact));
LogHelper.Info("立库", "给立库下达任务 立库返回参数为:" + result);
if (string.IsNullOrEmpty(result))
{
throw new Exception("未得到任何来自于立库的反馈信息");
}
var data = JsonConvert.DeserializeObject(result);
if (data.code == "0")
{
return OperateResult.Succeed();
}
else
{
LogHelper.Info("立库", "立库返回:" + JsonConvert.SerializeObject(data));
if (data.msg != null && data.msg.Contains("已存在执行托盘"))
{
return OperateResult.Succeed();
}
return OperateResult.Error(data.msg);
}
}
private static object locko = new object();
///
/// 安全请求
///
///
///
public OperateResult WcsCallback(WMSTask mst, int state, string forkliftNo = "")
{
//查询表数据是否发送过该信号
var chi = new SqlHelper