Ver código fonte

remove Order.Progress and EProgress

xf 1 ano atrás
pai
commit
fd484394d3

+ 2 - 2
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -541,7 +541,7 @@ namespace Hotline.Api.Controllers
         /// <returns></returns>
         [Permission(EPermission.AddKnowledge)]
         [HttpGet("add-flow-start")]
-        public async Task<DefinedNextStepsDto> GetAddFlowStartOptionsAsync()
+        public async Task<DefinedStepDto> GetAddFlowStartOptionsAsync()
         {
             return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.KnowledgeAdd, HttpContext.RequestAborted);
         }
@@ -552,7 +552,7 @@ namespace Hotline.Api.Controllers
         /// <returns></returns>
         [Permission(EPermission.KnowledgeDelete)]
         [HttpGet("remove-flow-start")]
-        public async Task<DefinedNextStepsDto> GetRemoveFlowStartOptionsAsync()
+        public async Task<DefinedStepDto> GetRemoveFlowStartOptionsAsync()
         {
             return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.KnowledgeDelete, HttpContext.RequestAborted);
         }

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

@@ -116,8 +116,8 @@ public class OrderController : BaseController
             .Includes(d => d.Acceptor)
             .Where(x => x.Status == EOrderStatus.Filed)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
-            .WhereIF(dto.PubState == EPubState.Pub, d => d.Progress == EProgress.Published || d.Progress == EProgress.Visited)
-            .WhereIF(dto.PubState == EPubState.NoPub, d => d.Progress == EProgress.Managing)
+            .WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
+            .WhereIF(dto.PubState == EPubState.NoPub, d => d.Status < EOrderStatus.Published)
             .WhereIF(!string.IsNullOrEmpty(dto.PubMan), d => d.Acceptor.Name.Contains(dto.PubMan!) || d.Acceptor.StaffNo.Contains(dto.PubMan!))
             .WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublished.PublishState)
             .WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublished.PublishState)
@@ -656,7 +656,7 @@ public class OrderController : BaseController
     /// </summary>
     /// <returns></returns>
     [HttpGet("flow-start")]
-    public async Task<DefinedNextStepsDto> GetFlowStartOptionsAsync()
+    public async Task<DefinedStepDto> GetFlowStartOptionsAsync()
     {
         return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.OrderHandle, HttpContext.RequestAborted);
     }

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

@@ -240,7 +240,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         /// <returns></returns>
         [HttpGet("flow-start")]
-        public async Task<DefinedNextStepsDto> GetFlowStartOptionsAsync()
+        public async Task<DefinedStepDto> GetFlowStartOptionsAsync()
         {
             return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.TelRestApply,
                 HttpContext.RequestAborted);

+ 14 - 10
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -246,16 +246,20 @@ public class WorkflowController : BaseController
     /// 查询流程办理下一步可选节点
     /// </summary>
     [HttpGet("{workflowId}/nextsteps")]
-    public async Task<DefinedNextStepsDto> GetNextStepDefine(string workflowId)
+    public async Task<DefinedStepDto> GetNextStepDefine(string workflowId)
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, true, true,
             cancellationToken: HttpContext.RequestAborted);
-        var nextStepDefines = _workflowDomainService.GetNextStepDefines(workflow);
-        return new DefinedNextStepsDto
+        var current = _workflowDomainService.FindCurrentStep(workflow);
+        var nextStepDefines = workflow.Definition.FindSteps(current.StepBox.NextSteps.Select(d => d.Code));
+
+        //var nextStepDefines = _workflowDomainService.GetNextStepDefines(workflow);
+        return new DefinedStepDto
         {
             Id = workflow.DefinitionId,
             Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(nextStepDefines),//nextStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList(),
-            ExpiredTime = workflow.ExpiredTime
+            ExpiredTime = workflow.ExpiredTime,
+            Components = current.StepBox.Components,
         };
     }
 
