using HH.WMS.BLL;
|
using HH.WMS.BLL.Algorithm;
|
using HH.WMS.BLL.InStock;
|
using HH.WMS.BLL.SysMgr;
|
using HH.WMS.Common;
|
using HH.WMS.Common.Algorithm;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Entitys;
|
using HH.WMS.WebApi.Areas.Common.Controllers;
|
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 UpController : BaseController
|
{
|
#region 获取所有待上架(暂存区)的物料(到货入+移库入)
|
/// <summary>
|
/// 获取所有待上架(暂存区)的物料(到货入+移库入)
|
/// </summary>
|
/// <param name="itemCode">物料编号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(DBS)] CREATED BY 2019-03-7</History>
|
public OperateResult GetWaitUpShelvesItems(string itemCode)
|
{
|
return ValidateToken(m =>
|
{
|
List < TN_WM_B_TRAY_ITEM_MSTEntity > waitUp = BLLCreator.Create<TN_WM_INCREASE_INVENTORYBLL>().GetWaitUpShelvesItems(itemCode);
|
return OperateResult.Succeed("", waitUp);
|
});
|
}
|
#endregion
|
|
#region 获取托盘预分配信息
|
/// <summary>
|
/// 获取托盘预分配信息
|
/// </summary>
|
/// <param name="trayCode">托盘号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(DBS)] CREATED BY 2019-03-7</History>
|
public OperateResult GetTrayAlloc(string trayCode)
|
{
|
return ValidateToken(m =>
|
{
|
List<TN_WM_TRAY_ALLOCEntity> list = BLLCreator.Create<DapperBLL<TN_WM_TRAY_ALLOCEntity>>().GetList(new { CN_S_TRAY_CODE = trayCode });
|
return OperateResult.Succeed("", list);
|
});
|
}
|
#endregion
|
|
#region 指引-托盘出库
|
/// <summary>
|
/// 根据物料、数量指引托盘
|
/// </summary>
|
/// <param name="data"></param>
|
/// <returns></returns>
|
/// <History>[HANHE(DBS)] CREATED BY 2019-03-07</History>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-03-26</History>
|
public OperateResult CommitUpGuide(List<dynamic> data)
|
{
|
try
|
{
|
string tokenId = data[0].tokenId.ToString();
|
return ValidateToken(tokenId, m =>
|
{
|
//计算托盘
|
List<itemInClass> listItemClass = new List<itemInClass>();
|
foreach (dynamic item in data)
|
{
|
itemInClass itemEntity = new itemInClass()//需要补料的物料
|
{
|
itemCode = item.item.ToString(),
|
lotNo = "",
|
//packingCode = item.CN_S_PACKING_CODE,
|
itemQty = decimal.Parse(item.qty.ToString())
|
};
|
listItemClass.Add(itemEntity);
|
}
|
OutFeedResultEntity feedAlloc = BLLCreator.Create<Feed_AlgorBLL>().Feed(new FeedAlgorEntity()
|
{
|
FeedType = FeedGoodType.FridTrayFirst,
|
stockArea = data[0].workAreaCode.ToString(),
|
lstItem = listItemClass,
|
lockLocation = false
|
});
|
if (!feedAlloc.Success)
|
return OperateResult.Error("算法异常:" + feedAlloc.Msg);
|
|
List<TN_WM_TRAY_ALLOCEntity> lstAllocQuery = BLLCreator.Create<TN_WM_TRAY_ALLOCBLL>().AllocFindEntity(feedAlloc, m);
|
List<TN_WM_TASKEntity> taskList = BLLCreator.Create<TN_WM_TASKBLL>().InstallTasks(lstAllocQuery, data[0].trayEndBit.ToString());
|
|
return BLLCreator.Create<TN_WM_B_TRAY_LOCATIONBLL>().CommitUpGuide(lstAllocQuery, taskList);
|
|
});
|
}
|
catch (Exception ex)
|
{
|
Log.Info("托盘指引出库异常!", ex.Message.ToString());
|
return OperateResult.Error(ex.Message.ToString());
|
}
|
}
|
#endregion
|
|
#region 上架-自动入库
|
/// <summary>
|
/// 上架
|
/// </summary>
|
/// <param name="task">任务实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(DBS)] CREATED BY 2019-03-11</History>
|
public OperateResult CommitUp(TN_WM_TASKEntity task)
|
{
|
return ValidateToken(task.TokenId, m =>
|
{
|
List<TN_WM_B_TRAY_ITEM_MSTEntity> items = BLLCreator.CreateDapper<TN_WM_B_TRAY_ITEM_MSTEntity>().GetTopList(1, new { CN_S_TRAY_CODE = task.CN_S_TRAY_CODE });
|
//计算合适的货位
|
//调用入库算法-调用调用AutoBom接口,获取空货位
|
InAlgorEnitty iAe = new InAlgorEnitty()
|
{
|
stockAreaCode = task.CN_S_END_AREA,
|
logicCode = "",
|
locationQty = 1,
|
trayCode = task.CN_S_TRAY_CODE,
|
itemCode = items.Count == 0 ? "" : items[0].CN_S_ITEM_CODE,
|
lockLocation = false
|
};
|
|
InResultEntity irEresult = BLLCreator.Create<In_AlgorBLL>().In(iAe);
|
if (!irEresult.Success)
|
return OperateResult.Error("算法异常:" + irEresult.Msg);
|
|
OperateResult or = new OperateResult();
|
foreach (locationEntity n in irEresult.lstLocation)
|
{
|
or = GetCode(m, Constants.Rule_TaskNo);//获取新的任务号
|
if (!or.Success)
|
return or;
|
|
task.CN_N_PRIORITY = 1;
|
task.CN_S_CREATOR = task.CN_S_MODIFY = m.CN_S_LOGIN;
|
task.CN_S_CREATOR_BY = task.CN_S_MODIFY_BY = m.CN_S_NAME;
|
task.CN_S_END_BIT = n.locationCode;
|
task.CN_S_STATE = "未执行";
|
task.CN_S_TASK_NO = or.Data.ToString();
|
task.CN_T_CREATE = task.CN_T_MODIFY = DateTime.Now;
|
}
|
|
return BLLCreator.Create<TN_WM_TASKBLL>().CreateTask(task);
|
});
|
}
|
#endregion
|
|
#region 补料-托盘物料绑定
|
/// <summary>
|
/// 上架
|
/// </summary>
|
/// <param name="trayItemEntity">托盘物料实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-03-27</History>
|
public OperateResult CommitTrayItem(List<TN_WM_B_TRAY_ITEM_MSTEntity> trayItemEntity)
|
{
|
try
|
{
|
string tokenId = trayItemEntity[0].TokenId.ToString();
|
return ValidateToken(tokenId, m =>
|
{
|
return BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().CommitTrayItem(trayItemEntity,m);
|
});
|
}
|
catch (Exception ex)
|
{
|
Log.Info("托盘指引出库异常!", ex.Message.ToString());
|
return OperateResult.Error(ex.Message.ToString());
|
}
|
}
|
#endregion
|
}
|
}
|