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接口) /// /// 扫描托盘返回托盘物料明细 /// /// 托盘编码 /// /// [HANHE(XDL)] CREATED BY 2018-11-17 [HttpGet] public string GetTrayItemRelDetail(string trayCode) { return ValidateToken(t => { List trayItemEntityList = BLLCreator.Create>().GetList(new { CN_S_TRAY_CODE = trayCode }); return JsonConvert.SerializeObject(OperateResult.Succeed("", trayItemEntityList)); }); } /// /// 扫描托盘返回托盘去向汇总(三生PDA物料上架 调用) /// /// token验证值 /// 托盘编码 /// /// [HANHE(XDL)] CREATED BY 2018-11-17 [HttpGet] public string GetTrayItemRelInArea(string trayCode) { try { return ValidateToken(t => { List trayLocation = new List(); trayLocation = BLLCreator.Create>().GetList(new { CN_S_TRAY_CODE = trayCode }); if (trayLocation.Any()) { return JsonConvert.SerializeObject(OperateResult.Error("该托盘已在库")); } List trayItemList = BLLCreator.Create>().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 inAreaCodeList = new List(inAreaCodeStr.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)); //List去重 inAreaCodeList = inAreaCodeList.Distinct().ToList(); List listStockArea = new List(); foreach (var areaCode in inAreaCodeList) { AutoBomStockAreaEntity entity = BLLCreator.Create().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接口) /// /// 码盘 /// /// token验证值 /// 数据Json /// /// [HANHE(XDL)] CREATED BY 2018-11-17 [HttpPost] public string SavePalletItemRelation(JObject jsonData) { Log.Info("开始进入码盘接口:====>", ""); try { ItemOnTrayEntity entity = JsonConvert.DeserializeObject(jsonData.ToString()); return ValidateToken(entity.TokenId, t => { OperateResult oresult = BLLCreator.Create().SavePalletItemRelation(entity, t); return JsonConvert.SerializeObject(oresult); }); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString())); } } #endregion #region 呼叫补料托盘(生成出库任务、发送AMS指令) /// /// 呼叫补料托盘 /// /// {ItemCode:"",AreaCode:"",EndLocation:"",TokenId:""} /// /// [HANHE(XDL)] CREATED BY 2019-03-18 [HttpPost] public string CallFeedingTray(JObject jsonData) { string itemCode = jsonData.Value("ItemCode");//物料编码 string areaCode = jsonData.Value("AreaCode");//库区 string endLocation = jsonData.Value("EndLocation");//目的位置 string tokenId = jsonData.Value("TokenId");//目的位置 Log.Info("开始进入呼叫补料托盘接口:====>", ""); try { return ValidateToken(tokenId, t => { OperateResult oresult = BLLCreator.Create().CallFeedingTray(itemCode, areaCode, endLocation, t); return JsonConvert.SerializeObject(oresult); }); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString())); } } #endregion #region 获取托盘中物料的信息,按批次汇总 /// /// 获取托盘中物料的信息,按批次汇总 /// /// tokenId /// 托盘号 /// /// [Hanhe(DBS)] CREATED BY 2018/12/8 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().GetTrayItemLJ(locationCode); } else { dt = BLLCreator.Create().GetTrayItem(locationCode); } return OperateResult.Succeed("", dt); }); } catch (Exception ex) { return OperateResult.Error(ex.Message.ToString()); } } #endregion #region 获取入库策略 /// /// 获取入库策略=根据库区编码 /// /// 库区编码 /// [HttpGet] public OperateResult GetStrategyListByAreaCode(string areaCode) { List stockList = BLLCreator.Create().GetStockList(); if (!stockList.Any()) { return OperateResult.Error("未获取到仓库信息!"); } List lstStrategy = BLLCreator.Create().GetStrateListByAreaOrStock(stockList[0].CN_S_STOCK_CODE, areaCode, Constants.In); return OperateResult.Succeed("", lstStrategy); } #endregion } }