@@ -304,13 +308,13 @@ public class WorkflowController : BaseController
     /// <returns></returns>
     [Permission(EPermission.FlowRecall)]
     [HttpGet("{workflowId}/recall")]
-    public async Task<DefinedNextStepsDto> GetRecallSteps(string workflowId)
+    public async Task<DefinedStepDto> GetRecallSteps(string workflowId)
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, true, true, cancellationToken: HttpContext.RequestAborted);
         var stepCodes = workflow.StepBoxes.Where(d => d.StepType != EStepType.Start && d.StepType != EStepType.End)
             .Select(d => d.Code).ToList();
         var nextStepDefines = workflow.Definition.FindSteps(stepCodes);
-        return new DefinedNextStepsDto
+        return new DefinedStepDto
         {
             Id = workflow.DefinitionId,
             Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(nextStepDefines)//nextStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList()
@@ -335,12 +339,12 @@ public class WorkflowController : BaseController
     /// <param name="workflowId"></param>
     /// <returns></returns>
     [HttpGet("{workflowId}/jump")]
-    public async Task<DefinedNextStepsDto> GetJumpSteps(string workflowId)
+    public async Task<DefinedStepDto> GetJumpSteps(string workflowId)
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, true, true, cancellationToken: HttpContext.RequestAborted);
         var steps = workflow.Definition.Steps.Where(d => d.StepType != EStepType.Start && d.StepType != EStepType.End).ToList();
         var nextStepDefines = workflow.Definition.FindSteps(steps.Select(d => d.Code));
-        return new DefinedNextStepsDto
+        return new DefinedStepDto
         {
             Id = workflow.DefinitionId,
             Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(nextStepDefines)//nextStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList()
@@ -365,12 +369,12 @@ public class WorkflowController : BaseController
     /// <param name="workflowId"></param>
     /// <returns></returns>
     [HttpGet("{workflowId}/redo")]
-    public async Task<DefinedNextStepsDto> GetRedoSteps(string workflowId)
+    public async Task<DefinedStepDto> GetRedoSteps(string workflowId)
     {
         var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, true, true, cancellationToken: HttpContext.RequestAborted);
         var steps = workflow.Definition.Steps.Where(d => d.StepType is EStepType.Normal && d.IsOrg()).ToList();
         var nextStepDefines = workflow.Definition.FindSteps(steps.Select(d => d.Code));
-        return new DefinedNextStepsDto
+        return new DefinedStepDto
         {
             Id = workflow.DefinitionId,
             Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(nextStepDefines)//nextStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList()

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

@@ -37,7 +37,7 @@ namespace Hotline.Application.FlowEngine
         /// <summary>
         /// 查询流程开始节点的下一节点配置
         /// </summary>
-        Task<DefinedNextStepsDto> GetStartOptionsAsync(string moduleCode, CancellationToken cancellationToken);
+        Task<DefinedStepDto> GetStartOptionsAsync(string moduleCode, CancellationToken cancellationToken);
 
         /// <summary>
         /// 查询节点配置可选参数

+ 6 - 5
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -172,7 +172,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         await _workflowDomainService.RedoAsync(workflow, dto, targetStepDefine, flowAssignInfo, cancellationToken);
     }
 
-    public async Task<DefinedNextStepsDto> GetStartOptionsAsync(string moduleCode, CancellationToken cancellationToken)
+    public async Task<DefinedStepDto> GetStartOptionsAsync(string moduleCode, CancellationToken cancellationToken)
     {
         var wfModule = await GetWorkflowModuleAsync(moduleCode, cancellationToken);
         var definition = wfModule.Definition;
@@ -185,14 +185,15 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         if (startStep == null)
             throw new UserFriendlyException("未正确配置开始节点");
         //var firstStepDefines = definition.FindSteps(startStep.NextSteps.Select(d => d.Code));
-        var firstStep = definition.FindStep(startStep.NextSteps.First().Code);
-        var secondStepDefines = definition.FindSteps(firstStep.NextSteps.Select(d => d.Code));
+        var firstStepDefine = definition.FindStep(startStep.NextSteps.First().Code);
+        var secondStepDefines = definition.FindSteps(firstStepDefine.NextSteps.Select(d => d.Code));
 
 
-        return new DefinedNextStepsDto
+        return new DefinedStepDto
         {
             Id = definition.Id,
-            Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(secondStepDefines)//secondStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList()
+            Steps = _mapper.Map<IReadOnlyList<StepBasicDto>>(secondStepDefines),//secondStepDefines.Select(d => new KeyValuePair<string, string>(d.Code, d.Name)).ToList()
+            Components = firstStepDefine.Components
         };
     }
 

+ 2 - 0
src/Hotline.Application/Mappers/MapperConfigs.cs

@@ -205,6 +205,8 @@ namespace Hotline.Application.Mappers
                 .Map(d => d.ActualHandlerName, s => s.ActualHandlerName)
                 .Map(d => d.ActualHandleOrgName, s => s.ActualHandleOrgName)
                 .Map(d => d.ActualHandleOrgCode, s => s.ActualHandleOrgCode)
+                .Map(d => d.ActualHandleOrgAreaCode, s => s.ActualHandleOrgAreaCode)
+                .Map(d => d.ActualHandleOrgAreaName, s => s.ActualHandleOrgAreaName)
                 .Map(d => d.ActualOpinion, s => s.ActualOpinion)
                 .Map(d => d.CurrentStepCode, s => s.CurrentStepCode)
                 .Map(d => d.CurrentStepName, s => s.CurrentStepName)

+ 3 - 1
src/Hotline.Share/Dtos/FlowEngine/DefinedNextStepsDto.cs → src/Hotline.Share/Dtos/FlowEngine/DefinedStepDto.cs

@@ -9,12 +9,14 @@ namespace Hotline.Share.Dtos.FlowEngine
     /// <summary>
     /// 配置好的下一节点
     /// </summary>
-    public class DefinedNextStepsDto
+    public class DefinedStepDto
     {
         public string Id { get; set; }
 
         public IReadOnlyList<StepBasicDto> Steps { get; set; }
 
         public DateTime ExpiredTime { get; set; }
+
+        public IReadOnlyList<string> Components { get; set; }
     }
 }

