using HH.WMS.BLL; using HH.WMS.BLL.Algorithm; using HH.WMS.BLL.Basic; using HH.WMS.Common.Algorithm; using HH.WMS.Entitys; using HH.WMS.Entitys.Algorithm; using HH.WMS.Entitys.Basic; using Newtonsoft.Json; 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.Common.Controllers { public class LocationController : BaseController { #region 获取仓库下的所有巷道 /// /// 获取仓库下的所有巷道 /// /// /// 仓库号 /// 库区号 /// /// [Hanhe(DBS)] created 2018/12/04 [HttpGet] public OperateResult GetTunnels(string stockCode, string areaCode) { try { return ValidateToken(y => { List structreList = BLLCreator.Create().GetStructList(stockCode, areaCode); List roadWay = structreList.GroupBy(x => x.CN_S_ROADWAY).OrderBy(x => x.Key).Select(o => o.Key).ToList(); return OperateResult.Succeed("", roadWay); }); } catch (Exception ex) { return OperateResult.Error("查询异常!" + ex.ToString()); } } #endregion #region 获取巷道下面的所有排信息 /// /// 获取巷道下面的所有排信息 /// /// /// 仓库号 /// 库区号 /// 巷道 /// /// [Hanhe(DBS)] created 2018/12/04 [HttpGet] public OperateResult GetStructList(string stockCode, string areaCode, string roadway) { return ValidateToken(y => { List structreList = BLLCreator.Create().GetStructList(stockCode, areaCode); if (!string.IsNullOrEmpty(roadway)) { structreList = structreList.FindAll(x => x.CN_S_ROADWAY.Equals(roadway)).ToList(); } structreList = structreList.OrderBy(e => e.CN_S_ROW).ToList(); return OperateResult.Succeed("", structreList); }); } #endregion #region 获取巷道下的货位信息 /// /// 获取巷 道下的货位信息 /// /// /// 仓库号 /// 库区号 /// 巷道号 /// /// [Hanhe(DBS)] created 2018/12/04 [HttpGet] public string GetTunnelLocations(string stockCode, string areaCode, string roadway) { try { return ValidateToken(x => { DataTable dt = BLLCreator.Create().ViewState(stockCode, areaCode, roadway); return JsonConvert.SerializeObject(OperateResult.Succeed("", dt)); }); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Error("查询异常!" + ex.ToString())); } } #endregion #region PDA接口-获取建议货位 /// /// 整托获取建议货位-空货位 /// /// 库区 /// 托盘编码 /// 物料编码 /// 获取货位的数量 /// tokenId /// [HttpGet] public OperateResult GetZtEmptyCommandLocation(string areaCode, string trayCode, string itemCode, int locationQty) { return ValidateToken(x => { //调用入库算法,获取空货位 InAlgorEnitty iAe = new InAlgorEnitty() { stockAreaCode = areaCode, logicCode = "", locationQty = locationQty, trayCode = trayCode, itemCode = itemCode, lockLocation = false//是否需要锁定货位 }; iAe.lstDevice = null; var paramString = JsonConvert.SerializeObject(iAe); InResultEntity irEresult = BLLCreator.Create().In(iAe); if (!irEresult.Success) { return OperateResult.Error(irEresult.Msg);//货位获取失败! } return OperateResult.Succeed("", irEresult.lstLocation); }); } /// /// 物料上架获取建议货位-空货位 /// /// /// /// [HttpGet] public OperateResult GetEmptyCommandLocation(string areaCode, string itemCode) { return ValidateToken(x => { //调用补料算法,获取空货位 FeedAlgorEntity fAe = new FeedAlgorEntity() { stockAreaCode = areaCode, itemCode = itemCode, lockLocation = false//是否需要锁定货位 }; var paramString = JsonConvert.SerializeObject(fAe); FeedResultEntity feedResult = BLLCreator.Create().FeedEmptyLocation(fAe); if (!feedResult.Success) { return OperateResult.Error(feedResult.Msg);//货位获取失败! } return OperateResult.Succeed("", feedResult.lstLocation); }); } #endregion [HttpGet] public OperateResult GetStateQty(string stockCode) { return ValidateToken(x => { DataTable dt = BLLCreator.Create().GetStateQty(stockCode); return OperateResult.Succeed("", dt); }); } #region 获取摆放位置 /// /// 获取摆放位置 /// /// 区域类型 /// [HttpGet] public OperateResult GetSHLocation(string areaClass) { return ValidateToken(x => { List list = new List(); List listlocation = new List(); list = BLLCreator.Create().GetSHLocationArea(areaClass); if (list.Count > 0) { List arrAreaCode = new List(); foreach (var item in list) { arrAreaCode.Add(item.CN_S_AREA_CODE); } listlocation = BLLCreator.Create().GetSHLocation(arrAreaCode); } return OperateResult.Succeed("", listlocation); }); } #endregion } }