|
@@ -17,7 +17,6 @@ namespace Hotline.KnowledgeBase
|
|
|
private readonly IKnowledgePVRepository _knowledgePVRepository;
|
|
|
private readonly IKnowledgeWorkFlowRepository _knowledgeWorkFlowRepository;
|
|
|
private readonly IWorkflowDomainService _workflowDomainService;
|
|
|
- private readonly IKnowledgeApplyRepository _knowledgeApplyRepository;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -28,14 +27,13 @@ namespace Hotline.KnowledgeBase
|
|
|
/// <param name="knowledgeWorkFlowRepository"></param>
|
|
|
/// <param name="workflowDomainService"></param>
|
|
|
public KnowledgeDomainService(IKnowledgeRepository knowledgeRepository, IMapper mapper, IKnowledgePVRepository knowledgePVRepository, IKnowledgeWorkFlowRepository knowledgeWorkFlowRepository
|
|
|
- , IWorkflowDomainService workflowDomainService, IKnowledgeApplyRepository knowledgeApplyRepository)
|
|
|
+ , IWorkflowDomainService workflowDomainService)
|
|
|
{
|
|
|
_knowledgeRepository = knowledgeRepository;
|
|
|
_mapper = mapper;
|
|
|
_knowledgePVRepository = knowledgePVRepository;
|
|
|
_knowledgeWorkFlowRepository = knowledgeWorkFlowRepository;
|
|
|
_workflowDomainService = workflowDomainService;
|
|
|
- _knowledgeApplyRepository = knowledgeApplyRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -184,29 +182,32 @@ namespace Hotline.KnowledgeBase
|
|
|
if (knowWorkFlow.WorkFlowApplyStatus != EKnowledgeWorkFlowStatus.Auditing)
|
|
|
throw UserFriendlyException.SameMessage("只有审批中的知识才能撤回!");
|
|
|
|
|
|
- knowWorkFlow.WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Revoke;
|
|
|
- await _knowledgeWorkFlowRepository.UpdateAsync(knowWorkFlow);
|
|
|
-
|
|
|
- switch (knowWorkFlow.WorkflowModuleStatus)
|
|
|
- {
|
|
|
- case EKnowledgeApplyType.Add:
|
|
|
- //查询知识
|
|
|
- var knowledge = await _knowledgeRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
|
|
|
- if (knowledge != null)
|
|
|
- {
|
|
|
- //将知识保存到草稿箱
|
|
|
- var tempKnow = _mapper.Map<Knowledge>(knowledge);
|
|
|
- tempKnow.Id = null;
|
|
|
- await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
|
|
|
-
|
|
|
- knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
- //删除现有知识
|
|
|
- await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
- }
|
|
|
- break;
|
|
|
- }
|
|
|
//调用终止流程
|
|
|
await _workflowDomainService.TerminateAsync(workFlowId, cancellationToken);
|
|
|
+ //业务放到消息通知里面处理
|
|
|
+ ////修改业务数据状态
|
|
|
+ //knowWorkFlow.WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Revoke;
|
|
|
+ //await _knowledgeWorkFlowRepository.UpdateAsync(knowWorkFlow);
|
|
|
+
|
|
|
+ //switch (knowWorkFlow.WorkflowModuleStatus)
|
|
|
+ //{
|
|
|
+ // case EKnowledgeApplyType.Add:
|
|
|
+ // //查询知识
|
|
|
+ // var knowledge = await _knowledgeRepository.GetAsync(p => p.WorkflowId == workFlowId, cancellationToken);
|
|
|
+ // if (knowledge != null)
|
|
|
+ // {
|
|
|
+ // //将知识保存为草稿
|
|
|
+ // var dto = _mapper.Map<AddKnowledgeDto>(knowledge);
|
|
|
+ // dto.Status = EKnowledgeStatus.Drafts;
|
|
|
+ // var tempKnow = _mapper.Map<Knowledge>(dto);
|
|
|
+ // await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
|
|
|
+
|
|
|
+ // knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
+ // //删除现有知识
|
|
|
+ // await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ // }
|
|
|
+ // break;
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -246,6 +247,45 @@ namespace Hotline.KnowledgeBase
|
|
|
return strList.Distinct().Take(10).ToList();
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 流程终止,处理知识状态
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="workflow"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ /// <exception cref="UserFriendlyException"></exception>
|
|
|
+ public async Task TerminateWorkKnowledge(Workflow workflow, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ //修改主表审批状态 根据流程ID查询审批主表
|
|
|
+ var workFlow = await _knowledgeWorkFlowRepository.GetAsync(p => p.WorkflowId == workflow.Id, cancellationToken);
|
|
|
+ if (workFlow == null)
|
|
|
+ throw new UserFriendlyException($"知识查询失败, workflowId: {workflow.Id}", "无效流程编号");
|
|
|
+
|
|
|
+ //根据审批主表知识ID查询当前知识
|
|
|
+ var knowledge = await _knowledgeRepository.GetAsync(p => p.Id == workFlow.KnowledgeId, cancellationToken);
|
|
|
+ if (knowledge == null)
|
|
|
+ throw new UserFriendlyException($"知识查询失败");
|
|
|
+
|
|
|
+ //修改业务数据状态
|
|
|
+ workFlow.WorkFlowApplyStatus = EKnowledgeWorkFlowStatus.Revoke;
|
|
|
+ await _knowledgeWorkFlowRepository.UpdateAsync(workFlow);
|
|
|
+
|
|
|
+ switch (workFlow.WorkflowModuleStatus)
|
|
|
+ {
|
|
|
+ case EKnowledgeApplyType.Add:
|
|
|
+ //将知识保存为草稿
|
|
|
+ var dto = _mapper.Map<AddKnowledgeDto>(knowledge);
|
|
|
+ dto.Status = EKnowledgeStatus.Drafts;
|
|
|
+ var tempKnow = _mapper.Map<Knowledge>(dto);
|
|
|
+ await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
|
|
|
+
|
|
|
+ //现有知识状态更改为已撤回
|
|
|
+ knowledge.Status = EKnowledgeStatus.Revert;
|
|
|
+ await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 流程审批完成,处理知识状态
|
|
|
/// </summary>
|