+ 14 - 4
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -31,10 +31,10 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public EProcessType ProcessType { get; set; }
 
-        /// <summary>
-        /// 进展情况
-        /// </summary>
-        public EProgress Progress { get; set; }
+        ///// <summary>
+        ///// 进展情况
+        ///// </summary>
+        //public EProgress Progress { get; set; }
 
         /// <summary>
         /// 是否公开
@@ -135,6 +135,16 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? ActualHandleOrgCode { get; set; }
 
+        /// <summary>
+        /// 实际办理部门行政区划编码
+        /// </summary>
+        public string? ActualHandleOrgAreaCode { get; set; }
+
+        /// <summary>
+        /// 实际办理部门行政区划名称
+        /// </summary>
+        public string? ActualHandleOrgAreaName { get; set; }
+
         /// <summary>
         /// 实际办理意见(办理中...or 最终办理意见)
         /// </summary>

+ 17 - 23
src/Hotline.Share/Enums/Order/EOrderStatus.cs

@@ -10,39 +10,33 @@ public enum EOrderStatus
     [Description("待受理")]
     WaitForAccept = 0,
 
-    ///// <summary>
-    ///// 待签收
-    ///// </summary>
-    //[Description("待签收")]
-    //WaitForSign = 10,
-
     /// <summary>
-    /// 办理中
+    /// 办理中(20->10)
     /// </summary>
     [Description("办理中")]
-    Handling = 20,
+    Handling = 10,
 
     /// <summary>
-    /// 会签中
+    /// 会签中(30->20)
     /// </summary>
     [Description("会签中")]
-    Countersigning = 30,
+    Countersigning = 20,
 
