From b331d820b30bdff8eb868ad18837aaffe3d2158b Mon Sep 17 00:00:00 2001
From: payne <bzrlw2012@163.com>
Date: 周五, 26 4月 2024 10:25:55 +0800
Subject: [PATCH] 物料ABC类型 返回枚举值名称

---
 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 61 insertions(+), 16 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..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
@@ -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,17 +245,26 @@
             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;  
+            wmsMaterial.MaterialTypeName = wmsMaterialType.MaterialTypeName;
 
-            //寰�鏉ュ叧绯讳俊鎭�
-            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,
@@ -270,9 +289,19 @@
             //鏇夸唬鍝佷俊鎭�
             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();
+            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;//鏇夸唬鍝佺墿鏂欏悕绉�
@@ -327,7 +356,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;
@@ -340,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,
@@ -376,15 +414,22 @@
             //鏇夸唬鍝佷俊鎭�
             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();
+            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