Эх сурвалжийг харах

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

田爽 1 жил өмнө
parent
commit
d5e101a211

+ 1 - 1
src/Hotline.Api/Controllers/OrderController.cs

@@ -2086,7 +2086,7 @@ public class OrderController : BaseController
     public async Task<PagedDto<OrderDto>> Query([FromQuery] QueryOrderHistoryDto dto)
     {
         var (total, items) = await _orderRepository.Queryable()
-            .Where(d => d.FromPhone == dto.PhoneNo)
+            .Where(d => d.Contact == dto.PhoneNo)
             .WhereIF(!string.IsNullOrEmpty(dto.OrderId), d => d.Id != dto.OrderId)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
             .OrderByDescending(d => d.CreationTime)

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

@@ -209,7 +209,7 @@ public class TestController : BaseController
         //await _daySettingRepository.IsWorkDay(DateTime.Now);
 
         //var r = _timeLimitDomainService.CalcWorkTime(DateTime.Parse("2024-3-22 05:00:00"), DateTime.Parse("2024-3-22 06:00:00"), false);
-        var r = _timeLimitDomainService.CalcWorkTime(DateTime.Parse("2024-3-24 05:00:00"), DateTime.Parse("2024-3-24 06:00:00"), false);
+        var r = _timeLimitDomainService.CalcWorkTime(DateTime.Parse("2024-3-24 17:20:00"), DateTime.Parse("2024-3-24 17:21:00"), false);
 
         return OpenResponse.Ok(DateTime.Now.ToString("F"));
     }

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

@@ -100,7 +100,7 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
 
                 var expiredTimeChanged = false;
                 if (data.FlowDirection.HasValue
-                    && data.External.TimeLimit.HasValue
+                    && data.External.TimeLimit.HasValue                   
                     && data.External.TimeLimitUnit.HasValue)
                 {
                     // 1. calc expiredTime 2. update order.expiredTime 3. update workflow.expiredTime 4. publish province

+ 3 - 12
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -293,7 +293,7 @@ public partial class Workflow : CreationEntity
     // public double HandleDurationWorkday { get; set; }
 
     /// <summary>
-    /// 全流程时长(分钟
+    /// 全流程时长(
     /// 归档时间-创建时间
     /// </summary>
     public double AllDuration { get; set; }
@@ -851,21 +851,12 @@ public partial class Workflow
         ResetOption();
         Status = EWorkflowStatus.Runnable;
     }
-
-    // public void SetHandleDuration()
-    // {
-    //     if (!ActualHandleTime.HasValue)
-    //         throw new ArgumentNullException($"{ActualHandleTime} is null");
-    //     if (!CenterToOrgTime.HasValue)
-    //         throw new ArgumentNullException($"{CenterToOrgTime} is null");
-    //     HandleDuration = Math.Round((ActualHandleTime - CenterToOrgTime).Value.TotalMinutes);
-    // }
-
+    
     public void SetAllDuration()
     {
         if (!EndTime.HasValue)
             throw new ArgumentNullException($"{EndTime} is null");
-        AllDuration = Math.Round((EndTime - CreationTime).Value.TotalMinutes);
+        AllDuration = Math.Round((EndTime - CreationTime).Value.TotalSeconds);
     }
 
     public bool IsReviewPass() => FlowType == EFlowType.Review && ReviewResult == EReviewResult.Approval;

