Ver código fonte

Merge branch 'test' into lib/test

libin 2 meses atrás
pai
commit
1b53236cd0

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

@@ -905,7 +905,7 @@ namespace Hotline.Api.Controllers.Bi
                 PassTotal = list.Sum(p => p.PassTotal),
                 NoPassTotal = list.Sum(p => p.NoPassTotal),
                 ExaminingTotal = list.Sum(p => p.ExaminingTotal),
-                WithdrawTotal = list.Sum(p=> p.WithdrawTotal)
+                WithdrawTotal = list.Sum(p => p.WithdrawTotal)
             });
 
             var orderDtos = _mapper.Map<ICollection<BiOrderDelayDataDto>>(list);
@@ -2154,8 +2154,8 @@ namespace Hotline.Api.Controllers.Bi
             {
                 new CenterReportOrderSourceChannelDto
                 {
-					AllCountNum = sourceChannelCount,
-					Name = "来源总量",
+                    AllCountNum = sourceChannelCount,
+                    Name = "来源总量",
                     Code = "All",
                     CountNum = sourceChannelCount
                 }
@@ -2527,25 +2527,25 @@ namespace Hotline.Api.Controllers.Bi
             {
                 OrgStatistics = listOrgStatisticsAreaAll
             };
-			#endregion
-
-			#region 企业服务办件情况
-
-			//工单 信件情况
-			var enterpriseOrderData = await _orderRepository.Queryable()
-				.LeftJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
-				.Where((x, so) => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IdentityType == EIdentityType.Enterprise)
-				.Select((x, so) => new EnterpriseOrderDto
-				{
-					InProgressCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status < EOrderStatus.Filed, 1, 0)),
-					CompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),
-					CenterCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.IsCenter, 1, 0)),
-					CityCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.City, 1, 0)),
-					CountyCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.County, 1, 0)),
-				})
-				.FirstAsync();
-
-			var enterpriseOrderDto = await _orderRepository.Queryable()
+            #endregion
+
+            #region 企业服务办件情况
+
+            //工单 信件情况
+            var enterpriseOrderData = await _orderRepository.Queryable()
+                .LeftJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
+                .Where((x, so) => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IdentityType == EIdentityType.Enterprise)
+                .Select((x, so) => new EnterpriseOrderDto
+                {
+                    InProgressCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status < EOrderStatus.Filed, 1, 0)),
+                    CompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),
+                    CenterCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.IsCenter, 1, 0)),
+                    CityCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.City, 1, 0)),
+                    CountyCount = SqlFunc.AggregateSum(SqlFunc.IIF(so.OrgType == EOrgType.County, 1, 0)),
+                })
+                .FirstAsync();
+
+            var enterpriseOrderDto = await _orderRepository.Queryable()
                 .LeftJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
                 .Where((x, so) => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IdentityType == EIdentityType.Enterprise)
                 .Select((x, so) => new
@@ -2569,13 +2569,13 @@ namespace Hotline.Api.Controllers.Bi
                 })
                 .FirstAsync();
 
-			enterpriseOrderDto.InProgressCount = enterpriseOrderData.InProgressCount;
-			enterpriseOrderDto.CompletedCount = enterpriseOrderData.CompletedCount;
-			enterpriseOrderDto.CenterCount = enterpriseOrderData.CenterCount;
-			enterpriseOrderDto.CityCount = enterpriseOrderData.CityCount;
-			enterpriseOrderDto.CountyCount = enterpriseOrderData.CountyCount;
-			centerReportStatisticsDto.EnterpriseOrderDto = enterpriseOrderDto;
-			var enterpriseOrderDto2 = await _orderVisitDetailRepository.Queryable()
+            enterpriseOrderDto.InProgressCount = enterpriseOrderData.InProgressCount;
+            enterpriseOrderDto.CompletedCount = enterpriseOrderData.CompletedCount;
+            enterpriseOrderDto.CenterCount = enterpriseOrderData.CenterCount;
+            enterpriseOrderDto.CityCount = enterpriseOrderData.CityCount;
+            enterpriseOrderDto.CountyCount = enterpriseOrderData.CountyCount;
+            centerReportStatisticsDto.EnterpriseOrderDto = enterpriseOrderDto;
+            var enterpriseOrderDto2 = await _orderVisitDetailRepository.Queryable()
                 .Includes(it => it.OrderVisit, ov => ov.Order)
                 .LeftJoin<SystemOrganize>((it, so) => it.VisitOrgCode == so.Id)
                 .Where((it, so) => it.VisitTarget == EVisitTarget.Org && it.OrderVisit.VisitTime >= StartTime && it.OrderVisit.VisitTime <= EndTime && it.OrderVisit.VisitState == EVisitState.Visited)
