Prechádzať zdrojové kódy

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

tangjiang 4 mesiacov pred
rodič
commit
69796f9d3d

+ 9 - 0
src/Hotline.Api/Controllers/OrderController.cs

@@ -417,6 +417,12 @@ public class OrderController : BaseController
             throw UserFriendlyException.SameMessage("选择的工单中含有会签工单, 不能批量发布. 请排除会签工单.");
 
         var hasProvince = await _orderRepository.Queryable().AnyAsync(x => dto.Ids.Contains(x.Id) && x.Source == ESource.ProvinceStraight);
+        //if (hasProvince)
+        //    throw UserFriendlyException.SameMessage("选择的工单中含有省工单, 不能批量发布. 请排除省工单.");
+        if (_appOptions.Value.IsYiBin)
+        {
+			hasProvince = await _orderRepository.Queryable().AnyAsync(x => dto.Ids.Contains(x.Id) && x.IsProvince);
+		}
         if (hasProvince)
             throw UserFriendlyException.SameMessage("选择的工单中含有省工单, 不能批量发布. 请排除省工单.");
 
@@ -3473,6 +3479,9 @@ public class OrderController : BaseController
             orderTerminateList.Any(x => x.Status == ETerminateStatus.Refuse) ? "不同意" :
             orderTerminateList.Any(x => x.Status == ETerminateStatus.Approval || x.Status == ETerminateStatus.SendBack) ? "审批中" : null;
 
+        dto.IsReTransact = await _orderSpecialRepository.Queryable()
+	        .Where(x => x.OrderId == dto.Id && x.SpecialType == ESpecialType.ReTransact).AnyAsync();
+
         return _sessionContext.OrgIsCenter ? dto : dto.DataMask();
     }
 

+ 2 - 79
src/Hotline.Application/Orders/OrderApplication.cs

@@ -2009,14 +2009,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         string orgLevelStr = (dto.OrgCode.Length + 3).ToString();
         var oldData = new List<VisitAndOrgSatisfactionStatisticsDto>();
 
-		#region 主部门查询
 		var mainList = await _systemOrganizeRepository.Queryable().Where(x => x.Id.StartsWith(dto.OrgCode))
 		   .LeftJoin<OrderVisitDetail>((x, it) => x.Id == it.VisitOrgCode)
 		   .Where((x, it) => it.OrderVisit.VisitTime >= dto.StartTime.Value &&
 							 it.OrderVisit.VisitTime <= dto.EndTime.Value &&
 							 it.VisitTarget == EVisitTarget.Org && it.OrderVisit.VisitState == EVisitState.Visited)
-		   .Where((x, it) => it.VisitOrgCode == dto.OrgCode)
-		   //.WhereIF(dto.OrgCode != "001", (x, it) => it.VisitOrgCode.StartsWith(dto.OrgCode))
+           .Where((x, it) => it.VisitOrgCode.StartsWith(dto.OrgCode)  )
+		                 //&& it.VisitOrgCode != dto.OrgCode
 		   .WhereIF(!string.IsNullOrEmpty(dto.LineNum),
 			   (x, it) => it.OrderVisit.Order.CallRecord.Gateway.Contains(dto.LineNum))
 		   .WhereIF(dto.TypeCode != null && dto.TypeCode == 1,
@@ -2027,78 +2026,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 			   (x, it) => it.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId))
 		   .WhereIF(dto.VisitType != null, (x, it) => it.OrderVisit.VisitType == dto.VisitType)
 		   .GroupBy((x, it) => new
-		   {
-			   VisitOrgCode = it.VisitOrgCode
-		   })
-		   .Select((x, it) => new VisitAndOrgSatisfactionStatisticsDto()
-		   {
-			   OrgCode = it.VisitOrgCode,
-			   TotalSumCount = SqlFunc.AggregateCount(it.VisitOrgCode),
-			   VerySatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "5", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "5", 1,
-					   0))), //非常满意数
-			   SatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "4", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "4", 1,
-					   0))), //满意数
-			   RegardedAsSatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "-1", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "-1", 1,
-					   0))), //视为满意
-			   DefaultSatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "0", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "0", 1,
-					   0))), //默认满意
-			   NoSatisfiedCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "2", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "2", 1,
-					   0))), //不满意
-			   NoEvaluateCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "7", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "7", 1,
-					   0))), //未做评价
-			   NoPutThroughCount = SqlFunc.IIF(dto.TypeId == 1,
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgProcessingResults, "Key") == "6", 1, 0)),
-				   SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(it.OrgHandledAttitude, "Key") == "6", 1,
-					   0))) //未接通
-		   })
-		   .MergeTable()
-		   .LeftJoin<SystemOrganize>((x, it) =>
-			   x.OrgCode == it.Id && (it.Level == org.Level || it.Level == (org.Level + 1)))
-		   .Select((x, it) => new VisitAndOrgSatisfactionStatisticsDto()
-		   {
-			   OrgName = it.Name,
-			   OrgCode = x.OrgCode,
-			   OrgType = it.OrgType,
-			   TotalSumCount = x.TotalSumCount,
-			   VerySatisfiedCount = x.VerySatisfiedCount, //非常满意数
-			   SatisfiedCount = x.SatisfiedCount, //满意数
-			   RegardedAsSatisfiedCount = x.RegardedAsSatisfiedCount, //视为满意
-			   DefaultSatisfiedCount = x.DefaultSatisfiedCount, //默认满意
-			   NoSatisfiedCount = x.NoSatisfiedCount, //不满意
-			   NoEvaluateCount = x.NoEvaluateCount, //未做评价
-			   NoPutThroughCount = x.NoPutThroughCount, //未接通
-		   }).ToListAsync();
-		#endregion
-
-		#region 下级部门查询
-		var juniorList = await _systemOrganizeRepository.Queryable().Where(x => x.Id.StartsWith(dto.OrgCode))
-		   .LeftJoin<OrderVisitDetail>((x, it) => x.Id == it.VisitOrgCode)
-		   .Where((x, it) => it.OrderVisit.VisitTime >= dto.StartTime.Value &&
-							 it.OrderVisit.VisitTime <= dto.EndTime.Value &&
-							 it.VisitTarget == EVisitTarget.Org && it.OrderVisit.VisitState == EVisitState.Visited)
-           .Where((x, it) => it.VisitOrgCode.StartsWith(dto.OrgCode)  && it.VisitOrgCode != dto.OrgCode)
-           .WhereIF(!string.IsNullOrEmpty(dto.LineNum),
-			   (x, it) => it.OrderVisit.Order.CallRecord.Gateway.Contains(dto.LineNum))
-		   .WhereIF(dto.TypeCode != null && dto.TypeCode == 1,
-			   (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Citizen)
-		   .WhereIF(dto.TypeCode != null && dto.TypeCode == 2,
-			   (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Enterprise)
-		   .WhereIF(IsCenter == false,
-			   (x, it) => it.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId))
-		   .WhereIF(dto.VisitType != null, (x, it) => it.OrderVisit.VisitType == dto.VisitType)
-		   .GroupBy((x, it) => new
 		   {
 			   VisitOrgCode = it.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr))
 		   })
