Pārlūkot izejas kodu

1、团任务分配 新增 批量添加功能

LEIYI 6 mēneši atpakaļ
vecāks
revīzija
f470ba9175

+ 42 - 0
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -1183,6 +1183,48 @@ namespace OASystem.API.Controllers
             }
             return Ok(JsonView(true, groupData.Msg, groupData.Data));
         }
+
+
+        /// <summary>
+        /// 团组任务分配 
+        /// 批量分配 
+        /// 查询团组
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> TaskAllocationGroupSelect(TaskAllocationGroupSelectDto dto)
+        {
+            //参数验证
+            if (dto.PortType < 1 || dto.PortType > 3) return Ok(JsonView(false, MsgTips.Port));
+
+            if (!DateTime.TryParse(dto.VisitBeginDt,out _) || !DateTime.TryParse(dto.VisitEndDt,out _))
+                return Ok(JsonView(false, "团组出访开始/结束日期格式不正确!"));
+
+            return Ok(await _taskAssignmentRep.TaskAllocationGroupSelect(dto));
+        }
+
+        /// <summary>
+        /// 团组任务分配 
+        /// 批量分配 
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> TaskAllocationBulkAdd(TaskAllocationBulkAddDto dto)
+        {
+            //参数验证
+            if (dto.UserId < 1 ) return Ok(JsonView(false, MsgTips.UserId));
+
+            if (dto.OperateId < 1) return Ok(JsonView(false, MsgTips.OperateId));
+
+            if (dto.GroupIds.Length < 1) return Ok(JsonView(false, "请传入有效的GroupIds数组参数!"));
+
+            return Ok(await _taskAssignmentRep.TaskAllocationBulkAdd(dto));
+        }
+
         #endregion
 
         #region 团组费用审核

+ 15 - 0
OASystem/OASystem.Domain/Dtos/Groups/TaskAssignmenDto.cs

@@ -47,4 +47,19 @@ namespace OASystem.Domain.Dtos.Groups
         public int CTId { get; set; }
     }
 
+
+    public class TaskAllocationGroupSelectDto {
+
+        public int PortType { get; set; }
+        public string VisitBeginDt { get; set; }
+        public string VisitEndDt { get; set; }
+    }
+    public class TaskAllocationBulkAddDto
+    {
+        public int UserId { get; set; }
+        public int OperateId { get; set; }
+        public int[] GroupIds { get; set; }
+        public int CurrUserId { get; set; }
+    }
+
 }

+ 4 - 0
OASystem/OASystem.Domain/Result.cs

@@ -82,6 +82,10 @@ namespace OASystem.Domain
         /// </summary>
         public static string UserId = "请检查UserId是否正确!";
 
+        /// <summary>
+        /// OperateId错误消息提示
+        /// </summary>
+        public static string OperateId = "请传入有效的操作类型Id";
 
         /// <summary>
         /// PageId错误消息提示

+ 96 - 0
OASystem/OASystem.Infrastructure/Repositories/Groups/TaskAssignmentRepository.cs

@@ -1,5 +1,6 @@
 using AutoMapper;
 using MySqlX.XDevAPI.Relational;
+using NPOI.OpenXmlFormats.Shared;
 using OASystem.Domain;
 using OASystem.Domain.Dtos.Groups;
 using OASystem.Domain.Entities.Groups;
@@ -251,5 +252,100 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
             return result;
         }
+
+        /// <summary>
+        /// 团组任务分配 
+        /// 批量分配 
+        /// 查询团组
+        /// </summary>
+        /// <param name="UserTaskId"></param>
+        /// <returns></returns>
+        public async Task<JsonView> TaskAllocationGroupSelect(TaskAllocationGroupSelectDto dto)
+        {
+            JsonView _view = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "其他错误" };
+
+            DateTime beginDt, endDt;
+            if (!DateTime.TryParse(dto.VisitBeginDt, out beginDt) || !DateTime.TryParse(dto.VisitEndDt, out endDt))
+            {
+                _view.Msg = $"团组出访开始/结束日期格式不正确!";
+                return _view;
+            }
+
+            string beginStr = $"{beginDt.ToString("yyyy-MM-dd")} 00:00:00",
+                   endStr = $"{endDt.ToString("yyyy-MM-dd")} 23:59:59";
+
+            var data = await _sqlSugar.Queryable<Grp_DelegationInfo>()
+                .Where(it => it.IsDel == 0 && it.VisitDate >= beginDt && it.VisitDate <= endDt)
+                .Select(it => new {
+                    it.Id,
+                    //it.TeamName,
+                })
+                .ToListAsync();
+
+            _view.Code = StatusCodes.Status200OK;
+            _view.Msg = "操作成功!";
+            _view.Data = data;
+
+            return _view;
+        }
+
+
+        /// <summary>
+        /// 团组任务分配 
+        /// 批量分配 
+        /// 查询团组
+        /// </summary>
+        /// <param name="UserTaskId"></param>
+        /// <returns></returns>
+        public async Task<JsonView> TaskAllocationBulkAdd(TaskAllocationBulkAddDto dto)
+        {
+            JsonView _view = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "其他错误" };
+
+            int ctid = dto.OperateId,
+                uid = dto.UserId;
+
+            var infos = await _sqlSugar.Queryable<Grp_GroupsTaskAssignment>()
+                                       .Where(x => x.IsDel == 0 && x.CTId == ctid && x.UId == uid && dto.GroupIds.Contains(x.DIId))
+                                       .Select(x => x.DIId)
+                                       .ToListAsync();
+
+            int addCount = 0,
+                unAddCount = 0;
+            List<Grp_GroupsTaskAssignment> _GroupsTaskAssignments = new List<Grp_GroupsTaskAssignment>();
+            foreach (var item in dto.GroupIds)
+            {
+                if (!infos.Contains(item))
+                {
+                    _GroupsTaskAssignments.Add(new Grp_GroupsTaskAssignment()
+                    {
+                        DIId = item,
+                        CTId = ctid,
+                        UId = uid,
+                        CreateUserId = dto.CurrUserId,
+                        CreateTime = DateTime.UtcNow,
+                    });
+                    addCount++;
+                }
+                else unAddCount++;
+            }
+
+
+            if (_GroupsTaskAssignments.Count > 0)
+            {
+                var add = await _sqlSugar.Insertable<Grp_GroupsTaskAssignment>(_GroupsTaskAssignments)
+                                         .ExecuteCommandAsync();
+                if (add < 1)
+                {
+                    _view.Msg = "操作失败!";
+                    return _view;
+                }
+            }
+
+            _view.Msg = $"操作成功!团组总计:{dto.GroupIds.Length};已操作团数:{addCount};未操作团数:{unAddCount}(该权限已存在)";
+            _view.Code = StatusCodes.Status200OK;
+            _view.Msg = "操作成功!";
+
+            return _view;
+        }
     }
 }