|
@@ -1,4 +1,5 @@
|
|
|
-using Hotline.FlowEngine.Workflows;
|
|
|
+using Hotline.FlowEngine;
|
|
|
+using Hotline.FlowEngine.Workflows;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Share.Dtos.Knowledge;
|
|
|
using Hotline.Share.Enums.KnowledgeBase;
|
|
@@ -80,18 +81,16 @@ namespace Hotline.KnowledgeBase
|
|
|
/// 知识审批主表
|
|
|
/// </summary>
|
|
|
/// <param name="knowId">知识Id</param>
|
|
|
- /// <param name="workFlowId">流程ID</param>
|
|
|
/// <param name="eKnowledgeApplyType">申请类型</param>
|
|
|
/// <param name="cancellationToken"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task<string> AddWorkFlow(string knowId, string workFlowId, EKnowledgeApplyType eKnowledgeApplyType, CancellationToken cancellationToken)
|
|
|
+ public async Task<string> AddWorkFlowAsync(string knowId, EKnowledgeApplyType eKnowledgeApplyType, CancellationToken cancellationToken)
|
|
|
{
|
|
|
KnowledgeWorkFlow workFlow = new()
|
|
|
{
|
|
|
KnowledgeId = knowId,
|
|
|
WorkflowModuleStatus = eKnowledgeApplyType,
|
|
|
WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Auditing,
|
|
|
- WorkflowId = workFlowId
|
|
|
};
|
|
|
return await _knowledgeWorkFlowRepository.AddAsync(workFlow, cancellationToken);
|
|
|
}
|
|
@@ -99,15 +98,32 @@ namespace Hotline.KnowledgeBase
|
|
|
/// <summary>
|
|
|
/// 修改流程ID
|
|
|
/// </summary>
|
|
|
+ /// <param name="assignMode"></param>
|
|
|
/// <param name="knowledgeId"></param>
|
|
|
/// <param name="workFlowId"></param>
|
|
|
/// <param name="cancellationToken"></param>
|
|
|
/// <returns></returns>
|
|
|
- public async Task UpdateWorkFlowId(string knowledgeId, string workFlowId, CancellationToken cancellationToken)
|
|
|
+ public async Task UpdateWorkFlowId(FlowAssignMode assignMode, string? knowledgeId, string workFlowId, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var knowledge = await _knowledgeRepository.GetAsync(knowledgeId, cancellationToken);
|
|
|
- knowledge.WorkflowId = workFlowId;
|
|
|
- await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ if (string.IsNullOrEmpty(knowledgeId))
|
|
|
+ throw UserFriendlyException.SameMessage("无效知识编号");
|
|
|
+ var knowledgeFlow =
|
|
|
+ await _knowledgeWorkFlowRepository.GetAsync(d => d.KnowledgeId == knowledgeId, cancellationToken);
|
|
|
+ if (knowledgeFlow == null)
|
|
|
+ throw new UserFriendlyException($"无效知识编号, knowledgeId: {knowledgeId}", "无效知识编号");
|
|
|
+ knowledgeFlow.WorkflowId = workFlowId;
|
|
|
+ knowledgeFlow.Assign(assignMode.FlowAssignType, assignMode.Handlers);
|
|
|
+ await _knowledgeWorkFlowRepository.UpdateAsync(knowledgeFlow, cancellationToken);
|
|
|
+
|
|
|
+ if (knowledgeFlow.WorkflowModuleStatus != EKnowledgeApplyType.Delete)
|
|
|
+ {
|
|
|
+ var knowledge = await _knowledgeRepository.GetAsync(knowledgeId, cancellationToken);
|
|
|
+ if (knowledge == null)
|
|
|
+ throw new UserFriendlyException($"无效知识编号, knowledgeId: {knowledgeId}", "无效知识编号");
|
|
|
+ knowledge.WorkflowId = workFlowId;
|
|
|
+ knowledge.Assign(assignMode.FlowAssignType, assignMode.Handlers);
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|