Browse Source

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

xf 1 year ago
parent
commit
7e698957b8

+ 8 - 7
src/Hotline.Api/Controllers/SettingController.cs

@@ -8,6 +8,7 @@ using Hotline.Repository.SqlSugar.Ts;
 using Hotline.Settings;
 using Hotline.Settings;
 using Hotline.Settings.TimeLimits;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos;
+using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Requests;
 using Hotline.Share.Requests;
@@ -198,14 +199,14 @@ namespace Hotline.Api.Controllers
 		/// <param name="dto"></param>
 		/// <param name="dto"></param>
 		/// <returns></returns>
 		/// <returns></returns>
 		[HttpGet("businessTag")]
 		[HttpGet("businessTag")]
-		public async Task<PagedDto<BusinessTag>> SuperviseList([FromQuery] BusinessTagListDto dto)
+		public async Task<PagedDto<BusinessTagListVo>> SuperviseList([FromQuery] BusinessTagListDto dto)
 		{
 		{
 			var (total, items) = await _businessTag.Queryable()
 			var (total, items) = await _businessTag.Queryable()
 				.WhereIF(dto.Type > 0, d => d.Type >= dto.Type)
 				.WhereIF(dto.Type > 0, d => d.Type >= dto.Type)
 				.WhereIF(dto.BusinessType > 0, d => d.BusinessType <= dto.BusinessType)
 				.WhereIF(dto.BusinessType > 0, d => d.BusinessType <= dto.BusinessType)
 				.OrderByDescending(x => x.CreationTime)
 				.OrderByDescending(x => x.CreationTime)
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-			return new PagedDto<BusinessTag>(total, items);
+			return new PagedDto<BusinessTagListVo>(total, _mapper.Map<IReadOnlyList<BusinessTagListVo>>(items));
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
@@ -217,7 +218,7 @@ namespace Hotline.Api.Controllers
 		public async Task Add([FromBody] List<BusinessTagDto> dtos)
 		public async Task Add([FromBody] List<BusinessTagDto> dtos)
 		{
 		{
 			List<BusinessTag> tags = new List<BusinessTag>();
 			List<BusinessTag> tags = new List<BusinessTag>();
-			foreach (var dto in tags)
+			foreach (var dto in dtos)
 			{
 			{
 				var model = _mapper.Map<BusinessTag>(dto);
 				var model = _mapper.Map<BusinessTag>(dto);
 				tags.Add(model);
 				tags.Add(model);
@@ -248,11 +249,11 @@ namespace Hotline.Api.Controllers
 		public async Task Update([FromBody] UpdateBusinessTagDto dto)
 		public async Task Update([FromBody] UpdateBusinessTagDto dto)
 		{
 		{
 			//验证工单是否可以申请
 			//验证工单是否可以申请
-			var file = await _businessTag.GetAsync(dto.Id, HttpContext.RequestAborted);
-			if (file is null)
+			var tag = await _businessTag.GetAsync(dto.Id, HttpContext.RequestAborted);
+			if (tag is null)
 				throw UserFriendlyException.SameMessage("无效标签");
 				throw UserFriendlyException.SameMessage("无效标签");
-			_mapper.Map(dto, file);
-			await _businessTag.UpdateAsync(file, HttpContext.RequestAborted);
+			_mapper.Map(dto, tag);
+			await _businessTag.UpdateAsync(tag, HttpContext.RequestAborted);
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>

+ 2 - 2
src/Hotline.Api/Controllers/TestController.cs

@@ -130,8 +130,8 @@ public class TestController : BaseController
         //var rsp = await _wexClient.QueryTelsAsync(new QueryTelRequest {  }, HttpContext.RequestAborted);
         //var rsp = await _wexClient.QueryTelsAsync(new QueryTelRequest {  }, HttpContext.RequestAborted);
 
 
         //int a = _timeLimitDomainService.CalcWorkTime(DateTime.Now, DateTime.Parse("2023-09-11 16:21:00"));
         //int a = _timeLimitDomainService.CalcWorkTime(DateTime.Now, DateTime.Parse("2023-09-11 16:21:00"));
-        int m = _timeLimitDomainService.CalcWorkTime(DateTime.Parse("2023-09-19 12:00:00"), DateTime.Parse("2023-09-20 10:00:00"), true);
-
+        int m = _timeLimitDomainService.CalcWorkTime(DateTime.Parse("2023-09-19 12:00:00"), DateTime.Parse("2023-09-20 18:00:00"), false);
+        var r = _timeLimitDomainService.CalcEndTime(DateTime.Parse("2023-09-19 18:00:00"), "35", false);
         return OpenResponse.Ok(DateTime.Now.ToString("F"));
         return OpenResponse.Ok(DateTime.Now.ToString("F"));
 
 
         //var rsp = await _daprClient.InvokeMethodAsync<ApiResponse<string>>(HttpMethod.Get, "identity", "api/v1/Test/time", HttpContext.RequestAborted);
         //var rsp = await _daprClient.InvokeMethodAsync<ApiResponse<string>>(HttpMethod.Get, "identity", "api/v1/Test/time", HttpContext.RequestAborted);

+ 1 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -54,7 +54,7 @@
     }
     }
   },
   },
   "DatabaseConfiguration": {
   "DatabaseConfiguration": {
-    "ApplyDbMigrations": false,
+    "ApplyDbMigrations": true,
     "ApplySeed": false
     "ApplySeed": false
   },
   },
   "MqConfiguration": {
   "MqConfiguration": {

+ 71 - 4
src/Hotline.Share/Dtos/Settings/BusinessTagDto.cs

@@ -1,10 +1,12 @@
 using Hotline.Share.Dtos.File;
 using Hotline.Share.Dtos.File;
+using Hotline.Share.Enums.Settings;
 using Hotline.Share.Requests;
 using Hotline.Share.Requests;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Text;
 using System.Text;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using XF.Utility.EnumExtensions;
 
 
 namespace Hotline.Share.Dtos.Settings
 namespace Hotline.Share.Dtos.Settings
 {
 {
@@ -23,12 +25,12 @@ namespace Hotline.Share.Dtos.Settings
 		/// <summary>
 		/// <summary>
 		/// 标签类型
 		/// 标签类型
 		/// </summary>
 		/// </summary>
-		public int Type { get; set; } = 0;
+		public ETagType Type { get; set; } = 0;
 
 
 		/// <summary>
 		/// <summary>
 		/// 业务标签类型
 		/// 业务标签类型
 		/// </summary>
 		/// </summary>
-		public int BusinessType { get; set; } = 0;
+		public EBusinessTagType BusinessType { get; set; } = 0;
 	}
 	}
 
 
 	public class UpdateBusinessTagDto 
 	public class UpdateBusinessTagDto 
@@ -68,11 +70,76 @@ namespace Hotline.Share.Dtos.Settings
 		/// <summary>
 		/// <summary>
 		/// 标签类型  1 标签  2 分类 
 		/// 标签类型  1 标签  2 分类 
 		/// </summary>
 		/// </summary>
-		public int Type { get; set; } = 0;
+		public ETagType Type { get; set; } = 0;
 
 
 		/// <summary>
 		/// <summary>
 		///  业务标签类型  1 工单  2 知识库 
 		///  业务标签类型  1 工单  2 知识库 
 		/// </summary>
 		/// </summary>
-		public int BusinessType { get; set; } = 0;
+		public EBusinessTagType BusinessType { get; set; } = 0;
+	}
+
+	public record BusinessTagListVo  {
+		/// <summary>
+		/// 标签名称
+		/// </summary>
+		public string Name { get; set; }
+
+		/// <summary>
+		/// 分类
+		/// </summary>
+		public string? Classify { get; set; }
+
+		/// <summary>
+		/// 标签类型
+		/// </summary>
+		public ETagType Type { get; set; }
+
+		public string TypeText => Type.GetDescription();
+
+		/// <summary>
+		/// 业务标签类型
+		/// </summary>
+		public EBusinessTagType BusinessType { get; set; }
+
+		public string BusinessTypeText => BusinessType.GetDescription();
+
+		public DateTime? LastModificationTime { get; set; }
+
+
+		public bool IsDeleted { get; set; }
+
+		/// <summary>
+		/// 删除时间
+		/// </summary>
+		public DateTime? DeletionTime { get; set; }
+
+		/// <summary>
+		/// 创建时间
+		/// </summary>
+		public DateTime CreationTime { get; set; }
+
+		/// <summary>
+		/// 组织Id
+		/// </summary>
+		public string? CreatorOrgId { get; set; }
+
+		/// <summary>
+		/// 组织编码
+		/// </summary>
+		public string? CreatorOrgCode { get; set; }
+
+		public string? CreatorOrgName { get; set; }
+
+		/// <summary>
+		/// 创建人
+		/// </summary>
+		public string? CreatorId { get; set; }
+
+		public string? CreatorName { get; set; }
+
+		/// <summary>
+		/// 赋值部门Id
+		/// </summary>
+		public string? AreaId { get; set; }
 	}
 	}
 }
 }

+ 5 - 4
src/Hotline/Settings/BusinessTag.cs

@@ -1,4 +1,5 @@
-using SqlSugar;
+using Hotline.Share.Enums.Settings;
+using SqlSugar;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.ComponentModel;
@@ -22,18 +23,18 @@ namespace Hotline.Settings
 		/// 分类
 		/// 分类
 		/// </summary>
 		/// </summary>
 		[SugarColumn(ColumnDescription = "分类")]
 		[SugarColumn(ColumnDescription = "分类")]
-		public string? Sort { get; set; }
+		public string? Classify { get; set; }
 
 
 		/// <summary>
 		/// <summary>
 		/// 标签类型
 		/// 标签类型
 		/// </summary>
 		/// </summary>
 		[SugarColumn(ColumnDescription = "标签类型  1 标签  2 分类 ")]
 		[SugarColumn(ColumnDescription = "标签类型  1 标签  2 分类 ")]
-		public int? Type { get; set; }
+		public ETagType? Type { get; set; }
 
 
 		/// <summary>
 		/// <summary>
 		/// 业务标签类型
 		/// 业务标签类型
 		/// </summary>
 		/// </summary>
 		[SugarColumn(ColumnDescription = "业务标签类型  1 工单  2 知识库 ")]
 		[SugarColumn(ColumnDescription = "业务标签类型  1 工单  2 知识库 ")]
-		public int? BusinessType { get; set; }
+		public EBusinessTagType? BusinessType { get; set; }
 	}
 	}
 }
 }

