Prechádzať zdrojové kódy

Merge branch 'dev' of http://110.188.24.182:10023/Fengwo/hotline into dev

xf 11 mesiacov pred
rodič
commit
0a06e9d9b8

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

@@ -4858,9 +4858,17 @@ public class OrderController : BaseController
 	/// <param name="id"></param>
 	/// <returns></returns>
 	[HttpGet("secondary_handling/{id}")]
-	public async Task<OrderSecondaryHandling> OrderSecondaryHandlingEntity(string id)
+	public async Task<OrderSecondaryHandlingDto> OrderSecondaryHandlingEntity(string id)
 	{
-        return await _orderSecondaryHandlingApplication.Entity(id, HttpContext.RequestAborted);
+        var model = await _orderSecondaryHandlingApplication.Entity(id, HttpContext.RequestAborted);
+        var dto = _mapper.Map<OrderSecondaryHandlingDto>(model);
+		if (model.FileJson != null && model.FileJson.Any())
+		{
+			var ids = model.FileJson.Select(x => x.Id).ToList();
+			var files = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
+			dto.Files = files.Where(x => x.Classify == "二次办理申请").ToList();
+		}
+		return dto;
 	}
 
 	/// <summary>

+ 8 - 4
src/Hotline.Application/Orders/OrderSecondaryHandlingApplication.cs

@@ -112,6 +112,9 @@ namespace Hotline.Application.Orders
 			var model =await _orderSecondaryHandlingRepository.GetAsync(dto.Id, cancellationToken);
 			model.State = ESecondaryHandlingState.NotApply;
 			model.SendBackContent = dto.SendBackContent;
+			model.AuditUser = _sessionContext.UserName;
+			model.AuditTime = DateTime.Now;
+			model.SendBackNum = model.SendBackNum is null ? 1 : model.SendBackNum + 1;
 			await _orderSecondaryHandlingRepository.UpdateAsync(model, cancellationToken);
 			var visit = await _orderVisitRepository.GetAsync(x => x.Id == model.VisitId , cancellationToken);
 			if (visit != null)
@@ -128,7 +131,6 @@ namespace Hotline.Application.Orders
 		/// <returns></returns>
 		public async Task AuditAsync(AuditOrderSecondaryHandlingDto dto, OrderSecondaryHandling model, CancellationToken cancellationToken)
 		{
-
 			model.State = dto.State;
 			model.AuditContent = dto.AuditContent;
 			model.AuditId = _sessionContext.UserId;
@@ -201,8 +203,8 @@ namespace Hotline.Application.Orders
 				.Includes(x => x.OrderVisit)
 				.Includes(x => x.OrderVisit, y => y.Order)
 				.Includes(x => x.OrderVisit, y => y.Employee)
-				.Includes(x=>x.SecondaryHandling)
-				.LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status <  EScreenStatus.End && s.IsDeleted == false)
+				.Includes(x => x.SecondaryHandling)
+				.LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
 				.Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
 				.WhereIF(dto.IsHomePage.HasValue && dto.IsHomePage == true, x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
 				.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
@@ -221,7 +223,9 @@ namespace Hotline.Application.Orders
 				.WhereIF(!string.IsNullOrEmpty(dto.OrgProcessingResults), x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.OrgProcessingResults)
 				.WhereIF(!string.IsNullOrEmpty(dto.OrgHandledAttitude), x => SqlFunc.JsonListObjectAny(x.OrgHandledAttitude, "Key", dto.OrgHandledAttitude))
 				.WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason), x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
-				.Where((x, s) => x.OrderVisit.VisitState != EVisitState.None && x.OrderVisit.IsCanHandle);
+				.Where((x, s) => x.OrderVisit.VisitState != EVisitState.None && x.OrderVisit.IsCanHandle)
+				//.Where((x, s) => x.OrderVisit.Order.CounterSignType == null && x.OrderVisit.Order.ActualHandleOrgCode  == _sessionContext.OrgId) 
+				;
 			if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
 			{
 				query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),

+ 6 - 6
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -112,7 +112,7 @@ namespace Hotline.Application.Subscribers
                 {
                     if (!string.IsNullOrEmpty(order.WorkflowId))
                     {
-                        await _workflowApplication.HandleToEndAsync(order.WorkflowId, "省工单同意退回",null,isProvince:true, cancellationToken: cancellationToken);
+                        await _workflowApplication.HandleToEndAsync(order.WorkflowId, "省工单同意退回", null, isProvince: true, cancellationToken: cancellationToken);
                     }
                 }
             }
