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
}
}