田爽 1 жил өмнө
parent
commit
4589b6bb94

+ 27 - 11
src/Hotline.Api/Controllers/OrderController.cs

@@ -751,19 +751,35 @@ public class OrderController : BaseController
 	[HttpGet("mayscreen")]
 	public async Task<PagedDto<OrderVisitDto>> MayScreenList([FromQuery] MayScreenListDto dto)
 	{
-		var (total, items) = await _orderVisitRepository.Queryable()
-			.Includes(x => x.Order)
-			.Includes(x => x.Employee)
-			.Includes(x => x.OrderVisitDetails.Where(vd=> vd.VisitTarget == EVisitTarget.Org && (
+        var query = _orderVisitRepository.Queryable()
+            .Includes(x => x.Order)
+            .Includes(x => x.Employee);
+        if (_sessionContext.OrgId != null && !_sessionContext.OrgId.StartsWith("001"))
+        {
+            query.Includes(x => x.OrderVisitDetails.Where(vd => vd.VisitTarget == EVisitTarget.Org && vd.VisitOrgCode == _sessionContext.OrgId && (
+                SqlFunc.JsonField(vd.OrgProcessingResults, "Name") == "不满意" || SqlFunc.JsonField(vd.OrgProcessingResults, "Name") == "非常不满意" ||
+                SqlFunc.JsonField(vd.OrgHandledAttitude, "Name") == "不满意" || SqlFunc.JsonField(vd.OrgHandledAttitude, "Name") == "非常不满意"
+                  )).ToList())
+	            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
+	            .Where(ov => ov.OrderVisitDetails.Any(d =>
+		            d.VisitTarget == EVisitTarget.Org && d.VisitOrgCode == _sessionContext.OrgId && (
+			            SqlFunc.JsonField(d.OrgProcessingResults, "Name") == "不满意" || SqlFunc.JsonField(d.OrgProcessingResults, "Name") == "非常不满意" ||
+			            SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "不满意" || SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "非常不满意"
+		            )));
+		}
+        else {
+			query.Includes(x => x.OrderVisitDetails.Where(vd => vd.VisitTarget == EVisitTarget.Org && (
 				SqlFunc.JsonField(vd.OrgProcessingResults, "Name") == "不满意" || SqlFunc.JsonField(vd.OrgProcessingResults, "Name") == "非常不满意" ||
 				SqlFunc.JsonField(vd.OrgHandledAttitude, "Name") == "不满意" || SqlFunc.JsonField(vd.OrgHandledAttitude, "Name") == "非常不满意"
-			)).ToList())
-			.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
-            .Where(ov=>ov.OrderVisitDetails.Any(d=> 
-            d.VisitTarget ==  EVisitTarget.Org && (
-			SqlFunc.JsonField(d.OrgProcessingResults,"Name")  =="不满意" || SqlFunc.JsonField(d.OrgProcessingResults, "Name") == "非常不满意" ||
-            SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "不满意" || SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "非常不满意"
-			)))
+		    	)).ToList())
+				.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
+				.Where(ov => ov.OrderVisitDetails.Any(d =>
+					d.VisitTarget == EVisitTarget.Org && (
+						SqlFunc.JsonField(d.OrgProcessingResults, "Name") == "不满意" || SqlFunc.JsonField(d.OrgProcessingResults, "Name") == "非常不满意" ||
+						SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "不满意" || SqlFunc.JsonField(d.OrgHandledAttitude, "Name") == "非常不满意"
+				)));
+		}
+		var (total, items) = await query
 			.OrderBy(x => x.CreationTime)
 			.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 		return new PagedDto<OrderVisitDto>(total, _mapper.Map<IReadOnlyList<OrderVisitDto>>(items));