xf 1 éve
szülő
commit
a6bd94dd50

+ 1 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -60,7 +60,7 @@
     }
   },
   "DatabaseConfiguration": {
-    "ApplyDbMigrations": true,
+    "ApplyDbMigrations": false,
     "ApplySeed": false
   },
   "MqConfiguration": {

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

@@ -50,6 +50,11 @@ public abstract class StepBasicEntity : CreationEntity
     /// </summary>
     public EExpiredStatus? ExpiredStatus { get; set; }
 
+    /// <summary>
+    /// 节点办理状态
+    /// </summary>
+    public EWorkflowStepStatus Status { get; set; }
+
     #region 接办
 
     /// <summary>

+ 26 - 40
src/Hotline/FlowEngine/Workflows/WorkflowDomainService.cs

@@ -434,7 +434,7 @@ namespace Hotline.FlowEngine.Workflows
                     _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName,
                     _sessionContext.OrgLevel);
             }
-            
+
             //检查是否流转到流程终点
             if (nextStepDefine.StepType is EStepType.End)
             {
@@ -550,10 +550,10 @@ namespace Hotline.FlowEngine.Workflows
                 await DuplicateStepWithTraceAsync(workflow, prevStep, EWorkflowTraceStatus.Previous, cancellationToken);
 
             //remove workflow.steps
-            //await _workflowStepRepository.RemoveRangeAsync(removeSteps, cancellationToken);
-            await _workflowStepRepository.RemoveNav(removeSteps)
-                .Include(d => d.StepHandlers)
-                .ExecuteCommandAsync();
+            await _workflowStepRepository.RemoveRangeAsync(removeSteps, cancellationToken);
+            //await _workflowStepRepository.RemoveNav(removeSteps)
+            //    .Include(d => d.StepHandlers)
+            //    .ExecuteCommandAsync();
 
             if (workflow.Status is EWorkflowStatus.Completed)
                 workflow.SetStatusRunnable();
@@ -680,7 +680,7 @@ namespace Hotline.FlowEngine.Workflows
             await _workflowStepRepository.UpdateNav(steps)
                 .Include(d => d.WorkflowTrace)
                 .Include(d => d.Workflow)
-                .Include(d=>d.StepHandlers)
+                .Include(d => d.StepHandlers)
                 .ExecuteCommandAsync();
 
             return steps.Select(d => d.WorkflowId).ToList();
@@ -697,7 +697,7 @@ namespace Hotline.FlowEngine.Workflows
                                              d.StepHandlers.Any(d =>
                                                  !string.IsNullOrEmpty(d.OrgId) && d.OrgId.CheckIfOrgLevelIs(1)))
                 .Select(d => new Kv(d.StepHandlers.First().OrgId, d.StepHandlers.First().OrgName))
-				.ToList();
+                .ToList();
             return list.Where((x, i) => list.FindIndex(z => z.Key == x.Key) == i).ToList();
         }
 
@@ -1052,21 +1052,6 @@ namespace Hotline.FlowEngine.Workflows
             await _mediator.Publish(new CancelWorkflowNotify(workflow), cancellationToken);
         }
 
-        ///// <summary>
-        ///// 更新期满时间
-        ///// </summary>
-        //public async Task UpdateExpiredTimeAsync(Workflow workflow, DateTime expiredTime, string timelimit,
-        //    int? timelimiteCount,
-        //    ETimeType? timelimitUnit, DateTime nearlyExpiredTime, CancellationToken cancellationToken)
-        //{
-        //    workflow.ExpiredTime = expiredTime;
-        //    workflow.NearlyExpiredTime = nearlyExpiredTime;
-        //    workflow.TimeLimit = timelimit;
-        //    workflow.TimeLimitUnit = timelimitUnit;
-        //    workflow.TimeLimitCount = timelimiteCount;
-        //    await _workflowRepository.UpdateAsync(workflow, cancellationToken);
-        //}
-
         /// <summary>
         /// 新增流程流转记录
         /// </summary>
@@ -1297,8 +1282,7 @@ namespace Hotline.FlowEngine.Workflows
                     else
                     {
                         // csStartStep.prev
-                        var csStartStep =
-                            workflow.Steps.FirstOrDefault(d => d.Id == currentStep.CountersignStartStepId);
+                        var csStartStep = workflow.Steps.FirstOrDefault(d => d.Id == currentStep.CountersignStartStepId);
                         if (csStartStep is null)
                             throw new UserFriendlyException("未查询到会签节点");
 
@@ -1364,7 +1348,7 @@ namespace Hotline.FlowEngine.Workflows
                 _ => throw new ArgumentOutOfRangeException()
             };
 
-            return await CreateStepsAsync(workflow, nextStepDefine, prevStep, dto,
+            return await CreateStepsAsync(workflow, nextStepDefine, prevStep, dto, dto.IsStartCountersign,
                 flowAssignInfo.FlowAssignType, dto.NextHandlers, stepHandlers, null, EWorkflowStepStatus.WaitForAccept,
                 ECountersignPosition.None, false, EWorkflowTraceStatus.Normal, handlerType, expiredTime,
                 cancellationToken: cancellationToken);
@@ -1393,8 +1377,8 @@ namespace Hotline.FlowEngine.Workflows
                 _ => throw new ArgumentOutOfRangeException()
             };
 