@@ -2154,10 +2081,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
 		   }).ToListAsync();
 
 
-		#endregion
-
-		mainList.AddRange(juniorList);
-
         #region 老系统数据
         if (await _statisticsDepartSatisfiedRepository.Queryable().Where(x => x.Time >= dto.StartTime.Value && x.Time <= dto.EndTime.Value).AnyAsync())
         {

+ 5 - 1
src/Hotline.Application/Orders/OrderScreenHandler/OrderScreenNextWorkflowHandler.cs

@@ -75,9 +75,13 @@ public class OrderScreenNextWorkflowHandler : INotificationHandler<NextStepNotif
 								//省件甄别--以省审批前一个节点整理的甄别意见为准推送省上 宜宾
 								if (_appOptions.Value.IsYiBin)
 								{
-									screenDto.Content = notification.Dto.Opinion;
+									
 									screenDto.Files = new List<Share.Dtos.File.FileDto>();
 								}
+								if (_appOptions.Value.IsLuZhou)
+								{
+									screenDto.Content = notification.Dto.Opinion;
+								}
 								//推省上
 								_capPublisher.Publish(EventNames.HotlineOrderScreenApply, new PublishScreenDto()
 								{

+ 4 - 1
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -1470,7 +1470,10 @@ namespace Hotline.Repository.SqlSugar.Orders
         public ISugarQueryable<OrgVisitDetailListResp> VisitAndOrgSatisfactionDetail(VisitAndOrgSatisfactionDetailDto dto)
         {
             bool IsCenter = _sessionContext.OrgIsCenter;
-            return _orderVisitDetailRepository.Queryable()
+            if (IsCenter == false && string.IsNullOrEmpty(dto.PickOrgCode))
+	            dto.PickOrgCode = _sessionContext.RequiredOrgId;
+
+			return _orderVisitDetailRepository.Queryable()
                 .Includes(x => x.OrderVisit, o => o.Order, d => d.CallRecord)
                 .Where(x => x.OrderVisit.VisitTime >= dto.StartTime && x.OrderVisit.VisitTime <= dto.EndTime && x.VisitTarget == EVisitTarget.Org && x.OrderVisit.VisitState == EVisitState.Visited)
                 .WhereIF(dto.OrgCode == "001", x => x.VisitOrgCode == dto.OrgCode)

+ 3 - 1
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -953,7 +953,9 @@ namespace Hotline.Share.Dtos.Order
         /// 工单补充
         /// </summary>
         public List<OrderComplementDto> OrderComplements { get; set; }
-    }
+
+        public bool? IsReTransact { get; set; }
+	}
 
     public class UpdateOrderDto : AddOrderDto
     {

+ 1 - 1
src/Hotline/Orders/OrderDomainService.cs

@@ -299,7 +299,7 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         {
             try
             {
-                if (order.Source != ESource.ProvinceStraight)
+                if (order.Source != ESource.ProvinceStraight && order.FileOrgIsCenter.Value  == false)
                 {
                     var code = "";
                     //受理类型为“投诉、举报”