-    ///// <summary>
-    ///// 退回
-    ///// </summary>
-    //[Description("退回")]
-    //Return = 40,
+    /// <summary>
+    /// 已归档(60->30)
+    /// </summary>
+    [Description("已归档")]
+    Filed = 30,
 
-    ///// <summary>
-    ///// 办理完成(实际办理部门办理完成)
-    ///// </summary>
-    //[Description("办理完成")]
-    //Completed = 50,
+    /// <summary>
+    /// 已发布
+    /// </summary>
+    [Description("已发布")]
+    Published = 40,
 
     /// <summary>
-    /// 已归档
+    /// 已回访
     /// </summary>
-    [Description("办理完成")]
-    Filed = 60,
+    [Description("已回访")]
+    Visited = 50,
 }

+ 19 - 19
src/Hotline.Share/Enums/Order/EProgress.cs

@@ -1,22 +1,22 @@
-namespace Hotline.Share.Enums.Order;
+//namespace Hotline.Share.Enums.Order;
 
-/// <summary>
-/// 进展情况
-/// </summary>
-public enum EProgress
-{
-    /// <summary>
-    /// 办理中
-    /// </summary>
-    Managing = 0,
+///// <summary>
+///// 进展情况
+///// </summary>
+//public enum EProgress
+//{
+//    /// <summary>
+//    /// 办理中
+//    /// </summary>
+//    Managing = 0,
 
-    /// <summary>
-    /// 已发布
-    /// </summary>
-    Published = 1,
+//    /// <summary>
+//    /// 已发布
+//    /// </summary>
+//    Published = 1,
 
-    /// <summary>
-    /// 已回访
-    /// </summary>
-    Visited = 2,
-}
+//    /// <summary>
+//    /// 已回访
+//    /// </summary>
+//    Visited = 2,
+//}

+ 15 - 0
src/Hotline/FlowEngine/WfModules/WorkflowModuleConsts.cs

@@ -10,6 +10,21 @@ public class WorkflowModuleConsts
     /// </summary>
     public const string OrderHandle = "OrderHandle";
 
+    /// <summary>
+    /// 工单退回(依据配置决定退回可能需要流程审批)
+    /// </summary>
+    public const string OrderPrevious = "OrderPrevious";
+
+    /// <summary>
+    /// 工单延期
+    /// </summary>
+    public const string OrderDelay = "OrderDelay";
+
+    /// <summary>
+    /// 工单甄别
+    /// </summary>
+    public const string OrderScreen = "OrderScreen";
+
     /// <summary>
     /// 新增知识审批
     /// </summary>

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

@@ -78,6 +78,11 @@ namespace Hotline.FlowEngine.Workflows
         /// </summary>
         IReadOnlyList<StepDefine> GetNextStepDefines(Workflow workflow);
 
+        /// <summary>
+        /// 查找当前办理节点
+        /// </summary>
+        (WorkflowStep StepBox, WorkflowStep Step) FindCurrentStep(Workflow workflow);
+
         /// <summary>
         /// 查询待回访部门
         /// </summary>

+ 31 - 10
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -105,6 +105,18 @@ public class Workflow : CreationEntity
     [SugarColumn(IsNullable = true)]
     public string? ActualHandleOrgCode { get; set; }
 
+    /// <summary>
+    /// 实际办理部门行政区划编码
+    /// </summary>
+    [SugarColumn(IsNullable = true)]
+    public string? ActualHandleOrgAreaCode { get; set; }
+
+    /// <summary>
+    /// 实际办理部门行政区划名称
+    /// </summary>
+    [SugarColumn(IsNullable = true)]
+    public string? ActualHandleOrgAreaName { get; set; }
+
     /// <summary>
     /// 实际办理意见(办理中...or 最终办理意见)
     /// </summary>