-            return CreateStepsAsync(workflow, stepDefine, prevStep, dto, flowAssignType, dto.NextHandlers, stepHandlers,
-                countersignId, EWorkflowStepStatus.WaitForAccept, prevStep.GetNextStepCountersignPosition(),
+            return CreateStepsAsync(workflow, stepDefine, prevStep, dto, true, flowAssignType, dto.NextHandlers,
+                stepHandlers, countersignId, EWorkflowStepStatus.WaitForAccept, prevStep.GetNextStepCountersignPosition(),
                 false, EWorkflowTraceStatus.Normal, handlerType, expiredTime, cancellationToken: cancellationToken);
         }
 
@@ -1775,10 +1759,10 @@ namespace Hotline.FlowEngine.Workflows
             var removeSteps = GetStepsBehindTargetStep(workflow.Steps, targetStep);
             if (removeSteps.Any())
             {
-                //await _workflowStepRepository.RemoveRangeAsync(removeSteps, cancellationToken);
-                await _workflowStepRepository.RemoveNav(removeSteps)
-                    .Include(d => d.StepHandlers)
-                    .ExecuteCommandAsync();
+                await _workflowStepRepository.RemoveRangeAsync(removeSteps, cancellationToken);
+                //await _workflowStepRepository.RemoveNav(removeSteps)
+                //    .Include(d => d.StepHandlers)
+                //    .ExecuteCommandAsync();
                 workflow.Steps.RemoveAll(d => removeSteps.Contains(d));
             }
 
@@ -1790,7 +1774,7 @@ namespace Hotline.FlowEngine.Workflows
             var targetStepNew = targetIsStartStep
                 ? await CreateStartStepAsync(workflow, targetStepDefine, dto, dto.NextHandlers, stepHandlers, traceStatus, expiredTime,
                     cancellationToken)
-                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto,
+                : (await CreateStepsAsync(workflow, targetStepDefine, targetPrevStep, dto, false,
                     flowAssignInfo.FlowAssignType, dto.NextHandlers, stepHandlers,
                     null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None, true, traceStatus,
                     null, expiredTime, cancellationToken: cancellationToken)).First();
@@ -1801,7 +1785,7 @@ namespace Hotline.FlowEngine.Workflows
 
             //calc workflow expired time
             var isOrgToCenter = CheckIfFlowFromOrgToCenter(workflow, targetStep);
-           
+
             return isOrgToCenter;
         }
 
@@ -1898,8 +1882,9 @@ namespace Hotline.FlowEngine.Workflows
                 }
             }
 
-            return await CreateStepsAsync(workflow, stepDefine, prevStep, dto, flowAssignInfo.FlowAssignType, handlers,
-                stepHandlers, null, EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None,
+            return await CreateStepsAsync(workflow, stepDefine, prevStep, dto, dto.IsStartCountersign,
+                flowAssignInfo.FlowAssignType, handlers, stepHandlers, null, 
+                EWorkflowStepStatus.WaitForAccept, ECountersignPosition.None,
                 true, traceStatus, null, expiredTime, cancellationToken);
         }
 
@@ -1908,6 +1893,7 @@ namespace Hotline.FlowEngine.Workflows
             StepDefine stepDefine,
             WorkflowStep prevStep,
             BasicWorkflowDto dto,
+            bool isStartCountersign,
             EFlowAssignType? flowAssignType,
             List<Kv> handlers,
             List<WorkflowStepHandler> stepHandlers,
@@ -1922,7 +1908,7 @@ namespace Hotline.FlowEngine.Workflows
         )
         {
             List<WorkflowStep> steps = new();
-            if (dto.IsStartCountersign)
+            if (isStartCountersign)
             {
                 foreach (var handler in handlers)
                 {
@@ -2055,10 +2041,10 @@ namespace Hotline.FlowEngine.Workflows
 
                 HandleStepsByTerminalCs(startCountersignStep, workflow.Steps, workflow.Traces, ref updateSteps, ref updateTraces);
                 if (updateSteps.Any())
-                    //await _workflowStepRepository.RemoveRangeAsync(updateSteps, cancellationToken);
-                    await _workflowStepRepository.RemoveNav(updateSteps)
-                        .Include(d => d.StepHandlers)
-                        .ExecuteCommandAsync();
+                    await _workflowStepRepository.RemoveRangeAsync(updateSteps, cancellationToken);
+                //await _workflowStepRepository.RemoveNav(updateSteps)
+                //    .Include(d => d.StepHandlers)
+                //    .ExecuteCommandAsync();
                 if (updateTraces.Any())
                     await _workflowTraceRepository.UpdateRangeAsync(updateTraces, cancellationToken);
 

+ 5 - 10
src/Hotline/FlowEngine/Workflows/WorkflowStep.cs

@@ -28,11 +28,6 @@ public class WorkflowStep : StepBasicEntity
     /// </summary>
     public bool IsMain { get; set; }
 
-    /// <summary>
-    /// 节点办理状态
-    /// </summary>
-    public EWorkflowStepStatus Status { get; set; }
-
     /// <summary>
     /// 原生节点(区别动态生成)
     /// </summary>
@@ -52,11 +47,11 @@ public class WorkflowStep : StepBasicEntity
     /// </summary>
     public ECountersignPosition CountersignPosition { get; set; }
 
-    ///// <summary>
-    ///// 会签直属办理节点
-    ///// </summary>
-    //[SugarColumn(ColumnDataType = "json", IsJson = true)]
-    //public List<CountersignStep> CountersignSteps { get; set; } = new();
+    /// <summary>
+    /// 会签直属办理节点
+    /// </summary>
+    [SugarColumn(ColumnDataType = "json", IsJson = true)]
+    public List<CountersignStep>? CountersignSteps { get; set; } = new();
 
     /// <summary>
     /// 发起的会签是否汇总