田爽 1 year ago
parent
commit
6cea18f3b4

+ 16 - 3
src/Hotline.Api/Controllers/OrderController.cs

@@ -8,6 +8,7 @@ using Hotline.FlowEngine.Workflows;
 using Hotline.Orders;
 using Hotline.Orders.Notifications;
 using Hotline.Permissions;
+using Hotline.Quality;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Repository.SqlSugar.Ts;
 using Hotline.Settings;
@@ -18,6 +19,7 @@ using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.Order;
+using Hotline.Share.Enums.Quality;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Mq;
 using Hotline.Share.Requests;
@@ -66,6 +68,7 @@ public class OrderController : BaseController
     private readonly IRepository<OrderScreen> _orderScreenRepository;
     private readonly IRepository<OrderPublishHistory> _orderPublishHistoryRepository;
     private readonly IRepositoryTextSearch<OrderTs> _repositoryts;
+    private readonly IQualityRepository _qualityRepository;
 
 
 	public OrderController(
@@ -94,7 +97,8 @@ public class OrderController : BaseController
         IFileRepository fileRepository,
         IRepository<OrderScreen> orderScreenRepository,
         IRepository<OrderPublishHistory> orderPublishHistoryRepository,
-        IRepositoryTextSearch<OrderTs> repositoryts
+        IRepositoryTextSearch<OrderTs> repositoryts,
+        IQualityRepository qualityRepository
 		)
     {
         _orderDomainService = orderDomainService;
@@ -123,7 +127,8 @@ public class OrderController : BaseController
         _orderScreenRepository = orderScreenRepository;
         _orderPublishHistoryRepository = orderPublishHistoryRepository;
         _repositoryts = repositoryts;
-	}
+        _qualityRepository =qualityRepository;
+}
 
     #region 工单发布
 
@@ -484,6 +489,12 @@ public class OrderController : BaseController
                 //推省上
                 _capPublisher.Publish(EventNames.HotlineOrderVisited, new PublishVisitDto() { Order = orderDto, No = visit.No, VisitType = visit.VisitType, VisitName = visit.CreatorName, VisitTime = visit.VisitTime, VisitRemark = first.VisitContent, AreaCode = visit.Order.AreaCode!, SubjectResultSatifyCode = first.OrgProcessingResults.Id, FirstSatisfactionCode = visit.Order.FirstVisitResultCode!, ClientGuid = "" });
             }
+
+            if (first != null)
+            {
+                //写入质检
+                await _qualityRepository.AddQualityAsync(EQualitySource.Visit,visit.Order.Id, HttpContext.RequestAborted);
+			}
         }
     }
 
@@ -1197,7 +1208,9 @@ public class OrderController : BaseController
         var orderId = await _orderDomainService.AddAsync(order, HttpContext.RequestAborted);
 		if (dto.Tags.Any()) await _repositoryts.AddVectorAsync(orderId, DateTime.Now, dto.Tags, HttpContext.RequestAborted);
 		if (dto.Files.Any()) await _fileRepository.AddFileAsync(dto.Files, orderId, HttpContext.RequestAborted);
-        return orderId;
+		//写入质检
+		if (string.IsNullOrEmpty(orderId)) await _qualityRepository.AddQualityAsync(EQualitySource.Accepted, orderId, HttpContext.RequestAborted);
+		return orderId;
     }
 
     /// <summary>

+ 8 - 4
src/Hotline.Repository.SqlSugar/Quality/QualityRepository.cs

@@ -34,10 +34,14 @@ namespace Hotline.Repository.SqlSugar.Quality
 
 		public async Task AddQualityAsync(EQualitySource Source, string OrderId, CancellationToken cancellationToken) 
 		{
-			QualityAddDto quality =  new  QualityAddDto();
-			quality.Source = Source;
-			quality.OrderId = OrderId;
-			await AddQualityAsync(quality, cancellationToken);
+			QualityAddDto quality =  new  QualityAddDto
+			{
+				Source = Source,
+				OrderId = OrderId
+			};
+			var count = await CountAsync(x => x.OrderId == OrderId && x.Source == Source, cancellationToken);
+			if (count <= 0)
+				await AddQualityAsync(quality, cancellationToken);
 		}
 
 		public async Task AddQualityAsync(QualityAddDto model, CancellationToken cancellationToken)