using HH.WMS.Common;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Dto;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.DAL.OutStock
|
{
|
public class OutStockDAL : DapperBaseDAL
|
{
|
#region 发货通知单主表-分页
|
/// <summary>
|
/// 发货通知单主表-分页
|
/// </summary>
|
/// <param name="param"></param>
|
/// <param name="total"></param>
|
/// <returns></returns>
|
public DataTable GetOutList(OutSearchDto param, out long total)
|
{
|
string sql = @" SELECT * FROM TN_WM_OUT_MST WHERE 1=1 ";
|
|
sql += GetFilterField("CN_S_OP_NO", param.CN_S_OP_NO, "like");
|
sql += GetFilterField("CN_S_STATE", param.CN_S_STATE, "in");
|
sql += GetFilterField("CN_T_CREATE", param.CN_T_CREATE, "dateArray");
|
|
sql = "(" + sql + ") t";
|
int pageIndex = Convert.ToInt32(param.pageIndex);
|
int pageSize = Convert.ToInt32(param.pageSize);
|
string orderBy = Util.ToString(param.orderBy);
|
return ExecutePagingData(sql, pageIndex, pageSize, out total, orderBy);
|
}
|
#endregion
|
|
#region 修改库区分配量
|
/// <summary>
|
/// 修改库区分配量
|
/// </summary>
|
/// <param name="areaQtyList"></param>
|
/// <returns></returns>
|
public OperateResult UpdateAreaAlloc(TN_WM_B_AREA_QTYEntity areaQty, IDbTransaction trans)
|
{
|
if (areaQty.CN_F_QUANTITY == 0)
|
{
|
string sql = @"DELETE FROM TN_WM_B_AREA_QTY WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
return ExecuteTranSql(sql, areaQty, trans);
|
}
|
else
|
{
|
string sql = @"UPDATE TN_WM_B_AREA_QTY SET CN_F_ALLOC_QTY=@CN_F_ALLOC_QTY,CN_F_QUANTITY=@CN_F_QUANTITY,CN_S_TIMESTAMP='{0}' WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
sql = string.Format(sql, DateTime.Now.ToString("yyyyMMddHHmmssffff"));
|
return ExecuteTranSql(sql, areaQty, trans);
|
}
|
}
|
#endregion
|
|
#region 修改库存分配量
|
/// <summary>
|
/// 修改库存分配量
|
/// </summary>
|
/// <param name="stockList"></param>
|
/// <param name="trans"></param>
|
/// <returns></returns>
|
public OperateResult UpdateStockAllocQty(TN_WM_B_STOCK_QTYEntity stockQty, IDbTransaction trans, string timeStamp = "")
|
{
|
if (stockQty.CN_F_QUANTITY == 0)
|
{
|
string sql = @"DELETE FROM TN_WM_B_STOCK_QTY WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
return ExecuteTranSql(sql, stockQty, trans);
|
}
|
else
|
{
|
string sql = "UPDATE TN_WM_B_STOCK_QTY SET CN_F_ALLOC_QTY=@CN_F_ALLOC_QTY,CN_F_QUANTITY=@CN_F_QUANTITY,CN_S_TIMESTAMP='{0}' WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
sql = string.Format(sql, string.IsNullOrEmpty(timeStamp) ? DateTime.Now.ToString("yyyyMMddHHmmssffff") : timeStamp);
|
return ExecuteTranSql(sql, stockQty, trans);
|
}
|
}
|
#endregion
|
|
#region 修改托盘物料分配量
|
/// <summary>
|
/// 修改托盘物料分配量
|
/// </summary>
|
/// <param name="trayItemList"></param>
|
/// <param name="trans"></param>
|
/// <param name="timeStamp"></param>
|
/// <returns></returns>
|
public OperateResult UpdateTrayItemAllocQty(TN_WM_B_TRAY_ITEM_MSTEntity trayItem, IDbTransaction trans, string timeStamp = "")
|
{
|
if (trayItem.CN_F_QUANTITY == 0)
|
{
|
string sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_MST WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
var or = ExecuteTranSql(sql, trayItem, trans);
|
if (or.AffectedRows == 0) return or;
|
sql = @"DELETE FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_PARENT_GUID=@CN_GUID";
|
return ExecuteTranSql(sql, trayItem, trans);
|
}
|
else
|
{
|
string sql = "UPDATE TN_WM_B_TRAY_ITEM_MST SET CN_F_ALLOC_QTY=@CN_F_ALLOC_QTY,CN_F_QUANTITY=@CN_F_QUANTITY,CN_S_TIMESTAMP='{0}' WHERE CN_GUID=@CN_GUID AND (CN_S_TIMESTAMP = @CN_S_TIMESTAMP OR CN_S_TIMESTAMP IS NULL)";
|
sql = string.Format(sql, string.IsNullOrEmpty(timeStamp) ? DateTime.Now.ToString("yyyyMMddHHmmssffff") : timeStamp);
|
var or = ExecuteTranSql(sql, trayItem, trans);
|
if (or.AffectedRows == 0) return or;
|
sql = " UPDATE TN_WM_B_TRAY_ITEM_DTL SET CN_F_QUANTITY=@CN_F_QUANTITY WHERE CN_PARENT_GUID=@CN_GUID ";
|
return ExecuteTranSql(sql, trayItem, trans);
|
}
|
}
|
#endregion
|
|
#region 取货位分拣中的物料
|
/// <summary>
|
/// 取货位分拣中的物料
|
/// </summary>
|
/// <param name="locationCode"></param>
|
/// <returns></returns>
|
public List<TN_WM_SORTING_LOCATIONEntity> GetSortingLocation(string locationCode)
|
{
|
string sql = @"SELECT * FROM TN_WM_SORTING_LIST A,
|
TN_WM_SORTING_LOCATION B
|
WHERE A.CN_S_SORTING_NO = B.CN_S_SORTING_NO AND A.CN_S_STATE='分拣中' AND B.CN_S_LOCATION_CODE IN(
|
SELECT TOP 1 CN_S_START_BIT FROM TN_WM_TASK WHERE CN_S_END_BIT=@CN_S_END_BIT ORDER BY CN_T_CREATE DESC)";
|
return ExecuteQuery<TN_WM_SORTING_LOCATIONEntity>(sql, new
|
{
|
CN_S_END_BIT = locationCode
|
});
|
}
|
#endregion
|
}
|
}
|