Browse Source

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

xf 1 năm trước cách đây
mục cha
commit
386e0eedb2

+ 9 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -2399,7 +2399,7 @@ public class OrderController : BaseController
         //{
         //    throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
         //}
-        if (await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply, HttpContext.RequestAborted))
+        if (order != null && await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply, HttpContext.RequestAborted))
         {
             throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
         }
@@ -2619,7 +2619,7 @@ public class OrderController : BaseController
     {
         var oneSendBack = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.OneOrgSendBack)?.SettingValue[0]);
         var twoSendBack = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.TwoOrgSendBack)?.SettingValue[0]);
-        if (oneSendBack || twoSendBack)
+		if (oneSendBack || twoSendBack)
         {
             var workflow =
                 await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true, cancellationToken: HttpContext.RequestAborted);
@@ -2637,6 +2637,12 @@ public class OrderController : BaseController
             if (sendBack)
 	            throw UserFriendlyException.SameMessage("当前工单已经生成退回记录");
 
+            var order = await _orderRepository
+	            .Queryable()
+	            .Includes(d => d.Workflow)
+	            .FirstAsync(d => d.Id == workflow.ExternalId);
+            if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行退回!");
+
 			var applyOrg = _organizeRepository.Get(currentStep.AcceptorOrgId);
             var sendBackOrg = _organizeRepository.Get(prevStep.AcceptorOrgId);
             if ((twoSendBack && 2.Equals(applyOrg.Level) && 1.Equals(sendBackOrg.Level) && !sendBackOrg.IsCenter) 
@@ -2720,6 +2726,7 @@ public class OrderController : BaseController
             .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
             .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
             .WhereIF(dto.State.HasValue, d => d.State == dto.State)
+            .Where(x=>x.SendBackOrgId == _sessionContext.OrgId)
             .OrderByDescending(x => x.CreationTime)
             .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 

+ 4 - 2
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -555,14 +555,16 @@ public class WorkflowController : BaseController
     {
         RefAsync<int> total = 0;
         var query = _workflowCountersignRepository.Queryable()
+            .Includes(x=>x.Members)
             .LeftJoin<Workflow>((c, w) => c.WorkflowId == w.Id)
             .InnerJoin<Order>((c, w, o) => w.ExternalId == o.Id)
+            .WhereIF(!_sessionContext.OrgIsCenter,x=>x.Members.Any(x=>x.Key== _sessionContext.OrgId))
             .WhereIF(dto.IsProvince.HasValue, (c, w, o) => o.IsProvince == dto.IsProvince.Value)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
                 (c, w, o) => o.No.Contains(dto.Keyword) || o.Title.Contains(dto.Keyword));
 
-        if (dto.IsOnlyStarter)
-            query = query.Where((c, w, o) => c.StarterId == _sessionContext.RequiredUserId);
+        //if (dto.IsOnlyStarter)
+        //    query = query.Where((c, w, o) => c.StarterId == _sessionContext.RequiredUserId);
 
         var items = await query
             .OrderByDescending((c, w, o) => o.ExpiredTime)

+ 1 - 1
src/Hotline.Application/Handlers/FlowEngine/WorkflowRecallHandler.cs

@@ -63,7 +63,7 @@ public class WorkflowRecallHandler : INotificationHandler<RecallNotify>
 
                 await _orderRepository.UpdateAsync(order, cancellationToken);
 
-                if (data.External.TimeLimit.HasValue && data.External.TimeLimitUnit.HasValue)
+                if (data.External != null && data.External.TimeLimit.HasValue && data.External.TimeLimitUnit.HasValue)
                 {
                     var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
                         data.External.TimeLimitUnit.Value,

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

@@ -194,7 +194,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     public async Task<PagedDto<OrderDto>> GetToExpireAsync(AboutToExpireListDto dto, CancellationToken cancellationToken)
     {
         DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
-        var (total, items) = await _orderRepository.Queryable()
+        var (total, items) = await _orderRepository.Queryable(viewFilter:true)
             .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Title.Contains(dto.Keyword!) || x.No.Contains(dto.Keyword!))
             //.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No)

+ 0 - 5
src/Hotline/FlowEngine/Workflows/WorkflowCountersign.cs

@@ -133,11 +133,6 @@ namespace Hotline.FlowEngine.Workflows
         public bool? IsExpired { get; set; }
 
 
-        /// <summary>
-        /// 外部业务唯一标识
-        /// </summary>
-        public string ExternalId { get; set; }
-
         [SugarColumn(IsIgnore = true)]
         public List<WorkflowCountersign> Children { get; set; }
 

+ 1 - 1
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -1413,7 +1413,7 @@ namespace Hotline.FlowEngine.Workflows
                 FlowAssignType = flowAssignType,
                 CounterSignType = counterSignType,
                 ExpiredTime = expiredTime,
-                ExternalId = workflow.ExternalId,
+                //ExternalId = workflow.ExternalId,
             };
             //await _workflowCountersignRepository.AddAsync(countersign, cancellationToken);