@@ -127,7 +127,7 @@ namespace Hotline.Application.Subscribers
         {
             var order = await _orderRepository.GetAsync(p => p.ProvinceNo == dto.ProvinceNo, cancellationToken);
             if (!string.IsNullOrEmpty(order.WorkflowId))
-                await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, null,isProvince:true, cancellationToken: cancellationToken);
+                await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, null, isProvince: true, cancellationToken: cancellationToken);
             else
             {
 
@@ -236,7 +236,7 @@ namespace Hotline.Application.Subscribers
         {
             var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.ProvinceScreenResult!.CaseSerial).FirstAsync(cancellationToken);
             var orderScreen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == order.Id && x.Status == Share.Enums.Order.EScreenStatus.Approval).FirstAsync(cancellationToken);
-            await _workflowApplication.HandleToEndAsync(orderScreen.WorkflowId, "省上推送甄别结果", null,dto.ProvinceScreenResult.AuditResult? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed ,isProvince:true, cancellationToken: cancellationToken);
+            await _workflowApplication.HandleToEndAsync(orderScreen.WorkflowId, "省上推送甄别结果", null, dto.ProvinceScreenResult.AuditResult ? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed, isProvince: true, cancellationToken: cancellationToken);
             orderScreen.Status = dto.ProvinceScreenResult.AuditResult ? Share.Enums.Order.EScreenStatus.End : Share.Enums.Order.EScreenStatus.Refuse;
             if (orderScreen.Status == Share.Enums.Order.EScreenStatus.End)
             {
@@ -489,7 +489,7 @@ namespace Hotline.Application.Subscribers
             {
                 //查询延期
                 var orderDelay = await _orderDelayRepository.GetAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, cancellationToken);
-                await _workflowApplication.HandleToEndAsync(orderDelay.WorkflowId, dto.Opinion, null, dto.IsPass ? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed,isProvince:true,cancellationToken);
+                await _workflowApplication.HandleToEndAsync(orderDelay.WorkflowId, dto.Opinion, null, dto.IsPass ? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed, isProvince: true, cancellationToken);
             }
         }
 
@@ -505,7 +505,7 @@ namespace Hotline.Application.Subscribers
             if (string.IsNullOrEmpty(order.WorkflowId))
                 throw new UserFriendlyException($"该工单未开启流程,orderId: {dto.OrderId}");
 
-            if (dto.Files.Any())
+            if (dto.Files != null && dto.Files.Any())
             {
                 order.FileJson = await _fileRepository.AddFileAsync(dto.Files, order.Id, order.WorkflowId,
                     cancellationToken);
@@ -519,7 +519,7 @@ namespace Hotline.Application.Subscribers
                     break;
                 case "1":
                     //办结:归档
-                    await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, dto.Files,isProvince:true,
+                    await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, dto.Files, isProvince: true,
                         cancellationToken: cancellationToken);
                     break;
             }

+ 13 - 0
src/Hotline.Share/Dtos/Order/OrderSecondaryHandlingDto.cs

@@ -24,11 +24,24 @@ namespace Hotline.Share.Dtos.Order
 
 		public string StateText => State.GetDescription();
 
+		/// <summary>
+		/// 重提办理
+		/// </summary>
+		public int? SendBackNum { get; set; }
+
+		public string SendBack => SendBackNum is > 0 ? "是" : "否";
+
 		/// <summary>
 		/// 申请理由
 		/// </summary>
 		public string? Content { get; set; }
 
+		/// <summary>
+		/// 退回意见
+		/// </summary>
+		public string? SendBackContent { get; set; }
+
+
 		/// <summary>
 		/// 审批意见
 		/// </summary>

+ 5 - 0
src/Hotline/Orders/OrderSecondaryHandling.cs

@@ -39,6 +39,11 @@ namespace Hotline.Orders
 		[SugarColumn(ColumnDescription = "状态")]
 		public ESecondaryHandlingState? State { get; set; }
 
+		/// <summary>
+		/// 重提办理
+		/// </summary>
+		public int? SendBackNum { get; set; }
+
 		/// <summary>
 		/// 申请理由
 		/// </summary>