| | |
| | | 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(); |
| | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | //替代品信息 |
| | | 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); |