@@ -2742,8 +2742,8 @@ namespace Hotline.Api.Controllers.Bi
                 .Where((it, o) => it.VisitTarget == EVisitTarget.Org && o.VisitTime >= StartTime && o.VisitTime <= EndTime && o.VisitState == EVisitState.Visited)
                  .Select((it, o) => new Satisfaction
                  {
-                     Dissatisfied = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonListObjectAny(it.OrgProcessingResults, "key", "1") || SqlFunc.JsonListObjectAny(it.OrgProcessingResults, "key", "2"), 1, 0)),
-                     Satisfied = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonListObjectAny(it.OrgProcessingResults, "key", "1") || SqlFunc.JsonListObjectAny(it.OrgProcessingResults, "key", "2"), 0, 1)),
+                     Dissatisfied = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "2", 1, 0)),
+                     Satisfied = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") != "1" && SqlFunc.JsonField(it.OrgProcessingResults, "Key") != "2", 1, 0)),
                  })
                 .FirstAsync();
             //计算部门满意度
@@ -2784,7 +2784,7 @@ namespace Hotline.Api.Controllers.Bi
                     EffectiveCount = SqlFunc.AggregateSum(SqlFunc.IIF(true, 1, 0)),//有效
                     InvalidCount = 0,//无效
                     CompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed, 1, 0)),//已办结
-                    OnTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.ActualHandleTime, 1, 0)),//按时办结
+                    OnTimeCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ExpiredTime > x.ActualHandleTime, 1, 0)),//按时办结
                     CenterCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ProcessType == EProcessType.Zhiban, 1, 0)),//中心办结
                     OrgCompletedCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status >= EOrderStatus.Filed && x.ProcessType == EProcessType.Jiaoban, 1, 0)),//部门办结
                     InProgressCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status < EOrderStatus.Filed, 1, 0)),//在办

+ 32 - 0
src/Hotline.Api/Controllers/CommonPController.cs

@@ -26,6 +26,8 @@ using System.Runtime.InteropServices;
 using Lucene.Net.Util;
 using NPOI.Util;
 using XF.Domain.Entities;
+using Hotline.SeedData;
+using Hotline.Authentications;
 
 namespace Hotline.Api.Controllers
 {
@@ -590,5 +592,35 @@ namespace Hotline.Api.Controllers
 			}
 		}
 
+
+		/// <summary>
+		/// 省件退回中心弹窗提示  type  0  工单坐席待办 1 工单待办
+		/// </summary>
+		/// <returns></returns>
+		[HttpGet("home_province_sendback")]
+		public async Task<object> GetProvinceSendBack() {
+
+			if (_sessionContext.RequiredOrgId == OrgSeedData.CenterId)
+			{
+				var msg = "工单编码为{0}的工单,已被退回,请及时处理!";
+				var orders = await _orderSendBackAuditRepository.Queryable().Includes(x => x.Order)
+					.Where(x => x.Order.IsProvince)
+					.Where(x => x.ApplyOrgId.Length == 6 && x.SendBackOrgId == OrgSeedData.CenterId && x.State == ESendBackAuditState.End)
+					.Where(x => SqlFunc.Subqueryable<WorkflowStep>()
+					.Where(step => step.ExternalId == x.OrderId && (
+								   (step.FlowAssignType == EFlowAssignType.User && step.HandlerId == _sessionContext.RequiredUserId)
+								   || (step.FlowAssignType == EFlowAssignType.Role && _sessionContext.Roles.Contains(step.RoleId))
+								   )).Any()
+					).OrderByDescending(x=>x.AuditTime).ToListAsync();
+				if (orders != null && orders.Any())
+				{
+					var order = orders.FirstOrDefault();
+					msg = string.Format(msg, order.Order.No);
+					var type = order.Order.Status < EOrderStatus.Handling ? 0 : 1;
+					return new { count = orders.Count, msg = msg, type = type };
+				}
+			}
+			return new { count = 0, msg = string.Empty, type = -1 };
+		}
 	}
 }

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

@@ -34,6 +34,7 @@ using Hotline.Settings.TimeLimitDomain;
 using Hotline.Settings.TimeLimits;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.CallCenter;
+using Hotline.Share.Dtos.File;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Order;
@@ -3692,6 +3693,33 @@ public class OrderController : BaseController
         return _sessionContext.OrgIsCenter ? dto : dto.DataMask();
     }
 
