using HH.WMS.BLL;
|
using HH.WMS.BLL.Check;
|
using HH.WMS.BLL.Common;
|
using HH.WMS.Common;
|
using HH.WMS.Common.Algorithm;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Check;
|
using HH.WMS.Entitys.Common;
|
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.Web.Http;
|
|
namespace HH.WMS.WebApi.Areas.Check.Controllers
|
{
|
public class CheckController : BaseController
|
{
|
#region 获取盘点主表分页
|
/// <summary>
|
/// 获取盘点主表分页
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <History>[Hanhe(lt)] created by 2018-7-4</History>
|
[HttpPost]
|
public string GetDataTable(dynamic obj)
|
{
|
string tokenId = Util.ToString(obj.tokenId);
|
return ValidateToken(tokenId, t =>
|
{
|
DataTable dt = BLLCreator.Create<TN_WM_CHECK_MSTBLL>().GetDataTable(obj);
|
OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = obj.PageCount });
|
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
|
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
|
return JsonConvert.SerializeObject(res, timeFormat);
|
});
|
|
}
|
#endregion
|
|
#region 获取盘点单数据
|
public OperateResult GetModel(string opNo)
|
{
|
return ValidateToken(t =>
|
{
|
TN_WM_CHECK_MSTEntity mst = BLLCreator.Create<DapperBLL<TN_WM_CHECK_MSTEntity>>().GetSingleEntity(new { CN_S_OP_NO = opNo });
|
mst.dtls = BLLCreator.Create<DapperBLL<TN_WM_CHECK_DTLEntity>>().GetList(new { CN_S_OP_NO = opNo });
|
|
return OperateResult.Succeed("", mst);
|
});
|
}
|
#endregion
|
#region 获取盘点单子表
|
/// <summary>
|
/// 获取盘点明细
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/12/6</history>
|
/// <history>[HanHe(dbs)] CREATED 2019/3/18</history>
|
public OperateResult GetCheckDtl(string opNo)
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_CHECK_DTLEntity> list = BLLCreator.Create<DapperBLL<TN_WM_CHECK_DTLEntity>>().GetList(new { CN_S_OP_NO = opNo });
|
return OperateResult.Succeed("", list);
|
});
|
}
|
#endregion
|
|
#region 获取盘点结果明细
|
/// <summary>
|
/// 获取盘点明细
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/12/6</history>
|
/// <history>[HanHe(dbs)] CREATED 2019/3/18</history>
|
[HttpGet]
|
public OperateResult GetCheckList(string opNo)
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_CHECK_LISTEntity> list = BLLCreator.Create<DapperBLL<TN_WM_CHECK_LISTEntity>>().GetList(new { CN_S_OP_NO = opNo });
|
return OperateResult.Succeed("", list);
|
});
|
}
|
|
/// <summary>
|
/// 获取盘点明细
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/12/6</history>
|
/// <history>[HanHe(dbs)] CREATED 2019/3/18</history>
|
[HttpGet]
|
public OperateResult GetChecklistGroup(string sqlWhere)
|
{
|
return ValidateToken(t =>
|
{
|
var list = BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetGroupDT(sqlWhere);
|
return OperateResult.Succeed("", list);
|
});
|
}
|
#endregion
|
|
#region 获取货位物料信息
|
/// <summary>
|
/// 获取货位物料信息
|
/// </summary>
|
/// <param name="obj">Json查询条件</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/7/12</history>
|
[HttpPost]
|
public OperateResult GetTrayLocation(SearchModel searchModel)
|
{
|
return ValidateToken(searchModel.TokenId, t =>
|
{
|
return BLLCreator.Create<TN_WM_CHECK_MSTBLL>().GetTrayLocation(searchModel);
|
});
|
}
|
|
#endregion
|
|
#region 新增
|
/// <summary>
|
///新增
|
/// </summary>
|
/// <param name="obj">Json实体类</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/7/13</history>
|
[HttpPost]
|
public OperateResult AddCheck(TN_WM_CHECK_MSTEntity mst)
|
{
|
return ValidateToken(mst.TokenId, t =>
|
{
|
//TN_WM_CHECK_MSTEntity entityMst = JsonConvert.DeserializeObject<TN_WM_CHECK_MSTEntity>(obj.Value<object>("entityMst").ToString());
|
//List<TN_WM_CHECK_DTLEntity> entityDtl = JsonConvert.DeserializeObject<List<TN_WM_CHECK_DTLEntity>>(obj.Value<object>("entityDtl").ToString());
|
return BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Add(mst);
|
});
|
|
}
|
#endregion
|
|
#region 自定义新增
|
/// <summary>
|
///自定义新增
|
/// </summary>
|
/// <param name="entity"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/7/13</history>
|
[HttpPost]
|
public OperateResult AddCheckBatch(JObject obj)
|
{
|
string tokenId = obj["tokenId"].ToString();
|
|
return ValidateToken(tokenId, t =>
|
{
|
TN_WM_CHECK_MSTEntity entityMst = JsonConvert.DeserializeObject<TN_WM_CHECK_MSTEntity>(obj.Value<object>("entityMst").ToString());
|
List<TN_WM_CHECK_DTLEntity> entityDtl = BLL.BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Getlist(obj.Value<string>("sqlwhere").ToString(), obj.Value<string>("type").ToString());
|
entityMst.dtls = entityDtl;
|
return BLL.BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Add(entityMst);
|
});
|
}
|
#endregion
|
|
#region 提交
|
/// <summary>
|
///提交
|
/// </summary>
|
/// <param name="entity"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/24</history>
|
[HttpPost]
|
public OperateResult Submit(JObject obj)
|
{
|
string tokenid = obj["tokenid"].ToString();
|
return ValidateToken(tokenid, t =>
|
{
|
string[] opNos = obj.Value<object>("opNo").ToString().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
return BLL.BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Submit(opNos, t);
|
});
|
}
|
#endregion
|
|
#region 删除主子表
|
/// <summary>
|
///删除主子表
|
/// </summary>
|
/// <param name="entity"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/24</history>
|
/// <history>[HanHe(dbs)] CREATED 2019/3/18</history>
|
[HttpGet]
|
public OperateResult Delete(string opNo)
|
{
|
return ValidateToken(t =>
|
{
|
return BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Delete(opNo);
|
});
|
}
|
#endregion
|
|
#region 修改主子表
|
/// <summary>
|
/// 修改主子表
|
/// </summary>
|
/// <param name="obj">条件</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/24</history>
|
/// <history>[HanHe(dbs)] CREATED 2019/3/18</history>
|
public OperateResult Update(TN_WM_CHECK_MSTEntity mst)
|
{
|
return ValidateToken(mst.TokenId, t =>
|
{
|
//TN_WM_CHECK_MSTEntity entityMst = JsonConvert.DeserializeObject<TN_WM_CHECK_MSTEntity>(obj.Value<object>("entityMst").ToString());
|
|
//List<TN_WM_CHECK_DTLEntity> entityDtl = JsonConvert.DeserializeObject<List<TN_WM_CHECK_DTLEntity>>(obj.Value<object>("entityDtl").ToString());
|
|
return BLL.BLLCreator.Create<TN_WM_CHECK_MSTBLL>().Update(mst);
|
});
|
}
|
#endregion
|
|
#region 查询汇总盘点结果表
|
/// <summary>
|
///查询汇总盘点结果表
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <History>[HanHe(DBS)] CREATED BY 2019-3-22</History>
|
[HttpPost]
|
public OperateResult CheckResultShow(SearchModel sm)
|
{
|
return ValidateToken(sm.TokenId, t =>
|
{
|
return BLLCreator.Create<DapperBLL<TN_WM_CHECK_LISTEntity>>().GetPagingResult(sm.PageIndex, sm.PageSize,
|
new
|
{
|
CN_S_OP_NO = Util.ToString(sm.SearchCondition.CN_S_OP_NO),
|
CN_S_STOCK_AREA = Util.ToString(sm.SearchCondition.CN_S_STOCK_AREA),
|
CN_S_ITEM_CODE = Util.ToString(sm.SearchCondition.CN_S_ITEM_CODE)
|
});
|
});
|
}
|
#endregion
|
|
#region 获取盘点子表
|
/// <summary>
|
/// 获取盘点子表不分页
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <History>[Hanhe(lt)] created by 2018-7-13</History>
|
[HttpGet]
|
public string GetCheckMstDtlBywhere(string sqlwhere)
|
{
|
return ValidateToken(t =>
|
{
|
DataTable dt = BLLCreator.Create<TN_WM_CHECK_DTLBLL>().Getjoinentity(sqlwhere);
|
OperateResult result = OperateResult.Succeed(null, dt);
|
return JsonConvert.SerializeObject(result);
|
});
|
}
|
#endregion
|
|
#region DPA
|
#region 获取盘点清单
|
/// <summary>
|
/// 获取盘点清单
|
/// </summary>
|
/// <param name="opNo">盘点单号</param>
|
/// <param name="pageSize"></param>
|
/// <param name="pageIndex"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/29</history>
|
[HttpGet]
|
|
public OperateResult GetCheckMst(string opNo, int pageSize, int pageIndex)
|
{
|
try
|
{
|
return ValidateToken(t =>
|
{
|
long total;
|
DataTable dt = BLLCreator.Create<DapperBLL<TN_WM_CHECK_MSTEntity>>().GetPagingData(new List<SearchWhere>(){
|
new SearchWhere(){ key="CN_S_OP_NO", sign= WhereSign.Like, value=opNo},
|
new SearchWhere(){ key="CN_S_STATE", sign= WhereSign.Include, value=new List<string>{"盘点中","已提交"} },
|
}, pageIndex, pageSize, out total, true, new { CN_S_OP_NO = "%" + opNo + "%", CN_S_STATE = new List<string> { "盘点中", "已提交" } });
|
|
dt.Columns.Add("CN_S_STOCK_NAME");
|
dt.Columns["CN_S_STOCK_NAME"].ReadOnly = false;
|
foreach (DataRow dr in dt.Rows)
|
dr["CN_S_STOCK_NAME"] = GetStockName(dr["CN_S_STOCK_CODE"].ToString());
|
return OperateResult.Succeed("", new
|
{
|
rows = dt,
|
total = total
|
});
|
});
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message.ToString());
|
}
|
}
|
#endregion
|
|
#region 获取盘点清单
|
/// <summary>
|
/// 获取盘点清单
|
/// </summary>
|
/// <param name="opNo">盘点单号</param>
|
/// <param name="pageSize"></param>
|
/// <param name="pageIndex"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/29</history>
|
[HttpGet]
|
|
public string GetCheckList(string opNo, string pageSize, string pageIndex)
|
{
|
try
|
{
|
|
return ValidateToken(t =>
|
{
|
string sqlWhere = "where 1=1";
|
if (!string.IsNullOrEmpty(opNo))
|
{
|
sqlWhere += " AND CN_S_OP_NO like '%" + opNo + "%'";
|
}
|
//sqlWhere += " AND CN_S_ISCHECK='Y'";
|
var OrdeBy = "ORDER BY CN_S_OP_NO";
|
var ps = Convert.ToInt32(pageSize);
|
var pi = Convert.ToInt32(pageIndex);
|
|
DataTable dt = BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetDataTableGroup(sqlWhere, OrdeBy, ps, pi);
|
OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = dt.Rows.Count });
|
return JsonConvert.SerializeObject(res);
|
});
|
}
|
catch (Exception ex)
|
{
|
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 根据货位盘点号获取托盘码
|
/// <summary>
|
/// 获取盘点清单
|
/// </summary>
|
/// <param name="opNo">盘点单号</param>
|
/// <param name="locationCode">货位码</param>
|
/// <param name="pageSize"></param>
|
/// <param name="pageIndex"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/29</history>
|
[HttpGet]
|
|
public string GetTrayListByLocationCode(string opNo, string locationCode)
|
{
|
try
|
{
|
return ValidateToken(t =>
|
{
|
string sqlWhere = "where 1=1";
|
if (!string.IsNullOrEmpty(opNo))
|
{
|
sqlWhere += " AND CN_S_OP_NO = '" + opNo + "'";
|
}
|
if (!string.IsNullOrEmpty(locationCode))
|
{
|
sqlWhere += " AND CN_S_LOCATION_CODE = '" + locationCode + "'";
|
}
|
|
DataTable dt = BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetTrayByLocationCode(sqlWhere);
|
OperateResult res = OperateResult.Succeed(null, new { rows = dt, total = dt.Rows.Count });
|
return JsonConvert.SerializeObject(res);
|
});
|
}
|
catch (Exception ex)
|
{
|
|
return JsonConvert.SerializeObject(OperateResult.Error(ex.Message.ToString()));
|
}
|
}
|
#endregion
|
|
#region 根据货位托盘获取盘点信息
|
/// <summary>
|
/// 获取盘点清单
|
/// </summary>
|
/// <param name="opNo">盘点单号</param>
|
/// <param name="trayCode">托盘编码</param>
|
/// <param name="locationCode">货位码</param>
|
/// <param name="isCheckTwo">是否是二次分拣(0不是1是)</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/29</history>
|
[HttpGet]
|
|
public string GetCheckListByopNoTray(string opNo, string trayCode, string locationCode, string isCheckTwo)
|
{
|
return ValidateToken(t =>
|
{
|
List<TN_WM_CHECK_LISTEntity> list = BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetUnitCheckList(opNo, trayCode, locationCode);
|
OperateResult res = OperateResult.Succeed(null, list);
|
return JsonConvert.SerializeObject(res);
|
});
|
}
|
#endregion
|
|
#region 保存盘点数据
|
/// <summary>
|
/// 保存盘点数据
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/30</history>
|
//[HttpPost]
|
//public OperateResult Save(JObject obj)
|
//{
|
// string tokenId = obj["tokenId"].ToString();
|
// return ValidateToken(tokenId, t =>
|
// {
|
// //HH.Redis.ReisModel.RedisUserEntity t = new HH.Redis.ReisModel.RedisUserEntity() { CN_S_LOGIN="hh", CN_S_NAME="hh"};
|
// //OperateResult result = BLL.BLLCreator.Create<TN_WM_CHECK_LISTBLL>().SaveCheckPDA(obj, t);
|
// return result;
|
// });
|
//}
|
#endregion
|
|
#region 根据货位获取托盘中物料
|
/// <summary>
|
/// 根据货位获取托盘中物料
|
/// </summary>
|
/// <param name="sqlwhere">查询条件</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2019/1/2</history>
|
[HttpGet]
|
public string GetTrayitemBylocation(string locationCode)
|
{
|
return ValidateToken(t =>
|
{
|
DataTable dt = BLL.BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetTrayitemBylocation(locationCode);
|
OperateResult result = OperateResult.Succeed("", dt);
|
return JsonConvert.SerializeObject(result);
|
});
|
}
|
#endregion
|
|
#endregion
|
|
#region 执行下达任务 注释修改
|
/// <summary>
|
/// 执行下达任务
|
/// </summary>
|
/// <param name="obj"></param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/8/30</history>
|
[HttpGet]
|
public OperateResult implement(string opNo)
|
{
|
OperateResult result = BLLCreator.Create<TN_WM_CHECK_LISTBLL>().UpdateMstByOpNo("执行", "where CN_S_OP_NO in ('" + opNo + "')");
|
return result;
|
}
|
#endregion
|
|
#region 综合查询
|
/// <summary>
|
/// 根据货位获取托盘中物料
|
/// </summary>
|
/// <param name="sqlwhere">查询条件</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2019/1/2</history>
|
[HttpGet]
|
public string GetComPreInfo(string queryCode, string queryType)
|
{
|
return ValidateToken(t =>
|
{
|
DataTable dt = new DataTable();
|
//货位查询
|
if (queryType == "2")
|
{
|
dt = BLL.BLLCreator.Create<TN_WM_CHECK_LISTBLL>().GetTrayitemBylocation(queryCode);
|
}
|
OperateResult result = OperateResult.Succeed("", dt);
|
return JsonConvert.SerializeObject(result);
|
});
|
}
|
#endregion
|
|
#region 无单据盘点
|
/// <summary>
|
/// 无单据盘点
|
/// </summary>
|
/// <param name="sqlwhere">查询条件</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2019/1/2</history>
|
[HttpPost]
|
public OperateResult NoBillCheck(JObject obj)
|
{
|
string tokenId = obj["tokenId"].ToString();
|
List<TN_WM_CHECK_LISTEntity> checklist = JsonConvert.DeserializeObject<List<TN_WM_CHECK_LISTEntity>>(obj["checklist"].ToString());
|
return ValidateToken(tokenId, t =>
|
{
|
OperateResult result = BLL.BLLCreator.Create<TN_WM_CHECK_MSTBLL>().NoBillCheck(checklist, t);
|
return result;
|
});
|
}
|
#endregion
|
|
#region 盘点盈亏统计确认
|
/// <summary>
|
/// 盘点盈亏统计确认
|
/// </summary>
|
/// <param name="opNo">盘点单号</param>
|
/// <returns></returns>
|
/// <history>[HanHe(DBS)] CREATED 2019/3/22</history>
|
[HttpGet]
|
public OperateResult CheckConfirm(string opNo)
|
{
|
return ValidateToken(t =>
|
{
|
OperateResult result = BLLCreator.Create<TN_WM_CHECK_MSTBLL>().CheckConfirm(opNo, t);
|
return result;
|
});
|
}
|
#endregion
|
}
|
}
|