Ver Fonte

hotfix: 延期、甄别、知识库审批改为依据workflow.Iscanhandle()判断

xf há 10 meses atrás
pai
commit
55dc321bc2

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

@@ -359,7 +359,8 @@ namespace Hotline.Api.Controllers
             var knowledge = await _knowledgeDomainService.KnowledgeInfo(Id, HttpContext.RequestAborted);
             if (knowledge is null)
                 throw UserFriendlyException.SameMessage("知识查询失败!");
-            if (knowledge.Workflow != null) knowledge.IsCanHandle = knowledge.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+            if (knowledge.Workflow != null) 
+                knowledge.IsCanHandle = knowledge.Workflow.IsCanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles);
             //转化
             var knowledgeShowInfoDto = _mapper.Map<KnowledgeInfoDto>(knowledge);
 
@@ -683,7 +684,9 @@ namespace Hotline.Api.Controllers
             foreach (var item in items)
             {
                 if (item.Workflow != null)
-                    item.CanHandle = item.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+                    //item.CanHandle = item.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+                    item.CanHandle = item.Workflow.IsCanHandle(
+                        _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles);
 
             }
             //处理是否可以办理

+ 6 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -1392,7 +1392,9 @@ public class OrderController : BaseController
             .Includes(d => d.Workflow)
             .FirstAsync(d => d.Id == id);
         var rspModel = _mapper.Map<OrderDelayDto>(model);
-        rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+        //rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+        rspModel.IsCanHandle = model.Workflow.IsCanHandle(
+            _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles);
         rspModel.Handle = false;
         if (!string.IsNullOrEmpty(rspModel.WorkflowId))
         {
@@ -1734,7 +1736,9 @@ public class OrderController : BaseController
             .Includes(x => x.Visit, d => d.Order)
             .FirstAsync(x => x.Id == id);
         var rspModel = _mapper.Map<OrderScreenListDto>(model);
-        rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+        //rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
+        rspModel.IsCanHandle = model.Workflow.IsCanHandle(
+            _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles);
         rspModel.Handle = false;
         if (!string.IsNullOrEmpty(rspModel.WorkflowId))
         {

+ 4 - 1
src/Hotline/KnowledgeBase/KnowledgeDomainService.cs

@@ -47,7 +47,10 @@ namespace Hotline.KnowledgeBase
         /// <returns></returns>
         public async Task<Knowledge> KnowledgeInfo(string Id, CancellationToken cancellationToken)
         {
-            var know = await _knowledgeRepository.Queryable(false, false, false).Includes(x => x.Workflow).Includes(x=>x.SourceOrganize).FirstAsync(p => p.Id == Id);
+            var know = await _knowledgeRepository.Queryable(false, false, false)
+                .Includes(x => x.Workflow)
+                .Includes(x=>x.SourceOrganize)
+                .FirstAsync(p => p.Id == Id);
             if (know is null)
                 throw UserFriendlyException.SameMessage("知识查询失败!");
             return know;