Explorar el Código

Merge branch 'release' of http://110.188.24.182:10023/Fengwo/hotline into release

xf hace 7 meses
padre
commit
351b536c17

+ 12 - 5
src/Hotline.Api/Controllers/OrderController.cs

@@ -548,7 +548,7 @@ public class OrderController : BaseController
             visitedDetail.Add(orgDetail);
         }
 
-        if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null })
+        if (order is { ProcessType: EProcessType.Zhiban, CounterSignType: null,IsProvince:false })
         {
             seatDetail.VoiceEvaluate = EVoiceEvaluate.Satisfied;
             seatDetail.SeatEvaluate = ESeatEvaluate.Satisfied;
@@ -2878,7 +2878,7 @@ public class OrderController : BaseController
 
         dto.IsCanCancelDelay = order.OrderDelays.Any(x => x.DelayState == EDelayState.Examining && x.ApplyOrgCode == _sessionContext.RequiredOrgId);
 
-        var delayModel = order.OrderDelays.MaxBy(x => x.AfterDelay);
+        var delayModel = order.OrderDelays.MaxBy(x => x.CreationTime);
         if (delayModel != null)
         {
             var workFlow = await _workflowRepository.GetAsync(delayModel.WorkflowId);
@@ -4091,7 +4091,7 @@ public class OrderController : BaseController
             {
                 if (order.SendBackAuditEndTime.HasValue && order.SendBackAuditEndTime.Value < DateTime.Now)
                     throw UserFriendlyException.SameMessage("工单截至退回时间【" + order.SendBackAuditEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss") + "】,无法进行退回!");
-                var sendBackAgain = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == workflow.ExternalId && x.IsReturnAgain == true).AnyAsync();
+                var sendBackAgain = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == workflow.ExternalId && x.IsReturnAgain == false).AnyAsync();
                 if (sendBackAgain)
                     throw UserFriendlyException.SameMessage("工单已不允许退回!");
             }
@@ -4685,7 +4685,6 @@ public class OrderController : BaseController
     /// </summary>
     /// <param name="dtos"></param>
     /// <returns></returns>
-    [Permission(EPermission.ApplySpecial)]
     [HttpPost("re_transact")]
     [LogFilter("工单重办")]
     public async Task Add([FromBody] OrderReTransactDto dto)
@@ -4801,7 +4800,15 @@ public class OrderController : BaseController
             //}
 
             var reTransactNum = order.ReTransactNum.HasValue ? order.ReTransactNum.Value + 1 : 1;
-            var Status = model.StepType == EStepType.Start ? EOrderStatus.BackToUnAccept : EOrderStatus.SendBack;
+            var orderStatus = EOrderStatus.SendBack;
+            var orderStartStatus = EOrderStatus.BackToUnAccept;
+
+			if (_appOptions.Value.IsZiGong)
+            {
+	            orderStatus = model.SpecialType == ESpecialType.SendBack ? EOrderStatus.SendBack : EOrderStatus.Special;
+	            orderStartStatus = model.SpecialType == ESpecialType.SendBack ? EOrderStatus.BackToUnAccept : EOrderStatus.SpecialToUnAccept;
+			}
+			var Status = model.StepType == EStepType.Start ? orderStartStatus : orderStatus;
             await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType, ReTransactNum = reTransactNum, Status = Status }).Where(o => o.Id == order.Id)
                 .ExecuteCommandAsync(HttpContext.RequestAborted);
 

+ 3 - 2
src/Hotline.Api/Controllers/OrderProvinceZmhdController.cs

@@ -50,7 +50,7 @@ namespace Hotline.Api.Controllers
             var items = await _orderRepository.Queryable()
                 .Where(p => p.SourceChannelCode == "SZMHD" && p.IsProvince == false && p.Status >= EOrderStatus.Filed && p.Source == ESource.ProvinceStraight)
                 .WhereIF(!string.IsNullOrEmpty(dto.No), p => p.No == dto.No)
-                .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), p => p.ProvinceNo == dto.ProvinceNo)
+                .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), p => p.ReceiveProvinceNo == dto.ProvinceNo)
                 .WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.StartsWith(dto.Title!))
                 .WhereIF(!string.IsNullOrEmpty(dto.AnswerOu), p => p.ActualHandleOrgName == dto.AnswerOu)
                 .WhereIF(!string.IsNullOrEmpty(dto.AuditFirstName), p => p.AuditFirstName == dto.AuditFirstName)
