田爽 před 1 rokem
rodič
revize
6ebf238319

+ 17 - 4
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -20,6 +20,7 @@ using Hotline.Users;
 using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.IdentityModel.Tokens;
 using Org.BouncyCastle.Utilities;
 using Polly.Caching;
 using SqlSugar;
@@ -218,10 +219,20 @@ namespace Hotline.Api.Controllers
 			await _knowledgeRepository.UpdateAsync(knowledge, HttpContext.RequestAborted);
 			if (dto.Workflow != null)
 			{
-				var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
-				startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeUpdate;
-				startDto.Title = "知识库修改";
-				await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeUpdate, EKnowledgeApplyType.Update, startDto);
+				if (update.Status == EKnowledgeStatus.Drafts)
+				{
+					var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
+					startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeAdd;
+					startDto.Title = "知识库新增";
+					await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeAdd, EKnowledgeApplyType.Update, startDto);
+				}
+				else 
+				{
+					var startDto = _mapper.Map<StartWorkflowDto>(dto.Workflow);
+					startDto.DefinitionModuleCode = WorkflowModuleConsts.KnowledgeUpdate;
+					startDto.Title = "知识库修改";
+					await StartFlow(update.Id, WorkflowModuleConsts.KnowledgeUpdate, EKnowledgeApplyType.Update, startDto);
+				}
 			}
 		}
 
@@ -460,7 +471,9 @@ namespace Hotline.Api.Controllers
 				.Includes(x => x.HotspotType)
 				.Includes(x=>x.SourceOrganize)
 				.Where(x => x.IsDeleted == false)
+				.Where(x=> (x.Status == EKnowledgeStatus.Drafts  && x.CreatorId == _sessionContext.UserId) || (x.Status != EKnowledgeStatus.Drafts))
 				.WhereIF(!string.IsNullOrEmpty(pagedDto.Title), x => x.Title.Contains(pagedDto.Title!))
+				.WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword),x=>x.Title.Contains(pagedDto.Keyword!) || x.CreatorName.Contains(pagedDto.Keyword!) || x.CreatorOrgName.Contains(pagedDto.Keyword!) || x.SourceOrganize.Name.Contains(pagedDto.Keyword!))
 				.WhereIF(pagedDto.Status.HasValue, x => x.Status == pagedDto.Status && ((x.ExpiredTime != null  && x.ExpiredTime > DateTime.Now)|| x.ExpiredTime == null))
 				.WhereIF(pagedDto.IsPublic.HasValue, x => x.IsPublic == pagedDto.IsPublic)
 				.WhereIF(!string.IsNullOrEmpty(pagedDto.Summary), x => x.Summary != null && x.Summary.Contains(pagedDto.Summary!))

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

@@ -2924,7 +2924,7 @@ public class OrderController : BaseController
             .Includes(x => x.Order)
             .WhereIF(dto.IsProvince.HasValue, x => x.Order.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
-                x => x.Order.No.Contains(dto.No!) || x.Order.Title.Contains(dto.Title!))
+                x => x.Order.No.Contains(dto.Keyword!) || x.Order.Title.Contains(dto.Keyword!))
             //.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title!))
             //.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No!))
             .OrderByDescending(x => x.CreationTime)
@@ -3009,7 +3009,7 @@ public class OrderController : BaseController
             .Includes(x => x.Order)
             .WhereIF(dto.IsProvince.HasValue, x => x.Order.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
-                x => x.Order.No.Contains(dto.No!) || x.Order.Title.Contains(dto.Title!))
+                x => x.Order.No.Contains(dto.Keyword!) || x.Order.Title.Contains(dto.Keyword!))
             //.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title!))
             //.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No!))
             .OrderByDescending(x => x.CreationTime)

+ 10 - 3
src/Hotline.Application/Handlers/FlowEngine/EndWorkflowHandler.cs

@@ -97,9 +97,16 @@ public class EndWorkflowHandler : INotificationHandler<EndWorkflowNotify>
             case WorkflowModuleConsts.KnowledgeAdd://新增知识库
             case WorkflowModuleConsts.KnowledgeUpdate://修改知识库
             case WorkflowModuleConsts.KnowledgeDelete://删除知识库
-                await _knowledgeDomainService.EndWorkKnowledge(workflow, cancellationToken);
-                break;
-            case WorkflowModuleConsts.TelRestApply:
+                if (isReviewPass)
+                {
+                    await _knowledgeDomainService.EndWorkKnowledge(workflow, cancellationToken);
+                }
+                else 
+                {
+	                await _knowledgeDomainService.TerminateWorkKnowledge(workflow, cancellationToken);
+				}
+	            break;
+			case WorkflowModuleConsts.TelRestApply:
                 await _telDomainService.TelRestApplyPassAsync(workflow.ExternalId, cancellationToken);
                 break;
             case WorkflowModuleConsts.OrderHandle:

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

@@ -225,12 +225,13 @@ namespace Hotline.KnowledgeBase
                     dto.Status = EKnowledgeStatus.Drafts;
                     var tempKnow = _mapper.Map<Knowledge>(dto);
                     await _knowledgeRepository.AddAsync(tempKnow, cancellationToken);
-
+					break;
+                default:
                     //现有知识状态更改为已撤回
-                    knowledge.Status = EKnowledgeStatus.Revert;
+					knowledge.Status = EKnowledgeStatus.Revert;
                     await _knowledgeRepository.UpdateAsync(knowledge, cancellationToken);
-                    break;
-            }
+                break;
+			}
         }
 
         /// <summary>