+ 23 - 3
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -101,7 +101,7 @@ namespace Hotline.FlowEngine.Workflows
         /// 流程开始
         /// </summary>
         public async Task StartAsync(Workflow workflow, WorkflowStep startStep, BasicWorkflowDto dto,
-            StepDefine firstStepDefine, bool isNextDynamic, FlowAssignInfo flowAssignInfo, 
+            StepDefine firstStepDefine, bool isNextDynamic, FlowAssignInfo flowAssignInfo,
             ECounterSignType counterSignType, CancellationToken cancellationToken)
         {
             //1. 创建first节点 (和trace)2.办理开始节点 
@@ -539,7 +539,8 @@ namespace Hotline.FlowEngine.Workflows
             //    throw UserFriendlyException.SameMessage("会签流程不支持退回");
 
             var currentStep = GetUnHandleStep(workflow.Steps, operater.OrgId, operater.Id);
-            if (currentStep.IsInCountersign())
+            var isCurrentTopCountersignEndStep = currentStep.IsTopCountersignEndStep(workflow.TopCountersignStepId);
+            if (currentStep.IsInCountersign() && !isCurrentTopCountersignEndStep)
                 throw UserFriendlyException.SameMessage("会签节点不支持退回");
 
             //保存附件
@@ -550,11 +551,30 @@ namespace Hotline.FlowEngine.Workflows
                 throw UserFriendlyException.SameMessage("当前流程已退回到开始节点");
 
             //find prevStep, update handler
-            var prevStep = workflow.Steps.FirstOrDefault(d => d.Id == currentStep.PrevStepId);
+            WorkflowStep? prevStep;
+            if (isCurrentTopCountersignEndStep)
+            {
+                //todo end countersign
+                //prev is topstart's prev
+                var countersignStartStep =
+                    workflow.Steps.FirstOrDefault(d => d.Id == currentStep.CountersignStartStepId);
+                prevStep = workflow.Steps.FirstOrDefault(d => d.Id == countersignStartStep.PrevStepId);
+            }
+            else
+            {
+                prevStep = workflow.Steps.FirstOrDefault(d => d.Id == currentStep.PrevStepId);
+            }
             if (prevStep == null)
                 throw UserFriendlyException.SameMessage("未查询到前一节点");
 
+            if(prevStep.IsTopCountersignEndStep(workflow.TopCountersignStepId))
+                prevStep = workflow.Steps.FirstOrDefault(d => d.Id == prevStep.CountersignStartStepId);
+            if (prevStep == null)
+                throw UserFriendlyException.SameMessage("未查询到会签发起节点");
+
             var removeSteps = new List<WorkflowStep> { currentStep, prevStep };
+            //todo remove steps after prevStep
+
 
             //1. remove steps between cs end to start except startStep 2. prev == start
             if (prevStep.IsCountersignEndStep)

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

@@ -306,29 +306,29 @@ namespace Hotline.Orders
         public DateTime? FiledTime { get; set; }
 
         /// <summary>
-        /// 办结时长(分钟
+        /// 办结时长(
         /// 办结时间-交办时间
         /// </summary>
         public double? HandleDuration { get; set; }
 
         /// <summary>
-        /// 办结工作日时长(分钟
+        /// 办结工作日时长(
         /// </summary>
         public double? HandleDurationWorkday { get; set; }
 
         /// <summary>
-        /// 归档时长(分钟
+        /// 归档时长(
         /// 归档时间-交办时间
         /// </summary>
         public double? FileDuration { get; set; }
 
         /// <summary>
-        /// 归档工作时长(分钟
+        /// 归档工作时长(
         /// </summary>
         public double? FileDurationWorkday { get; set; }
 
         /// <summary>
-        /// 全流程时长(分钟
+        /// 全流程时长(
         /// 归档时间-创建时间
         /// </summary>
         public double? AllDuration { get; set; }
@@ -808,21 +808,21 @@ namespace Hotline.Orders
         {
             if (!ActualHandleTime.HasValue) return;
             if (!CenterToOrgTime.HasValue) return;
-            HandleDuration = Math.Round((ActualHandleTime - CenterToOrgTime).Value.TotalMinutes);
+            HandleDuration = Math.Round((ActualHandleTime - CenterToOrgTime).Value.TotalSeconds);
         }
 
         public void SetAllDuration()
         {
             if (!FiledTime.HasValue) return;
             if (!StartTime.HasValue) return;
-            AllDuration = Math.Round((FiledTime - StartTime).Value.TotalMinutes);
+            AllDuration = Math.Round((FiledTime - StartTime).Value.TotalSeconds);
         }
 
         public void SetFileDuration()
         {
             if (!FiledTime.HasValue) return;
             if (!CenterToOrgTime.HasValue) return;
-            FileDuration = Math.Round((FiledTime - CenterToOrgTime).Value.TotalMinutes);
+            FileDuration = Math.Round((FiledTime - CenterToOrgTime).Value.TotalSeconds);
         }
 
         /// <summary>

+ 6 - 1
src/Hotline/Permissions/EPermission.cs

@@ -65,7 +65,7 @@ namespace Hotline.Permissions
         OrderToDo = 100200,
 
         /// <summary>
-        /// 退回申请
+        /// 退回申请
         /// </summary>
         [Display(GroupName = "工单待办", Name = "退回申请", Description = "退回申请")]
         ApplySendBack = 100201,
@@ -168,6 +168,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="工单列表",Name = "取消延期",Description ="取消延期")]
         CancelOrderDelay = 200113,
+        /// <summary>
+        /// 批量省退回申请
+        /// </summary>
+        [Display(GroupName ="工单列表",Name ="批量省退回申请",Description ="批量省退回申请")]
+        BatchProvinceBackApply = 200114,
         #endregion
 
         #region 延期管理

+ 2 - 2
src/Hotline/Settings/TimeLimits/TimeLimitDomainService.cs

@@ -289,7 +289,7 @@ namespace Hotline.Settings.TimeLimits
                                         minutes += (int)sp.TotalMinutes;
                                     }
                                 }
-                                return minutes;
+                                return minutes == 0 ? 1 : minutes*60;
                             }
                             //如果不是当天完成
                             else
@@ -313,7 +313,7 @@ namespace Hotline.Settings.TimeLimits
                                             TimeSpan sp = new TimeSpan(endTime.Ticks - WorkBeginTime.Ticks);
                                             minutes += (int)sp.TotalMinutes;
                                         }
-                                        return minutes;
+                                        return minutes == 0 ? 1 : minutes * 60;
                                     }
                                     else
                                     {