@@ -102,7 +102,7 @@ namespace Hotline.Api.Controllers
             OrderProvinceZmhd orderProvinceZmhd = new()
             {
                 No = order.No,
-                ProvinceNo = order.ProvinceNo,
+                ProvinceNo = order.ReceiveProvinceNo,
                 OrderId = order.Id,
                 Title = order.Title,
                 AnswerTime = order.ActualHandleTime,
@@ -133,6 +133,7 @@ namespace Hotline.Api.Controllers
 
             //推送数据
             var publishPublishOrder = _mapper.Map<PublicOrderProvinceZmhdDto>(orderProvinceZmhd);
+            publishPublishOrder.ProvinceNo = order.ReceiveProvinceNo;
             await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderProvinceZmhd, publishPublishOrder);
         }
 

+ 5 - 7
src/Hotline.Application/Bigscreen/SeatStateDataService.cs

@@ -12,8 +12,6 @@ namespace Hotline.Application.Bigscreen
 {
 	public  class SeatStateDataService: ISeatStateDataService , IScopeDependency
 	{
-
-		public static DateTime now = DateTime.Now.Date;
 		private readonly IRepository<TrCallRecord> _callRepository;
 		public SeatStateDataService(IRepository<TrCallRecord> callRepository) {
 			_callRepository= callRepository;
@@ -27,7 +25,7 @@ namespace Hotline.Application.Bigscreen
 				timeList.Add(time);
 			}
 			var call24 = await _callRepository.Queryable()
-				.Where(x => x.CreatedTime.Date == now
+				.Where(x => x.CreatedTime.Date == DateTime.Now.Date
 					&& x.CallOrderType == Share.Enums.CallCenter.ECallOrderType.Order
 				)
 				.Select(x => new { time = x.CreatedTime.ToString("hh"), x.CallDirection }).MergeTable()
@@ -69,8 +67,8 @@ namespace Hotline.Application.Bigscreen
 		public async Task<object> GetCallList(CancellationToken stoppingToken)
 		{
 			var callList = await _callRepository.Queryable()
-				.Where(x => x.CreatedTime.Date == now
-					&& x.CallOrderType == Share.Enums.CallCenter.ECallOrderType.Order
+				.Where(x => x.CreatedTime.Date == DateTime.Now.Date
+                    && x.CallOrderType == Share.Enums.CallCenter.ECallOrderType.Order
 				)
 				.Select(x => new
 				{
@@ -92,8 +90,8 @@ namespace Hotline.Application.Bigscreen
 				timeList.Add(time);
 			}
 			var callAverage = await _callRepository.Queryable()
-				.Where(x => x.CreatedTime.Date == now
-					&& x.CallOrderType == Share.Enums.CallCenter.ECallOrderType.Order
+				.Where(x => x.CreatedTime.Date == DateTime.Now.Date
+                    && x.CallOrderType == Share.Enums.CallCenter.ECallOrderType.Order
 				)
 				.Select(x => new { time = x.CreatedTime.ToString("hh"), x.CallDirection }).MergeTable()
 				.GroupBy(x => x.time)

+ 15 - 15
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -216,7 +216,7 @@ namespace Hotline.Application.Subscribers
         [CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderRevoke)]
         public async Task RecCancelOrderAsync(CancelOrderDto dto, CancellationToken cancellationToken)
         {
-            var order = await _orderRepository.GetAsync(p => p.ProvinceNo == dto.ProvinceNo, cancellationToken);
+            var order = await _orderRepository.GetAsync(p => p.ReceiveProvinceNo == dto.ProvinceNo, cancellationToken);
             if (order is null)
                 throw new UserFriendlyException("未查询到工单");
 
@@ -272,7 +272,7 @@ namespace Hotline.Application.Subscribers
             if (exists)
                 throw new UserFriendlyException($"收到重复催办编号: {dto.DsBisId}");
 
-            var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.CaseSerial).FirstAsync(cancellationToken);
+            var order = await _orderRepository.Queryable().Where(x => x.ReceiveProvinceNo == dto.CaseSerial).FirstAsync(cancellationToken);
             var model = new OrderUrge();
             model.InitId();
             model.State = 0;
@@ -316,7 +316,7 @@ namespace Hotline.Application.Subscribers
         [CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderWarning)]
         public async Task RecWarnInfoAsync(WarningDto dto, CancellationToken cancellationToken)
         {
-            var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.CaseSerial).FirstAsync(cancellationToken);
+            var order = await _orderRepository.Queryable().Where(x => x.ReceiveProvinceNo == dto.CaseSerial).FirstAsync(cancellationToken);
             if (order != null)
             {
                 var model = new OrderUrge();
@@ -376,7 +376,7 @@ namespace Hotline.Application.Subscribers
             if (exists)
                 throw new UserFriendlyException($"收到重复督办编号: {dto.ProvinceOrderSuperviseDto.SuperviseSerial}");
 
-            var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.ProvinceOrderSuperviseDto!.CaseSerial).FirstAsync(cancellationToken);
+            var order = await _orderRepository.Queryable().Where(x => x.ReceiveProvinceNo == dto.ProvinceOrderSuperviseDto!.CaseSerial).FirstAsync(cancellationToken);
             var org = await _systemOrganizeRepository.GetAsync(x => x.Id == order.ActualHandleOrgCode, cancellationToken);
             var model = new OrderSupervise();
             model.InitId();
@@ -413,7 +413,7 @@ namespace Hotline.Application.Subscribers
             //    .FirstAsync(cancellationToken);
 
             var orderScreen = await _orderScreenRepository.Queryable()
-                .Where(x => x.Order.ProvinceNo == dto.ProvinceScreenResult.CaseSerial &&
+                .Where(x => x.Order.ReceiveProvinceNo == dto.ProvinceScreenResult.CaseSerial &&
                             x.Status == EScreenStatus.Approval)
                 .FirstAsync(cancellationToken);
 
@@ -471,7 +471,7 @@ namespace Hotline.Application.Subscribers
             var orderVisit = await _orderVisitRepository.Queryable()
                 .Includes(x => x.Order)
                 .Includes(x => x.OrderVisitDetails)
-                .Where(x => x.Order.ProvinceNo == dto.ProvinceNo &&
+                .Where(x => x.Order.ReceiveProvinceNo == dto.ProvinceNo &&
              x.VisitState != Share.Enums.Order.EVisitState.None).FirstAsync(cancellationToken);
 
             if (orderVisit != null)
@@ -549,13 +549,13 @@ namespace Hotline.Application.Subscribers
             else
             {
                 //处理省下行回访
-                var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.ProvinceNo).FirstAsync();
+                var order = await _orderRepository.Queryable().Where(x => x.ReceiveProvinceNo == dto.ProvinceNo).FirstAsync();
                 if (order !=null)
                 {
                     //判断是否有发布数据
                     var orderPublish = await _orderPublishRepository.Queryable()
                         .Includes(x => x.Order).
-                        Where(x => x.Order.ProvinceNo == dto.ProvinceNo).FirstAsync(cancellationToken);
+                        Where(x => x.Order.ReceiveProvinceNo == dto.ProvinceNo).FirstAsync(cancellationToken);
                     if (orderPublish == null)
                     {
                         orderPublish = new OrderPublish();
@@ -646,7 +646,7 @@ namespace Hotline.Application.Subscribers
         [CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderDelayResult)]
         public async Task OrderDelayWeb(ProvinceSendDelayResultDto dto, CancellationToken cancellationToken)
         {
-            var order = await _orderRepository.GetAsync(x => x.ProvinceNo == dto.No, cancellationToken);
+            var order = await _orderRepository.GetAsync(x => x.ReceiveProvinceNo == dto.No, cancellationToken);
             if (order != null)
             {
                 //查询延期
@@ -727,7 +727,7 @@ namespace Hotline.Application.Subscribers
         public async Task RecOrderExtensionAsync(OrderExtensionDto dto, CancellationToken cancellationToken)
         {
             var order = await _orderRepository.Queryable()
-                .FirstAsync(d => d.ProvinceNo == dto.ProvinceNo, cancellationToken);
+                .FirstAsync(d => d.ReceiveProvinceNo == dto.ProvinceNo, cancellationToken);
 
             var orderExtension = await _orderDomainService.GetOrderExtensionsAsync(dto.ProvinceNo, cancellationToken);
             if (orderExtension is null)
@@ -774,7 +774,7 @@ namespace Hotline.Application.Subscribers
         [CapSubscribe(EventNames.SharingOrderSupplements)]
         public async Task RecOrderSupplementsAsync(AddOrderComplementDto dto, CancellationToken cancellationToken)
         {
-            var order = await _orderRepository.GetAsync(d => d.ProvinceNo == dto.CaseSerial, cancellationToken);
+            var order = await _orderRepository.GetAsync(d => d.ReceiveProvinceNo == dto.CaseSerial, cancellationToken);
             if (order is null)
                 throw new UserFriendlyException("无效省工单编号");
             dto.OrderId = order.Id;
@@ -798,7 +798,7 @@ namespace Hotline.Application.Subscribers
             switch (dto.DsBisType)
             {
                 case EDsBisType.AcceptOrder:
-                    var order = await _orderRepository.GetAsync(d => d.ProvinceNo == dto.ProvinceNo, cancellationToken);
+                    var order = await _orderRepository.GetAsync(d => d.ReceiveProvinceNo == dto.ProvinceNo, cancellationToken);
                     if (order is null)
                         throw new UserFriendlyException("无效省工单编号");
 
@@ -807,7 +807,7 @@ namespace Hotline.Application.Subscribers
                     break;
                 case EDsBisType.OrderPreviousResult:
                     var sendBack = await _orderSendBackRepository.Queryable()
-                        .Where(d => d.Order.ProvinceNo == dto.ProvinceNo)
+                        .Where(d => d.Order.ReceiveProvinceNo == dto.ProvinceNo)
                         .FirstAsync(cancellationToken);
                     if (sendBack is null)
                         throw new UserFriendlyException("无效省工单退回编号");
@@ -835,7 +835,7 @@ namespace Hotline.Application.Subscribers
                     break;
                 case EDsBisType.OrderScreenResult:
                     var orderScreen = await _orderScreenRepository.Queryable()
-                        .Where(x => x.Order.ProvinceNo == dto.ProvinceNo && x.Status == Share.Enums.Order.EScreenStatus.Approval)
+                        .Where(x => x.Order.ReceiveProvinceNo == dto.ProvinceNo && x.Status == Share.Enums.Order.EScreenStatus.Approval)
                         .FirstAsync(cancellationToken);
                     if (orderScreen is null)
                         throw new UserFriendlyException("未查询到对应省工单甄别数据");
@@ -845,7 +845,7 @@ namespace Hotline.Application.Subscribers
                     break;
                 case EDsBisType.OrderDelayResult:
                     var orderDelay = await _orderDelayRepository.Queryable()
-                        .Where(d => d.Order.ProvinceNo == dto.ProvinceNo && d.DelayState == EDelayState.Examining)
+                        .Where(d => d.Order.ReceiveProvinceNo == dto.ProvinceNo && d.DelayState == EDelayState.Examining)
                         .FirstAsync(cancellationToken);
                     if (orderDelay is null)
                         throw new UserFriendlyException($"未查询到延期数据, ProvinceNo: {dto.ProvinceNo}");

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

@@ -908,10 +908,15 @@ namespace Hotline.Share.Dtos.Order
         public bool IsProvince { get; set; }
 
         /// <summary>
-        /// 同步省工单编号和省上传下来的工单都用这个字段
+        /// 省本地编号
         /// </summary>
         public string? ProvinceNo { get; set; }
 
+        /// <summary>
+        /// 省交办编号
+        /// </summary>
+        public string? ReceiveProvinceNo { get; set; }
+
         /// <summary>
         /// 省过期时间(省工单才有)
         /// </summary>

+ 2 - 1
src/Hotline.Share/Dtos/Order/SendBackDto.cs

@@ -26,7 +26,7 @@ namespace Hotline.Share.Dtos.Order
 		public string? AuditContent { get; set; }
 
 
-		/// <summary>
+			/// <summary>
 		/// 是否允许再次退回
 		/// </summary>
 		public bool? IsReturnAgain { get; set; }
@@ -121,6 +121,7 @@ namespace Hotline.Share.Dtos.Order
 			return 0;
 		}
 
+		public bool IsReturnAgainShow => ApplyOrgId != "001" && SendBackOrgId == "001";
 
 	}
 	public class SendBackBaseDto

+ 1 - 1
src/Hotline.Share/Hotline.Share.csproj

@@ -7,7 +7,7 @@
     <GenerateDocumentationFile>True</GenerateDocumentationFile>
     <NoWarn>$(NoWarn);1591;8618;</NoWarn>
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
-    <Version>1.0.104</Version>
+    <Version>1.0.105</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 8 - 2
src/Hotline/Orders/Order.cs

@@ -832,11 +832,17 @@ namespace Hotline.Orders
         public DateTime? ExpiredTimeProvince { get; set; }
 
         /// <summary>
-        /// 同步省工单编号和省上传下来的工单都用这个字段
+        /// 省本地编号
         /// </summary>
-        [SugarColumn(ColumnDescription = "省工单编号")]
+        [SugarColumn(ColumnDescription = "省本地编号")]
         public string? ProvinceNo { get; set; }
 
+        /// <summary>
+        /// 省交办编号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "省交办编号")]
+        public string? ReceiveProvinceNo { get; set; }
+
         /// <summary>
         /// 外部工单唯一标识
         /// </summary>

+ 5 - 0
src/Hotline/Permissions/EPermission.cs

@@ -612,6 +612,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="回访待办",Name ="批量回访",Description ="批量回访")]
         BatchOrderVisit = 200917,
+        /// <summary>
+        /// 重办
+        /// </summary>
+        [Display(GroupName ="回访待办",Name ="重办",Description ="重办")]
+        OrderVisitRedo = 200919,
         #endregion
 
         #region 回访列表