+
+	/// <summary>
+	/// 上传附件
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	//[HttpPost]
+	//[LogFilterAlpha("上传附件")]
+	//public async Task UploadFiles(OrderUploadFiles dto) { 
+    
+ //       var fileJson = await _fileRepository.AddFileAsync(dto.Files, dto.Id, "", HttpContext.RequestAborted);
+
+ //       if (fileJson.Any())
+ //       {
+	//		var order = await _orderRepository.GetAsync(dto.Id);
+ //           if (order.FileJson != null && order.FileJson.Any())
+ //           {
+ //               order.FileJson.AddRange(fileJson);
+ //           }
+ //           else {
+ //               order.FileJson = fileJson;
+	//		}
+ //           await _orderRepository.Updateable().SetColumns(x => new Order { FileJson = order.FileJson }).Where(x => x.Id == dto.Id).ExecuteCommandAsync();
+	//	}
+	//}
+
+
     /// <summary>
     /// 新增工单
     /// </summary>

+ 4 - 4
src/Hotline.Application/Mappers/KnowledgeMapperConfigs.cs

@@ -64,8 +64,8 @@ public class KnowledgeMapperConfigs : IRegister
         config.NewConfig<Hotline.KnowledgeBase.Knowledge, KnowledgeSendDto>()
             .Map(d => d.CategoryCode, x => x.HotspotType.ProvinceCode)
             .Map(d => d.CategoryName, x => x.HotspotType.HotSpotName)
-            .Map(d => d.PublishPerson, x => x.User.Name)
-            .Map(d => d.OuName, x => x.SystemOrganize.Name)
+            .Map(d => d.PublishPerson, x => x.CreatorName)
+            .Map(d => d.OuName, x => x.CreatorOrgName)
             .Map(d => d.KName, x => x.Title)
             .Map(d => d.KContent, x => x.Content)
             .Map(d => d.CreatDate, x => x.OnShelfTime)
@@ -75,8 +75,8 @@ public class KnowledgeMapperConfigs : IRegister
             .IgnoreIf((s, d) => s.FileJson == null, d => d.FileJson)
             .IgnoreIf((s,d)=>s.HotspotType == null, d=>d.CategoryCode)
             .IgnoreIf((s,d)=>s.HotspotType == null, d=>d.CategoryName)
-            .IgnoreIf((s,d)=>s.User == null, d=>d.PublishPerson)
-            .IgnoreIf((s,d)=>s.SystemOrganize == null, d=>d.OuName)
+            //.IgnoreIf((s,d)=>s.User == null, d=>d.PublishPerson)
+            //.IgnoreIf((s,d)=>s.SystemOrganize == null, d=>d.OuName)
             ;
 
         config.ForType<KnowledgeRelationTypeDto, KnowledgeType>()

+ 4 - 2
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -279,13 +279,15 @@ namespace Hotline.Application.Subscribers
             ExpiredTimeWithConfig expiredTimeConfig;
             if (_appOptions.Value.IsZiGong)
             {
-                expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.StartTime.Value, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
+                //expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.StartTime.Value, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
+                expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
             }
             else
             {
                 //期满时间
                 //expiredTimeConfig = _timeLimitDomainService.CalcExpiredTime(DateTime.Now, EFlowDirection.CenterToOrg, order.AcceptTypeCode);
-                expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.CenterToOrgTime.Value, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
+                //expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.CenterToOrgTime.Value, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
+                expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
             }
 
             _mapper.Map(expiredTimeConfig, order);

+ 2 - 2
src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs

@@ -225,8 +225,8 @@ namespace Hotline.Repository.SqlSugar.Extensions
                 ////获取原生SQL推荐 5.1.4.63  性能OK
                 //Log.Information(UtilMethods.GetNativeSql(sql, pars));
 
-                //Log.Information("Sql: {0}", sql);
-                //Log.Information("SqlParameters: {0}", string.Join(',', pars.Select(d => d.Value)));
+                Log.Information("Sql: {0}", sql);
+                Log.Information("SqlParameters: {0}", string.Join(',', pars.Select(d => d.Value)));
             };
             db.Aop.OnError = (exp) =>//SQL报错
             {

+ 14 - 1
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -1049,7 +1049,20 @@ namespace Hotline.Share.Dtos.Order
         public bool IsEdit { get; set; }
     }
 
-    public class AddOrderDto : Position
+    public class OrderUploadFiles {
+
+		public string Id { get; set; }
+
+		/// <summary>
+		/// 附件列表
+		/// </summary>
+		public List<FileDto> Files { get; set; } = new();
+
+
+	}
+
+
+	public class AddOrderDto : Position
     {
         #region 来电信息