Browse Source

团组分配权限 --> 人员、类型、团组 统一批量添加

LEIYI 6 months ago
parent
commit
16e9fefb99

+ 5 - 4
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -1223,11 +1223,13 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> TaskAllocationBulkAdd(TaskAllocationBulkAddDto dto)
         {
             //参数验证
-            if (dto.UserId < 1 ) return Ok(JsonView(false, MsgTips.UserId));
+            if (dto.UserIds.Length < 1 ) return Ok(JsonView(false, $"请选择分配人员!"));
 
-            if (dto.OperateId < 1) return Ok(JsonView(false, MsgTips.OperateId));
+            if (dto.PermissionTypeIds.Length < 1) return Ok(JsonView(false, $"请选择分配类型!"));
 
-            if (dto.GroupIds.Length < 1) return Ok(JsonView(false, "请传入有效的GroupIds数组参数!"));
+            if (dto.GroupIds.Length < 1) return Ok(JsonView(false, "请选择分配团组Id"));
+
+            if (dto.CurrUserId < 1) return Ok(JsonView(false, "请传入有效的CurrUserId数组参数"));
 
             return Ok(await _taskAssignmentRep.TaskAllocationBulkAdd(dto));
         }
@@ -12271,7 +12273,6 @@ ORDER by  gctggrc.id DESC
             return valid;
         }
 
-
         /// <summary>
         /// 接团客户名单
         /// 根据团组Id查询List

+ 2 - 2
OASystem/OASystem.Domain/Dtos/Groups/TaskAssignmenDto.cs

@@ -56,8 +56,8 @@ namespace OASystem.Domain.Dtos.Groups
     }
     public class TaskAllocationBulkAddDto
     {
-        public int UserId { get; set; }
-        public int OperateId { get; set; }
+        public int[] UserIds { get; set; }
+        public int[] PermissionTypeIds { get; set; }
         public int[] GroupIds { get; set; }
         public int CurrUserId { get; set; }
     }

+ 7 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_TourClientList.cs

@@ -49,5 +49,12 @@ namespace OASystem.Domain.Entities.Groups
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(500)")]
         public string? MealSpecialNeeds { get; set; }
+
+        /// <summary>
+        /// 是否陪同
+        /// 1 否 2 是
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsAccompany { get; set; }
     }
 }

+ 10 - 0
OASystem/OASystem.Domain/ViewModels/Groups/TourClientListView.cs

@@ -59,6 +59,16 @@ namespace OASystem.Domain.ViewModels.Groups
 
         public DateTime BirthDay { get; set; }
 
+        /// <summary>
+        /// 操作人
+        /// </summary>
+        public string Operator { get; set; }
+
+        /// <summary>
+        /// 操作时间
+        /// </summary>
+        public DateTime OperatingTime { get; set; }
+
     }
 
     /// <summary>

+ 29 - 20
OASystem/OASystem.Infrastructure/Repositories/Groups/TaskAssignmentRepository.cs

@@ -276,7 +276,11 @@ namespace OASystem.Infrastructure.Repositories.Groups
 
             var data = await _sqlSugar.Queryable<Grp_DelegationInfo>()
                 .Where(it => it.IsDel == 0 && it.VisitDate >= beginDt && it.VisitDate <= endDt)
-                .Select(it => it.Id)
+                .Select(it => new
+                {
+                    it.Id,
+                    it.TeamName
+                })
                 .ToListAsync();
 
             _view.Code = StatusCodes.Status200OK;
@@ -287,7 +291,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
             return _view;
         }
 
-
         /// <summary>
         /// 团组任务分配 
         /// 批量分配 
@@ -299,35 +302,41 @@ namespace OASystem.Infrastructure.Repositories.Groups
         {
             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)
+                                       .Where(x => x.IsDel == 0 &&
+                                                   dto.PermissionTypeIds.Contains(x.CTId) &&
+                                                   dto.UserIds.Contains(x.UId) &&
+                                                   dto.GroupIds.Contains(x.DIId)
+                                             )
                                        .ToListAsync();
-
             int addCount = 0,
                 unAddCount = 0;
             List<Grp_GroupsTaskAssignment> _GroupsTaskAssignments = new List<Grp_GroupsTaskAssignment>();
