Browse Source

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

xf 4 tháng trước cách đây
mục cha
commit
05a8596210

+ 8 - 2
src/Hotline.Api/Controllers/ExportWordController.cs

@@ -1,6 +1,8 @@
 using Hotline.Application.ExportWord;
+using Hotline.Caching.Interfaces;
 using Hotline.Configurations;
 using Hotline.Orders;
+using Hotline.Settings;
 using Hotline.Share.Dtos.OrderExportWord;
 using Hotline.Share.Enums.Order;
 using MapsterMapper;
@@ -19,6 +21,7 @@ namespace Hotline.Api.Controllers
         private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
         private readonly ILogger<ExportWordController> _logger;
         private readonly IOptionsSnapshot<AppConfiguration> _appOptions;
+        private readonly ISystemSettingCacheManager _systemSettingCacheManager;
 
         public ExportWordController(IOrderRepository orderRepository,
             IWordHelperService wordHelperService,
@@ -26,7 +29,8 @@ namespace Hotline.Api.Controllers
            IRepository<OrderVisit> orderVisitRepository,
            IRepository<OrderVisitDetail> orderVisitedDetailRepository,
            ILogger<ExportWordController> logger,
-            IOptionsSnapshot<AppConfiguration> appOptions)
+            IOptionsSnapshot<AppConfiguration> appOptions,
+            ISystemSettingCacheManager systemSettingCacheManager)
         {
             _orderRepository = orderRepository;
             _wordHelperService = wordHelperService;
@@ -35,6 +39,7 @@ namespace Hotline.Api.Controllers
             _orderVisitedDetailRepository = orderVisitedDetailRepository;
             _logger = logger;
             _appOptions = appOptions;
+            _systemSettingCacheManager = systemSettingCacheManager;
         }
 
         /// <summary>
@@ -47,6 +52,7 @@ namespace Hotline.Api.Controllers
             var streams = new Dictionary<string, Stream>();
             var path = $"{Directory.GetCurrentDirectory()}/Template/AssignmentForm.doc";
             int num = 1;
+            var isTheAssignmentFormConfidential = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.IsTheAssignmentFormConfidential).SettingValue[0]);
             foreach (var item in Ids)
             {
                 var order = await _orderRepository.GetAsync(item, HttpContext.RequestAborted);
@@ -54,7 +60,7 @@ namespace Hotline.Api.Controllers
                     continue;
 
                 //处理保密数据
-                if (_appOptions.Value.IsZiGong && order.IsSecret)
+                if (isTheAssignmentFormConfidential && order.IsSecret)
                 {
                     var maskString = "***";
                     order.Contact = maskString;

+ 1 - 1
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -975,7 +975,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
                     var lowLevels = levels.Where(d => d > _sessionContextProvider.SessionContext.OrgLevel).ToList();
                     orgs1 = await query
                         .Where(d => (upLevels.Contains(d.Level) && d.Id.StartsWith(levelOneOrgId)) ||
-                                    (lowLevels.Contains(d.Level) && d.Id.Contains(orgId)))
+                                    (lowLevels.Contains(d.Level) && d.Id.StartsWith(orgId)))
                         .ToListAsync(cancellationToken);
                 }
 

+ 5 - 1
src/Hotline.Application/Orders/OrderApplication.cs

@@ -240,7 +240,11 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         await _workflowDomainService.UpdateUnhandleExpiredTimeAsync(order.WorkflowId, expiredTimeConfig.ExpiredTime, cancellationToken);
 
         await _orderRepository.UpdateAsync(order, cancellationToken);
-    }
+
+        var orderDto = _mapper.Map<OrderDto>(order);
+        await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
+	        cancellationToken: cancellationToken);
+	}
 
     // /// <summary>
     // /// 新增工单办理流程记录

+ 4 - 2
src/Hotline.Application/Orders/OrderSecondaryHandlingApplication.cs

@@ -227,7 +227,8 @@ namespace Hotline.Application.Orders
                 .Includes(x => x.SecondaryHandling)
                 .Where(x => x.OrderVisit.Order.IsProvince == false)
                 .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
