Explorar o código

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

xf hai 1 ano
pai
achega
381009436a

+ 4 - 0
src/Hotline.Api/Controllers/RoleController.cs

@@ -95,6 +95,10 @@ public class RoleController : BaseController
         var clientId = jwtOption.Issuer;
         if (string.IsNullOrEmpty(clientId))
             throw new UserFriendlyException("jwt.Issuer未配置");
+
+        if (string.IsNullOrEmpty(dto.Name))
+            throw UserFriendlyException.SameMessage("角色编码不能为空");
+
         var exists = await _roleRepository.Queryable(includeDeleted: true)
             .AnyAsync(d => d.ClientId == clientId && d.Name == dto.Name);
         if (exists)

+ 25 - 13
src/Hotline.Api/Controllers/SchedulingController.cs

@@ -38,7 +38,7 @@ namespace Hotline.Api.Controllers
 		/// <param name="dtos"></param>
 		/// <returns></returns>
 		[HttpPost("user")]
-		public async Task Add([FromBody] List<SchedulingUserDto> dtos)
+		public async Task Add([FromBody] List<UserAddDto> dtos)
 		{
 			List<SchedulingUser> user = new List<SchedulingUser>();
 			foreach (var dto in dtos)
@@ -139,7 +139,7 @@ namespace Hotline.Api.Controllers
 		/// <param name="dtos"></param>
 		/// <returns></returns>
 		[HttpPost("shift")]
-		public async Task Add([FromBody] SchedulingShiftDto dto)
+		public async Task Add([FromBody] ShiftAddDto dto)
 		{
 			var model = _mapper.Map<SchedulingShift>(dto);
 			await _schedulingShiftRepository.AddAsync(model, HttpContext.RequestAborted);
@@ -205,29 +205,39 @@ namespace Hotline.Api.Controllers
 
 		#region 排班管理
 		/// <summary>
-		/// 新增排班人员
+		/// 新增排班管理
 		/// </summary>
 		/// <param name="dtos"></param>
 		/// <returns></returns>
 		[HttpPost]
-		public async Task Add([FromBody] List<SchedulingDto> dtos)
+		public async Task Add([FromBody] AddDto dtos)
 		{
 			List<Scheduling> schedulings = new List<Scheduling>();
-			foreach (var dto in dtos)
+			foreach (var dto in dtos.UserDtos)
 			{
-				if (string.IsNullOrEmpty(dto.SchedulingUserId))
+				if (string.IsNullOrEmpty(dto.UserId))
 					throw UserFriendlyException.SameMessage("请传入排班用户信息");
-				if (string.IsNullOrEmpty(dto.ShiftId))
+				if (string.IsNullOrEmpty(dtos.ShiftId))
 					throw UserFriendlyException.SameMessage("请传入排班班次信息");
 
-				var scheduling = _mapper.Map<Scheduling>(dto);
+				var scheduling = new Scheduling
+				{
+					SchedulingUserId = dto.UserId,
+					SchedulingUserName = dto.UserName,
+					ShiftId = dtos.ShiftId,
+					ShiftName = dtos.ShiftName,
+					SchedulingTime = dtos.SchedulingTime,
+					WorkingTime = dtos.WorkingTime,
+					OffDutyTime = dtos.OffDutyTime,
+					SendOrderNum = 0
+				};
 				schedulings.Add(scheduling);
 			}
 			await _schedulingRepository.AddRangeAsync(schedulings, HttpContext.RequestAborted);
 		}
 
 		/// <summary>
-		/// 删除排班人员
+		/// 删除排班管理
 		/// </summary>
 		/// <param name="dto"></param>
 		/// <returns></returns>
@@ -241,7 +251,7 @@ namespace Hotline.Api.Controllers
 		}
 
 		/// <summary>
-		/// 更新排班人员
+		/// 更新排班管理
 		/// </summary>
 		/// <param name="dto"></param>
 		/// <returns></returns>
@@ -256,7 +266,7 @@ namespace Hotline.Api.Controllers
 		}
 
 		/// <summary>
-		/// 批量更新排班人员
+		/// 批量更新排班管理
 		/// </summary>
 		/// <param name="dto"></param>
 		/// <returns></returns>
@@ -277,7 +287,7 @@ namespace Hotline.Api.Controllers
 
 
 		/// <summary>
-		/// 获取排班人员列表
+		/// 获取排班管理列表
 		/// </summary>
 		/// <param name="dto"></param>
 		/// <returns></returns>
@@ -288,13 +298,15 @@ namespace Hotline.Api.Controllers
 				.Includes(x => x.SchedulingUser)
 				.Includes(x => x.SchedulingShift)
 				.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.ShiftName.Contains(dto.Keyword!))
+				.WhereIF(dto.StartTime.HasValue, x => x.SchedulingTime >= dto.StartTime)
+				.WhereIF(dto.EndTime.HasValue, x => x.SchedulingTime <= dto.EndTime)
 				.OrderByDescending(x => x.CreationTime)
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<Scheduling>(total, items);
 		}
 
 		/// <summary>
-		/// 获取排班人员实体
+		/// 获取排班管理实体
 		/// </summary>
 		/// <param name="id"></param>
 		/// <returns></returns>

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/WorkflowRecallHandler.cs

@@ -63,7 +63,7 @@ public class WorkflowRecallHandler : INotificationHandler<RecallNotify>
 
                 await _orderRepository.UpdateAsync(order, cancellationToken);
 
