lihao 4 年之前
父節點
當前提交
ce1f376bd0

+ 31 - 4
gx_api/GxPress/Repository/GxPress.Repository.Implement/DepartmentRepository.cs

@@ -367,6 +367,26 @@ namespace GxPress.Repository.Implement
             }
             return departments;
         }
+
+        /// <summary>
+        /// 获取所用上级部门
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="departments"></param>
+        /// <returns></returns>
+        public async Task<List<Department>> GetParentDepartmentById(int id, List<Department> departments)
+        {
+            var department = await _repository.GetAsync(id);
+            departments.Add(department);
+            if (department.ParentId == 0)
+                return departments;
+            department = await _repository.GetAsync(Q.Where(nameof(Entity.Department.ParentId), department.ParentId));
+            if (department == null)
+                return departments;
+            //departments.Add(item);
+            await GetParentDepartmentById(department.ParentId, departments);
+            return departments;
+        }
         /// <summary>
         /// 获取所用下级部门
         /// </summary>
@@ -432,7 +452,7 @@ namespace GxPress.Repository.Implement
                 departmentIdsList.AddRange(departmentIds);
             for (int i = 0; i < result.Result.Count; i++)
             {
-                for (int k = i + 1; k < result.Result.Count; k++)
+                for (int k = 0; k < result.Result.Count; k++)
                 {
                     if (result.Result[i].Item.Any(n => n.Id == result.Result[k].DepartmentId))
                     {
@@ -441,8 +461,8 @@ namespace GxPress.Repository.Implement
                     else if (result.Result[k].Item.Any(n => n.Id == result.Result[i].DepartmentId))
                     {
                         departmentIdsList.Add(result.Result[k].DepartmentId);
-                        result.Result[i].DepartmentId = result.Result[k].DepartmentId;
-                        result.Result[i].Item = result.Result[k].Item;
+                        // result.Result[i].DepartmentId = result.Result[k].DepartmentId;
+                        // result.Result[i].Item = result.Result[k].Item;
                     }
                     else
                     {
@@ -452,7 +472,14 @@ namespace GxPress.Repository.Implement
                 }
             }
             departmentIdsList = await GetDepartmentDistinct(allDepartment.ToList(), departmentIdsList.Distinct().ToList());
-            return await GetAllAsync(Q.WhereIn(nameof(Entity.Department.Id), departmentIdsList));
+            departmentIdsList = departmentIdsList.Distinct().ToList();
+            var departments = new List<Entity.Department>();
+            foreach (var departmentId in departmentIdsList)
+            {
+                var item = await GetParentDepartmentById(departmentId, new List<Entity.Department>());
+                departments.Add(item.Where(n=>n.ParentId==0).FirstOrDefault());
+            }
+            return departments;
             //
         }
 

+ 7 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/IDepartmentRepository.cs

@@ -101,5 +101,12 @@ namespace GxPress.Repository.Interface
         /// <returns></returns>
         Task<List<Department>> GetDepartmentByPid(int Pid, List<Department> departments, List<Department> allDepartments);
         Task<IEnumerable<Entity.Department>> GetUserInDepartmentAsync(List<int> departmentIds);
+        /// <summary>
+        /// 获取所用上级部门
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="departments"></param>
+        /// <returns></returns>
+        Task<List<Department>> GetParentDepartmentById(int id, List<Department> departments);
     }
 }

+ 1 - 0
gx_api/GxPress/Service/GxPress.Service.Implement/Collection/CollectionService.cs

@@ -408,6 +408,7 @@ namespace GxPress.Service.Implement.Collection
                                 item.Title = item.Data.Text;
                             else if (item.Data.Data.Type == AllTypeConst.Text.GetHashCode())
                                 item.Title = item.Data.Data.Text;
+                                
                             else if (item.Data.Data.Type == AllTypeConst.Image.GetHashCode())
                                 item.Title = "[图片]";
                             else

+ 8 - 0
gx_api/GxPress/Service/GxPress.Service.Implement/Notice/NoticeService.Insert.cs

@@ -222,6 +222,14 @@ namespace GxPress.Service.Implement.Notice
         {
             try
             {
+                //查询是否存在
+                var query = Q.NewQuery();
+                query.Where(nameof(Entity.WorkFlow.FlowTodo.UserId), request.UserId);
+                query.Where(nameof(Entity.WorkFlow.FlowTodo.FlowId), request.SoureId);
+                query.WhereIn(nameof(Entity.WorkFlow.FlowTodo.Type), new List<string> { "CarbonCopy", "ApproverCheck" });
+                var resultCount = await flowTodoRepository.CountAsync(query);
+                if (resultCount > 0)
+                    return true;
                 using (var transactionScope = new TransactionScope())
                 {
                     var noticeId = await _noticeRepository.InsertAsync(request);

+ 5 - 1
gx_api/GxPress/Service/GxPress.Service.Implement/Notice/NoticeService.cs

@@ -23,6 +23,7 @@ using Newtonsoft.Json;
 using GxPress.Service.Interface.UserMiddle;
 using GxPress.Service.Interface.ContentJson;
 using GxPress.Service.Interface.CommonSqlKata;
+using GxPress.Repository.Interface.WorkFlow;
 
 namespace GxPress.Service.Implement.Notice
 {
@@ -42,6 +43,7 @@ namespace GxPress.Service.Implement.Notice
         private readonly IUserMiddleService _userMiddleService;
         private readonly IContentJsonService _contentJsonService;
         private readonly ICommonSqlKataService commonSqlKataService;
+        private readonly IFlowTodoRepository flowTodoRepository;
         public NoticeService(IUserRepository userRepository, IMapper mapper, INoticeRepository noticeRepository,
             ICcRepository ccRepository, IAddresseeRepository addresseeRepository,
             IDepartmentRepository departmentRepository, IMiddleService middleService,
@@ -49,7 +51,8 @@ namespace GxPress.Service.Implement.Notice
             ICommentRepository commentRepository, IVisitService visitService,
             IUserMiddleService userMiddleService,
             IContentJsonService contentJsonService,
-            ICommonSqlKataService commonSqlKataService)
+            ICommonSqlKataService commonSqlKataService,
+            IFlowTodoRepository flowTodoRepository)
         {
             _noticeRepository = noticeRepository;
             _userRepository = userRepository;
@@ -65,6 +68,7 @@ namespace GxPress.Service.Implement.Notice
             _userMiddleService = userMiddleService;
             _contentJsonService = contentJsonService;
             this.commonSqlKataService = commonSqlKataService;
+            this.flowTodoRepository = flowTodoRepository;
         }
         /// <summary>
         /// 获取通知的点赞列表