-                .Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
+                //.Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
+                .Where(x=> SqlFunc.Subqueryable<OrderSecondaryHandling>().Where(osh => osh.VisitDetailId == x.Id &&  osh.State == ESecondaryHandlingState.NotApply).NotAny())
                 //.Where(x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
                 .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
                 .WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
@@ -245,7 +246,8 @@ namespace Hotline.Application.Orders
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgProcessingResults), x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.OrgProcessingResults)
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgHandledAttitude), x => SqlFunc.JsonListObjectAny(x.OrgHandledAttitude, "Key", dto.OrgHandledAttitude))
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason), x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
-                .Where((x, s) => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
+                .Where(x => SqlFunc.Subqueryable<OrderVisit>().Where(ov => ov.Id == x.VisitId && ov.VisitState == EVisitState.Visited && ov.IsCanHandle).Any())
+                //.Where((x, s) => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
                 .WhereIF(!isAdmin, (x, s) => (x.OrderVisit.Order.CounterSignType ==  ECounterSignType.Department || x.OrderVisit.Order.CounterSignType == null) && x.VisitOrgCode.StartsWith(_sessionContext.OrgId))
                 ;
             if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)

+ 8 - 1
src/Hotline.Application/Subscribers/InternalCapSubscriber.cs

@@ -15,6 +15,7 @@ using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Push;
 using Hotline.Share.Mq;
 using Hotline.Users;
+using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Http;
 using NPOI.SS.Formula.Functions;
@@ -37,6 +38,7 @@ namespace Hotline.Application.Subscribers
         private readonly IRepository<OrderDelay> _orderDelayRepository;
         private readonly IWorkflowDomainService _workflowDomainService;
         private readonly ICalcExpireTime _expireTime;
+        private readonly IMapper _mapper;
 
 		public InternalCapSubscriber(
             IOrderRepository orderRepository,
@@ -48,7 +50,8 @@ namespace Hotline.Application.Subscribers
             IOrderApplication orderApplication,
             IRepository<OrderDelay> orderDelayRepository,
             IWorkflowDomainService workflowDomainService,
-            ICalcExpireTime expireTime
+            ICalcExpireTime expireTime,
+            IMapper mapper
 			)
         {
             _orderRepository = orderRepository;
@@ -61,6 +64,7 @@ namespace Hotline.Application.Subscribers
             _orderDelayRepository = orderDelayRepository;
             _workflowDomainService = workflowDomainService;
             _expireTime = expireTime;
+            _mapper = mapper;
 		}
 
         /// <summary>
@@ -330,6 +334,9 @@ namespace Hotline.Application.Subscribers
 					}
 					order = await _orderRepository.GetAsync(dto.OrderId, cancellationToken);
 					_capPublisher.PublishDelay(order.ExpiredTime.Value - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay, new PublishAutomaticDelayDto() { OrderId = order.Id });
+					var orderDto = _mapper.Map<OrderDto>(order);
+					await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
+						cancellationToken: cancellationToken);
 				}
 			}
 		

+ 2 - 1
src/Hotline/Orders/OrderVisitDetail.cs

@@ -8,7 +8,8 @@ using XF.Utility.EnumExtensions;
 
 namespace Hotline.Orders
 {
-    public class OrderVisitDetail : CreationEntity
+	[SugarIndex("index_visitDetail_creationtime", nameof(OrderVisitDetail.CreationTime), OrderByType.Desc)]
+	public class OrderVisitDetail : CreationEntity
     {
 
         /// <summary>

+ 4 - 0
src/Hotline/Settings/SettingConstants.cs

@@ -638,5 +638,9 @@ namespace Hotline.Settings
 		/// </summary>
 		public const string OrgVisitDetailHiddenOrderNo = "OrgVisitDetailHiddenOrderNo";
 
+        /// <summary>
+        /// 交办单是否保密
+        /// </summary>
+        public const string IsTheAssignmentFormConfidential = "IsTheAssignmentFormConfidential";
     }
 }