-                if (data.External.TimeLimit.HasValue && data.External.TimeLimitUnit.HasValue)
+                if (data.External != null && data.External.TimeLimit.HasValue && data.External.TimeLimitUnit.HasValue)
                 {
                     var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
                         data.External.TimeLimitUnit.Value,

+ 19 - 1
src/Hotline.Share/Dtos/Schedulings/SchedulingDto.cs

@@ -56,7 +56,7 @@ namespace Hotline.Share.Dtos.Schedulings
 	}
 	public class AddDto
 	{
-		List<SchedulingUserDto> UserDtos { get; set; }
+		public List<SchedulingUserDto> UserDtos { get; set; }
 
 		/// <summary>
 		/// 班次名称
@@ -68,6 +68,16 @@ namespace Hotline.Share.Dtos.Schedulings
 		/// </summary>
 		public string? ShiftName { get; set; }
 
+		/// <summary>
+		/// 上班时间
+		/// </summary>
+		public string? WorkingTime { get; set; }
+
+		/// <summary>
+		/// 下班时间
+		/// </summary>
+		public string? OffDutyTime { get; set; }
+
 		/// <summary>
 		/// 排班时间
 		/// </summary>
@@ -120,6 +130,14 @@ namespace Hotline.Share.Dtos.Schedulings
 
 	public record ListDto : PagedKeywordRequest
 	{
+		/// <summary>
+		/// 开始时间
+		/// </summary>
+		public DateTime? StartTime { get; set; }
 
+		/// <summary>
+		/// 结束时间
+		/// </summary>
+		public DateTime? EndTime { get; set; }
 	}
 }

+ 13 - 4
src/Hotline/Orders/OrderDomainService.cs

@@ -10,6 +10,7 @@ using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using Hotline.CallCenter.Calls;
 using Hotline.File;
+using Hotline.Schedulings;
 using Microsoft.AspNetCore.Http;
 
 namespace Hotline.Orders;
@@ -28,8 +29,9 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
     private readonly IMapper _mapper;
     private readonly ILogger<OrderDomainService> _logger;
     private readonly IFileRepository _fileRepository;
+    private readonly IRepository<Scheduling> _schedulingRepository;
 
-    public OrderDomainService(
+	public OrderDomainService(
         IOrderRepository orderRepository,
         IRepository<OrderRedo> orderRedoRepository,
         IRepository<OrderPublish> orderPublishRepository,
@@ -42,7 +44,8 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         IMapper mapper,
         ILogger<OrderDomainService> logger,
         IFileRepository fileRepository,
-        IRepository<WexCallRecord> wexCallRecordRepository)
+        IRepository<WexCallRecord> wexCallRecordRepository,
+        IRepository<Scheduling> schedulingRepository)
     {
         _orderRepository = orderRepository;
         _orderRedoRepository = orderRedoRepository;
@@ -56,8 +59,8 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         _mapper = mapper;
         _logger = logger;
         _fileRepository = fileRepository;
-
-    }
+        _schedulingRepository = schedulingRepository;
+	}
 
     public async Task<Order> GetOrderAsync(string? orderId, bool withHotspot = false, bool withAcceptor = false,
         bool withExtension = false, CancellationToken cancellationToken = default)
@@ -154,6 +157,12 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         return await _orderComplementRepository.AddAsync(complement, cancellationToken);
     }
 
+    #endregion
+
+    #region SchedulingSendOrder
+
+
+
     #endregion
 
     #region private

+ 10 - 5
src/Hotline/Schedulings/Scheduling.cs

@@ -46,19 +46,24 @@ namespace Hotline.Schedulings
 		/// <summary>
 		/// 上班时间
 		/// </summary>
-		[SugarColumn(ColumnDescription = "上班时间")]
-		public DateTime? WorkingTime { get; set; }
+		[SugarColumn(ColumnDataType = "time", ColumnDescription = "上班时间")]
+		public string? WorkingTime { get; set; }
 
 		/// <summary>
 		/// 下班时间
 		/// </summary>
-		[SugarColumn(ColumnDescription = "下班时间")]
-		public DateTime? OffDutyTime { get; set; }
+		[SugarColumn(ColumnDataType = "time", ColumnDescription = "下班时间")]
+		public string? OffDutyTime { get; set; }
 
 		/// <summary>
 		/// 排班时间
 		/// </summary>
-		[SugarColumn(ColumnDescription = "排班时间")]
+		[SugarColumn( ColumnDescription = "排班时间")]
 		public DateTime? SchedulingTime { get; set; }
+
+		/// <summary>
+		/// 派单次数
+		/// </summary>
+		public int? SendOrderNum { get; set; }
 	}
 }

+ 4 - 4
src/Hotline/Schedulings/SchedulingShift.cs

@@ -21,13 +21,13 @@ namespace Hotline.Schedulings
 		/// <summary>
 		/// 上班时间
 		/// </summary>
-		[SugarColumn(ColumnDescription = "上班时间")]
-		public DateTime? WorkingTime { get; set; }
+		[SugarColumn(ColumnDataType = "time", ColumnDescription = "上班时间")]
+		public string? WorkingTime { get; set; }
 
 		/// <summary>
 		/// 下班时间
 		/// </summary>
-		[SugarColumn(ColumnDescription = "下班时间")]
-		public DateTime? OffDutyTime { get; set; }
+		[SugarColumn(ColumnDataType = "time", ColumnDescription = "下班时间")]
+		public string? OffDutyTime { get; set; }
 	}
 }