@@ -292,10 +304,12 @@ public class Workflow : CreationEntity
     /// </summary>
     private void ActualHandle(
         WorkflowStep currentStep,
-        string actualHandlerId,
-        string actualHandlerName,
-        string actualHandleOrgCode,
-        string actualHandleOrgName)
+        string? actualHandlerId,
+        string? actualHandlerName,
+        string? actualHandleOrgCode,
+        string? actualHandleOrgName,
+        string? actualHandleOrgAreaCode, 
+        string? actualHandleOrgAreaName)
     {
         ActualHandleStepCode = currentStep.Code;
         ActualHandleStepName = currentStep.Name;
@@ -306,6 +320,8 @@ public class Workflow : CreationEntity
         ActualHandlerName = actualHandlerName;
         ActualHandleOrgCode = actualHandleOrgCode;
         ActualHandleOrgName = actualHandleOrgName;
+        ActualHandleOrgAreaCode = actualHandleOrgAreaCode;
+        ActualHandleOrgAreaName = actualHandleOrgAreaName;
     }
 
     /// <summary>
@@ -325,15 +341,20 @@ public class Workflow : CreationEntity
     /// <summary>
     /// 更新workflow中实际办理节点数据(节点,时间,部门)
     /// </summary>
-    public void UpdateWorkflowActualHandleInfo(WorkflowStep currentStepBox, WorkflowStep currentStep, string actualHandlerId,
-        string actualHandlerName, string handlerOrgCode, string handlerOrgName)
+    public void UpdateWorkflowActualHandleInfo(WorkflowStep currentStepBox, WorkflowStep currentStep,
+        string actualHandlerId, string? actualHandlerName,
+        string actualHandleOrgCode, string? actualHandleOrgName,
+        string? actualHandleOrgAreaCode, string? actualHandleOrgAreaName)
     {
         //a.会签中分为1.之前无会签,当前节点发起会签,记录当前节点 2. 之前有会签,不更新  b.非会签中,记录当前节点
         if (IsInCountersign() && !currentStep.HasStartedCountersign) return;
 
         if (currentStepBox.StepType is EStepType.CountersignEnd or EStepType.End) return;
 
-        ActualHandle(currentStep, actualHandlerId, actualHandlerName, handlerOrgCode, handlerOrgName);
+        ActualHandle(currentStep,
+            actualHandlerId, actualHandlerName, 
+            actualHandleOrgCode, actualHandleOrgName, 
+            actualHandleOrgAreaCode, actualHandleOrgAreaName);
     }
 
     /// <summary>
@@ -560,9 +581,9 @@ public class Workflow : CreationEntity
 
     public void OrgToCenter(DateTime expiredTime)
     {
-       ProcessType = EProcessType.Zhiban;
-       ExpiredTime = expiredTime;
-       CenterToOrgTime = null;
+        ProcessType = EProcessType.Zhiban;
+        ExpiredTime = expiredTime;
+        CenterToOrgTime = null;
     }
 
     public void Redo()

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

@@ -115,7 +115,8 @@ namespace Hotline.FlowEngine.Workflows
             //更新实际办理节点信息
             workflow.UpdateWorkflowActualHandleInfo(firstStepBox, firstStep,
                 _sessionContext.RequiredUserId, _sessionContext.UserName,
-                _sessionContext.OrgName, _sessionContext.RequiredOrgCode);
+                 _sessionContext.RequiredOrgCode, _sessionContext.OrgName,
+                _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
 
             //更新当前办理节点信息
             workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign, firstStep, secondStepBox.Steps.First());
@@ -393,7 +394,8 @@ namespace Hotline.FlowEngine.Workflows
             //更新实际办理节点名称、时间
             workflow.UpdateWorkflowActualHandleInfo(currentStepBox, currentStep,
                 _sessionContext.RequiredUserId, _sessionContext.UserName,
-                _sessionContext.RequiredOrgCode, _sessionContext.OrgName);
+                _sessionContext.RequiredOrgCode, _sessionContext.OrgName,
+                _sessionContext.OrgAreaCode, _sessionContext.OrgAreaName);
 
             //更新当前办理节点信息
             workflow.UpdateWorkflowCurrentStepInfo(dto.IsStartCountersign, currentStep, nextStepBox.Steps.First());
