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_IBasicService; using WIDESEA_IOutboundRepository; using WIDESEA_IOutboundService; using WIDESEA_IRecordService; using WIDESEA_IStockService; using WIDESEA_Model.Models; namespace WIDESEA_OutboundService { public partial class ProOutOrderService : ServiceBase, IProOutOrderService { private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly IBasicRepository _basicRepository; private readonly IMapper _mapper; public IProOutOrderRepository Repository => BaseDal; public ProOutOrderService(IProOutOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IMapper mapper) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; _basicRepository = basicRepository; _mapper = mapper; } /// /// 接收ERP成品出库单 /// /// public WebResponseContent ProductDeliveryOrder(ErpProOutOrderDTO outOrderDTO) { try { return outOrderDTO.Way switch { 1 => AddDeliveryOrder(outOrderDTO), 2 => UpdateDeliveryOrder(outOrderDTO), 3 => DeleteDeliveryOrder(outOrderDTO), _ => WebResponseContent.Instance.Error($"操作类型不存在,Way:{outOrderDTO.Way}"), }; } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); } } /// /// 新增成品出库单 /// /// public WebResponseContent AddDeliveryOrder(ErpProOutOrderDTO outOrderDTO) { WebResponseContent content=new WebResponseContent(); try { if (BaseDal.QueryFirst(x => x.ProOutOrderNo == outOrderDTO.OrderNo) != null) { return content.Error($"出库单号{outOrderDTO.OrderNo}已存在!"); } Dt_Warehouse warehouse=null; if (outOrderDTO.OType==1 && string.IsNullOrEmpty(outOrderDTO.WaType)) { warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString()); } else if (outOrderDTO.OType==2) { warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString()); } List proOutOrderDetails = new List(); foreach (var item in outOrderDTO.OrderDetails) { proOutOrderDetails.Add(_mapper.Map(item)); } Dt_ProOutOrder proOutOrder= new Dt_ProOutOrder() { ProOutOrderNo= outOrderDTO.OrderNo, WarehouseId= warehouse.WarehouseId, ProOrderType= outOrderDTO.OType, ProOrderStatus=OutOrderStatusEnum.未开始.ObjToInt(), PlantShipDate= outOrderDTO.PlantShipDate.ObjToDate(), Remark= outOrderDTO.Note, Details= proOutOrderDetails }; Db.InsertNav(proOutOrder).Include(x => x.Details).ExecuteCommand(); content.OK("成功"); } catch (Exception ex) { content.Error(ex.Message); } return content; } /// /// 更新成品出库单 /// /// public WebResponseContent UpdateDeliveryOrder(ErpProOutOrderDTO outOrderDTO) { WebResponseContent content = new WebResponseContent(); try { } catch (Exception ex) { content.Error(ex.Message); } return content; } /// /// 删除成品出库单 /// /// public WebResponseContent DeleteDeliveryOrder(ErpProOutOrderDTO outOrderDTO) { WebResponseContent content = new WebResponseContent(); try { } catch (Exception ex) { content.Error(ex.Message); } return content; } } }