hutongqing
2024-12-16 d6ce83b1f1bb87b88c11df1e0fe96169de5b571f
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs
@@ -8,6 +8,9 @@
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Helper;
using WIDESEA_External.ERPService;
using WIDESEA_External.Model;
using WIDESEA_IBasicRepository;
using WIDESEA_ICheckRepository;
using WIDESEA_IInboundRepository;
using WIDESEA_IInboundService;
@@ -19,11 +22,15 @@
    {
        private readonly ICheckOrderRepository _checkOrderRepository;
        private readonly IInboundRepository _inboundRepository;
        private readonly IBasicRepository _basicRepository;
        private readonly IInvokeERPService _invokeERPService;
        public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository) : base(BaseDal)
        public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal)
        {
            _checkOrderRepository = checkOrderRepository;
            _inboundRepository = inboundRepository;
            _basicRepository = basicRepository;
            _invokeERPService = invokeERPService;
        }
        public override WebResponseContent AddData(SaveModel saveModel)
@@ -65,6 +72,74 @@
            return base.AddData(saveModel);
        }
        public WebResponseContent FeedbackReceiveOrder(int orderId)
        {
            try
            {
                Dt_ReceiveOrder receiveOrder = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderId == orderId).Includes(x => x.Details).First();
                if (receiveOrder == null)
                {
                    return WebResponseContent.Instance.Error($"未找到收货单");
                }
                if (receiveOrder.Details == null || receiveOrder.Details.Count == 0)
                {
                    return WebResponseContent.Instance.Error($"未找到收货单明细");
                }
                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == receiveOrder.WarehouseId);
                if (warehouse == null)
                {
                    return WebResponseContent.Instance.Error($"未找到仓库信息");
                }
                List<RecevieOrderDetailModel> recevieOrderDetails = new List<RecevieOrderDetailModel>();
                foreach (var item in receiveOrder.Details)
                {
                    RecevieOrderDetailModel recevieOrderDetail = new RecevieOrderDetailModel()
                    {
                        Currcode = "",
                        IfInspection = item.IfInspection,
                        Lotno = item.LotNo,
                        MaterialsId = item.MaterielCode,
                        PriceInTax = 0,
                        PurchaseOrderCode = item.PurchaseOrderNo,
                        PurchaseOrderSerno = item.PurchaseOrderDetailRowNo,
                        QtyReceived = item.ReceivedQuantity,
                        Serno = item.RowNo,
                        Supplotno = "",
                        Taxrate = ""
                    };
                    recevieOrderDetails.Add(recevieOrderDetail);
                }
                ERPReceiveModel receiveModel = new ERPReceiveModel()
                {
                    Code = receiveOrder.ReceiveOrderNo,
                    CompanyId = "",
                    DeliveryCode = receiveOrder.DeliveryCode,
                    CustomerId = receiveOrder.CustomerId,
                    CreatorId = receiveOrder.CustomerId,
                    EndDate = receiveOrder.CreateDate,
                    ReceiveDate = receiveOrder.CreateDate,
                    PlantsId = "",
                    SuppliersId = receiveOrder.SuppliersId,
                    Type = "PO",
                    UniqueTag = receiveOrder.ReceiveOrderId.ToString(),
                    WarehouseCode = warehouse.WarehouseCode,
                    Way = 1,
                    Details = recevieOrderDetails
                };
                string response = _invokeERPService.InvokeMatReceiveApi(receiveModel);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent CreateInboundOrder(int receiveOrderId)
        {
            try