From 81cfbb34ad9092b19a2e3692786ee97f3646014b Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期一, 16 十二月 2024 21:30:46 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 99 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 96 insertions(+), 3 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index 986adc1..f21b03a 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -21,6 +21,8 @@ using WIDESEA_DTO; using WIDESEA_DTO.Basic; using WIDESEA_DTO.Inbound; +using WIDESEA_External.ERPService; +using WIDESEA_External.Model; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_IInboundRepository; @@ -42,10 +44,11 @@ private readonly IBasicRepository _basicRepository; private readonly IStockRepository _stockRepository; private readonly IRecordService _recordService; + private readonly IInvokeERPService _invokeERPService; public IInboundOrderRepository Repository => BaseDal; - public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, IStockRepository stockRepository, IRecordService recordService) : base(BaseDal) + public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, IStockRepository stockRepository, IRecordService recordService, IInvokeERPService invokeERPService) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -53,6 +56,7 @@ _basicRepository = basicRepository; _stockRepository = stockRepository; _recordService = recordService; + _invokeERPService = invokeERPService; } public WebResponseContent GetInboundOrders(SaveModel saveModel) { @@ -152,7 +156,10 @@ SerialNumber = model.SerialNumber, StockQuantity = model.Quantity, OutboundQuantity = 0, - Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() + Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), + ProductionDate = model.ProductionDate, + EffectiveDate = model.EffectiveDate, + InboundOrderRowNo = notGroupDetail.RowNo, }; _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand(); @@ -265,7 +272,10 @@ SerialNumber = model.SerialNumber, StockQuantity = model.Quantity, OutboundQuantity = 0, - Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() + Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), + ProductionDate = model.ProductionDate, + EffectiveDate = model.EffectiveDate, + InboundOrderRowNo = notGroupDetail.RowNo, }; if (stockInfo.Id > 0) @@ -306,5 +316,88 @@ return WebResponseContent.Instance.Error(ex.Message); } } + + public WebResponseContent FeedbackInboundOrder(int id) + { + try + { + Dt_InboundOrder inboundOrder = Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == id).Includes(x => x.Details).First(); + if (inboundOrder == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅"); + } + if (inboundOrder.Details == null || inboundOrder.Details.Count == 0) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅"); + } + if (inboundOrder.OrderStatus != InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt()) + { + return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟嵁鏈畬鎴�"); + } + if (inboundOrder.Details.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt()) != null) + { + return WebResponseContent.Instance.Error($"鍏ュ簱鏄庣粏鏈畬鎴�"); + } + + List<Dt_StockInfo> stockInfos = Db.Queryable<Dt_StockInfo>().Where(x => x.Details.Any(v => v.OrderNo == inboundOrder.InboundOrderNo)).Includes(x => x.Details).ToList(); + List<Dt_Warehouse> warehouses = Db.Queryable<Dt_Warehouse>().ToList(); + + List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>(); + foreach (var item in inboundOrder.Details) + { + Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(v => v.InboundOrderRowNo == item.RowNo && v.MaterielCode == item.MaterielCode)); + if (stockInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板簱瀛樹俊鎭�"); + } + + Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseId == stockInfo.WarehouseId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); + } + + ERPInboundDetailModel detailModel = new ERPInboundDetailModel() + { + ExpiryDate = stockInfo.Details.FirstOrDefault()?.EffectiveDate ?? "", + LocationCode = warehouse.WarehouseCode, + MaterialsCode = item.MaterielCode, + MfgDate = stockInfo.Details.FirstOrDefault()?.ProductionDate ?? "", + QtyCustoms = "0", + Quantity = stockInfo.Details.Sum(x => x.StockQuantity).ToString(), + Rack = stockInfo.LocationCode, + ReceiptCode = inboundOrder.UpperOrderNo, + ReceiptSerNo = item.RowNo.ToString() + }; + detailModels.Add(detailModel); + } + Dt_Warehouse? warehouse2 = warehouses.FirstOrDefault(x => x.WarehouseId == inboundOrder.WarehouseId); + if (warehouse2 == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); + } + ERPInboundModel model = new ERPInboundModel() + { + Code = inboundOrder.InboundOrderNo, + CreatorCode = inboundOrder.Creater, + EndDate = inboundOrder.CreateDate.ToString(), + StockDate = inboundOrder.CreateDate.ToString(), + SuppliersId = inboundOrder.SupplierId, + Type = "S", + UniqueTag = inboundOrder.Id.ToString(), + WarehouseCode = warehouse2.WarehouseCode, + Way = 1, + Details = detailModels + }; + + string response = _invokeERPService.InvokeInboundOrderApi(model); + + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } -- Gitblit v1.9.3