using HH.WMS.Common;
|
using HH.WMS.Common.External;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.MoveStock;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.MoveStock;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.MoveStock
|
{
|
public class MoveStockTaskBLL : DapperBaseBLL
|
{
|
|
public DataTable GetDataList(string tableName, int pageIndex, int pageSize, out long total, string orderBy = "")
|
{
|
return CreateDAL<MoveStockTaskDAL>().GetDataList(tableName, pageIndex, pageSize, out total, orderBy);
|
}
|
|
public TN_WM_MOVE_STOCK_TASK_MSTEntity GetMst()
|
{
|
return CreateDAL<MoveStockTaskDAL>().GetMst();
|
}
|
|
public TN_WM_MOVE_STOCK_TASK_DTLEntity GetDtlByTaskNo(string taskNo)
|
{
|
return CreateDAL<MoveStockTaskDAL>().GetDtlByTaskNo(taskNo);
|
}
|
|
public OperateResult AddMst(TN_WM_MOVE_STOCK_TASK_MSTEntity moveStockTaskMst, IDbTransaction tran)
|
{
|
return CreateDAL<MoveStockTaskDAL>().AddMst(moveStockTaskMst, tran);
|
}
|
|
public OperateResult AddDtl(string parentGuid, string taskNo, string taskType, decimal quantity, IDbTransaction tran, LogPara logPara = null)
|
{
|
try
|
{
|
var dtl = new TN_WM_MOVE_STOCK_TASK_DTLEntity
|
{
|
CN_GUID = Guid.NewGuid().ToString(),
|
CN_PARENT_GUID = parentGuid,
|
CN_S_TASK_NO = taskNo,
|
CN_S_TASK_TYPE = taskType,
|
CN_F_QUANTITY = quantity,
|
CN_T_CREATE = DateTime.Now,
|
CN_T_MODIFY = DateTime.Now
|
};
|
|
if (logPara != null)
|
Log.Detail(logPara, LogDescribe.Content(dtl));
|
|
if (taskType.Equals("移库"))
|
{
|
//增主表移动数
|
AddMoveAllocQty(parentGuid, quantity.ToString(), tran, logPara);
|
}
|
return CreateDAL<MoveStockTaskDAL>().AddDtl(dtl, tran);
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error("新增移库任务子表失败!原因:" + ex.Message);
|
}
|
|
}
|
|
public OperateResult AddMoveAllocQty(string guid, string qty, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara != null)
|
{
|
Log.Detail(logPara, "增加移库任务主表:" + guid + "的移动数:" + qty);
|
}
|
return CreateDAL<MoveStockTaskDAL>().AddMoveAllocQty(guid, qty, trans);
|
}
|
|
public OperateResult ReduceMoveQty(string guid, string qty, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara != null)
|
{
|
Log.Detail(logPara, "降移库任务主表:" + guid + "的移动数:" + qty);
|
}
|
return CreateDAL<MoveStockTaskDAL>().ReduceMoveQty(guid, qty, trans);
|
}
|
|
public OperateResult UpdateMstState(string guid, string state, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara != null)
|
{
|
Log.Detail(logPara, "更新移库任务主表guid:" + guid + " 的状态为:" + state);
|
}
|
return CreateDAL<MoveStockTaskDAL>().UpdateMstState(guid, state, trans);
|
}
|
|
public OperateResult CheckComplete(string taskNo, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara != null)
|
Log.Detail(logPara, "检查移库任务是否完成,当前任务号taskNo:" + taskNo);
|
|
try
|
{
|
var dtl = CreateDAL<MoveStockTaskDAL>().GetDtlByTaskNo(taskNo);
|
var mst = CreateDAL<MoveStockTaskDAL>().GetMst(dtl.CN_PARENT_GUID);
|
var result = CreateDAL<MoveStockTaskDAL>().AddMoveQty(dtl.CN_PARENT_GUID, trans);
|
Log.Detail(logPara, "新增移库数量结果:" + JsonConvert.SerializeObject(result));
|
|
if (mst.CN_F_QUANTITY <= (mst.CN_F_MOVE_QUANTITY + mst.CN_F_ALLOC_QUANTITY))
|
{
|
return UpdateMstState(dtl.CN_PARENT_GUID, "完成", trans);
|
}
|
return new OperateResult { Success = true };
|
}
|
catch (Exception ex)
|
{
|
return new OperateResult { Success = false, Msg = "检查移库任务是否完成 出错!" + ex.Message };
|
}
|
|
|
}
|
|
#region 删除移库
|
/// <summary>
|
/// 删除移库
|
/// </summary>
|
/// <param name="CN_S_OP_NO">移库单号</param>
|
/// <returns></returns>
|
/// <history>[HanHe(lt)] CREATED 2018/9/18</history>
|
public OperateResult Delete(string opNo)
|
{
|
return UseTransaction(trans =>
|
{
|
CreateDAL<MoveStockTaskDAL>().Cancel("where CN_GUID in ('" + opNo + "')", trans);//删除移库主表
|
//CreateDAL<MoveStockTaskDAL>().DeleteDtl(" CN_PARENT_GUID in ('" + opNo + "')", trans);//删除移库子表
|
});
|
}
|
#endregion
|
}
|
}
|