From bac077fc7f67a1002b4dafa64e069cbbaabc646a Mon Sep 17 00:00:00 2001
From: payne <bzrlw2012@163.com>
Date: 周五, 26 4月 2024 11:00:00 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse
---
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