fix(workflow): 修复工作流引擎中的数据更新和查询问题
- 在 CustomWorkflowController.Detail 方法上添加 AllowAnonymous 特性以允许匿名访问 - 将 Updateable 的 IgnoreNullColumns 替换为更精确的 IgnoreColumns 设置 - 在 ZyFlowWorkitem 查询中添加 NodeId 连接条件以确保正确的数据关联 - 修复多个工作流实例和工作项的状态更新逻辑 - 改进非法建筑评估记录的附件处理和数据保存机制main
parent
149f966915
commit
5f841fa6ca
|
|
@ -97,7 +97,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
|
||||
// 方案1:明确指定要更新的列,避免主键冲突
|
||||
_sqlSugar.Updateable(illegal)
|
||||
.IgnoreNullColumns().ExecuteCommand();
|
||||
.IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
|
||||
|
||||
// 或者方案2:使用 Where 条件更新
|
||||
// _sqlSugar.Updateable<IllegalConstructionAssessment>()
|
||||
|
|
@ -109,7 +109,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
instanceId = flowInstance.InstanceId;
|
||||
flowInstance.InstanceId = instanceId;
|
||||
flowInstance.Status = "Submitted";
|
||||
_sqlSugar.Updateable(flowInstance).IgnoreNullColumns().ExecuteCommand();
|
||||
_sqlSugar.Updateable(flowInstance).IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
|
||||
// 需要查驳回和草稿
|
||||
var flowWorkItem = _sqlSugar.Queryable<ZyFlowWorkitem>()
|
||||
.Where(a => a.InstanceId == instanceId
|
||||
|
|
@ -127,7 +127,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
flowWorkItem.OrgId = org.Id;
|
||||
flowWorkItem.OrgName = org.Name;
|
||||
|
||||
_sqlSugar.Updateable(flowWorkItem).IgnoreNullColumns().ExecuteCommand();
|
||||
_sqlSugar.Updateable(flowWorkItem).IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -857,7 +857,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
// 区县提交之后 Submitted -> Forwarded -> 转发之后 Auditing -> 审核之后 Summarized-> 汇总判断之后 Rejected
|
||||
// 驳回之后 Rejected -> 转发之后 Auditing -> 审核之后 Summarized 。。。
|
||||
flowInstance.Status = GetFlowStatusByNodeType(nextNode.NodeType);
|
||||
_sqlSugar.Updateable(flowInstance).IgnoreNullColumns().ExecuteCommand();
|
||||
_sqlSugar.Updateable(flowInstance).IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
|
||||
// 为选择的每个审核科创建工作项
|
||||
if (nextNode.NodeType == "Parallel")
|
||||
{
|
||||
|
|
@ -1287,7 +1287,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
illegalConstructionAssessment.Attachments = attachmentPaths;
|
||||
}
|
||||
|
||||
_sqlSugar.Updateable(illegalConstructionAssessment).IgnoreNullColumns().ExecuteCommand();
|
||||
_sqlSugar.Updateable(illegalConstructionAssessment).IgnoreColumns(ignoreAllNullColumns:true,ignoreAllDefaultValue:true).ExecuteCommand();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1316,7 +1316,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp<SysCategoryType, SugarDbContext
|
|||
var workItems = _sqlSugar
|
||||
.Queryable<ZyFlowWorkitem>()
|
||||
.LeftJoin<ZyFlowParallelAudit>((w, a)
|
||||
=> w.InstanceId == a.InstanceId && w.HandlerId == a.AuditorId)
|
||||
=> w.InstanceId == a.InstanceId && w.HandlerId == a.AuditorId && w.NodeId == a.NodeId)
|
||||
.LeftJoin<ZyFlowNode>((w, a, n) => w.NodeId == n.NodeId)
|
||||
.Where(w => w.InstanceId == instance.InstanceId && w.Status == "Done")
|
||||
.OrderByDescending(w => w.WorkitemId)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using OpenAuth.App.Interface;
|
||||
using OpenAuth.App.workflow;
|
||||
|
||||
|
|
@ -264,6 +265,7 @@ public class WorkflowController : ControllerBase
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[AllowAnonymous]
|
||||
public ActionResult<ApiResponseDto<dynamic>> Detail(string businessNo)
|
||||
{
|
||||
var detail = _workflowEngineApp.Detail(businessNo);
|
||||
|
|
|
|||
Loading…
Reference in New Issue