From 09542900534645e28c23f16caa94aa8a2c20cc5b Mon Sep 17 00:00:00 2001 From: payne <bzrlw2012@163.com> Date: 周五, 03 5月 2024 16:10:02 +0800 Subject: [PATCH] 往来单位助记码功能调整为 中文名称输入立即调用接口实现 --- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs | 183 ++++++++++++++++++++++++++++++--------------- 1 files changed, 123 insertions(+), 60 deletions(-) diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs index 2f34e10..16f4aee 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs @@ -191,16 +191,26 @@ .ProjectToType<WmsControlRuleDetailOutput>() .ToListAsync(); + //鐗╂枡瀹㈡埛鍏宠仈 + var wmsMaterialCustomerList = await _wmsMaterialCustomerRep.DetachedEntities + .Where(u => u.MaterialId == wmsMaterialInfo.Id) + .Where(u => u.IsDeleted == false) + .OrderBy(o => o.CreatedTime) + .ProjectToType<WmsMaterialCustomerOutput>() + .ToListAsync(); + List<long> custIds = wmsMaterialCustomerList.Select(s => s.CustId).ToList(); //鏍规嵁鐗╂枡瀹㈡埛鍏宠仈琛ㄨ幏鍙栧線鏉ヤ俊鎭� - var baseCustomers = await _baseCustomerRep.DetachedEntities.Join(_wmsMaterialCustomerRep.DetachedEntities, bc => bc.Id, mc => mc.CustId, (bc, mc) => new { bc, mc }) - .Where(p =>p.mc.MaterialId== wmsMaterialInfo.Id) - .OrderBy(o => o.mc.CreatedTime) + var baseCustomers = await _baseCustomerRep.DetachedEntities + .Where(p => custIds.Contains(p.Id)) + .OrderBy(o => o.CreatedTime) .ProjectToType<BaseCustomerOutput>() .ToListAsync(); + resultInfo.MaterialInfo = wmsMaterialInfo; resultInfo.SubstituteGoodList = wmsSubstituteGoods; resultInfo.ControlRuleDetailList = wmsControlRuleDetails; + resultInfo.BaseCustomerList = baseCustomers; return resultInfo; } @@ -235,48 +245,76 @@ wmsMaterial.ControlRuleId = controlRuleld; //鑾峰彇鐗╂枡绫诲瀷 - var wmsMaterialType = (await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == wmsMaterial.MaterialType)).Adapt<WmsMaterialTypeOutput>(); + var wmsMaterialType = (await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == wmsMaterial.MaterialType && u.IsDeleted == false)).Adapt<WmsMaterialTypeOutput>(); if(wmsMaterialType==null) throw Oops.Oh($"ID{wmsMaterial.MaterialType}鐗╂枡绫诲瀷涓嶅瓨鍦�"); - wmsMaterial.MaterialTypeName = wmsMaterialType.MaterialTypeName; - - //寰�鏉ュ叧绯讳俊鎭� - var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>(); - //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 - var materialCustomerList=new List<WmsMaterialCustomer>(); - foreach (var baseCustomer in baseCustomerList) + wmsMaterial.MaterialTypeName = wmsMaterialType.MaterialTypeName; + var materialCustomerList = new List<WmsMaterialCustomer>(); + if (input.BaseCustomerList?.Count > 0) { - materialCustomerList.Add(new WmsMaterialCustomer() + //寰�鏉ュ崟浣� + var wmsBaseCustomerList = await _baseCustomerRep.DetachedEntities.Where(u => input.BaseCustomerList.Contains(u.Id) && u.IsDeleted == false).ProjectToType<BaseCustomerOutput>().ToListAsync(); + if (wmsBaseCustomerList?.Count() <= 0) { - CreatedTime = DateTime.Now, - CreatedUserId = CurrentUserInfo.UserId, - CreatedUserName = CurrentUserInfo.Name, - CustChinaName = baseCustomer.CustChinaName, - CustCode = baseCustomer.CustCode, - CustEnglishName = baseCustomer.CustEnglishName, - CustId = baseCustomer.Id, - MaterialCode = wmsMaterial.MaterialCode, - MaterialId = wmsMaterial.Id, - MaterialName = wmsMaterial.MaterialName, - UpdatedTime = DateTime.Now, - UpdatedUserId = CurrentUserInfo.UserId, - UpdatedUserName = CurrentUserInfo.Name - - }); + throw Oops.Oh($"寰�鏉ュ崟浣嶄笉瀛樺湪"); + } + + //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 + materialCustomerList = new List<WmsMaterialCustomer>(); + foreach (var baseCustomer in wmsBaseCustomerList) + { + if (baseCustomer.IsDisabled == true) + { + throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑寰�鏉ュ崟浣�"); + } + materialCustomerList.Add(new WmsMaterialCustomer() + { + CreatedTime = DateTime.Now, + CreatedUserId = CurrentUserInfo.UserId, + CreatedUserName = CurrentUserInfo.Name, + CustChinaName = baseCustomer.CustChinaName, + CustCode = baseCustomer.CustCode, + CustEnglishName = baseCustomer.CustEnglishName, + CustId = baseCustomer.Id, + MaterialCode = wmsMaterial.MaterialCode, + MaterialId = wmsMaterial.Id, + MaterialName = wmsMaterial.MaterialName, + UpdatedTime = DateTime.Now, + UpdatedUserId = CurrentUserInfo.UserId, + UpdatedUserName = CurrentUserInfo.Name + + }); + } } + //楠岃瘉 await CheckExisit(wmsMaterial); //鏇夸唬鍝佷俊鎭� var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); List<string> materialCodes = substituteGoodList.Select(s => s.SubstituteMaterialCode).ToList(); - var wmsSubstituteMaterialInfoList = await _wmsMaterialRep.DetachedEntities.Where(u => materialCodes.Contains(u.MaterialCode)&&u.IsDeleted==false&&u.IsDisabled==false).ProjectToType<WmsMaterialOutput>().ToListAsync(); - foreach (var item in substituteGoodList) + + if (materialCodes?.Count > 0) { - var substituteMaterialInfo = wmsSubstituteMaterialInfoList.FirstOrDefault(f=>f.MaterialCode== item.SubstituteMaterialCode); - item.SubstituteCode = await SerialUtil.GetSerial(EnumSerialType.鏇夸唬鍝佺紪鍙�); - item.SubstituteMaterialName = substituteMaterialInfo.MaterialName;//鏇夸唬鍝佺墿鏂欏悕绉� + var wmsSubstituteMaterialInfoList = await _wmsMaterialRep.DetachedEntities.Where(u => materialCodes.Contains(u.MaterialCode) && u.IsDeleted == false).ProjectToType<WmsMaterialOutput>().ToListAsync(); + if (wmsSubstituteMaterialInfoList?.Count <= 0) + { + throw Oops.Oh($"鏇夸唬鍝佺墿鏂欎笉瀛樺湪"); + } + + foreach (var item in substituteGoodList) + { + if (item.IsDisabled == true) + { + throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑鏇夸唬鍝佺墿鏂�"); + } + + var substituteMaterialInfo = wmsSubstituteMaterialInfoList.FirstOrDefault(f => f.MaterialCode == item.SubstituteMaterialCode); + item.SubstituteCode = await SerialUtil.GetSerial(EnumSerialType.鏇夸唬鍝佺紪鍙�); + item.SubstituteMaterialName = substituteMaterialInfo.MaterialName;//鏇夸唬鍝佺墿鏂欏悕绉� + } } + wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); wmsMaterial.UpdatedUserName = SysHelper.GetUserName(); @@ -327,7 +365,7 @@ var controlRuleld = input.ControlRuleld; wmsMaterial.ControlRuleId = controlRuleld; //鑾峰彇鐗╂枡绫诲瀷 - var wmsMaterialType = (await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == wmsMaterial.MaterialType)).Adapt<WmsMaterialTypeOutput>(); + var wmsMaterialType = (await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == wmsMaterial.MaterialType && u.IsDeleted == false)).Adapt<WmsMaterialTypeOutput>(); if (wmsMaterialType == null) throw Oops.Oh($"ID{wmsMaterial.MaterialType}鐗╂枡绫诲瀷涓嶅瓨鍦�"); wmsMaterial.MaterialTypeName = wmsMaterialType.MaterialTypeName; @@ -339,31 +377,44 @@ await _wmsMaterialCustomerRep.DeleteAsync(oldaterialCustomerList); } - - //寰�鏉ュ叧绯讳俊鎭� - var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>(); - //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 var materialCustomerList = new List<WmsMaterialCustomer>(); - foreach (var baseCustomer in baseCustomerList) + if (input.BaseCustomerList?.Count > 0) { - materialCustomerList.Add(new WmsMaterialCustomer() + //寰�鏉ュ崟浣� + var wmsBaseCustomerList = await _baseCustomerRep.DetachedEntities.Where(u => input.BaseCustomerList.Contains(u.Id) && u.IsDeleted == false).ProjectToType<BaseCustomerOutput>().ToListAsync(); + if (wmsBaseCustomerList?.Count() <= 0) { - CreatedTime = DateTime.Now, - CreatedUserId = CurrentUserInfo.UserId, - CreatedUserName = CurrentUserInfo.Name, - CustChinaName = baseCustomer.CustChinaName, - CustCode = baseCustomer.CustCode, - CustEnglishName = baseCustomer.CustEnglishName, - CustId = baseCustomer.Id, - MaterialCode = wmsMaterial.MaterialCode, - MaterialId = wmsMaterial.Id, - MaterialName = wmsMaterial.MaterialName, - UpdatedTime = DateTime.Now, - UpdatedUserId = CurrentUserInfo.UserId, - UpdatedUserName = CurrentUserInfo.Name + throw Oops.Oh($"寰�鏉ュ崟浣嶄笉瀛樺湪"); + } - }); + //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 + materialCustomerList = new List<WmsMaterialCustomer>(); + foreach (var baseCustomer in wmsBaseCustomerList) + { + if (baseCustomer.IsDisabled == true) + { + throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑寰�鏉ュ崟浣�"); + } + materialCustomerList.Add(new WmsMaterialCustomer() + { + CreatedTime = DateTime.Now, + CreatedUserId = CurrentUserInfo.UserId, + CreatedUserName = CurrentUserInfo.Name, + CustChinaName = baseCustomer.CustChinaName, + CustCode = baseCustomer.CustCode, + CustEnglishName = baseCustomer.CustEnglishName, + CustId = baseCustomer.Id, + MaterialCode = wmsMaterial.MaterialCode, + MaterialId = wmsMaterial.Id, + MaterialName = wmsMaterial.MaterialName, + UpdatedTime = DateTime.Now, + UpdatedUserId = CurrentUserInfo.UserId, + UpdatedUserName = CurrentUserInfo.Name + + }); + } } + //鍒犻櫎鏇夸唬鍝佷俊鎭� var oldSubstituteGoodList = await _wmsSubstituteGoodRep.DetachedEntities.Where(w => w.MaterialCode == wmsMaterial.MaterialCode).ToListAsync(); @@ -376,15 +427,27 @@ //鏇夸唬鍝佷俊鎭� var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); List<string> materialCodes = substituteGoodList.Select(s => s.SubstituteMaterialCode).ToList(); - var wmsSubstituteMaterialInfoList = await _wmsMaterialRep.DetachedEntities.Where(u => materialCodes.Contains(u.MaterialCode) && u.IsDeleted == false && u.IsDisabled == false).ProjectToType<WmsMaterialOutput>().ToListAsync(); - foreach (var item in substituteGoodList) + + if(materialCodes?.Count > 0) { - var substituteMaterialInfo = wmsSubstituteMaterialInfoList.FirstOrDefault(f => f.MaterialCode == item.SubstituteMaterialCode); - item.SubstituteCode = await SerialUtil.GetSerial(EnumSerialType.鏇夸唬鍝佺紪鍙�); - item.SubstituteMaterialName = substituteMaterialInfo.MaterialName;//鏇夸唬鍝佺墿鏂欏悕绉� + var wmsSubstituteMaterialInfoList = await _wmsMaterialRep.DetachedEntities.Where(u => materialCodes.Contains(u.MaterialCode) && u.IsDeleted == false).ProjectToType<WmsMaterialOutput>().ToListAsync(); + if (wmsSubstituteMaterialInfoList?.Count <= 0) + { + throw Oops.Oh($"鏇夸唬鍝佺墿鏂欎笉瀛樺湪"); + } + foreach (var item in substituteGoodList) + { + if (item.IsDisabled == true) + { + throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑鏇夸唬鍝佺墿鏂�"); + } + var substituteMaterialInfo = wmsSubstituteMaterialInfoList.FirstOrDefault(f => f.MaterialCode == item.SubstituteMaterialCode); + item.SubstituteCode = await SerialUtil.GetSerial(EnumSerialType.鏇夸唬鍝佺紪鍙�); + item.SubstituteMaterialName = substituteMaterialInfo.MaterialName;//鏇夸唬鍝佺墿鏂欏悕绉� + } } - - + + if (materialCustomerList?.Count > 0) { await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList); -- Gitblit v1.9.3