using AutoMapper; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Helper; using WIDESEA_DTO.ERP; using WIDESEA_IBasicRepository; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_Model.Models; namespace WIDESEA_InboundService { public class ErpProInOrderService : ServiceBase, IErpProInOrderService { public IErpProInOrderRepository Repository => BaseDal; private readonly IUnitOfWorkManage _unitOfWorkManage; private IBasicRepository _basicRepository; private readonly IMapper _mapper; public ErpProInOrderService(IErpProInOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManag, IBasicRepository basicRepository,IMapper mapper) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManag; _basicRepository = basicRepository; _mapper = mapper; } /// /// 接收成品调入销售单据 /// public WebResponseContent ProductWarehousingOrder(ErpProductWarehousingOrderDTO warehousingOrderDTO) { WebResponseContent content = new WebResponseContent(); try { //判断单据是否已存在 Dt_ErpProInOrder erpProInOrderOld = BaseDal.QueryFirst(x => x.UpperOrderNo == warehousingOrderDTO.TransferNo); if ( erpProInOrderOld != null ) { return content.Error($"单据{warehousingOrderDTO.TransferNo}已存在"); } //判断所传客户是否存在 Dt_CustomerInfo customerInfo = _basicRepository.CustomerInfoRepository.QueryFirst(x=>x.Code==warehousingOrderDTO.Customer); if ( customerInfo == null ) { return content.Error($"客户{warehousingOrderDTO.Customer}信息不存在"); } Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString()); ErpProOrderTypeEnum orderTypeEnum = new ErpProOrderTypeEnum(); if (warehousingOrderDTO.TransferNo.Substring(0, 3)=="DBD") { orderTypeEnum = ErpProOrderTypeEnum.ProAllocat; } else { orderTypeEnum = ErpProOrderTypeEnum.ProConsign; } Dt_ErpProInOrder erpProInOrder = _mapper.Map(warehousingOrderDTO); erpProInOrder.OrderType = orderTypeEnum.ObjToInt(); erpProInOrder.WarehouseId = warehouse.WarehouseId; BaseDal.AddData(erpProInOrder); content.OK(); } catch (Exception ex) { content.Error(ex.Message); } return content; } } }