From 81ec65b31b86ca9d5590573485f3617b5d069c0a Mon Sep 17 00:00:00 2001 From: payne <bzrlw2012@163.com> Date: 周三, 24 4月 2024 23:02:42 +0800 Subject: [PATCH] 物料编辑 新增 接口物料客户关系、控制属性、替代品 可为空 --- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs | 18 +++++- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs | 2 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs | 3 - iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsSubstituteGood/Dto/WmsSubstituteGoodInput.cs | 7 -- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs | 118 ++++++++++++++++++++++++++++++++++++--- 5 files changed, 124 insertions(+), 24 deletions(-) diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs index 0ff0c25..d179e9d 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs @@ -207,13 +207,11 @@ /// <summary> /// 瀹㈡埛缂栧彿 /// </summary> - [Required(ErrorMessage = "瀹㈡埛缂栧彿涓嶈兘涓虹┖")] public virtual string CustCode { get; set; } /// <summary> /// 瀹㈡埛涓枃鍚嶇О /// </summary> - [Required(ErrorMessage = "瀹㈡埛涓枃鍚嶇О涓嶈兘涓虹┖")] public virtual string CustChinaName { get; set; } /// <summary> @@ -229,7 +227,6 @@ /// <summary> /// 绫诲瀷 /// </summary> - [Required(ErrorMessage = "绫诲瀷涓嶈兘涓虹┖")] public virtual int CustType { get; set; } /// <summary> diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs index 7245cc1..3ef7770 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs @@ -413,6 +413,18 @@ } /// <summary> + /// 缂栬緫鐗╂枡涓氬姟淇℃伅瀹炰綋鍏ュ弬--鍖呭惈鐗╂枡銆佺墿鏂欏鎴峰叧绯汇�佹帶鍒跺睘鎬с�佹浛浠e搧 + /// </summary> + public class UpdateWmsMaterialInfoInput : AddWmsMaterialInfoInput + { + /// <summary> + /// Id涓婚敭 + /// </summary> + [Required(ErrorMessage = "Id涓婚敭涓嶈兘涓虹┖")] + public long? Id { get; set; } + } + + /// <summary> /// 鐗╂枡淇℃伅琛ㄨ幏鍙栧崟涓弬鏁� /// </summary> public class QueryeWmsMaterialInput : BaseId @@ -433,17 +445,17 @@ /// <summary> /// 鎺у埗灞炴�ц鍒橧D /// </summary> - public long ControlRuleld { get; set; } + public long? ControlRuleld { get; set; } /// <summary> /// 鏇夸唬鍝� /// </summary> - public List<WmsSubstituteGood> SubstituteGoodList { get; set; } + public List<AddWmsSubstituteGoodInput> SubstituteGoodList { get; set; } /// <summary> /// 瀹㈡埛妗f /// </summary> - public List<BaseCustomer> BaseCustomerList { get; set; } + public List<BaseCustomerInput> BaseCustomerList { get; set; } } } diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs index 7b873a7..2b885b8 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs @@ -14,7 +14,7 @@ Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input); Task Add(AddWmsMaterialInfoInput input); - Task Update(UpdateWmsMaterialInput input); + Task Update(UpdateWmsMaterialInfoInput input); Task Delete(DeleteWmsMaterialInput input); Task<int> ImportExcelAsync(IFormFile file); IActionResult DownloadExcelTemplate(string version); 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 db9d7b2..83c63b7 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 @@ -221,9 +221,9 @@ //鏇夸唬鍝佷俊鎭� var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); - wmsMaterial.CreatedUserId = wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); - wmsMaterial.CreatedUserName = wmsMaterial.UpdatedUserName = SysHelper.GetUserName(); - wmsMaterial.CreatedTime = wmsMaterial.UpdatedTime = SysHelper.GetNowTime(); + wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); + wmsMaterial.UpdatedUserName = SysHelper.GetUserName(); + wmsMaterial.UpdatedTime = SysHelper.GetNowTime(); await _wmsMaterialRep.InsertAsync(wmsMaterial); @@ -256,19 +256,80 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("WmsMaterial/edit")] - public async Task Update(UpdateWmsMaterialInput input) + [UnitOfWork] + public async Task Update(UpdateWmsMaterialInfoInput input) { - var isExist = await _wmsMaterialRep.AnyAsync(u => u.Id == input.Id, false); + //鐗╂枡淇℃伅 + var wmsMaterial = input.MaterialInput.Adapt<WmsMaterial>(); + var isExist = await _wmsMaterialRep.AnyAsync(u => u.Id == wmsMaterial.Id, false); if (!isExist) throw Oops.Oh(ErrorCode.D1002); - - var wmsMaterial = input.Adapt<WmsMaterial>(); //楠岃瘉 await CheckExisit(wmsMaterial, true); + + //鎺у埗瑙勫垯淇℃伅 + var controlRuleld = input.ControlRuleld; + wmsMaterial.ControlRuleId = controlRuleld; + + + //鍒犻櫎鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 + var oldaterialCustomerList = await _wmsMaterialCustomerRep.DetachedEntities.Where(w => w.MaterialId == wmsMaterial.Id).ToListAsync(); + if (oldaterialCustomerList?.Count > 0) + { + await _wmsMaterialCustomerRep.DeleteAsync(oldaterialCustomerList); + } + + + //瀹㈡埛妗f淇℃伅 + var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>(); + //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴 + var materialCustomerList = new List<WmsMaterialCustomer>(); + foreach (var baseCustomer in baseCustomerList) + { + 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(); + if (oldSubstituteGoodList?.Count > 0) + { + await _wmsSubstituteGoodRep.DeleteAsync(oldSubstituteGoodList); + } + + + //鏇夸唬鍝佷俊鎭� + var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); + + if (materialCustomerList?.Count > 0) + { + await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList); + } + if (substituteGoodList?.Count > 0) + { + await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList); + } wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); wmsMaterial.UpdatedUserName = SysHelper.GetUserName(); wmsMaterial.UpdatedTime = SysHelper.GetNowTime(); await _wmsMaterialRep.UpdateAsync(wmsMaterial, ignoreNullValues: true); + + } #endregion @@ -614,9 +675,14 @@ bool isExist = false; if (!isEdit)//鏂板 { - //鏁版嵁鏄惁瀛樺湪閲嶅 + //鐗╂枡缂栧彿鏄惁瀛樺湪閲嶅 isExist = await _wmsMaterialRep.AnyAsync(u => u.MaterialCode.Equals(input.MaterialCode) + , false); + + //鐗╂枡鍚嶇О鏄惁瀛樺湪閲嶅 + isExist = await _wmsMaterialRep.AnyAsync(u => + u.MaterialName.Equals(input.MaterialName) , false); } else//缂栬緫 @@ -624,10 +690,15 @@ - //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅 + //褰撳墠缂栬緫鐗╂枡缂栧彿浠ュ鏄惁瀛樺湪閲嶅 isExist = await _wmsMaterialRep.AnyAsync(u => u.Id != input.Id && u.MaterialCode.Equals(input.MaterialCode) + , false); + //褰撳墠缂栬緫鐗╂枡鍚嶇О浠ュ鏄惁瀛樺湪閲嶅 + isExist = await _wmsMaterialRep.AnyAsync(u => + u.Id != input.Id + && u.MaterialName.Equals(input.MaterialName) , false); } @@ -663,7 +734,19 @@ throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�"); } - + var existExcelItem2 = inputs.GroupBy(g => new { + g.MaterialName + }) + .Where(g => g.Count() > 1) + .Select(s => new { + s.Key.MaterialName + }).FirstOrDefault(); + if (existExcelItem2 != null) + { + var wmsMaterial = existExcelItem2.Adapt<WmsMaterial>(); + var item = existExcelItem2.Adapt<WmsMaterial>(); + throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡鍚嶇О[{item.MaterialName}]宸插瓨鍦�"); + } //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� @@ -680,6 +763,21 @@ var item = existExcelItem.Adapt<WmsMaterial>(); throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�"); } + + //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + var existDBItem2 = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w => + inputs.Select(s => "" + + s.MaterialName + ) + .Contains("" + + w.MaterialName + )); + if (existDBItem2 != null) + { + var wmsMaterial = existExcelItem2.Adapt<WmsMaterial>(); + var item = existExcelItem.Adapt<WmsMaterial>(); + throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialName}]宸插瓨鍦�"); + } } #endregion diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsSubstituteGood/Dto/WmsSubstituteGoodInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsSubstituteGood/Dto/WmsSubstituteGoodInput.cs index 32c1005..7cd66bd 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsSubstituteGood/Dto/WmsSubstituteGoodInput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsSubstituteGood/Dto/WmsSubstituteGoodInput.cs @@ -137,43 +137,36 @@ /// <summary> /// 鏇夸唬缂栧彿 /// </summary> - [Required(ErrorMessage = "鏇夸唬缂栧彿涓嶈兘涓虹┖")] public virtual string SubstituteCode { get; set; } /// <summary> /// 鐗╂枡缂栧彿 /// </summary> - [Required(ErrorMessage = "鐗╂枡缂栧彿涓嶈兘涓虹┖")] public virtual string MaterialCode { get; set; } /// <summary> /// 鐗╂枡鍚嶇О /// </summary> - [Required(ErrorMessage = "鐗╂枡鍚嶇О涓嶈兘涓虹┖")] public virtual string MaterialName { get; set; } /// <summary> /// 鏇夸唬鍝佺墿鏂欑紪鍙� /// </summary> - [Required(ErrorMessage = "鏇夸唬鍝佺墿鏂欑紪鍙蜂笉鑳戒负绌�")] public virtual string SubstituteMaterialCode { get; set; } /// <summary> /// 鏇夸唬鍝佺墿鏂欏悕绉� /// </summary> - [Required(ErrorMessage = "鏇夸唬鍝佺墿鏂欏悕绉颁笉鑳戒负绌�")] public virtual string SubstituteMaterialName { get; set; } /// <summary> /// 鏇夸唬娆″簭 /// </summary> - [Required(ErrorMessage = "鏇夸唬娆″簭涓嶈兘涓虹┖")] public virtual int SubstituteIndex { get; set; } /// <summary> /// 鏄惁绂佺敤 /// </summary> - [Required(ErrorMessage = "鏄惁绂佺敤涓嶈兘涓虹┖")] public virtual bool IsDisabled { get; set; } } -- Gitblit v1.9.3