From be0856c1bf533ed6001ff786908ae98e4b853eb5 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期四, 09 一月 2025 10:09:02 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 84 +++++++++++++++++++++++++++++++++--------- 1 files changed, 66 insertions(+), 18 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 9c7ded2..3c7c036 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> /// 鍏朵粬鍏ュ簱鍗曞垱寤� @@ -493,7 +495,7 @@ PalletCode = palletCode, StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), WarehouseId = inboundOrder.WarehouseId, - PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), + PalletType = GetPalletType(warehouse, palletCode, materielInfo), Details = new List<Dt_StockInfoDetail>() }; } @@ -504,7 +506,30 @@ return WebResponseContent.Instance.Error($"鎵樼洏鍙烽噸澶�"); } beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity); - }; + } + + if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) + { + stockInfo.Remark = Initiallife.ToString(); + string batchNo = models.FirstOrDefault()?.LotNo ?? ""; + Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo); + if (existDetail != null) + { + return WebResponseContent.Instance.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪"); + } + if (models.Count >= 2) + { + return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�"); + } + if (palletCode.Substring(0, 1) == "6") + { + stockInfo.PalletType = PalletTypeEnum.MediumPallet.ObjToInt(); + } + else + { + stockInfo.PalletType = PalletTypeEnum.LargestPallet.ObjToInt(); + } + } List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>(); List<int> detailKeys = new List<int>(); @@ -567,14 +592,6 @@ _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup); _unitOfWorkManage.CommitTran(); - //if (warehouse.WarehouseCode==WarehouseEnum.HA153.ToString()) - //{ - // //鍚屾娴嬭瘯鏋朵俊鎭� - // foreach (var model in models) - // { - // _taskService.TestSynStock(new TestToolSynInfo() { ToolCode = model.LotNo, Life = Initiallife }); - // } - //} content.OK(); } catch (Exception ex) @@ -614,6 +631,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() @@ -621,7 +639,7 @@ PalletCode = palletCode, StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt(), WarehouseId = warehouse.WarehouseId, - PalletType = PalletTypeEnum.SmallPallet.ObjToInt(), + PalletType = GetPalletType(warehouse, palletCode, materielInfo), Details = new List<Dt_StockInfoDetail>() }; } @@ -636,6 +654,16 @@ if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) { + string batchNo = models.FirstOrDefault()?.LotNo ?? ""; + Dt_StockInfoDetail existDetail = _stockRepository.StockInfoDetailRepository.QueryFirst(x => x.BatchNo == batchNo); + if (existDetail != null) + { + return WebResponseContent.Instance.Error($"{batchNo}娴嬭瘯鏋跺凡瀛樺湪"); + } + if (models.Count >= 2) + { + return WebResponseContent.Instance.Error($"缁勭洏鏄庣粏涓嶅敮涓�"); + } stockInfo.Remark = Initiallife.ToString(); if (palletCode.Substring(0, 1) == "6") { @@ -660,7 +688,7 @@ SerialNumber = model.SerialNumber, StockQuantity = model.Quantity, OutboundQuantity = 0, - Unit= materielInfo.MaterielUnit, + Unit = materielInfo.MaterielUnit, Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), ProductionDate = model.ProductionDate, EffectiveDate = model.EffectiveDate, @@ -689,11 +717,6 @@ } _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.MaterielGroup); _unitOfWorkManage.CommitTran(); - //鍚屾娴嬭瘯鏋朵俊鎭� - //foreach (var model in models) - //{ - // _taskService.TestSynStock(new TestToolSynInfo() { ToolCode = model.LotNo, Life = Initiallife }); - //} content.OK(); } catch (Exception ex) @@ -834,5 +857,30 @@ 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