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 新增入库订单 /// /// 新增入库订单 /// /// 入库订单实体 /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public OperateResult AddInOrder(TN_WM_IN_MSTEntity Entity, RedisUserEntity t) { //子表数据集合 List DTLEntity = Entity.DTLEntity; OperateResult operateResult = UseTransaction(trans => { //新增主表 CreateDAL>().Add(Entity, trans); //新增子表 CreateDAL>().AddRange(DTLEntity, trans); }); return operateResult; } #endregion #region 修改入库订单 /// /// 修改入库订单 /// /// 入库订单实体 /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public OperateResult UpdateInOrder(TN_WM_IN_MSTEntity entity) { //子表数据集合 List DTLEntity = entity.DTLEntity; OperateResult operateResult = UseTransaction(trans => { //修改主表 CreateDAL>().Update(entity, new { CN_S_OP_NO = entity.CN_S_OP_NO }, trans); //删除子表 CreateDAL>().Delete(new { CN_S_OP_NO = entity.CN_S_OP_NO }, trans); //新增子表 CreateDAL>().AddRange(DTLEntity, trans); }); return operateResult; } #endregion #region 删除入库订单 /// /// 删除入库订单 /// /// 入库订单号 /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public OperateResult DeleteInOrder(string opNo) { OperateResult operateResult = UseTransaction(trans => { //删除主表 CreateDAL>().Delete(new { CN_S_OP_NO = opNo }, trans); //删除子表 CreateDAL>().Delete(new { CN_S_OP_NO = opNo }, trans); }); return operateResult; } #endregion #region 提交入库订单 /// /// 提交入库订单 /// /// 审批实体 /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public OperateResult SubmitInOrder(List entity) { //获取策略:入库是否免审 TN_WM_IN_MSTEntity inMst = BLLCreator.Create>().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().ExamineMst(entity, Constants.State_Submit, trans); //提交子表 CreateDAL().ExamineDtl(entity, Constants.State_Submit, trans); }); } return operateResult; } #endregion #region 审核入库订单 /// /// 审核入库订单 /// /// 审批实体 /// /// [HANHE(XDL)] CREATED BY 2019-02-20 public OperateResult AuditInOrder(List entity) { OperateResult operateResult = UseTransaction(trans => { //审核主表 CreateDAL().ExamineMst(entity, Constants.State_Audit, trans); //审核子表 CreateDAL().ExamineDtl(entity, Constants.State_Audit, trans); }); return operateResult; } #endregion #region 反审入库订单 /// /// 反审入库订单 /// /// 审批实体 /// /// [HANHE(XDL)] CREATED BY 2018-02-20 public OperateResult ReAuditInOrder(List entity) { //判断是否生成了到货单 TN_WM_ARRIVAL_MSTEntity arrivalMst = BLLCreator.Create>().GetSingleEntity(new { CN_S_FROM_NO = entity[0].CN_S_FROM_NO }); if (arrivalMst != null) { return OperateResult.Error("该入库订单已进入下一个流程,反审失败!"); } OperateResult operateResult = UseTransaction(trans => { //反审主表 CreateDAL().ExamineMst(entity, Constants.State_ReAudit, trans); //反审子表 CreateDAL().ExamineDtl(entity, Constants.State_ReAudit, trans); }); return operateResult; } #endregion #region 驳回入库订单 /// /// 驳回入库订单 /// /// 审批实体 /// 驳回记录实体 /// /// [HANHE(XDL)] CREATED BY 2018-11-14 public OperateResult RejectInOrder(List entity, TN_WM_B_REJECTEntity rejectEntity) { OperateResult operateResult = UseTransaction(trans => { //驳回主表 CreateDAL().ExamineMst(entity, Constants.State_Reject, trans); //驳回子表 CreateDAL().ExamineDtl(entity, Constants.State_Reject, trans); //插入驳回记录 CreateDAL>().Add(rejectEntity, trans); }); return operateResult; } #endregion #region 到货单联机新增-选择来源 /// /// 到货单页面,选择来源单据 /// /// 实体 /// /// [HANHE(XDL)] CREATED BY 2018-11-26 public OperateResult GetFromInOrderList(SearchModel searchModel) { return CreateDAL().GetFromInOrderList(searchModel); } public List GetFromInOrderDtl(string GetFromInOrderDtl) { return CreateDAL().GetFromInOrderDtl(GetFromInOrderDtl); } #endregion #region 查询到货单列表 /// /// 查询入库订单列表 /// /// 实体 /// /// [HANHE(XDL)] CREATED BY 2018-12-18 public OperateResult GetInOrderList(SearchModel searchModel) { return CreateDAL().GetInOrderList(searchModel); } #endregion #region 根据单号获取主子表信息 /// /// 根据单号获取主子表信息 /// /// 模糊查询条件:入库单号 /// public TN_WM_IN_MSTEntity GetInOrderMstAndDtl(string opNo) { TN_WM_IN_MSTEntity inMstEntity = CreateDAL>().GetSingleEntity(new { CN_S_OP_NO = opNo }); List inDtlEntity = CreateDAL>().GetList(new { CN_S_OP_NO = opNo }); //foreach (var entity in inDtlEntity) //{ // AutoBomItemEntity itemenity = CreateDAL().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 } }