From 1c3c6a93bf2bb3af1aa13258640be333eef1e1c7 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 09 一月 2025 09:53:19 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 187 ++++++++++++++++++++++++++-------------------- 1 files changed, 107 insertions(+), 80 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 2fc9210..1c93c43 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" @@ -52,10 +52,11 @@ private readonly IRecordService _recordService; private readonly IInvokeERPService _invokeERPService; private readonly IWarehouseService _warehouseService; + private readonly IPalletTypeInfoRepository _palletTypeInfoRepository; public IInboundOrderRepository Repository => BaseDal; - public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, IStockRepository stockRepository, IRecordService recordService, IInvokeERPService invokeERPService, IWarehouseService warehouseService) : base(BaseDal) + public InboundOrderService(IInboundOrderRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IInboundRepository inboundRepository, IBasicRepository basicRepository, IStockRepository stockRepository, IRecordService recordService, IInvokeERPService invokeERPService, IWarehouseService warehouseService, IPalletTypeInfoRepository palletTypeInfoRepository) : base(BaseDal) { _mapper = mapper; _unitOfWorkManage = unitOfWorkManage; @@ -65,6 +66,7 @@ _recordService = recordService; _invokeERPService = invokeERPService; _warehouseService = warehouseService; + _palletTypeInfoRepository = palletTypeInfoRepository; } /// <summary> /// 鍏朵粬鍏ュ簱鍗曞垱寤� @@ -273,7 +275,7 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅"); } - + Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == orderNo && x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).First(); if (inboundOrder == null) { @@ -331,7 +333,7 @@ PalletCode = palletCode, StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), WarehouseId = inboundOrder.WarehouseId, - PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), + PalletType = GetPalletType(warehouse, palletCode, materielInfo), Details = new List<Dt_StockInfoDetail>() }; } @@ -353,7 +355,7 @@ { return WebResponseContent.Instance.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪"); } - if (models.Count>=2) + if (models.Count >= 2) { return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�"); } @@ -466,7 +468,7 @@ float beforeQuantity = 0; Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); - + if (stockInfo == null) { stockInfo = new Dt_StockInfo() @@ -474,7 +476,7 @@ PalletCode = palletCode, StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt(), WarehouseId = warehouse.WarehouseId, - PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), + PalletType = GetPalletType(warehouse, palletCode, materielInfo), Details = new List<Dt_StockInfoDetail>() }; } @@ -523,7 +525,7 @@ SerialNumber = model.SerialNumber, StockQuantity = model.Quantity, OutboundQuantity = 0, - Unit= materielInfo.MaterielUnit, + Unit = materielInfo.MaterielUnit, Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), ProductionDate = model.ProductionDate, EffectiveDate = model.EffectiveDate, @@ -615,82 +617,107 @@ /// </summary> /// <param name="id"></param> /// <returns></returns> - //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($"鍏ュ簱鍗曟嵁宸插畬鎴�"); - // } + 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($"鍏ュ簱鍗曟嵁宸插畬鎴�"); + } - // 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<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($"鏈壘鍒板簱瀛樹俊鎭�"); - // } + 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($"鏈壘鍒颁粨搴撲俊鎭�"); - // } + 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,//娴嬭瘯 - // EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), - // StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), - // SuppliersId = inboundOrder.SupplierId, - // Type = "S", - // UniqueTag = inboundOrder.Id.ToString(), - // WarehouseCode = warehouse2.WarehouseCode, - // Way = 1, - // Details = detailModels - // }; - // //娴嬭瘯娉ㄩ噴 - // _invokeERPService.InvokeInboundOrderApi(model); - // return WebResponseContent.Instance.OK(); - // } - // catch (Exception ex) - // { - // return WebResponseContent.Instance.Error(ex.Message); - // } - //} + 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,//娴嬭瘯 + EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), + StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + SuppliersId = inboundOrder.SupplierId, + Type = "S", + UniqueTag = inboundOrder.Id.ToString(), + WarehouseCode = warehouse2.WarehouseCode, + Way = 1, + Details = detailModels + }; + //娴嬭瘯娉ㄩ噴 + _invokeERPService.InvokeInboundOrderApi(model); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + + public int GetPalletType(Dt_Warehouse warehouse, string palletCode, Dt_MaterielInfo materielInfo) + { + if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) + { + if (palletCode.Substring(0, 1) == "6") + { + return PalletTypeEnum.MediumPallet.ObjToInt(); + } + else + { + return PalletTypeEnum.LargestPallet.ObjToInt(); + } + } + else if (warehouse.WarehouseCode == WarehouseEnum.HA152.ObjToString()) + { + Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2)); + if (palletTypeInfo == null) + { + throw new Exception($"鎵樼洏鍙烽敊璇�"); + } + return palletTypeInfo.PalletType; + } + return -1; + } } } -- Gitblit v1.9.3