+ 75 - 1
src/Hotline/Settings/TimeLimits/TimeLimitDomainService.cs

@@ -137,7 +137,81 @@ namespace Hotline.Settings.TimeLimits
                     }
                     }
 
 
                     int minutes = 0;
                     int minutes = 0;
-                   
+                    int i = 0;
+                    while(true)
+                    {
+                        i++;
+                        //如果是工作日
+                        if (IsWorkDay(beginTime))
+                        {
+                            //最后一天
+                            if (beginTime.Date == endTime.Date)
+                            {
+                                if (endTime > WorkEndTime)
+                                {
+                                    if (i!=1)
+                                    {
+                                        TimeSpan sp = new TimeSpan(WorkEndTime.Ticks - WorkBeginTime.Ticks);
+                                        minutes += (int)sp.TotalMinutes;
+                                    }
+                                    else
+                                    {
+                                        TimeSpan sp = new TimeSpan(WorkEndTime.Ticks - beginTime.Ticks);
+                                        minutes += (int)sp.TotalMinutes;
+                                    }
+                                }
+                                else
+                                {
+                                    if (i!=1)
+                                    {
+                                        TimeSpan sp = new TimeSpan(endTime.Ticks - WorkBeginTime.Ticks);
+                                        minutes += (int)sp.TotalMinutes;
+                                    }
+                                    else
+                                    {
+                                        TimeSpan sp = new TimeSpan(endTime.Ticks - beginTime.Ticks);
+                                        minutes += (int)sp.TotalMinutes;
+                                    }
+                                }
+                                return minutes;
+                            }
+                            //如果不是当天完成
+                            else
+                            {
+                                if (i==1)
+                                {
+                                    TimeSpan sp = new TimeSpan(WorkEndTime.Ticks - beginTime.Ticks);
+                                    minutes += (int)sp.TotalMinutes;
+                                }
+                                else
+                                {
+                                    if (endTime.Date == WorkEndTime.Date)
+                                    {
+                                        if(endTime > WorkEndTime)
+                                        {
+                                            TimeSpan sp = new TimeSpan(WorkEndTime.Ticks - WorkBeginTime.Ticks);
+                                            minutes += (int)sp.TotalMinutes;
+                                        }
+                                        else
+                                        {
+                                            TimeSpan sp = new TimeSpan(endTime.Ticks - WorkBeginTime.Ticks);
+                                            minutes += (int)sp.TotalMinutes;
+                                        }
+                                        return minutes;
+                                    }
+                                    else
+                                    {
+                                        TimeSpan sp = new TimeSpan(WorkEndTime.Ticks - WorkBeginTime.Ticks);
+                                        minutes += (int)sp.TotalMinutes;
+                                    }
+                                }
+                            }
+                        }
+                        
+                        beginTime = beginTime.AddDays(1);
+                        WorkEndTime = WorkEndTime.AddDays(1);
+                        WorkBeginTime = WorkBeginTime.AddDays(1);
+                    }
                 }
                 }
                 return 0;
                 return 0;
             }
             }