| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using AutoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using EyeSoft.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using EyeSoft.Runtime.InteropServices; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using NPOI.SS.Formula.Functions; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.Domain; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -54,16 +55,89 @@ namespace OASystem.Infrastructure.Repositories.Groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //添加特定人员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (feeBasePerm.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                viewPermissionData.AddRange(feeBasePerm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach (var item in feeBasePerm) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (item.Users.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        viewPermissionData.AddRange(item.Users); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return viewPermissionData.GroupBy(x => x.Id).Select(x => x.First()).OrderBy(x => x.Id).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return viewPermissionData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// 初始化配置权限 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="groupId"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <param name="currUserId"></param> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public async Task<bool> InitPerm(int groupId,int currUserId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var intlDplmcyBasePerm = new List<PermissionViewUserview>(); //国交部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var mktStratBasePerm = new List<PermissionViewUserview>();   //市场部 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (feeBasePerm.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var intlDplmcyData = feeBasePerm.Find(x => x.Dept.Equals("IntlDplmcy")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (intlDplmcyData != null) if (intlDplmcyData.Users.Any()) intlDplmcyBasePerm = intlDplmcyData.Users.ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var mktStratData = feeBasePerm.Find(x => x.Dept.Equals("MktStrat")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (mktStratData != null) if (mktStratData.Users.Any()) mktStratBasePerm = mktStratData.Users.ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             * 权限分配规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             * 刘琪、王鸽、朱琳的账号:默认只能刘、王、朱查看 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             * 舒庆的账号 默认只能舒、刘、王、朱查看 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             * 其他销售 默认只能自己、舒、刘、王、朱查看 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var feeBasePermIds = new List<int>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (intlDplmcyBasePerm.Any(x => x.Id == currUserId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds = intlDplmcyBasePerm.Select(x => x.Id).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else if (mktStratBasePerm.Any(x => x.Id == currUserId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds.AddRange(mktStratBasePerm.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds.AddRange(intlDplmcyBasePerm.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds.Add(currUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds.AddRange(mktStratBasePerm.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                feeBasePermIds.AddRange(intlDplmcyBasePerm.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (feeBasePermIds.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var permissions = new List<Grp_EnterExitCostPermission>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach (var userId in feeBasePermIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    permissions.Add(new Grp_EnterExitCostPermission() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        GroupId = groupId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        UserId = userId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Permission = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        CreateUserId = currUserId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (permissions.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// 出入境费用正式 --> 权限验证 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,8 +154,19 @@ namespace OASystem.Infrastructure.Repositories.Groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var permissionIds = new List<int>() { 1, 2, 3, 4, 5 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!permissionIds.Contains(permission)) return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (feeBasePerm.Any(x => x.Id == userId)) return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var feeBasePerm = AppSettingsHelper.Get<FeeBasePermView>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var feeBasePermUserIds = new List<int>();  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (feeBasePerm.Any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var intlDplmcyData = feeBasePerm.Find(x => x.Dept.Equals("IntlDplmcy")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (intlDplmcyData != null) if (intlDplmcyData.Users.Any()) feeBasePermUserIds.AddRange(intlDplmcyData.Users.Select(x=>x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var mktStratData = feeBasePerm.Find(x => x.Dept.Equals("MktStrat")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (mktStratData != null) if (mktStratData.Users.Any()) feeBasePermUserIds.AddRange(mktStratData.Users.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (feeBasePermUserIds.Any(x => x == userId)) return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var info = await _sqlSugar.Queryable<Grp_EnterExitCostPermission>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .Where(it => it.GroupId == groupId && it.UserId == userId && it.Permission == permission) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -405,8 +490,8 @@ namespace OASystem.Infrastructure.Repositories.Groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         var updateId = _sqlSugar.Updateable<Grp_EnterExitCost>(enterExitCost) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                .IgnoreColumns(it => new { it.DeleteUserId, it.DeleteTime, it.CreateUserId, it.CreateTime, it.IsDel }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                .ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .IgnoreColumns(it => new { it.DeleteUserId, it.DeleteTime, it.CreateUserId, it.CreateTime, it.IsDel }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .ExecuteCommand(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (updateId > 0) enterExitId = enterExitCost.Id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -435,25 +520,8 @@ namespace OASystem.Infrastructure.Repositories.Groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //默认添加查看、编辑权限(创建人、自己)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var feeBasePermIds = new List<int>() { dto.UserId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var feeBasePerm = AppSettingsHelper.Get<PermissionViewUserview>("FeeBasePerm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (feeBasePerm.Any()) feeBasePermIds.AddRange(feeBasePerm.Select(x => x.Id).ToList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        var permissions = new List<Grp_EnterExitCostPermission>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        foreach (var userId in feeBasePermIds) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            permissions.Add(new Grp_EnterExitCostPermission() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                GroupId = enterExitCost.DiId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                UserId = userId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                Permission = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                CreateUserId = dto.UserId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (permissions.Any()) await _sqlSugar.Insertable(permissions).ExecuteReturnIdentityAsync(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //初始化权限(查看、编辑)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        await InitPerm(dto.DiId, dto.UserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (enterExitId > 0) 
			 |