using HH.Redis.ReisModel;
|
using HH.WMS.Common;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.Basic;
|
using HH.WMS.DAL.InStock;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Common;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.InStock
|
{
|
public class TN_WM_INBLL : DapperBaseBLL
|
{
|
#region 新增入库订单
|
/// <summary>
|
/// 新增入库订单
|
/// </summary>
|
/// <param name="Entity">入库订单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult AddInOrder(TN_WM_IN_MSTEntity Entity, RedisUserEntity t)
|
{
|
|
//子表数据集合
|
List<TN_WM_IN_DTLEntity> DTLEntity = Entity.DTLEntity;
|
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//新增主表
|
CreateDAL<DapperDAL<TN_WM_IN_MSTEntity>>().Add(Entity, trans);
|
//新增子表
|
CreateDAL<DapperDAL<TN_WM_IN_DTLEntity>>().AddRange(DTLEntity, trans);
|
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 修改入库订单
|
/// <summary>
|
/// 修改入库订单
|
/// </summary>
|
/// <param name="Entity">入库订单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult UpdateInOrder(TN_WM_IN_MSTEntity entity)
|
{
|
//子表数据集合
|
List<TN_WM_IN_DTLEntity> DTLEntity = entity.DTLEntity;
|
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//修改主表
|
CreateDAL<DapperDAL<TN_WM_IN_MSTEntity>>().Update(entity, new { CN_S_OP_NO = entity.CN_S_OP_NO }, trans);
|
//删除子表
|
CreateDAL<DapperDAL<TN_WM_IN_DTLEntity>>().Delete(new { CN_S_OP_NO = entity.CN_S_OP_NO }, trans);
|
//新增子表
|
CreateDAL<DapperDAL<TN_WM_IN_DTLEntity>>().AddRange(DTLEntity, trans);
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 删除入库订单
|
/// <summary>
|
/// 删除入库订单
|
/// </summary>
|
/// <param name="opNo">入库订单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult DeleteInOrder(string opNo)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//删除主表
|
CreateDAL<DapperDAL<TN_WM_IN_MSTEntity>>().Delete(new { CN_S_OP_NO = opNo }, trans);
|
//删除子表
|
CreateDAL<DapperDAL<TN_WM_IN_DTLEntity>>().Delete(new { CN_S_OP_NO = opNo }, trans);
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 提交入库订单
|
/// <summary>
|
/// 提交入库订单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult SubmitInOrder(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
//获取策略:入库是否免审
|
TN_WM_IN_MSTEntity inMst = BLLCreator.Create<DapperBLL<TN_WM_IN_MSTEntity>>().GetSingleEntity(new { CN_S_OP_NO = entity[0].CN_S_FROM_NO });
|
if (inMst == null)
|
{
|
return OperateResult.Error("未获取到提交单据实体!");
|
}
|
string InOrderAutoAudit = GetStrategy(inMst.CN_S_STOCK_CODE, "InOrderAutoAudit");
|
|
OperateResult operateResult = new OperateResult();
|
//入库单免审-自动审核
|
if (InOrderAutoAudit == Constants.Y)
|
{
|
operateResult = AuditInOrder(entity);
|
}
|
else
|
{
|
operateResult = UseTransaction(trans =>
|
{
|
//提交主表
|
CreateDAL<TN_WM_INDAL>().ExamineMst(entity, Constants.State_Submit, trans);
|
//提交子表
|
CreateDAL<TN_WM_INDAL>().ExamineDtl(entity, Constants.State_Submit, trans);
|
});
|
}
|
return operateResult;
|
}
|
#endregion
|
|
#region 审核入库订单
|
/// <summary>
|
/// 审核入库订单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult AuditInOrder(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//审核主表
|
CreateDAL<TN_WM_INDAL>().ExamineMst(entity, Constants.State_Audit, trans);
|
//审核子表
|
CreateDAL<TN_WM_INDAL>().ExamineDtl(entity, Constants.State_Audit, trans);
|
|
});
|
return operateResult;
|
}
|
#endregion
|
|
#region 反审入库订单
|
/// <summary>
|
/// 反审入库订单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-02-20</History>
|
public OperateResult ReAuditInOrder(List<TN_WM_B_EXAMINEEntity> entity)
|
{
|
//判断是否生成了到货单
|
TN_WM_ARRIVAL_MSTEntity arrivalMst = BLLCreator.Create<DapperBLL<TN_WM_ARRIVAL_MSTEntity>>().GetSingleEntity(new { CN_S_FROM_NO = entity[0].CN_S_FROM_NO });
|
if (arrivalMst != null)
|
{
|
return OperateResult.Error("该入库订单已进入下一个流程,反审失败!");
|
}
|
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//反审主表
|
CreateDAL<TN_WM_INDAL>().ExamineMst(entity, Constants.State_ReAudit, trans);
|
//反审子表
|
CreateDAL<TN_WM_INDAL>().ExamineDtl(entity, Constants.State_ReAudit, trans);
|
});
|
return operateResult;
|
}
|
#endregion
|
|
#region 驳回入库订单
|
/// <summary>
|
/// 驳回入库订单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <param name="entity">驳回记录实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-14</History>
|
public OperateResult RejectInOrder(List<TN_WM_B_EXAMINEEntity> entity, TN_WM_B_REJECTEntity rejectEntity)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//驳回主表
|
CreateDAL<TN_WM_INDAL>().ExamineMst(entity, Constants.State_Reject, trans);
|
//驳回子表
|
CreateDAL<TN_WM_INDAL>().ExamineDtl(entity, Constants.State_Reject, trans);
|
//插入驳回记录
|
CreateDAL<DapperDAL<TN_WM_B_REJECTEntity>>().Add(rejectEntity, trans);
|
});
|
return operateResult;
|
}
|
#endregion
|
|
#region 到货单联机新增-选择来源
|
/// <summary>
|
/// 到货单页面,选择来源单据
|
/// </summary>
|
/// <param name="searchModel">实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-11-26</History>
|
public OperateResult GetFromInOrderList(SearchModel searchModel)
|
{
|
return CreateDAL<TN_WM_INDAL>().GetFromInOrderList(searchModel);
|
}
|
|
public List<TN_WM_IN_DTLEntity> GetFromInOrderDtl(string GetFromInOrderDtl)
|
{
|
return CreateDAL<TN_WM_INDAL>().GetFromInOrderDtl(GetFromInOrderDtl);
|
}
|
#endregion
|
|
#region 查询到货单列表
|
/// <summary>
|
/// 查询入库订单列表
|
/// </summary>
|
/// <param name="searchModel">实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-12-18</History>
|
public OperateResult GetInOrderList(SearchModel searchModel)
|
{
|
return CreateDAL<TN_WM_INDAL>().GetInOrderList(searchModel);
|
}
|
#endregion
|
|
#region 根据单号获取主子表信息
|
/// <summary>
|
/// 根据单号获取主子表信息
|
/// </summary>
|
/// <param name="CN_S_OP_NO">模糊查询条件:入库单号</param>
|
/// <returns></returns>
|
public TN_WM_IN_MSTEntity GetInOrderMstAndDtl(string opNo)
|
{
|
TN_WM_IN_MSTEntity inMstEntity = CreateDAL<DapperDAL<TN_WM_IN_MSTEntity>>().GetSingleEntity(new { CN_S_OP_NO = opNo });
|
List<TN_WM_IN_DTLEntity> inDtlEntity = CreateDAL<DapperDAL<TN_WM_IN_DTLEntity>>().GetList(new { CN_S_OP_NO = opNo });
|
|
//foreach (var entity in inDtlEntity)
|
//{
|
// AutoBomItemEntity itemenity = CreateDAL<TN_WMS_ITEMDAL>().GetItemEntity(entity.CN_S_ITEM_CODE);
|
// entity.CN_F_WARRNTY_PARTS = Convert.ToDecimal(itemenity.CN_F_WARRNTY_PARTS);
|
|
// entity.AuxiliaryUnitList = itemenity.AuxiliaryUnitList;
|
//}
|
inMstEntity.DTLEntity = inDtlEntity;
|
return inMstEntity;
|
}
|
#endregion
|
|
|
}
|
}
|