Procházet zdrojové kódy

Merge branch 'master' of http://git.12345lm.cn/Fengwo/hotline

TANG JIANG před 1 rokem
rodič
revize
f8e9bed810

+ 2 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -649,7 +649,7 @@ namespace Hotline.Api.Controllers.Bi
             {
                 var list = await _hotspotTypeRepository.Queryable()
                 .LeftJoin<Order>((it, o) => it.Id == o.HotspotId)
-                .Where((it, o) => o.StartTime >= StartDate && o.StartTime <= EndDate && o.Id != null)
+                .Where((it, o) => o.CreationTime >= StartDate && o.CreationTime <= EndDate && o.Id != null)
                 .WhereIF(TypeId == 1, (it, o) => o.IdentityType == EIdentityType.Citizen)
                 .WhereIF(TypeId == 2, (it, o) => o.IdentityType == EIdentityType.Enterprise)
                 .GroupBy((it, o) => new { Id = it.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("2")) })
@@ -677,7 +677,7 @@ namespace Hotline.Api.Controllers.Bi
                 string countx = HotspotCode.Length.ToString();
                 var list = await _hotspotTypeRepository.Queryable()
                 .LeftJoin<Order>((it, o) => it.Id == o.HotspotId)
-                .Where((it, o) => o.StartTime >= StartDate && o.StartTime <= EndDate && it.ParentId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(countx)) == HotspotCode)
+                .Where((it, o) => o.CreationTime >= StartDate && o.CreationTime <= EndDate && it.ParentId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(countx)) == HotspotCode)
                 .WhereIF(TypeId == 1, (it, o) => o.IdentityType == EIdentityType.Citizen)
                 .WhereIF(TypeId == 2, (it, o) => o.IdentityType == EIdentityType.Enterprise)
                 .GroupBy((it, o) => new { Id = it.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(count)) })

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

@@ -2773,6 +2773,10 @@ public class OrderController : BaseController
             .WhereIF(dto.IsHandled.HasValue, d => handleStatuses.Contains(d.Status))
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.No.Contains(dto.Keyword!) || d.Title.Contains(dto.Keyword!))
             .Where(d => string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)
+            .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == true, d => d.CounterSignType.HasValue)
+            .WhereIF(dto.IsCounterSign.HasValue && dto.IsCounterSign == false, d => !d.CounterSignType.HasValue)
+            .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //超期 未办
+            .WhereIF(dto.ExpiredOrAlmostOverdue.HasValue && dto.ExpiredOrAlmostOverdue == false, d => d.NearlyExpiredTime < DateTime.Now && d.ExpiredTime > DateTime.Now)//即将超期 未办
             .Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
             .Where(x => x.Status != EOrderStatus.BackToProvince)
             .OrderBy(d => d.Status)

+ 8 - 6
src/Hotline.Api/Controllers/SchedulingController.cs

