Jelajahi Sumber

省平台退回

Dun.Jason 6 bulan lalu
induk
melakukan
5300db5d86

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

@@ -56,6 +56,7 @@ using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Options;
+using Microsoft.IdentityModel.Tokens;
 using MiniExcelLibs;
 using MongoDB.Driver;
 using SqlSugar;
@@ -3035,7 +3036,7 @@ public class OrderController : BaseController
         }
         var isHasSendBackAudit = await _orderSendBackAuditRepository.Queryable().AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply);
         var isHasSendBack = await _orderSendBackRepository.Queryable().AnyAsync(x => x.OrderId == order.Id && x.State == 0);
-        if (order.CurrentHandleOrgId == "001" && !isHasSendBackAudit && order.Status < EOrderStatus.Filed && order.IsProvince && !isHasSendBack)
+        if ((order.ActualHandleOrgCode == "001" || order.Status == EOrderStatus.WaitForAccept || string.IsNullOrEmpty(order.ActualHandleOrgCode)) && !isHasSendBackAudit && order.Status < EOrderStatus.Filed && order.IsProvince && !isHasSendBack && order.Status != EOrderStatus.BackToProvince)
             dto.IsCanProvinceSendBack = true;
         else
             dto.IsCanProvinceSendBack = false;

+ 9 - 0
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -199,6 +199,15 @@ namespace Hotline.Application.Subscribers
                         await _workflowApplication.JumpToEndAsync(current, order.WorkflowId, dto.Reason ?? "省工单同意退回",
                             null, order.ExpiredTime, cancellationToken: cancellationToken);
                     }
+                    //处理延期
+                    var orderDelayModel = await _orderDelayRepository.Queryable().Where(x => x.OrderId == order.Id && x.IsProDelay == false && x.DelayState == EDelayState.Examining).FirstAsync();
+                    if (orderDelayModel is not null)
+                    {
+                        orderDelayModel.DelayState = EDelayState.Withdraw;
+                        await _workflowApplication.JumpToEndAsync(current, orderDelayModel.WorkflowId, dto.Reason ?? "省退回同意自动处理", null, null, cancellationToken: cancellationToken);
+                    }
+
+                    //TODO 工单终止
                 }
                 else
                 {