using HH.WMS.BLL;
|
using HH.WMS.BLL.Basic;
|
using HH.WMS.BLL.External;
|
using HH.WMS.BLL.Pda;
|
using HH.WMS.Common;
|
using HH.WMS.Common.External;
|
using HH.WMS.Common.Response;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Dto;
|
using HH.WMS.Entitys.Entitys;
|
using HH.WMS.Entitys.Entitys.Mes;
|
using HH.WMS.Entitys.External;
|
using HH.WMS.WebApi.App_Start;
|
using HH.WMS.WebApi.Areas.Common.Controllers;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
|
namespace HH.WMS.WebApi.Controllers
|
{
|
/// <summary>
|
/// 贵轮项目接口
|
/// </summary>
|
public class GLWmsApiController : BaseController
|
{
|
#region 入作业区 + GLInWorkArea
|
/// <summary>
|
/// 入作业区所有接口
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public string InWorkArea(dynamic jsonData)
|
{
|
var logPara = LogType.LogPara("入作业区");
|
Log.Detail(logPara, "GLInWorkArea:入作业区传递参数:" + jsonData.ToString());
|
|
List<InWorkAreaEntity> inWorkAreaEntitys = JsonConvert.DeserializeObject<List<InWorkAreaEntity>>(jsonData.ToString());
|
|
//调用入作业区方法
|
var result = BLLCreator.Create<WmsApiBaseBLL>().InWorkArea(inWorkAreaEntitys);
|
return JsonConvert.SerializeObject(result);
|
}
|
|
#endregion
|
|
#region 出作业区 + GLOutWorkArea
|
/// <summary>
|
/// 出作业区所有接口
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public string OutWorkArea(dynamic jsonData)
|
{
|
var logPara = LogType.LogPara("出作业区");
|
Log.Detail(logPara, "GLOutWorkArea:出作业区传递参数:" + jsonData.ToString());
|
|
List<OutWorkAreaEntity> OutWorkAreaEntitys = JsonConvert.DeserializeObject<List<OutWorkAreaEntity>>(jsonData.ToString());
|
foreach (var entity in OutWorkAreaEntitys)
|
{
|
//物料编码不为空时 才组织Data
|
if (!string.IsNullOrEmpty(entity.itemCode))
|
{
|
|
var item = BLLCreator.Create<TN_WMS_ITEMBLL>().GetItem(entity.itemCode);
|
|
List<OutWorkDataEntity> DataList = new List<OutWorkDataEntity>();
|
|
DataList.Add(new OutWorkDataEntity
|
{
|
ItemCode = entity.itemCode,
|
ItemName = item == null ? "" : item.CN_S_ITEM_NAME,
|
ItemState = "合格"
|
});
|
entity.Data = DataList;
|
}
|
}
|
//调用出作业区方法
|
var result = BLLCreator.Create<WmsApiBaseBLL>().OutWorkArea(OutWorkAreaEntitys);
|
return JsonConvert.SerializeObject(result);
|
|
}
|
|
#endregion
|
|
#region 完工回报 + GLExecuteState
|
/// <summary>
|
/// AGV执行情况 完成时调用
|
/// </summary>
|
/// <param name="json">传入的Json数组</param>
|
/// <returns></returns>
|
[HttpPost]
|
public string ExecuteState(ExecuteStateDto data)
|
{
|
var result = WmsApiBLLRoute.ExecuteState(data);
|
try
|
{
|
var logPara = LogType.LogPara("完工回报");
|
Log.Detail(logPara, "GLExecuteState:完工回报:" + JsonConvert.SerializeObject(data));
|
//判断是否需要做进一步操作
|
TN_WM_TASKEntity comTask = BLLCreator.Create<DapperBLL<TN_WM_TASKEntity>>().GetSingleEntity(new { CN_S_TASK_NO = data.taskNo });
|
if (comTask != null)
|
{
|
#region 反馈MES
|
if (comTask.CN_S_STATE == Constants.State_Completed)
|
{
|
TN_WM_B_TRAY_ITEM_MSTEntity trayItem = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_ITEM_MSTEntity>>().GetSingleEntity(new { CN_S_TRAY_CODE = comTask.CN_S_TRAY_CODE });
|
|
AGV_Storage_Information mesModel = new AGV_Storage_Information();
|
mesModel.TaskNo = comTask.CN_S_TASK_NO;
|
mesModel.LoadNo = "";
|
if (trayItem != null)
|
{
|
mesModel.MaterielCode = trayItem.CN_S_ITEM_CODE;
|
mesModel.MaterielName = trayItem.CN_S_ITEM_NAME;
|
mesModel.Quantity = trayItem.CN_F_QUANTITY;
|
}
|
mesModel.StorageTime = comTask.CN_T_END;
|
mesModel.LocationName = comTask.CN_S_END_BIT;
|
mesModel.HasBeenReceived = "";
|
mesModel.Lock = 0;
|
|
OperateResult or = BLLCreator.CreateMiddleDapper<AGV_Storage_Information>().Add(mesModel);
|
Log.Detail(logPara, "GLExecuteState:任务号:" + comTask.CN_S_TASK_NO + " 反馈MES结果:" + JsonConvert.SerializeObject(or));
|
if (!or.Success)
|
{
|
Log.Detail(logPara, "GLExecuteState:反馈MES失败:" + JsonConvert.SerializeObject(or));
|
}
|
}
|
#endregion
|
}
|
}
|
catch (Exception ex)
|
{
|
Log.Detail(LogType.LogPara("完工回报接口反馈状态"), "接口反馈状态返回结果:" + ex.Message + ex.StackTrace);
|
}
|
return result;
|
}
|
|
#endregion
|
|
#region 叠托反馈
|
/// <summary>
|
/// 叠托反馈
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public ReturnResult SetLocationTray(JObject obj)
|
{
|
ReturnResultCount rc = new ReturnResultCount();
|
try
|
{
|
var locationCode = obj.Value<string>("locationCode");
|
|
var logPara = LogType.LogPara("叠托反馈");
|
Log.Detail(logPara, "SetLocationTray:叠托反馈传参:" + locationCode);
|
|
OperateResult or = BLLCreator.Create<WmsApiBaseBLL>().SetLocationTray(locationCode);
|
if (or.Success)
|
{
|
rc.success = true;
|
rc.errMsg = "";
|
}
|
else
|
{
|
rc.success = false;
|
rc.errMsg = or.Msg;
|
}
|
return rc;
|
}
|
catch (Exception ex)
|
{
|
Log.Info("SetLocationTray异常:====>", ex.Message + ex.StackTrace);
|
rc.success = false;
|
rc.errMsg = ex.Message + ex.StackTrace;
|
return rc;
|
}
|
}
|
#endregion
|
|
#region 获取叠托数
|
/// <summary>
|
/// 获取叠托数
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public ReturnResultCount GetLocationTrayCount(JObject obj)
|
{
|
ReturnResultCount rc = new ReturnResultCount();
|
try
|
{
|
|
var locationCode = obj.Value<string>("locationCode");
|
|
var logPara = LogType.LogPara("获取叠托数");
|
Log.Detail(logPara, "GetLocationTrayCount:获取叠托数传参:" + locationCode);
|
|
if (string.IsNullOrEmpty(locationCode))
|
{
|
rc.success = false;
|
rc.errMsg = "参数有误!";
|
}
|
else
|
{
|
List<TN_WM_B_TRAY_LOCATIONEntity> traylocationList = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_LOCATIONEntity>>().GetList(new { CN_S_LOCATION_CODE = locationCode });
|
rc.success = true;
|
rc.trayCount = traylocationList.Count.ToString();
|
}
|
|
return rc;
|
}
|
catch (Exception ex)
|
{
|
Log.Info("GetLocationTrayCount异常:====>", ex.Message + ex.StackTrace);
|
rc.success = false;
|
rc.errMsg = ex.Message + ex.StackTrace;
|
return rc;
|
}
|
}
|
#endregion
|
|
#region 返回参数实体
|
public class ReturnResult
|
{
|
public bool success { get; set; }
|
public string errMsg { get; set; }
|
}
|
|
public class ReturnResultCount : ReturnResult
|
{
|
//托盘数量
|
public string trayCount { get; set; }
|
}
|
#endregion
|
}
|
}
|