From 73e52dd9e61cabc5c05da94e7f4c024078f0be31 Mon Sep 17 00:00:00 2001
From: payne <bzrlw2012@163.com>
Date: 周四, 25 4月 2024 20:12:45 +0800
Subject: [PATCH] 1

---
 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs |   79 +++++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 28 deletions(-)

diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
index 3b36ac6..958d0a1 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
@@ -13,6 +13,8 @@
 using System.Web;
 using System.ComponentModel;
 using System.Data;
+using NetTopologySuite.Algorithm;
+using Pipelines.Sockets.Unofficial.Arenas;
 namespace Admin.NET.Application
 {
     /// <summary>
@@ -27,18 +29,23 @@
         private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
         private readonly ISysExcelTemplateService _sysExcelTemplateService;
         private readonly static object _lock = new();
-
+        private readonly IRepository<WmsMaterialType, MasterDbContextLocator> _wmsMaterialTypeRep;
+        private readonly IRepository<WmsContainerType, MasterDbContextLocator> _wmsContainerTypeRep;
         public WmsContainerPackagingService(
             IRepository<WmsContainerPackaging,MasterDbContextLocator> wmsContainerPackagingRep
             ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
             ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
             ,ISysExcelTemplateService sysExcelTemplateService
+            , IRepository<WmsMaterialType, MasterDbContextLocator> wmsMaterialTypeRep
+            , IRepository<WmsContainerType, MasterDbContextLocator> wmsContainerTypeRep
         )
         {
             _wmsContainerPackagingRep = wmsContainerPackagingRep;
          _sysDictTypeRep = sysDictTypeRep;
          _sysDictDataRep = sysDictDataRep;
          _sysExcelTemplateService = sysExcelTemplateService;
+            _wmsMaterialTypeRep = wmsMaterialTypeRep;
+            _wmsContainerTypeRep = wmsContainerTypeRep;
         }
 
         /// <summary>
@@ -134,7 +141,29 @@
         public async Task Add(AddWmsContainerPackagingInput input)
         {
             var wmsContainerPackaging = input.Adapt<WmsContainerPackaging>();
-                        //楠岃瘉
+
+           var wmsMaterialType=(await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.MaterialTypeId&&u.IsDeleted==false)).Adapt<WmsMaterialTypeOutput>();
+            if (wmsMaterialType == null)
+            {
+                throw Oops.Oh($"鐗╂枡绫诲瀷涓嶅瓨鍦�");
+            }
+            if (wmsMaterialType.IsDisabled == true)
+            {
+                throw Oops.Oh($"鐗╂枡绫诲瀷宸茬鐢�");
+            }
+            var wmsContainerType=(await _wmsContainerTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.ContainerTypeId&& u.IsDeleted == false)).Adapt<WmsContainerTypeOutput>();
+            if (wmsContainerType == null)
+            {
+                throw Oops.Oh($"瀹瑰櫒绫诲瀷涓嶅瓨鍦�");
+            }
+            if (wmsContainerType.IsDisabled == true)
+            {
+                throw Oops.Oh($"瀹瑰櫒绫诲瀷宸茬鐢�");
+            }
+            wmsContainerPackaging.ContainerTypeName = wmsContainerType.TypeName;
+            wmsContainerPackaging.MaterialTypeName= wmsMaterialType.MaterialTypeName;
+            wmsContainerPackaging.MaterialTypeCode = wmsMaterialType.MaterialTypeCode;
+            //楠岃瘉
             await CheckExisit(wmsContainerPackaging);
 
             wmsContainerPackaging.CreatedUserId = wmsContainerPackaging.UpdatedUserId = SysHelper.GetUserId();
@@ -237,7 +266,6 @@
                            var _MaterialTypeCode = "";//鐗╂枡绫诲瀷缂栧彿
                            var _MaterialTypeName = "";//鐗╂枡绫诲瀷鍚嶇О
                            var _BoxQty = "";//鐗╂枡瀹瑰櫒瀹归噺
-                           var _Id = "";//Id涓婚敭
                           #endregion
                           
                           
@@ -248,7 +276,6 @@
                            _MaterialTypeCode = row["鐗╂枡绫诲瀷缂栧彿"]?.ToString() ;
                            _MaterialTypeName = row["鐗╂枡绫诲瀷鍚嶇О"]?.ToString() ;
                            _BoxQty = row["鐗╂枡瀹瑰櫒瀹归噺"]?.ToString() ;
-                           _Id = row["Id涓婚敭"]?.ToString() ;
                           #endregion
                           
                           
@@ -349,22 +376,7 @@
                               }
                           
                           }
-                          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
                           
 
@@ -402,17 +414,23 @@
         /// <returns></returns>
         private async Task CheckExisit( WmsContainerPackaging input,bool isEdit=false)
         {
-           
 
-           
-           bool isExist = false;
+
+            string erorMsg = string.Empty;
+            bool isExist = false;
            if (!isEdit)//鏂板
            {
                    //鏁版嵁鏄惁瀛樺湪閲嶅
                    isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
                                    u.ContainerTypeId.Equals(input.ContainerTypeId)
+                                   &&u.MaterialTypeId.Equals(input.MaterialTypeId)
                    ,false);
-          }
+                if (isExist)
+                {
+                    erorMsg = $"绯荤粺涓�,瀹瑰櫒绫诲瀷[{input.ContainerTypeName}]-鐗╂枡绫诲瀷[{input.MaterialTypeName}]鍏崇郴宸插瓨鍦�";
+                    throw Oops.Oh(erorMsg);
+                }
+            }
            else//缂栬緫 
           {
 
@@ -421,13 +439,18 @@
                  //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅
                   isExist = await _wmsContainerPackagingRep.AnyAsync(u => 
                                     u.Id != input.Id
-                                    &&u.ContainerTypeId.Equals(input.ContainerTypeId)
-                    ,false);
-               }
+                                   &&u.ContainerTypeId.Equals(input.ContainerTypeId)
+                                   && u.MaterialTypeId.Equals(input.MaterialTypeId)
+                    , false);
+                if (isExist)
+                {
+                    erorMsg = $"绯荤粺涓�,瀹瑰櫒绫诲瀷[{input.ContainerTypeName}]-鐗╂枡绫诲瀷[{input.MaterialTypeName}]鍏崇郴宸插瓨鍦�";
+                    throw Oops.Oh(erorMsg);
+                }
+            }
                
         
 
-            if (isExist) throw Oops.Oh(ErrorCode.E0001);
        }
         
         /// <summary>

--
Gitblit v1.9.3