using HH.Redis.ReisModel;
|
using HH.WMS.BLL;
|
using HH.WMS.BLL.Basic;
|
using HH.WMS.BLL.Common;
|
using HH.WMS.BLL.InStock;
|
using HH.WMS.BLL.SysMgr;
|
using HH.WMS.Common;
|
using HH.WMS.Common.External;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Algorithm;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Common;
|
using HH.WMS.Entitys.Entitys;
|
using HH.WMS.WebApi.Areas.Common.Controllers;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
|
namespace HH.WMS.WebApi.Areas.InStock.Controllers
|
{
|
public class TrayItemRelController : BaseController
|
{
|
#region 扫描托盘返回托盘物料(PDA接口)
|
/// <summary>
|
/// 扫描托盘返回托盘物料明细
|
/// </summary>
|
/// <param name="trayCode">托盘编码</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-17</History>
|
[HttpGet]
|
public string GetTrayItemRelDetail(string trayCode)
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_B_TRAY_ITEM_MSTEntity> trayItemEntityList = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_ITEM_MSTEntity>>().GetList(new { CN_S_TRAY_CODE = trayCode });
|
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", trayItemEntityList));
|
});
|
}
|
|
/// <summary>
|
/// 扫描托盘返回托盘去向汇总(三生PDA物料上架 调用)
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="trayCode">托盘编码</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-17</History>
|
[HttpGet]
|
public string GetTrayItemRelInArea(string trayCode)
|
{
|
try
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_B_TRAY_LOCATIONEntity> trayLocation = new List<TN_WM_B_TRAY_LOCATIONEntity>();
|
|
trayLocation = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_LOCATIONEntity>>().GetList(new { CN_S_TRAY_CODE = trayCode });
|
|
if (trayLocation.Any())
|
{
|
return JsonConvert.SerializeObject(OperateResult.Error("该托盘已在库"));
|
}
|
|
List<TN_WM_B_TRAY_ITEM_MSTEntity> trayItemList = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_ITEM_MSTEntity>>().GetList(new { CN_S_TRAY_CODE = trayCode });
|
|
var inAreaCodeStr = "";
|
//拼接逗号分隔字符串
|
foreach (TN_WM_B_TRAY_ITEM_MSTEntity item in trayItemList)
|
{
|
inAreaCodeStr = inAreaCodeStr + item.CN_S_IN_AREA_CODE + ",";
|
}
|
if (inAreaCodeStr.Length > 0)
|
{
|
inAreaCodeStr = inAreaCodeStr.Substring(0, inAreaCodeStr.Length - 1);
|
}
|
//将逗号分隔字符串转换成List
|
List<string> inAreaCodeList = new List<string>(inAreaCodeStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries));
|
//List去重
|
inAreaCodeList = inAreaCodeList.Distinct().ToList();
|
|
List<AutoBomStockAreaEntity> listStockArea = new List<AutoBomStockAreaEntity>();
|
foreach (var areaCode in inAreaCodeList)
|
{
|
AutoBomStockAreaEntity entity = BLLCreator.Create<TN_AB_B_STOCK_AREABLL>().GetStockAreaEntity(areaCode);
|
if (entity == null)
|
{ return JsonConvert.SerializeObject(OperateResult.Error(areaCode + "未获取到库区实体!")); }
|
listStockArea.Add(entity);
|
}
|
return JsonConvert.SerializeObject(OperateResult.Succeed("", listStockArea));
|
});
|
}
|
catch (Exception ex)
|
{
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 码盘(PDA接口)
|
/// <summary>
|
/// 码盘
|
/// </summary>
|
/// <param name="tokenId">token验证值</param>
|
/// <param name="jsonData">数据Json</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-17</History>
|
[HttpPost]
|
public string SavePalletItemRelation(JObject jsonData)
|
{
|
Log.Info("开始进入码盘接口:====>", "");
|
try
|
{
|
ItemOnTrayEntity entity = JsonConvert.DeserializeObject<ItemOnTrayEntity>(jsonData.ToString());
|
return ValidateToken(entity.TokenId, t =>
|
{
|
OperateResult oresult = BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().SavePalletItemRelation(entity, t);
|
return JsonConvert.SerializeObject(oresult);
|
});
|
}
|
catch (Exception ex)
|
{
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 呼叫补料托盘(生成出库任务、发送AMS指令)
|
/// <summary>
|
/// 呼叫补料托盘
|
/// </summary>
|
/// <param name="jsonData">{ItemCode:"",AreaCode:"",EndLocation:"",TokenId:""}</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-03-18</History>
|
[HttpPost]
|
public string CallFeedingTray(JObject jsonData)
|
{
|
string itemCode = jsonData.Value<string>("ItemCode");//物料编码
|
string areaCode = jsonData.Value<string>("AreaCode");//库区
|
string endLocation = jsonData.Value<string>("EndLocation");//目的位置
|
string tokenId = jsonData.Value<string>("TokenId");//目的位置
|
|
Log.Info("开始进入呼叫补料托盘接口:====>", "");
|
try
|
{
|
return ValidateToken(tokenId, t =>
|
{
|
OperateResult oresult = BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().CallFeedingTray(itemCode, areaCode, endLocation, t);
|
return JsonConvert.SerializeObject(oresult);
|
});
|
}
|
catch (Exception ex)
|
{
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 获取托盘中物料的信息,按批次汇总
|
/// <summary>
|
/// 获取托盘中物料的信息,按批次汇总
|
/// </summary>
|
/// <param name="tokenId">tokenId</param>
|
/// <param name="trayCode">托盘号</param>
|
/// <returns></returns>
|
/// <History>[Hanhe(DBS)] CREATED BY 2018/12/8</History>
|
public OperateResult GetTrayItem(string locationCode)
|
{
|
try
|
{
|
string projectCode = string.Empty;
|
try
|
{
|
projectCode = System.Configuration.ConfigurationManager.AppSettings["projectCode"].ToString();
|
}
|
catch (Exception)
|
{
|
|
}
|
return ValidateToken(t =>
|
{
|
DataTable dt = new DataTable();
|
if (projectCode == ProjectCodes.TaiZhouLongJi)
|
{
|
dt = BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().GetTrayItemLJ(locationCode);
|
}
|
else
|
{
|
dt = BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().GetTrayItem(locationCode);
|
}
|
|
return OperateResult.Succeed("", dt);
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message.ToString());
|
}
|
}
|
#endregion
|
|
#region 获取入库策略
|
/// <summary>
|
/// 获取入库策略=根据库区编码
|
/// </summary>
|
/// <param name="areaCode">库区编码</param>
|
/// <returns></returns>
|
[HttpGet]
|
public OperateResult GetStrategyListByAreaCode(string areaCode)
|
{
|
List<TN_AB_STOCKEntity> stockList = BLLCreator.Create<TN_WMS_STOCKBLL>().GetStockList();
|
if (!stockList.Any())
|
{
|
return OperateResult.Error("未获取到仓库信息!");
|
}
|
List<STRATEGYALGOREntity> lstStrategy = BLLCreator.Create<TN_WM_B_STRATEGYBLL>().GetStrateListByAreaOrStock(stockList[0].CN_S_STOCK_CODE, areaCode, Constants.In);
|
|
return OperateResult.Succeed("", lstStrategy);
|
}
|
#endregion
|
}
|
}
|