@@ -578,7 +580,7 @@ namespace Hotline.FlowEngine.Workflows
         {
             if (targetStepDefine.StepType is EStepType.Start or EStepType.End)
                 throw UserFriendlyException.SameMessage("开始/结束节点不支持重办");
-            
+
             var targetStepBox = workflow.StepBoxes.FirstOrDefault(d => d.Code == dto.NextStepCode);
             if (targetStepBox is null)
                 throw UserFriendlyException.SameMessage("未找到该节点配置");
@@ -643,6 +645,12 @@ namespace Hotline.FlowEngine.Workflows
             return workflow.Definition.FindSteps(currentStepBox.NextSteps.Select(d => d.Code));
         }
 
+        /// <summary>
+        /// 查找当前办理节点
+        /// </summary>
+        public (WorkflowStep StepBox, WorkflowStep Step) FindCurrentStep(Workflow workflow) =>
+            GetUnCompleteStep(workflow.StepBoxes, _sessionContext.RequiredOrgCode, _sessionContext.RequiredUserId);
+
         /// <summary>
         /// 查询待回访部门
         /// </summary>

+ 22 - 14
src/Hotline/Orders/Order.cs

@@ -214,11 +214,11 @@ namespace Hotline.Orders
         [SugarColumn(DefaultValue = "10")]
         public EProcessType ProcessType { get; set; } = EProcessType.Zhiban;
 
-        /// <summary>
-        /// 进展情况
-        /// </summary>
-        [SugarColumn(DefaultValue = "0")]
-        public EProgress Progress { get; set; }
+        ///// <summary>
+        ///// 进展情况
+        ///// </summary>
+        //[SugarColumn(DefaultValue = "0")]
+        //public EProgress Progress { get; set; }
 
         /// <summary>
         /// 是否公开
@@ -227,7 +227,7 @@ namespace Hotline.Orders
         public bool IsPublicity { get; set; }
 
         /// <summary>
-        /// 是否为省工单
+        /// 是否为省工单(省派发工单字段:get_case_result_receive == "中国政府网来源工单" 为true)
         /// </summary>
         [SugarColumn(DefaultValue = "f")]
         public bool IsProvince { get; set; }
@@ -260,12 +260,6 @@ namespace Hotline.Orders
         [SugarColumn(IsNullable = true)]
         public string? No110 { get; set; }
 
-        /// <summary>
-        /// 是否110来的工单
-        /// </summary>
-        [SugarColumn(DefaultValue = "f")]
-        public bool IsNo110 { get; set; }
-
         #endregion
 
         #region 流程信息
@@ -333,6 +327,18 @@ namespace Hotline.Orders
         [SugarColumn(IsNullable = true)]
         public string? ActualHandleOrgCode { get; set; }
 
+        /// <summary>
+        /// 实际办理部门行政区划编码
+        /// </summary>
+        [SugarColumn(IsNullable = true)]
+        public string? ActualHandleOrgAreaCode { get; set; }
+
+        /// <summary>
+        /// 实际办理部门行政区划名称
+        /// </summary>
+        [SugarColumn(IsNullable = true)]
+        public string? ActualHandleOrgAreaName { get; set; }
+
         /// <summary>
         /// 实际办理意见(办理中...or 最终办理意见)
         /// </summary>
@@ -525,7 +531,8 @@ namespace Hotline.Orders
         /// <param name="isPublicity"></param>
         public void Publish(bool isPublicity)
         {
-            Progress = EProgress.Published;
+            //Progress = EProgress.Published;
+            Status = EOrderStatus.Published;
             IsPublicity = isPublicity;
         }
 
@@ -540,7 +547,8 @@ namespace Hotline.Orders
             FirstVisitResultCode = resultCode;
             FirstVisitResult = result;
 
-            Progress = EProgress.Visited;
+            //Progress = EProgress.Visited;
+            Status = EOrderStatus.Visited;
         }
 
         #endregion