-            foreach (var item in dto.GroupIds)
+
+            foreach (var userId in dto.UserIds)
             {
-                if (!infos.Contains(item))
+                foreach (var permissionTypeId in dto.PermissionTypeIds)
                 {
-                    _GroupsTaskAssignments.Add(new Grp_GroupsTaskAssignment()
+                    foreach (var groupId in dto.GroupIds)
                     {
-                        DIId = item,
-                        CTId = ctid,
-                        UId = uid,
-                        CreateUserId = dto.CurrUserId,
-                        CreateTime = DateTime.UtcNow,
-                    });
-                    addCount++;
+                        var info = infos.Find(x => x.UId == userId && x.CTId == permissionTypeId && x.DIId == groupId);
+                        if (info == null)
+                        {
+                            _GroupsTaskAssignments.Add(new Grp_GroupsTaskAssignment()
+                            {
+                                DIId = groupId,
+                                CTId = permissionTypeId,
+                                UId = userId,
+                                CreateUserId = dto.CurrUserId,
+                                CreateTime = DateTime.UtcNow,
+                            });
+                            addCount++;
+                        }
+                        else unAddCount++;
+                    }
                 }
-                else unAddCount++;
             }
 
-
             if (_GroupsTaskAssignments.Count > 0)
             {
                 var add = await _sqlSugar.Insertable<Grp_GroupsTaskAssignment>(_GroupsTaskAssignments)

+ 35 - 14
OASystem/OASystem.Infrastructure/Repositories/Groups/TourClientListRepository.cs

@@ -72,16 +72,39 @@ namespace OASystem.Infrastructure.Repositories.Groups
         {
             if (portId == 1 || portId == 2 || portId == 3 ) // 1 web 2 Android 3 ios
             {
-                string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.* From Grp_TourClientList tcl
-                                                 Left Join 
-	                                                 (Select dc.Id As DcId,dc.LastName,dc.FirstName,ccom.CompanyFullName,dc.Job,
-                                                     cc.CertNo As IDCardNo,dc.Sex,dc.BirthDay
-	                                                 From Crm_DeleClient dc
-	                                                 Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id  And ccom.IsDel = 0
-	                                                 Left Join Crm_CustomerCert cc On dc.Id = cc.DcId And cc.SdId = 773 And cc.IsDel = 0
-	                                                 Where dc.IsDel = 0) temp 
-                                                 On temp.DcId =tcl.ClientId  
-                                                 Where tcl.IsDel = 0 And tcl.DiId = {0}", diId);
+                string sql = string.Format(@"
+SELECT
+  tcl.Id,
+  tcl.DiId,
+  temp.*,
+  u.CnName AS Operator,
+  tcl.CreateTime AS OperatingTime
+FROM
+  Grp_TourClientList tcl
+  LEFT JOIN (
+    SELECT
+      dc.Id AS DcId,
+      dc.LastName,
+      dc.FirstName,
+      ccom.CompanyFullName,
+      dc.Job,
+      cc.CertNo AS IDCardNo,
+      dc.Sex,
+      dc.BirthDay
+    FROM
+      Crm_DeleClient dc
+      LEFT JOIN Crm_CustomerCompany ccom ON dc.CrmCompanyId = ccom.Id
+      AND ccom.IsDel = 0
+      LEFT JOIN Crm_CustomerCert cc ON dc.Id = cc.DcId
+      AND cc.SdId = 773
+      AND cc.IsDel = 0
+    WHERE
+      dc.IsDel = 0
+  ) temp ON temp.DcId = tcl.ClientId
+  LEFT JOIN Sys_Users u ON tcl.CreateUserId = u.Id
+WHERE
+  tcl.IsDel = 0
+  AND tcl.DiId = {0}", diId);
                 var data = await _sqlSugar.SqlQueryable<TourClientListByDiIdView>(sql).ToListAsync();
                 _result.Code = 0;
                 _result.Data = data;
@@ -169,9 +192,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                 if (data != null) 
                 {
 
-                    data.BirthDay = data.BirthDay.DateFormat("yyyy-MM-dd");
-                    //data.IssueDt = data.IssueDt.DateFormat("yyyy-MM-dd");
-                    //data.ExpiryDt = data.ExpiryDt.DateFormat("yyyy-MM-dd");
+                    data.BirthDay = data.BirthDay?.DateFormat("yyyy-MM-dd") ?? "";
                     _result.Code = 0;
                     _result.Data = data;
                 }
@@ -454,7 +475,7 @@ namespace OASystem.Infrastructure.Repositories.Groups
                     ShippingSpaceSpecialNeeds = dto.ShippingSpaceSpecialNeeds,
                     HotelSpecialNeeds = dto.HotelSpecialNeeds,
                     MealSpecialNeeds = dto.MealSpecialNeeds,
-                    Remark = dto.Remark,
+                    Remark = dto.Remark ?? "",
                     CreateUserId = dto.UserId
                 };