using HH.Redis.ReisModel; using HH.WMS.BLL; using HH.WMS.BLL.Common; using HH.WMS.BLL.InStock; using HH.WMS.BLL.MoveStock; using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Algorithm; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; using HH.WMS.Entitys.MoveStock; using HH.WMS.WebApi.Areas.Common.Controllers; using Newtonsoft.Json; using Newtonsoft.Json.Converters; 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.Text; using System.Web.Http; namespace HH.WMS.WebApi.Areas.MoveStock.Controllers { public class MoveStockController : BaseController { #region 查询移库主表 /// /// 查询移库主表 /// /// 查询实体 /// /// history>[HanHe(dbs)] CREATED 2018/15/15 [HttpPost] public string GetList(SearchModel model) { return ValidateToken(model.TokenId, t => { long total; StringBuilder str = new StringBuilder(); str.Append(" select * from TN_WM_MOVE_MST where 1=1"); if (model.SearchCondition.CN_S_STOCK_CODE != null) {//判断是否页面第一次加载 if (model.SearchCondition.CN_S_STOCK_CODE != "") { str.Append(" AND CN_S_STOCK_CODE ='" + model.SearchCondition.CN_S_STOCK_CODE + "'"); } if (model.SearchCondition.CN_S_OP_MODE != "") { str.Append(" AND CN_S_OP_MODE ='" + model.SearchCondition.CN_S_OP_MODE + "'"); } if (model.SearchCondition.CN_S_OP_NO != "") { str.Append(" AND CN_S_OP_NO like '%" + model.SearchCondition.CN_S_OP_NO + "%'"); } if (model.SearchCondition.CN_S_STATE != "") { str.Append(" AND CN_S_STATE ='" + model.SearchCondition.CN_S_STATE + "'"); } if (string.IsNullOrEmpty(model.SearchCondition.CN_T_START.ToString())) { str.Append(" AND CN_T_CREATE >='" + model.SearchCondition.CN_T_START + "'"); } if (string.IsNullOrEmpty(model.SearchCondition.CN_T_END.ToString())) { str.Append(" AND CN_T_CREATE <= DateAdd(dd, 1, '" + model.SearchCondition.CN_T_END + "')"); } } DataTable dt = BLLCreator.Create().GetDataList(str.ToString(), model.PageIndex, model.PageSize, out total, null); Dictionary areaDic = new Dictionary(); Dictionary stockDic = new Dictionary(); dt.Columns.Add("CN_S_STOCK_NAME"); dt.Columns.Add("CN_S_START_AREA_NAME"); dt.Columns.Add("CN_S_END_AREA_NAME"); foreach (DataRow dtrow in dt.Rows) { if (!string.IsNullOrEmpty(dtrow["CN_S_STOCK_CODE"].ToString())) //获取仓库名称 { if (!stockDic.ContainsKey(dtrow["CN_S_STOCK_CODE"].ToString())) { TN_AB_STOCKEntity stockentity = BLLCreator.Create().GetStockentity("CN_S_STOCK_CODE", dtrow["CN_S_STOCK_CODE"].ToString().Trim());//获取仓库名称 if (stockentity != null) { dtrow["CN_S_STOCK_NAME"] = stockentity.CN_S_STOCK_NAME; stockDic.Add(dtrow["CN_S_STOCK_CODE"].ToString(), stockentity.CN_S_STOCK_NAME); } } else { dtrow["CN_S_STOCK_NAME"] = stockDic[dtrow["CN_S_STOCK_CODE"].ToString()]; } } if (!string.IsNullOrEmpty(dtrow["CN_S_START_AREA"].ToString()))//获取库区名称 { if (!areaDic.ContainsKey(dtrow["CN_S_START_AREA"].ToString())) { AutoBomStockAreaEntity areaentity = BLLCreator.Create().GetStockArea(dtrow["CN_S_START_AREA"].ToString().Trim());//获取库区名称 if (areaentity != null) { dtrow["CN_S_START_AREA_NAME"] = areaentity.CN_S_AREA_NAME; areaDic.Add(dtrow["CN_S_START_AREA"].ToString(), areaentity.CN_S_AREA_NAME); } } else { dtrow["CN_S_START_AREA_NAME"] = areaDic[dtrow["CN_S_START_AREA"].ToString()]; } } if (!string.IsNullOrEmpty(dtrow["CN_S_END_AREA"].ToString()))//获取库区名称 { if (!areaDic.ContainsKey(dtrow["CN_S_END_AREA"].ToString())) { AutoBomStockAreaEntity areaentity = BLLCreator.Create().GetStockArea(dtrow["CN_S_END_AREA"].ToString().Trim());//获取库区名称 if (areaentity != null) { dtrow["CN_S_END_AREA_NAME"] = areaentity.CN_S_AREA_NAME; areaDic.Add(dtrow["CN_S_END_AREA"].ToString(), areaentity.CN_S_AREA_NAME); } } else { dtrow["CN_S_END_AREA_NAME"] = areaDic[dtrow["CN_S_END_AREA"].ToString()]; } } } OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = total }); IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; return JsonConvert.SerializeObject(res, timeFormat); }); } #endregion #region 获取货位物料信息 /// /// 获取货位物料信息 /// /// 查询条件 /// /// [HanHe(lt)] CREATED 2018/9/11 [HttpPost] public string GetCreateList(dynamic obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { DataTable dt = BLLCreator.Create().GetTrayLocation(obj); OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = obj.PageCount }); return JsonConvert.SerializeObject(res); }); } #endregion #region 新增 /// /// 新增 /// /// json实体 /// /// [HanHe(lt)] CREATED 2018/9/13 public OperateResult Add(JObject obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { SqlExecuteResult result = BLLCreator.Create().Add(obj); if (result.Success) { return OperateResult.Succeed(); } return OperateResult.Error(result.Exception.Message); }); } #endregion #region 查询移库字表 /// /// 查询移库字表 /// /// /// /// history>[HanHe(lt)] CREATED 2018/9/18 [HttpPost] public string GetMoveDtl(dynamic obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { DataTable dt = BLLCreator.Create().GetDataTable(obj); OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = obj.PageCount }); return JsonConvert.SerializeObject(res); }); } /// /// 查询移库字表 /// /// /// /// history>[HanHe(lt)] CREATED 2018/9/18 [HttpGet] public string GetMoveDtlList(string sqlWhere) { return ValidateToken(t => { DataTable dt = BLLCreator.Create().getInfo(sqlWhere); OperateResult res = OperateResult.Succeed("", dt); return JsonConvert.SerializeObject(res); }); } #endregion #region 查询移库明细表 /// /// 查询移库主表 /// /// /// /// history>[HanHe(lt)] CREATED 2018/9/18 [HttpPost] public string GetMoveResultGroup(dynamic obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { DataTable dt = BLLCreator.Create().GetDataTableGroup(obj); OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = obj.PageCount }); return JsonConvert.SerializeObject(res); }); } public string GetMoveResultList(string sqlWhere) { return ValidateToken(t => { DataTable dt = BLLCreator.Create().GetMoveResultList(sqlWhere); OperateResult res = OperateResult.Succeed("", dt); return JsonConvert.SerializeObject(res); }); } #endregion #region 删除移库数据 /// ///删除移库数据 /// /// /// /// [HanHe(lt)] CREATED 2018/9/18 [HttpGet] public OperateResult DeleteStockMove(string opNo) { return ValidateToken(t => { SqlExecuteResult result = BLL.BLLCreator.Create().DeleteStockMove(opNo); if (result.Success) { return OperateResult.Succeed(); } return OperateResult.Error(result.Exception.Message); }); } #endregion #region 查询移库主表 /// /// 查询移库主表 /// /// 移库单号 /// /// [HanHe(lt)] CREATED 2018/9/18 [HttpGet] public string GetMstDtl(string opNo) { //DataTable dt = BLLCreator.Create().GetMst("AND CN_S_OP_NO='" + opNo + "'"); //DataTable dtDtl = BLLCreator.Create().GetDtl(" a.CN_S_OP_NO='" + opNo + "'"); //string mst = dt.Rows.Count < 0 ? "[]" : JsonHelper.DataTableToJson("", dt, dt.Rows.Count); //string dtl = dtDtl.Rows.Count < 0 ? "[]" : JsonHelper.DataTableToJson("", dtDtl, dtDtl.Rows.Count); //return "{\"mst\":" + mst + ",\"dtl\":" + dtl + "}"; return ValidateToken(t => { DataTable dt = BLLCreator.Create().GetMst("AND CN_S_OP_NO='" + opNo + "'"); DataTable dtDtl = BLLCreator.Create().GetDtl(" a.CN_S_OP_NO='" + opNo + "'"); OperateResult res = OperateResult.Succeed("", new { mst = dt, dtl = dtDtl }); return JsonConvert.SerializeObject(res); }); } #endregion #region 修改 /// /// 修改 /// /// json实体 /// /// [HanHe(lt)] CREATED 2018/9/13 [HttpPost] public OperateResult MoveUpdate(JObject obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { SqlExecuteResult result = BLLCreator.Create().MoveUpdate(obj); if (result.Success) { return OperateResult.Succeed(); } return OperateResult.Error(result.Exception.Message); }); } #endregion #region 提交 /// ///提交 /// /// /// /// [HanHe(lt)] CREATED 2018/12/13 [HttpPost] public OperateResult Submit(JObject obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { OperateResult result = BLL.BLLCreator.Create().Submit(obj); return result; }); } #endregion #region 移库分拣完成 /// ///移库分拣完成 /// /// 移库单号 /// /// [HanHe(lt)] CREATED 2018/12/20 [HttpGet] public OperateResult MoveSortingComplete(string opNo, string userId, string userName, string orgId, string orgFlag) { //return ValidateToken(t => //{ SqlExecuteResult result = BLL.BLLCreator.Create().MoveSortingComplete(opNo, userId, userName, orgId, orgFlag); if (result.Success) { return OperateResult.Succeed(); } return OperateResult.Error(result.Exception.Message); //}); } #endregion #region 获取虚拟库区 /// /// 根据仓库获得所有库区 /// /// /// [HanHe(LT)] CREATED 2018/12/22 public OperateResult GetXNAreaList(string stockCode, string areaCode, string include) { return ValidateToken(t => { var list = BLLCreator.Create().GetXNAreaList(stockCode, areaCode, include); return OperateResult.Succeed("", list); }); } #endregion #region PDA #region 根据货位获取托盘信息 /// /// 根据货位获取托盘信息 /// /// /// /// /// [HANHE(lt)] CREATED BY 2018-12-5 [HttpGet] public string GetTrayLocationBylocation(string location) { return ValidateToken(t => { string sqlwhere = "where CN_S_LOCATION_CODE='" + location + "'"; List list = BLL.BLLCreator.Create().GetTrayLocation(sqlwhere); OperateResult res = OperateResult.Succeed(null, list); return JsonConvert.SerializeObject(res); }); } #endregion #region 根据货位获取托盘信息(包括空货位) /// /// 根据货位获取托盘信息 /// /// /// /// /// [HANHE(lt)] CREATED BY 2018-12-5 [HttpGet] public string GetTrayLocationAndNullLocationBylocation(string location) { return ValidateToken(t => { string sqlwhere = "where a.CN_S_LOCATION_CODE='" + location + "'"; List list = BLL.BLLCreator.Create().GetTrayLocationAndNullLocation(sqlwhere); OperateResult res = OperateResult.Succeed(null, list); return JsonConvert.SerializeObject(res); }); } #endregion #region 修改货位 /// /// 修改货位 /// /// /// /// [HanHe(lt)] CREATED 2018/12/5 [HttpGet] public string UpdateLocation(string startLoca, string endLoc) { return ValidateToken(t => { SqlExecuteResult result = BLLCreator.Create().UpdateLocation(startLoca, endLoc); if (result.Success) { return JsonConvert.SerializeObject(OperateResult.Succeed()); } return JsonConvert.SerializeObject(OperateResult.Error(result.Exception.Message)); }); } #endregion #region 部分移库 /// ///部分移库 /// /// 移库单号 /// /// [HanHe(lt)] CREATED 2019/1/7 [HttpPost] public OperateResult PartMoveStock(JObject obj) { string tokenId = obj["tokenId"].ToString(); return ValidateToken(tokenId, t => { OperateResult result = BLL.BLLCreator.Create().PartMoveStock(obj, t); return result; }); } #endregion #endregion } }