From 2ba495dce3e0c99ed4e59d5ac7b1514e188d4a83 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 25 4月 2024 10:00:19 +0800
Subject: [PATCH] 1
---
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs | 817 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 460 insertions(+), 357 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 95805a1..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
@@ -45,9 +45,8 @@
_wmsMaterialCustomerRep = wmsMaterialCustomerRep;
_wmsSubstituteGoodRep = wmsSubstituteGoodRep;
}
-
/// <summary>
- /// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅琛�
+ /// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@@ -55,7 +54,7 @@
public async Task<PageResult<WmsMaterialOutput>> Page([FromQuery] WmsMaterialSearch input)
{
var wmsMaterials = await _wmsMaterialRep.DetachedEntities
- .Where(!string.IsNullOrEmpty(input.MaterialName), u => EF.Functions.Like(u.MaterialName, $"%{input.MaterialName.Trim()}%"))
+ .Where(!string.IsNullOrEmpty(input.MaterialName), u => u.MaterialName == input.MaterialName)
.Where(!string.IsNullOrEmpty(input.MaterialCode), u => u.MaterialCode == input.MaterialCode)
.Where(!string.IsNullOrEmpty(input.ErpCode), u => u.ErpCode == input.ErpCode)
.Where(!string.IsNullOrEmpty(input.MaterialTypeName), u => u.MaterialTypeName == input.MaterialTypeName)
@@ -76,8 +75,8 @@
.Where(input.ControlRuleId != null, u => u.ControlRuleId == input.ControlRuleId)
.Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled)
.Where(!string.IsNullOrEmpty(input.MaterialDesc), u => u.MaterialDesc == input.MaterialDesc)
- .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1]))
- .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1]))
+ .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1]))
+ .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1]))
.Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName)
.Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName)
.OrderBy(PageInputOrder.OrderBuilder<WmsMaterialSearch>(input))
@@ -87,10 +86,10 @@
}
/// <summary>
- /// 涓嶅垎椤垫煡璇㈢墿鏂欎俊鎭〃鍒楄〃
+ /// 涓嶅垎椤垫煡璇㈢墿鏂欎俊鎭垪琛�
/// </summary>
- /// <param name="input">鐗╂枡淇℃伅琛ㄦ煡璇㈠弬鏁�</param>
- /// <returns>(鐗╂枡淇℃伅琛�)瀹炰緥鍒楄〃</returns>
+ /// <param name="input">鐗╂枡淇℃伅鏌ヨ鍙傛暟</param>
+ /// <returns>(鐗╂枡淇℃伅)瀹炰緥鍒楄〃</returns>
[HttpGet("WmsMaterial/listNonPage")]
public async Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input)
{
@@ -120,7 +119,7 @@
var pCreatedUserName = input.CreatedUserName?.Trim() ?? "";
var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
var wmsMaterials = await _wmsMaterialRep.DetachedEntities
- .Where(!string.IsNullOrEmpty(pMaterialName), u => EF.Functions.Like(u.MaterialName, $"%{pMaterialName}%"))
+ .Where(!string.IsNullOrEmpty(pMaterialName), u => u.MaterialName == pMaterialName)
.Where(!string.IsNullOrEmpty(pMaterialCode), u => u.MaterialCode == pMaterialCode)
.Where(!string.IsNullOrEmpty(pErpCode), u => u.ErpCode == pErpCode)
.Where(!string.IsNullOrEmpty(pMaterialTypeName), u => u.MaterialTypeName == pMaterialTypeName)
@@ -141,8 +140,8 @@
.Where(pControlRuleId != null, u => u.ControlRuleId == pControlRuleId)
.Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled)
.Where(!string.IsNullOrEmpty(pMaterialDesc), u => u.MaterialDesc == pMaterialDesc)
- .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1]))
- .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1]))
+ .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1]))
+ .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1]))
.Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName)
.Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName)
.OrderBy(PageInputOrder.OrderNonPageBuilder(input))
@@ -151,8 +150,8 @@
return wmsMaterials;
}
- /// <summary>
- /// 鑾峰彇鐗╂枡淇℃伅琛�
+ /// <summary>
+ /// 鑾峰彇鐗╂枡淇℃伅
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@@ -163,7 +162,7 @@
}
/// <summary>
- /// 鑾峰彇鐗╂枡淇℃伅琛ㄥ垪琛�
+ /// 鑾峰彇鐗╂枡淇℃伅鍒楄〃
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@@ -222,19 +221,24 @@
//鏇夸唬鍝佷俊鎭�
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);
- await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
- await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
-
+ if (materialCustomerList?.Count > 0)
+ {
+ await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
+ }
+ if (substituteGoodList?.Count > 0)
+ {
+ await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
+ }
}
/// <summary>
- /// 鍒犻櫎鐗╂枡淇℃伅琛�
+ /// 鍒犻櫎鐗╂枡淇℃伅
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
@@ -243,28 +247,89 @@
{
var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.Id == input.Id);
await _wmsMaterialRep.DeleteAsync(wmsMaterial);
-
+
}
/// <summary>
- /// 鏇存柊鐗╂枡淇℃伅琛�
+ /// 鏇存柊鐗╂枡淇℃伅
/// </summary>
/// <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);
+ 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);
+ await _wmsMaterialRep.UpdateAsync(wmsMaterial, ignoreNullValues: true);
+
+
}
#endregion
@@ -272,23 +337,23 @@
#region 瀵煎叆
/// <summary>
- /// Excel妯℃澘瀵煎叆鐗╂枡淇℃伅琛ㄥ姛鑳�
+ /// Excel妯℃澘瀵煎叆鐗╂枡淇℃伅鍔熻兘
/// </summary>
/// <param name="file">Excel妯℃澘鏂囦欢</param>
/// <returns>瀵煎叆鐨勮褰曟暟</returns>
[HttpPost("WmsMaterial/importExcel")]
public async Task<int> ImportExcelAsync(IFormFile file)
- {
+ {
int _HeadStartLine = 2;//绗�1琛屾槸璇存槑,绗�2琛屾槸鍒楀悕
int _DataStartLine = 3;//绗�3琛屽紑濮嬫槸鏁版嵁
DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine);
- var addList =await CommonImport(importDataTable, _DataStartLine);
+ var addList = await CommonImport(importDataTable, _DataStartLine);
lock (_lock)
{
_wmsMaterialRep.InsertAsync(addList);
-
+
}
await Task.CompletedTask;
return addList.Count;
@@ -309,277 +374,278 @@
{
index++;
- //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
-
- var addItem = new WmsMaterial()
- {
- CreatedTime = SysHelper.GetNowTime(),
- CreatedUserId = SysHelper.GetUserId(),
- CreatedUserName = SysHelper.GetUserName(),
- UpdatedTime = SysHelper.GetNowTime(),
- UpdatedUserId = SysHelper.GetUserId(),
- UpdatedUserName = SysHelper.GetUserName()
- };
- #region 瀹氫箟鍙橀噺
- 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 = "";//榛樿鍏ュ簱搴撲綅
- var _MaterialUnit = "";//搴撳瓨鍗曚綅
- var _POUnit = "";//閲囪喘鍗曚綅
- var _Color = "";//棰滆壊
- var _Weight = "";//閲嶉噺
- var _SNP = "";//鏍囧寘鏁伴噺
- var _TranslateRate = "";//鎹㈢畻鐜�
- var _BatchRuleId = "";//鎵规灞炴�ц鍒�
- var _ControlRuleId = "";//鎺у埗灞炴�ц鍒�
- var _IsDisabled = "";//鏄惁绂佺敤
- var _MaterialDesc = "";//鎻忚堪
- var _Id = "";//Id涓婚敭
- #endregion
-
-
- #region 鍙栧��
- _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() ;
- _MaterialUnit = row["搴撳瓨鍗曚綅"]?.ToString() ;
- _POUnit = row["閲囪喘鍗曚綅"]?.ToString() ;
- _Color = row["棰滆壊"]?.ToString() ;
- _Weight = row["閲嶉噺"]?.ToString() ;
- _SNP = row["鏍囧寘鏁伴噺"]?.ToString() ;
- _TranslateRate = row["鎹㈢畻鐜�"]?.ToString() ;
- _BatchRuleId = row["鎵规灞炴�ц鍒�"]?.ToString() ;
- _ControlRuleId = row["鎺у埗灞炴�ц鍒�"]?.ToString() ;
- _IsDisabled = row["鏄惁绂佺敤"]?.ToString() ;
- _MaterialDesc = row["鎻忚堪"]?.ToString() ;
- _Id = row["Id涓婚敭"]?.ToString() ;
- #endregion
-
-
- #region 楠岃瘉
-
- if (string.IsNullOrEmpty(_MaterialName))
- {
- throw Oops.Oh($"绗瑊index}琛孾鐗╂枡鍚嶇О]{_MaterialName}涓嶈兘涓虹┖锛�");
- }
-
- if(!string.IsNullOrEmpty(_MaterialName))
- {
- addItem.MaterialName = (string)_MaterialName;
- }
-
- if (string.IsNullOrEmpty(_MaterialCode))
- {
- throw Oops.Oh($"绗瑊index}琛孾鐗╂枡缂栧彿]{_MaterialCode}涓嶈兘涓虹┖锛�");
- }
-
- if(!string.IsNullOrEmpty(_MaterialCode))
- {
- addItem.MaterialCode = (string)_MaterialCode;
- }
- if(!string.IsNullOrEmpty(_ErpCode))
- {
- addItem.ErpCode = (string)_ErpCode;
- }
- if(!string.IsNullOrEmpty(_MaterialTypeName))
- {
- addItem.MaterialTypeName = (string)_MaterialTypeName;
- }
- if(!string.IsNullOrEmpty(_MaterialTypeDescr))
- {
- addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
- }
- if(!string.IsNullOrEmpty(_MaterialType))
- {
- if (!int.TryParse(_MaterialType, out int outMaterialType)&&!string.IsNullOrEmpty(_MaterialType))
- {
- throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉姝g‘锛�");
- }
- if (outMaterialType <= 0&&!string.IsNullOrEmpty(_MaterialType))
- {
- throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.MaterialType = outMaterialType;
- }
-
- }
- if(!string.IsNullOrEmpty(_MaterialGroup))
- {
- addItem.MaterialGroup = (string)_MaterialGroup;
- }
- if(!string.IsNullOrEmpty(_ABCClassName))
- {
- addItem.ABCClassName = (string)_ABCClassName;
- }
- if(!string.IsNullOrEmpty(_ABCClass))
- {
- if (!int.TryParse(_ABCClass, out int outABCClass)&&!string.IsNullOrEmpty(_ABCClass))
- {
- throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉姝g‘锛�");
- }
- if (outABCClass <= 0&&!string.IsNullOrEmpty(_ABCClass))
- {
- throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.ABCClass = outABCClass;
- }
-
- }
- if(!string.IsNullOrEmpty(_MaterialSpec))
- {
- addItem.MaterialSpec = (string)_MaterialSpec;
- }
- if(!string.IsNullOrEmpty(_InPlaceCode))
- {
- addItem.InPlaceCode = (string)_InPlaceCode;
- }
- if(!string.IsNullOrEmpty(_MaterialUnit))
- {
- addItem.MaterialUnit = (string)_MaterialUnit;
- }
- if(!string.IsNullOrEmpty(_POUnit))
- {
- addItem.POUnit = (string)_POUnit;
- }
- if(!string.IsNullOrEmpty(_Color))
- {
- addItem.Color = (string)_Color;
- }
- if(!string.IsNullOrEmpty(_Weight))
- {
- addItem.Weight = (string)_Weight;
- }
- if(!string.IsNullOrEmpty(_SNP))
- {
- if (!decimal.TryParse(_SNP, out decimal outSNP)&&!string.IsNullOrEmpty(_SNP))
- {
- throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉姝g‘锛�");
- }
- if (outSNP <= 0&&!string.IsNullOrEmpty(_SNP))
- {
- throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.SNP = outSNP;
- }
-
- }
- if(!string.IsNullOrEmpty(_TranslateRate))
- {
- if (!decimal.TryParse(_TranslateRate, out decimal outTranslateRate)&&!string.IsNullOrEmpty(_TranslateRate))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉姝g‘锛�");
- }
- if (outTranslateRate <= 0&&!string.IsNullOrEmpty(_TranslateRate))
- {
- throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.TranslateRate = outTranslateRate;
- }
-
- }
- 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("鍚�"))
- {
- throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�");
- }
- else
- {
- bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false;
- addItem.IsDisabled = outIsDisabled;
- }
- }
-
- if(!string.IsNullOrEmpty(_MaterialDesc))
- {
- addItem.MaterialDesc = (string)_MaterialDesc;
- }
- if(!string.IsNullOrEmpty(_Id))
- {
- if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
- {
- throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉姝g‘锛�");
- }
- if (outId <= 0&&!string.IsNullOrEmpty(_Id))
- {
- throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
- }
- else
- {
- addItem.Id = outId;
- }
-
- }
- #endregion
-
+ //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
-
+ var addItem = new WmsMaterial()
+ {
+ CreatedTime = SysHelper.GetNowTime(),
+ CreatedUserId = SysHelper.GetUserId(),
+ CreatedUserName = SysHelper.GetUserName(),
+ UpdatedTime = SysHelper.GetNowTime(),
+ UpdatedUserId = SysHelper.GetUserId(),
+ UpdatedUserName = SysHelper.GetUserName()
+ };
+ #region 瀹氫箟鍙橀噺
+ 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 = "";//榛樿鍏ュ簱搴撲綅
+ var _MaterialUnit = "";//搴撳瓨鍗曚綅
+ var _POUnit = "";//閲囪喘鍗曚綅
+ var _Color = "";//棰滆壊
+ var _Weight = "";//閲嶉噺
+ var _SNP = "";//鏍囧寘鏁伴噺
+ var _TranslateRate = "";//鎹㈢畻鐜�
+ var _BatchRuleId = "";//鎵规灞炴�ц鍒�
+ var _ControlRuleId = "";//鎺у埗灞炴�ц鍒�
+ var _IsDisabled = "";//鏄惁绂佺敤
+ var _MaterialDesc = "";//鎻忚堪
+ var _Id = "";//Id涓婚敭
+ #endregion
+
+
+ #region 鍙栧��
+ _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();
+ _MaterialUnit = row["搴撳瓨鍗曚綅"]?.ToString();
+ _POUnit = row["閲囪喘鍗曚綅"]?.ToString();
+ _Color = row["棰滆壊"]?.ToString();
+ _Weight = row["閲嶉噺"]?.ToString();
+ _SNP = row["鏍囧寘鏁伴噺"]?.ToString();
+ _TranslateRate = row["鎹㈢畻鐜�"]?.ToString();
+ _BatchRuleId = row["鎵规灞炴�ц鍒�"]?.ToString();
+ _ControlRuleId = row["鎺у埗灞炴�ц鍒�"]?.ToString();
+ _IsDisabled = row["鏄惁绂佺敤"]?.ToString();
+ _MaterialDesc = row["鎻忚堪"]?.ToString();
+ _Id = row["Id涓婚敭"]?.ToString();
+ #endregion
+
+
+ #region 楠岃瘉
+
+ if (string.IsNullOrEmpty(_MaterialName))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡鍚嶇О]{_MaterialName}涓嶈兘涓虹┖锛�");
+ }
+
+ if (!string.IsNullOrEmpty(_MaterialName))
+ {
+ addItem.MaterialName = (string)_MaterialName;
+ }
+
+ if (string.IsNullOrEmpty(_MaterialCode))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡缂栧彿]{_MaterialCode}涓嶈兘涓虹┖锛�");
+ }
+
+ if (!string.IsNullOrEmpty(_MaterialCode))
+ {
+ addItem.MaterialCode = (string)_MaterialCode;
+ }
+ if (!string.IsNullOrEmpty(_ErpCode))
+ {
+ addItem.ErpCode = (string)_ErpCode;
+ }
+ if (!string.IsNullOrEmpty(_MaterialTypeName))
+ {
+ addItem.MaterialTypeName = (string)_MaterialTypeName;
+ }
+ if (!string.IsNullOrEmpty(_MaterialTypeDescr))
+ {
+ addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
+ }
+
+ if (string.IsNullOrEmpty(_MaterialType))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}涓嶈兘涓虹┖锛�");
+ }
+
+ 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;
+ }
+
+ }
+ 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);
+
+ if (!Enum.TryParse < Admin.NET.Core.ABCClassEnum > (_ABCClass, out enumABCClass)&& !string.IsNullOrEmpty(_ABCClass))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉姝g‘锛�");
+ } else
+ {
+ addItem.ABCClass = enumABCClass;
+ }
+
+ }
+ if (!string.IsNullOrEmpty(_MaterialSpec))
+ {
+ addItem.MaterialSpec = (string)_MaterialSpec;
+ }
+ if (!string.IsNullOrEmpty(_InPlaceCode))
+ {
+ addItem.InPlaceCode = (string)_InPlaceCode;
+ }
+ if (!string.IsNullOrEmpty(_MaterialUnit))
+ {
+ addItem.MaterialUnit = (string)_MaterialUnit;
+ }
+ if (!string.IsNullOrEmpty(_POUnit))
+ {
+ addItem.POUnit = (string)_POUnit;
+ }
+ if (!string.IsNullOrEmpty(_Color))
+ {
+ addItem.Color = (string)_Color;
+ }
+ if (!string.IsNullOrEmpty(_Weight))
+ {
+ addItem.Weight = (string)_Weight;
+ }
+ if (!string.IsNullOrEmpty(_SNP))
+ {
+ if (!decimal.TryParse(_SNP, out decimal outSNP) && !string.IsNullOrEmpty(_SNP))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉姝g‘锛�");
+ }
+ if (outSNP <= 0 && !string.IsNullOrEmpty(_SNP))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+ }
+ else
+ {
+ addItem.SNP = outSNP;
+ }
+
+ }
+ if (!string.IsNullOrEmpty(_TranslateRate))
+ {
+ if (!decimal.TryParse(_TranslateRate, out decimal outTranslateRate) && !string.IsNullOrEmpty(_TranslateRate))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉姝g‘锛�");
+ }
+ if (outTranslateRate <= 0 && !string.IsNullOrEmpty(_TranslateRate))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+ }
+ else
+ {
+ addItem.TranslateRate = outTranslateRate;
+ }
+
+ }
+ 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("鍚�"))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�");
+ }
+ else
+ {
+ bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false;
+ addItem.IsDisabled = outIsDisabled;
+ }
+ }
+
+ if (!string.IsNullOrEmpty(_MaterialDesc))
+ {
+ addItem.MaterialDesc = (string)_MaterialDesc;
+ }
+ if (!string.IsNullOrEmpty(_Id))
+ {
+ if (!long.TryParse(_Id, out long outId) && !string.IsNullOrEmpty(_Id))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉姝g‘锛�");
+ }
+ if (outId <= 0 && !string.IsNullOrEmpty(_Id))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+ }
+ else
+ {
+ addItem.Id = outId;
+ }
+
+ }
+ #endregion
+
+
+
details.Add(addItem);
}
- //楠岄噸
- await CheckExisitForImport(details);
-
+ //楠岄噸
+ await CheckExisitForImport(details);
+
return details;
}
/// <summary>
- /// 鏍规嵁鐗堟湰涓嬭浇鐗╂枡淇℃伅琛ㄧ殑Excel瀵煎叆妯℃澘
+ /// 鏍规嵁鐗堟湰涓嬭浇鐗╂枡淇℃伅鐨凟xcel瀵煎叆妯℃澘
/// </summary>
/// <param name="version">妯℃澘鐗堟湰</param>
/// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns>
@@ -587,7 +653,7 @@
public IActionResult DownloadExcelTemplate([FromQuery] string version)
{
string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\WmsMaterial{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx";
- var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鐗╂枡淇℃伅琛�).xlsx", Encoding.GetEncoding("UTF-8"));
+ var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鐗╂枡淇℃伅).xlsx", Encoding.GetEncoding("UTF-8"));
return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
}
@@ -601,80 +667,117 @@
/// <param name="input"></param>
/// <param name="isEdit"></param>
/// <returns></returns>
- private async Task CheckExisit( WmsMaterial input,bool isEdit=false)
+ private async Task CheckExisit(WmsMaterial input, bool isEdit = false)
{
-
-
- bool isExist = false;
- if (!isEdit)//鏂板
- {
- //鏁版嵁鏄惁瀛樺湪閲嶅
- isExist = await _wmsMaterialRep.AnyAsync(u =>
- u.MaterialCode.Equals(input.MaterialCode)
- ,false);
- }
- else//缂栬緫
- {
-
-
- //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅
- isExist = await _wmsMaterialRep.AnyAsync(u =>
- u.Id != input.Id
- &&u.MaterialCode.Equals(input.MaterialCode)
- ,false);
- }
-
-
+
+ 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//缂栬緫
+ {
+
+
+
+ //褰撳墠缂栬緫鐗╂枡缂栧彿浠ュ鏄惁瀛樺湪閲嶅
+ 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);
+ }
+
+
if (isExist) throw Oops.Oh(ErrorCode.E0001);
- }
-
+ }
+
/// <summary>
/// 鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁鏄惁宸插瓨鍦�-瀵煎叆鏃堕獙璇�
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
private async Task CheckExisitForImport(List<WmsMaterial> inputs)
- {
+ {
//鏍规嵁鑱斿悎涓婚敭楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
- if (inputs?.Count <= 0)
- {
- throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
- }
- //鏁版嵁鏄惁閲嶅
- var existExcelItem = inputs.GroupBy(g => new {
- g.MaterialCode
- })
- .Where(g => g.Count() > 1)
- .Select(s => new {
- s.Key.MaterialCode
- }).FirstOrDefault();
- if (existExcelItem != null)
- {
- var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
- var item= existExcelItem.Adapt<WmsMaterial>();
- throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
- }
-
+ if (inputs?.Count <= 0)
+ {
+ throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+ }
+ //鏁版嵁鏄惁閲嶅
+ var existExcelItem = inputs.GroupBy(g => new {
+ g.MaterialCode
+ })
+ .Where(g => g.Count() > 1)
+ .Select(s => new {
+ s.Key.MaterialCode
+ }).FirstOrDefault();
+ if (existExcelItem != null)
+ {
+ var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
+ var item = existExcelItem.Adapt<WmsMaterial>();
+ 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}]宸插瓨鍦�");
+ }
+ //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+ var existDBItem = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w =>
+ inputs.Select(s => ""
+ + s.MaterialCode
+ )
+ .Contains(""
+ + w.MaterialCode
+ ));
+ if (existDBItem != null)
+ {
+ var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
+ var item = existExcelItem.Adapt<WmsMaterial>();
+ throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
+ }
- //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
- var existDBItem = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w=>
- inputs.Select(s=>""
- +s.MaterialCode
- )
- .Contains(""
- +w.MaterialCode
- ));
- if (existDBItem != null)
- {
- var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
- 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
--
Gitblit v1.9.3