From 3946fe3c23ff022b7e1d27c2a29041496ef6d529 Mon Sep 17 00:00:00 2001
From: payne <bzrlw2012@163.com>
Date: 周五, 26 4月 2024 10:10:43 +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 | 164 ++++++++++++++++++++++++++++++------------------------
1 files changed, 90 insertions(+), 74 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 7b882f7..72e144a 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
@@ -13,6 +13,7 @@
using System.Web;
using System.ComponentModel;
using System.Data;
+using Microsoft.CodeAnalysis;
namespace Admin.NET.Application
{
/// <summary>
@@ -31,6 +32,8 @@
private readonly IRepository<BaseCustomer, MasterDbContextLocator> _baseCustomerRep;
private readonly IRepository<WmsSubstituteGood, MasterDbContextLocator> _wmsSubstituteGoodRep;
private readonly IRepository<WmsControlRuleDetail, MasterDbContextLocator> _wmsControlRuleDetailRep;
+ private readonly IRepository<WmsMaterialType, MasterDbContextLocator> _wmsMaterialTypeRep;
+ private readonly IRepository<WmsUnit, MasterDbContextLocator> _wmsUnitRep;
public WmsMaterialService(
IRepository<WmsMaterial,MasterDbContextLocator> wmsMaterialRep
,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
@@ -40,6 +43,8 @@
, IRepository<BaseCustomer, MasterDbContextLocator> baseCustomerRep
, IRepository<WmsSubstituteGood, MasterDbContextLocator> wmsSubstituteGoodRep
, IRepository<WmsControlRuleDetail, MasterDbContextLocator> wmsControlRuleDetailRep
+ , IRepository<WmsMaterialType, MasterDbContextLocator> wmsMaterialTypeRep
+ , IRepository<WmsUnit, MasterDbContextLocator> wmsUnitRep
)
{
_wmsMaterialRep = wmsMaterialRep;
@@ -50,6 +55,8 @@
_baseCustomerRep = baseCustomerRep;
_wmsSubstituteGoodRep = wmsSubstituteGoodRep;
_wmsControlRuleDetailRep = wmsControlRuleDetailRep;
+ _wmsMaterialTypeRep = wmsMaterialTypeRep;
+ _wmsUnitRep = wmsUnitRep;
}
/// <summary>
/// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅
@@ -169,7 +176,7 @@
var wmsMaterialInfo =(await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialOutput>();
//鑾峰彇鏇挎崲鐗╂枡淇℃伅
var wmsSubstituteGoods = await _wmsSubstituteGoodRep.DetachedEntities
- .Where(u => u.MaterialCode == wmsMaterialInfo.MaterialName)
+ .Where(u => u.MaterialCode == wmsMaterialInfo.MaterialCode)
.Where(u => u.IsDeleted == false)
.Where(u => u.IsDisabled == false)
.OrderBy(o => o.CreatedTime)
@@ -184,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;
}
@@ -226,13 +243,28 @@
//鎺у埗瑙勫垯淇℃伅
var controlRuleld = input.ControlRuleld;
wmsMaterial.ControlRuleId = controlRuleld;
+
+ //鑾峰彇鐗╂枡绫诲瀷
+ 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}鐗╂枡绫诲瀷涓嶅瓨鍦�");
- //寰�鏉ュ叧绯讳俊鎭�
- var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
+ wmsMaterial.MaterialTypeName = wmsMaterialType.MaterialTypeName;
+
+ //寰�鏉ュ崟浣�
+ var wmsBaseCustomerList = await _baseCustomerRep.DetachedEntities.Where(u => input.BaseCustomerList.Contains(u.Id) && u.IsDeleted == false).ProjectToType<BaseCustomerOutput>().ToListAsync();
+ if (wmsBaseCustomerList?.Count()<=0)
+ {
+ throw Oops.Oh($"寰�鏉ュ崟浣嶄笉瀛樺湪");
+ }
+
//鐗╂枡瀹㈡埛鍏宠仈鍏崇郴
var materialCustomerList=new List<WmsMaterialCustomer>();
- foreach (var baseCustomer in baseCustomerList)
+ foreach (var baseCustomer in wmsBaseCustomerList)
{
+ if (baseCustomer.IsDisabled == true)
+ {
+ throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑寰�鏉ュ崟浣�");
+ }
materialCustomerList.Add(new WmsMaterialCustomer()
{
CreatedTime = DateTime.Now,
@@ -256,9 +288,23 @@
//鏇夸唬鍝佷俊鎭�
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).ProjectToType<WmsMaterialOutput>().ToListAsync();
+ if (wmsSubstituteMaterialInfoList?.Count <= 0)
+ {
+ throw Oops.Oh($"鏇夸唬鍝佺墿鏂欎笉瀛樺湪");
+ }
+
foreach (var item in substituteGoodList)
{
- item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID
+ 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();
@@ -309,7 +355,11 @@
//鎺у埗瑙勫垯淇℃伅
var controlRuleld = input.ControlRuleld;
wmsMaterial.ControlRuleId = controlRuleld;
+ //鑾峰彇鐗╂枡绫诲瀷
+ 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 oldaterialCustomerList = await _wmsMaterialCustomerRep.DetachedEntities.Where(w => w.MaterialId == wmsMaterial.Id).ToListAsync();
@@ -319,12 +369,21 @@
}
- //寰�鏉ュ叧绯讳俊鎭�
- var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
+ //寰�鏉ュ崟浣�
+ var wmsBaseCustomerList = await _baseCustomerRep.DetachedEntities.Where(u => input.BaseCustomerList.Contains(u.Id) && u.IsDeleted == false).ProjectToType<BaseCustomerOutput>().ToListAsync();
+ if (wmsBaseCustomerList?.Count() <= 0)
+ {
+ throw Oops.Oh($"寰�鏉ュ崟浣嶄笉瀛樺湪");
+ }
+
//鐗╂枡瀹㈡埛鍏宠仈鍏崇郴
var materialCustomerList = new List<WmsMaterialCustomer>();
- foreach (var baseCustomer in baseCustomerList)
+ foreach (var baseCustomer in wmsBaseCustomerList)
{
+ if (baseCustomer.IsDisabled == true)
+ {
+ throw Oops.Oh($"涓嶈兘浣跨敤宸茬鐢ㄧ殑寰�鏉ュ崟浣�");
+ }
materialCustomerList.Add(new WmsMaterialCustomer()
{
CreatedTime = DateTime.Now,
@@ -354,11 +413,23 @@
//鏇夸唬鍝佷俊鎭�
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).ProjectToType<WmsMaterialOutput>().ToListAsync();
+ if (wmsSubstituteMaterialInfoList?.Count <= 0)
+ {
+ throw Oops.Oh($"鏇夸唬鍝佺墿鏂欎笉瀛樺湪");
+ }
foreach (var item in substituteGoodList)
{
- item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID
+ 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);
@@ -433,11 +504,8 @@
var _MaterialName = "";//鐗╂枡鍚嶇О
var _MaterialCode = "";//鐗╂枡缂栧彿
var _ErpCode = "";//ERP缂栧彿
- var _MaterialTypeName = "";//鐗╂枡绫诲瀷鍚嶇О
- var _MaterialTypeDescr = "";//鐗╂枡绫诲瀷鎻忚堪
var _MaterialType = "";//鐗╂枡绫诲瀷
var _MaterialGroup = "";//鐗╂枡缁�
- var _ABCClassName = "";//ABC鍒嗙被鍚嶇О
var _ABCClass = "";//ABC鍒嗙被
var _MaterialSpec = "";//鐗╂枡瑙勬牸
var _InPlaceCode = "";//榛樿鍏ュ簱搴撲綅
@@ -459,11 +527,8 @@
_MaterialName = row["鐗╂枡鍚嶇О"]?.ToString();
_MaterialCode = row["鐗╂枡缂栧彿"]?.ToString();
_ErpCode = row["ERP缂栧彿"]?.ToString();
- _MaterialTypeName = row["鐗╂枡绫诲瀷鍚嶇О"]?.ToString();
- _MaterialTypeDescr = row["鐗╂枡绫诲瀷鎻忚堪"]?.ToString();
_MaterialType = row["鐗╂枡绫诲瀷"]?.ToString();
_MaterialGroup = row["鐗╂枡缁�"]?.ToString();
- _ABCClassName = row["ABC鍒嗙被鍚嶇О"]?.ToString();
_ABCClass = row["ABC鍒嗙被"]?.ToString();
_MaterialSpec = row["鐗╂枡瑙勬牸"]?.ToString();
_InPlaceCode = row["榛樿鍏ュ簱搴撲綅"]?.ToString();
@@ -506,14 +571,7 @@
{
addItem.ErpCode = (string)_ErpCode;
}
- if (!string.IsNullOrEmpty(_MaterialTypeName))
- {
- addItem.MaterialTypeName = (string)_MaterialTypeName;
- }
- if (!string.IsNullOrEmpty(_MaterialTypeDescr))
- {
- addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
- }
+
if (string.IsNullOrEmpty(_MaterialType))
{
@@ -522,26 +580,15 @@
if (!string.IsNullOrEmpty(_MaterialType))
{
- System.Int32 enumMaterialType = default(System.Int32);
-
- if (!Enum.TryParse<System.Int32>(_MaterialType, out enumMaterialType) && !string.IsNullOrEmpty(_MaterialType))
- {
- throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉姝g‘锛�");
- }
- else
- {
- addItem.MaterialType = enumMaterialType;
- }
-
+ //TODO 鏍规嵁鐗╂枡绫诲瀷ID鑾峰彇鐗╂枡绫诲瀷
+ addItem.MaterialType = 0;
+ addItem.MaterialTypeName = "";
}
if (!string.IsNullOrEmpty(_MaterialGroup))
{
addItem.MaterialGroup = (string)_MaterialGroup;
}
- if (!string.IsNullOrEmpty(_ABCClassName))
- {
- addItem.ABCClassName = (string)_ABCClassName;
- }
+
if (!string.IsNullOrEmpty(_ABCClass))
{
Admin.NET.Core.ABCClassEnum enumABCClass = default(Admin.NET.Core.ABCClassEnum);
@@ -611,38 +658,7 @@
}
}
- if (!string.IsNullOrEmpty(_BatchRuleId))
- {
- if (!long.TryParse(_BatchRuleId, out long outBatchRuleId) && !string.IsNullOrEmpty(_BatchRuleId))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉姝g‘锛�");
- }
- if (outBatchRuleId <= 0 && !string.IsNullOrEmpty(_BatchRuleId))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.BatchRuleId = outBatchRuleId;
- }
-
- }
- if (!string.IsNullOrEmpty(_ControlRuleId))
- {
- if (!long.TryParse(_ControlRuleId, out long outControlRuleId) && !string.IsNullOrEmpty(_ControlRuleId))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉姝g‘锛�");
- }
- if (outControlRuleId <= 0 && !string.IsNullOrEmpty(_ControlRuleId))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.ControlRuleId = outControlRuleId;
- }
-
- }
+
if (!string.IsNullOrEmpty(_IsDisabled))
{
if (!_IsDisabled.Equals("鏄�") && !_IsDisabled.Equals("鍚�"))
--
Gitblit v1.9.3