@@ -243,7 +243,7 @@ namespace Hotline.Api.Controllers
 						{
 							var scheduling = new Scheduling
 							{
-								SchedulingUserId = user.UserId,
+								SchedulingUserId = user.Id,
 								SchedulingUserName = user.UserName,
 								ShiftId = dtos.ShiftId,
 								ShiftName = shift.Name,
@@ -262,10 +262,10 @@ namespace Hotline.Api.Controllers
 					{
 						var scheduling = new Scheduling
 						{
-							SchedulingUserId = user.UserId,
+							SchedulingUserId = user.Id,
 							SchedulingUserName = user.UserName,
 							ShiftId = dtos.ShiftId,
-							ShiftName = dtos.ShiftName,
+							ShiftName = shift.Name,
 							SchedulingTime = dtos.SchedulingTime,
 							WorkingTime = shift.WorkingTime,
 							OffDutyTime = shift.OffDutyTime,
@@ -364,15 +364,17 @@ namespace Hotline.Api.Controllers
 			var endTime =startTime.AddMonths(1).AddDays(-1);
 			DataTable data = await _schedulingRepository.Queryable().Where(x=>x.SchedulingTime >= startTime && x.SchedulingTime <= endTime).ToDataTableAsync();
 			if (data == null || data.Rows.Count <= 0) return res;
-			var names = data.AsEnumerable().Select(x=>x.Field<string>("SchedulingUserName")).Distinct().ToList();
+			var names = data.AsEnumerable().Select(x=>new { SchedulingUserName = x.Field<string>("SchedulingUserName") , SchedulingUserId  = x.Field<string>("SchedulingUserId") }).Distinct().ToList();
 		
 			foreach (var item in names)
 			{
 				dynamic dynamicObj = new ExpandoObject();
 				var dict = (IDictionary<string, object>)dynamicObj;
 				var userName = "SchedulingUserName";
-				dict[userName] = item;
-				var scheduling = data.AsEnumerable().Where(x => x.Field<string>("SchedulingUserName") == item).OrderBy(x => x.Field<DateTime>("SchedulingTime")).ToList();
+				dict[userName] = item.SchedulingUserName!;
+				var scheduling = data.AsEnumerable().Where(x => x.Field<string>("SchedulingUserName") == item.SchedulingUserName).OrderBy(x => x.Field<DateTime>("SchedulingTime")).ToList();
+				var userId = "UserId";
+				dict[userId] =item.SchedulingUserId!;
 				foreach (DataRow row in scheduling)
 				{
 					var obj = new { Name = row.Field<string>("ShiftName"), Id = row.Field<string>("Id") };

+ 1 - 1
src/Hotline.Api/Controllers/SysController.cs

@@ -556,7 +556,7 @@ namespace Hotline.Api.Controllers
 		{
 			var (total, items) = await _systemLogRepository.Queryable()
                 .Where(x=> !string.IsNullOrEmpty(x.Name))
-				.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Name.Contains(dto.Keyword!))
+				.WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Name.Contains(dto.Keyword!) || x.CreatorName.Contains(dto.Keyword!))
 				.OrderByDescending(x => x.CreationTime)
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<SystemLogDto>(total, _mapper.Map<IReadOnlyList<SystemLogDto>>(items));

+ 1 - 1
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -104,7 +104,7 @@ namespace Hotline.Repository.SqlSugar.Orders
             {
                 var table = await Db.Queryable<Order>()
                     .LeftJoin<SystemOrganize>((it, o) => it.ActualHandleOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == o.Id)
-                    .Where((it, o) => it.StartTime >= StartTime && it.StartTime <= EndTime)
+                    .Where((it, o) => it.CreationTime >= StartTime && it.CreationTime <= EndTime)
                     .WhereIF(IsCenter==false,(it,o)=> o.Id.StartsWith(OrgCode))
                     .GroupBy((it, o) => new
                     {

+ 33 - 30
src/Hotline/Orders/OrderDomainService.cs

@@ -172,6 +172,10 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         if (dto.Files.Any()) complement.FileJson = await _fileRepository.AddFileAsync(dto.Files, complement.Id, "", cancellationToken);
         return await _orderComplementRepository.AddAsync(complement, cancellationToken);
     }
+
+
+	#endregion
+
 	#region 平均派单
 	/// <summary>
 	/// 平均派单
@@ -188,53 +192,54 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
 		if (scheduling != null)
 		{
 			user = await _userRepository.GetAsync(x => x.Id == scheduling.SchedulingUser.UserId);
-            scheduling.SendOrderNum++;
-            await _schedulingRepository.UpdateAsync(scheduling);
+			scheduling.SendOrderNum++;
+			await _schedulingRepository.UpdateAsync(scheduling);
 		}
-        List<Kv> res = new List<Kv>();
-        res.Add(new Kv { Key = user.Id, Value = user.Name });
+		List<Kv> res = new List<Kv>();
+		res.Add(new Kv { Key = user.Id, Value = user.Name });
 		return res;
 	}
 
-    /// <summary>
-    /// 登录平均派单
-    /// </summary>
-    /// <param name="userId"></param>
-    /// <returns></returns>
-    public async Task LogAverageOrder(string userId, CancellationToken cancellationToken) 
-    {
+	/// <summary>
+	/// 登录平均派单
+	/// </summary>
+	/// <param name="userId"></param>
+	/// <returns></returns>
+	public async Task LogAverageOrder(string userId, CancellationToken cancellationToken)
+	{
 		//1.获取默认派单员所属的工单
 		//2.获取今天上班的人员
 		//3.给当前这个用户平均派单
 		var steps = await _workflowDomainService.GetUnhandleStepIdsFromSendPoolAsync(OrderDefaults.SourceChannel.SendPoolId, cancellationToken);
-        var stepsList = steps.ToList();
+		var stepsList = steps.ToList();
 
-		var user = await  _userRepository.GetAsync(userId,cancellationToken);
+		var user = await _userRepository.GetAsync(userId, cancellationToken);
 		DateTime time = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
 		var schedulings = await _schedulingRepository.Queryable().Includes(x => x.SchedulingUser)
 			.Where(x => x.SchedulingTime == time && x.WorkingTime <= DateTime.Now.TimeOfDay && x.OffDutyTime >= DateTime.Now.TimeOfDay).CountAsync(cancellationToken);
-        
-        if (schedulings > 0)
-        {
+
+		if (schedulings > 0)
+		{
 			List<string> stepIds = new List<string>();
 			var sendNum = stepsList.Count() / schedulings;
-            for (int i = 0; i < sendNum; i++)
-            {
-                stepIds.Add(stepsList[i]);
-                stepsList.Remove(stepsList[i]);
+			for (int i = 0; i < sendNum; i++)
+			{
+				stepIds.Add(stepsList[i]);
+				stepsList.Remove(stepsList[i]);
 			}
-            List<(string userId, string username, IReadOnlyList<string> stepIds)> handlers = new();
-;           handlers.Add(new ValueTuple<string, string, IReadOnlyList<string>>(user.Id, user.Name, stepIds));
-		   await  _workflowDomainService.ChangeHandlerRangeAsync(OrderDefaults.SourceChannel.SendPoolId ,handlers, cancellationToken);
+			List<(string userId, string username, IReadOnlyList<string> stepIds)> handlers = new();
+			; handlers.Add(new ValueTuple<string, string, IReadOnlyList<string>>(user.Id, user.Name, stepIds));
+			await _workflowDomainService.ChangeHandlerRangeAsync(OrderDefaults.SourceChannel.SendPoolId, handlers, cancellationToken);
 
 		}
 	}
 
-    /// <summary>
-    /// 触发平均派单
-    /// </summary>
-    /// <returns></returns>
-    public async Task TriggerAverageOrder(CancellationToken cancellationToken) {
+	/// <summary>
+	/// 触发平均派单
+	/// </summary>
+	/// <returns></returns>
+	public async Task TriggerAverageOrder(CancellationToken cancellationToken)
+	{
 		//1.从排班里面获取今天上班的人
 		//2.获取默认派单员剩下的工单
 		//3.平均分配剩下的工单给今天上班的人
@@ -285,8 +290,6 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
 	}
 	#endregion
 
-	#endregion
-
 	#region SchedulingSendOrder