Kaynağa Gözat

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

田爽 9 ay önce
ebeveyn
işleme
349d6b07bc

+ 2 - 2
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -2017,9 +2017,9 @@ namespace Hotline.Api.Controllers.Bi
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
-            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
             //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
             //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
             //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))

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

@@ -382,6 +382,38 @@ public class OrderController : BaseController
 
                     visitedDetail.Add(seatDetail);
                     await _orderVisitedDetailRepository.AddRangeAsync(visitedDetail, HttpContext.RequestAborted);
+
+                    if (orderVisit.VisitState == EVisitState.Visited)
+                    {
+                        //推省上
+                        await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisited,
+                            new PublishVisitDto()
+                            {
+                                Order = _mapper.Map<OrderDto>(order),
+                                No = orderVisit.No,
+                                VisitType = orderVisit.VisitType,
+                                VisitName = orderVisit.CreatorName,
+                                VisitTime = orderVisit.VisitTime,
+                                VisitRemark = orderVisit.NowEvaluate?.Value,
+                                AreaCode = order.AreaCode!,
+                                SubjectResultSatifyCode = orderVisit.NowEvaluate?.Key,
+                                FirstSatisfactionCode = orderVisit.NowEvaluate?.Key,
+                                ClientGuid = ""
+                            }, cancellationToken: HttpContext.RequestAborted);
+                    }
+
+                    //推门户
+                    await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisitedWeb, new PublishVisitAllDto()
+                    {
+                        Id = orderVisit.Id,
+                        Order = _mapper.Map<OrderDto>(order),
+                        OrderVisitDetails = _mapper.Map<List<VisitDetailDto>>(orderVisit.OrderVisitDetails),
+                        VisitName = _sessionContext.UserName,
+                        VisitTime = orderVisit.VisitTime,
+                        VisitType = orderVisit.VisitType,
+                        VisitState = orderVisit.VisitState,
+                        PublishTime = orderVisit.PublishTime,
+                    }, cancellationToken: HttpContext.RequestAborted);
                 }
                 catch
                 {
@@ -489,6 +521,27 @@ public class OrderController : BaseController
 
         visitedDetail.Add(seatDetail);
         await _orderVisitedDetailRepository.AddRangeAsync(visitedDetail, HttpContext.RequestAborted);
+
+
+        if (orderVisit.VisitState == EVisitState.Visited)
+        {
+            //推省上
+            await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisited,
+                new PublishVisitDto()
+                {
+                    Order = _mapper.Map<OrderDto>(order),
+                    No = orderVisit.No,
+                    VisitType = orderVisit.VisitType,
+                    VisitName = orderVisit.CreatorName,
+                    VisitTime = orderVisit.VisitTime,
+                    VisitRemark = orderVisit.NowEvaluate?.Value,
+                    AreaCode = order.AreaCode!,
+                    SubjectResultSatifyCode = orderVisit.NowEvaluate?.Key,
+                    FirstSatisfactionCode = orderVisit.NowEvaluate?.Key,
+                    ClientGuid = ""
+                }, cancellationToken: HttpContext.RequestAborted);
+        }
+
         //推送回访信息
         //推门户
         await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderVisitedWeb, new PublishVisitAllDto()
@@ -4641,9 +4694,9 @@ public class OrderController : BaseController
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
                 d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
             //.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
-            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
                                                                                                 //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)//来源渠道
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)//来源渠道
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
             .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!))
             .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.CurrentHandleOrgName == dto.OrgName)//接办部门

+ 105 - 4
src/Hotline.Api/Controllers/TestController.cs

@@ -885,12 +885,113 @@ IRepository<EnforcementOrdersHandler> enforcementOrdersHandlerRepository
     [HttpGet("t5")]
     public async Task Test5()
     {
-        //var orderCount = await _orderRepository.Queryable()
-        //    .Where(d => d.Status >= EOrderStatus.Filed &&
-        //              d.CurrentStepId == null)
+        var query = _orderRepository.Queryable()
+            .Includes(d => d.Workflow, x => x.Steps)
+            .Where(d => d.Status >= EOrderStatus.Filed &&
+                        d.CurrentStepId == null)
+            .OrderBy(d => d.Id);
+
+        var size = 1000;
+        var count = await query.CountAsync(HttpContext.RequestAborted);
+        _logger.LogWarning($"共计 {count} 条");
+        var batchs = (int)Math.Ceiling(Convert.ToDouble(count) / size);
+        for (int i = 0; i < batchs; i++)
+        {
+            _logger.LogWarning($"第 {i} 批次开始");
+            var orders = await query
+                .Skip(i * size)
+                .Take(size)
+                .ToListAsync(HttpContext.RequestAborted);
+            foreach (var order in orders)
+            {
+                if (order.No.Trim().Length != 14)
+                {
+                    order.CurrentStepId = order.ActualHandleStepId;
+                    order.CurrentStepCode = order.ActualHandleStepCode;
+                    order.CurrentStepName = order.ActualHandleStepName;
+                    order.CurrentStepCreateTime = order.ActualHandleStepCreateTime;
+                    order.CurrentStepAcceptTime = order.ActualHandleStepAcceptTime;
+                    order.CurrentHandleTime = order.ActualHandleTime;
+                    order.CurrentHandlerId = order.ActualHandlerId;
+                    order.CurrentHandlerName = order.ActualHandlerName;
+                    order.CurrentHandleOrgName = order.ActualHandleOrgName;
+                    order.CurrentHandleOrgId = order.ActualHandleOrgCode;
+                    order.CurrentHandleOrgAreaCode = order.ActualHandleOrgAreaCode;
+                    order.CurrentHandleOrgAreaName = order.ActualHandleOrgAreaName;
+                }
+                else
+                {
+                    if (order.CounterSignType != null)
+                    {
+                        order.Workflow.CurrentStepId = order.Workflow.ActualHandleStepId;
+                        order.Workflow.CurrentStepCode = order.Workflow.ActualHandleStepCode;
+                        order.Workflow.CurrentStepName = order.Workflow.ActualHandleStepName;
+                        order.Workflow.CurrentStepCreateTime = order.Workflow.ActualHandleStepCreateTime;
+                        order.Workflow.CurrentStepAcceptTime = order.Workflow.ActualHandleStepAcceptTime;
+                        order.Workflow.CurrentHandleTime = order.Workflow.ActualHandleTime;
+                        order.Workflow.CurrentHandlerId = order.Workflow.ActualHandlerId;
+                        order.Workflow.CurrentHandlerName = order.Workflow.ActualHandlerName;
+                        order.Workflow.CurrentHandleOrgName = order.Workflow.ActualHandleOrgName;
+                        order.Workflow.CurrentHandleOrgId = order.Workflow.ActualHandleOrgCode;
+                        order.Workflow.CurrentHandleOrgAreaCode = order.Workflow.ActualHandleOrgAreaCode;
+                        order.Workflow.CurrentHandleOrgAreaName = order.Workflow.ActualHandleOrgAreaName;
+
+                        order.CurrentStepId = order.Workflow.ActualHandleStepId;
+                        order.CurrentStepCode = order.Workflow.ActualHandleStepCode;
+                        order.CurrentStepName = order.Workflow.ActualHandleStepName;
+                        order.CurrentStepCreateTime = order.Workflow.ActualHandleStepCreateTime;
+                        order.CurrentStepAcceptTime = order.Workflow.ActualHandleStepAcceptTime;
+                        order.CurrentHandleTime = order.Workflow.ActualHandleTime;
+                        order.CurrentHandlerId = order.Workflow.ActualHandlerId;
+                        order.CurrentHandlerName = order.Workflow.ActualHandlerName;
+                        order.CurrentHandleOrgName = order.Workflow.ActualHandleOrgName;
+                        order.CurrentHandleOrgId = order.Workflow.ActualHandleOrgCode;
+                        order.CurrentHandleOrgAreaCode = order.Workflow.ActualHandleOrgAreaCode;
+                        order.CurrentHandleOrgAreaName = order.Workflow.ActualHandleOrgAreaName;
+                    }
+                    else
+                    {
+                        var endStep = order.Workflow.Steps.FirstOrDefault(d => d.StepType == EStepType.End);
+                        if (endStep is null) continue;
+                        var preStep = order.Workflow.Steps.FirstOrDefault(d => d.Id == endStep.PrevStepId);
+                        if (preStep is null) continue;
+
+                        order.Workflow.CurrentStepId = preStep.Id;
+                        order.Workflow.CurrentStepCode = preStep.Code;
+                        order.Workflow.CurrentStepName = preStep.Name;
+                        order.Workflow.CurrentStepCreateTime = preStep.CreationTime;
+                        order.Workflow.CurrentStepAcceptTime = preStep.AcceptTime;
+                        order.Workflow.CurrentHandleTime = preStep.HandleTime;
+                        order.Workflow.CurrentHandlerId = preStep.HandlerId;
+                        order.Workflow.CurrentHandlerName = preStep.HandlerName;
+                        order.Workflow.CurrentHandleOrgName = preStep.HandlerOrgName;
+                        order.Workflow.CurrentHandleOrgId = preStep.HandlerOrgId;
+                        order.Workflow.CurrentHandleOrgAreaCode = preStep.HandlerOrgAreaCode;
+                        order.Workflow.CurrentHandleOrgAreaName = preStep.HandlerOrgAreaName;
+
+                        order.CurrentStepId = order.Workflow.ActualHandleStepId;
+                        order.CurrentStepCode = order.Workflow.ActualHandleStepCode;
+                        order.CurrentStepName = order.Workflow.ActualHandleStepName;
+                        order.CurrentStepCreateTime = order.Workflow.ActualHandleStepCreateTime;
+                        order.CurrentStepAcceptTime = order.Workflow.ActualHandleStepAcceptTime;
+                        order.CurrentHandleTime = order.Workflow.ActualHandleTime;
+                        order.CurrentHandlerId = order.Workflow.ActualHandlerId;
+                        order.CurrentHandlerName = order.Workflow.ActualHandlerName;
+                        order.CurrentHandleOrgName = order.Workflow.ActualHandleOrgName;
+                        order.CurrentHandleOrgId = order.Workflow.ActualHandleOrgCode;
+                        order.CurrentHandleOrgAreaCode = order.Workflow.ActualHandleOrgAreaCode;
+                        order.CurrentHandleOrgAreaName = order.Workflow.ActualHandleOrgAreaName;
+                    }
+                }
+            }
+
+            _logger.LogWarning($"更新数据:{orders.Count} 条");
+            await _orderRepository.UpdateNav(orders)
+                .Include(d => d.Workflow)
+                .ExecuteCommandAsync();
+        }
 
 
-        //_logger.LogWarning($"更新数据:{updateSteps.Count} 条");
         //await _workflowTraceRepository.UpdateRangeAsync(updateSteps, HttpContext.RequestAborted);
     }
 

+ 1 - 0
src/Hotline.Api/StartupExtensions.cs

@@ -26,6 +26,7 @@ using Hotline.Wex;
 using Hotline.Application.CallCenter.Calls;
 using Hotline.Application.CallCenter;
 using Hotline.CallCenter.Calls;
+using Swashbuckle.AspNetCore.SwaggerUI;
 
 namespace Hotline.Api;
 

+ 2 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -24,7 +24,8 @@
       "Ip": "222.213.23.229"
     },
     "XingTang": {
-      "DbConnectionString": "server=123.56.10.71;Database=callcenter_db;Uid=root;Pwd=Lhw1981!(*!"
+      //"DbConnectionString": "server=123.56.10.71;Database=callcenter_db;Uid=root;Pwd=Lhw1981!(*!"
+      "DbConnectionString": "server=110.188.24.182;Database=callcenter_xingtang;Uid=dev;Pwd=fengwo11!!"
     }
   },
   "ConnectionStrings": {

+ 2 - 1
src/Hotline.Application/Handlers/FlowEngine/WorkflowNextHandler.cs

@@ -144,7 +144,8 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
 
                 //    expiredTimeChanged = true;
                 //}
-                await _orderRepository.UpdateAsync(order, cancellationToken);
+                await _orderRepository.Updateable(order).ExecuteCommandAsync(cancellationToken);
+                //await _orderRepository.UpdateAsync(order, cancellationToken);
 
                 //司法行政监督管理-推诿工单
                 if (notification.Trace.StepType != EStepType.Summary && notification.Trace.StepType != EStepType.End && !notification.Trace.IsCountersignEndStep)

+ 15 - 9
src/Hotline.Application/JudicialManagement/EnforcementApplication.cs

@@ -266,9 +266,15 @@ namespace Hotline.Application.JudicialManagement
             return _judicialManagementOrdersRepository.Queryable()
                 .Where(d => d.IsItCounted == true)
                     .WhereIF(areaCode != "511500", d => d.AreaCode.StartsWith(areaCode))
-                    .WhereIF(dto.IsEnforcementOrder.HasValue, d => d.IsEnforcementOrder == dto.IsEnforcementOrder)//是否行政执法类
-                    .WhereIF(dto.IsPassTheBuckOrder.HasValue, d => d.IsPassTheBuckOrder == dto.IsPassTheBuckOrder)//是否推诿
-                     .WhereIF(dto.IsTheClueTrue.HasValue, d => d.IsTheClueTrue == dto.IsTheClueTrue)//线索是否属实
+                     // .WhereIF(dto.IsEnforcementOrder.HasValue, d => d.IsEnforcementOrder == dto.IsEnforcementOrder)//是否行政执法类
+                     //.WhereIF(dto.IsPassTheBuckOrder.HasValue, d => d.IsPassTheBuckOrder == dto.IsPassTheBuckOrder)//是否推诿
+                     //.WhereIF(dto.IsTheClueTrue.HasValue, d => d.IsTheClueTrue == dto.IsTheClueTrue)//线索是否属实
+                     .WhereIF(dto.IsTheClueTrueText == "1", d => d.IsTheClueTrue == null)//待核实
+                     .WhereIF(dto.IsTheClueTrueText == "2", d => d.IsTheClueTrue == true)//线索属实
+                     .WhereIF(dto.IsTheClueTrueText == "3", d => d.IsTheClueTrue == false)//线索不属实
+                     .WhereIF(dto.IsTheClueTrueText == "4", d => d.IsPassTheBuckOrder == true)//推诿工单
+                     .WhereIF(dto.IsTheClueTrueText == "5", d => d.IsEnforcementOrder == true)//行政执法类工单
+
                      .WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => dto.EventTypeId == d.EventTypeId)//事项分类
                      .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title!)) //标题
                      .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No)) //工单编码
@@ -303,7 +309,7 @@ namespace Hotline.Application.JudicialManagement
                 areCodeText = dto.AreaCode;
 
             return _judicialManagementOrdersRepository.Queryable()
-            .Where(d =>d.IsItCounted==true&& d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime && d.EventTypeId != null)
+            .Where(d => d.IsItCounted == true && d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime && d.EventTypeId != null)
             .WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => d.EventTypeId.StartsWith(dto.EventTypeId))
             .WhereIF(!string.IsNullOrEmpty(areCodeText), d => d.AreaCode.StartsWith(areCodeText))
             .OrderByDescending(d => d.CreationTime)
@@ -320,7 +326,7 @@ namespace Hotline.Application.JudicialManagement
         {
             return _enforcementOrdersHandlerRepository.Queryable()
                    .LeftJoin<JudicialManagementOrders>((h, o) => h.OrderId == o.Id)
-                   .Where((h, o) => o.CreationTime >= StartTime && o.CreationTime <= EndTime&&o.IsItCounted==true)
+                   .Where((h, o) => o.CreationTime >= StartTime && o.CreationTime <= EndTime && o.IsItCounted == true)
                     .GroupBy((h, o) => new
                     {
                         OrgCode = h.OrgCode,
@@ -347,7 +353,7 @@ namespace Hotline.Application.JudicialManagement
         {
             return _enforcementOrdersHandlerRepository.Queryable()
                  .LeftJoin<JudicialManagementOrders>((x, o) => x.OrderId == o.Id)
-                 .Where((x, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null&&o.IsItCounted==true)
+                 .Where((x, o) => o.CreationTime >= dto.StartTime && o.CreationTime <= dto.EndTime && o.Id != null && o.IsItCounted == true)
                  .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.OrgCode == "001", (x, o) => x.OrgCode == dto.OrgCode)
                  .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.OrgCode != "001", (x, o) => x.OrgCode.StartsWith(dto.OrgCode))
                  .WhereIF(dto.TheClueIsTrue == true, (x, o) => o.IsTheClueTrue == true)
@@ -398,7 +404,7 @@ namespace Hotline.Application.JudicialManagement
         {
             var areaCode = _sessionContext.OrgAreaCode ?? "511500";
             return _judicialManagementOrdersRepository.Queryable()
-                .Where(x => x.CreationTime >= StartTime && x.CreationTime <= EndTime&&x.IsItCounted==true)
+                .Where(x => x.CreationTime >= StartTime && x.CreationTime <= EndTime && x.IsItCounted == true)
                 .LeftJoin<SystemArea>((x, o) => x.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == o.Id)
                 .WhereIF(areaCode != "511500", (x, o) => x.AreaCode.StartsWith(areaCode))
                 .GroupBy((x, o) => new
@@ -452,7 +458,7 @@ namespace Hotline.Application.JudicialManagement
             return _judicialManagementOrdersRepository.Queryable()
                  .LeftJoin<OrderVisit>((x, o) => x.Id == o.OrderId)
                  .LeftJoin<OrderVisitDetail>((x, o, p) => o.Id == p.VisitId)
-                .Where((x, o, p) => o.VisitTime >= StartTime && o.VisitTime <= EndTime&&x.IsItCounted==true && p.VisitTarget == EVisitTarget.Org
+                .Where((x, o, p) => o.VisitTime >= StartTime && o.VisitTime <= EndTime && x.IsItCounted == true && p.VisitTarget == EVisitTarget.Org
                 && o.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(p.VisitOrgCode) && x.OrderSoure == EOrderSoure.Hotline)
                 .GroupBy((x, o, p) => new
                 {
@@ -500,7 +506,7 @@ namespace Hotline.Application.JudicialManagement
             return _judicialManagementOrdersRepository.Queryable()
                 .LeftJoin<OrderVisit>((x, o) => x.Id == o.OrderId)
                 .LeftJoin<OrderVisitDetail>((x, o, p) => o.Id == p.VisitId)
-                .Where((x, o, p) => o.VisitTime >= dto.StartTime && o.VisitTime <= dto.EndTime&&x.IsItCounted==true && p.VisitTarget == EVisitTarget.Org && x.OrderSoure == EOrderSoure.Hotline)
+                .Where((x, o, p) => o.VisitTime >= dto.StartTime && o.VisitTime <= dto.EndTime && x.IsItCounted == true && p.VisitTarget == EVisitTarget.Org && x.OrderSoure == EOrderSoure.Hotline)
                 .Where((x, o, p) => o.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(p.VisitOrgCode))
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.OrgCode == "001", (x, o, p) => p.VisitOrgCode == dto.OrgCode)
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.OrgCode != "001", (x, o, p) => p.VisitOrgCode.StartsWith(dto.OrgCode))

+ 5 - 4
src/Hotline.Application/Mappers/OrderMapperConfigs.cs

@@ -101,10 +101,11 @@ public class OrderMapperConfigs : IRegister
             .Ignore(d => d.AcceptorId)
             .Ignore(d => d.AcceptorName)
             .Ignore(d => d.AcceptorStaffNo)
-			//.AfterMapping((s, d) =>
-   //         {
-   //             d.UpdateHandlingStatus(s.IsInCountersign);
-   //         })
+            //.AfterMapping((s, d) =>
+            //{
+            //    //d.UpdateHandlingStatus(s.IsInCountersign);
+            //    d.CurrentStepAcceptTime = s.CurrentStepAcceptTime;
+            //})
             ;
 
         config.ForType<Order, PublishDto>()

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

@@ -496,9 +496,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
             .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
-            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType)//受理类型
                                                                                                 //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
-            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
             //.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
             //.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))

+ 2 - 2
src/Hotline.Repository.SqlSugar/Extensions/SqlSugarStartupExtensions.cs

@@ -207,8 +207,8 @@ namespace Hotline.Repository.SqlSugar.Extensions
             /***写AOP等方法***/
             db.Aop.OnLogExecuting = (sql, pars) =>
             {
-                // Log.Information("Sql: {0}", sql);
-                // Log.Information("SqlParameters: {0}", string.Join(',', pars.Select(d => d.Value)));
+                //Log.Information("Sql: {0}", sql);
+                //Log.Information("SqlParameters: {0}", string.Join(',', pars.Select(d => d.Value)));
             };
             db.Aop.OnError = (exp) =>//SQL报错
             {

+ 12 - 1
src/Hotline.Repository.SqlSugar/Extensions/XingTangDbExtensions.cs

@@ -11,9 +11,20 @@ public static class XingTangDbExtensions
     {
         SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
         {
-            DbType = DbType.MySql,
+            DbType = DbType.PostgreSQL,
             ConnectionString = xingTangConfiguration.DbConnectionString,
             IsAutoCloseConnection = true,
+            //ConfigureExternalServices = new ConfigureExternalServices()
+            //{
+            //    EntityService = (x, p) => //处理列名
+            //    {
+            //        p.DbColumnName = string.IsNullOrEmpty(p.DbColumnName) ? p.DbColumnName : p.DbColumnName.ToLower(); 
+            //        //UtilMethods.ToUnderLine(p.DbColumnName);//ToUnderLine驼峰转下划线方法
+            //    },
+            //    EntityNameService = (x, p) => //处理表名
+            //    {
+            //    }
+            //}
         },
              db => { }
          );

+ 21 - 0
src/Hotline.Share/Dtos/JudicialManagement/EnforcementOrderListDto.cs

@@ -152,6 +152,27 @@ namespace Hotline.Share.Dtos.JudicialManagement
         /// </summary>
         public string? AcceptorOrgName { get; set; }
 
+        /// <summary>
+        /// 执法部门
+        /// </summary>
+        public List<Kv> EnforcementOrdersHandler { get; set; }
+        public string EnforcementOrdersHandlerText => GetText();
+
+        public string GetText()
+        {
+            string strOrgName = "";
+            if (EnforcementOrdersHandler != null && EnforcementOrdersHandler.Count > 0)
+            {
+                foreach (var item in EnforcementOrdersHandler)
+                {
+                    strOrgName += item.Key + ",";
+                }
+                if (!string.IsNullOrEmpty(strOrgName))
+                    strOrgName = strOrgName.Substring(0, strOrgName.Length - 1);
+            }
+            return strOrgName;
+        }
+
         /// <summary>
         /// 转换是否文本
         /// </summary>

+ 5 - 0
src/Hotline.Share/Dtos/JudicialManagement/QueryEnforcementOrderDto.cs

@@ -232,5 +232,10 @@ namespace Hotline.Share.Dtos.JudicialManagement
         /// 线索是否属实
         /// </summary>
         public bool? IsTheClueTrue { get; set; }
+
+        /// <summary>
+        /// 线索是否属实0:全部,1:待核实,2:线索属实,3:线索不属实,4:推诿工单,5:行政执法类工单
+        /// </summary>
+        public string IsTheClueTrueText {  get; set; }
     }
 }

+ 1 - 1
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -561,7 +561,7 @@ public partial class Workflow
         string? handleOrgAreaName,
         int handlerOrgLevel)
     {
-        CurrentStepAcceptTime = step.AcceptTime;
+        //CurrentStepAcceptTime = step.AcceptTime;
         CurrentHandleTime = step.HandleTime;
         CurrentHandleOrgAreaCode = handleOrgAreaCode;
         CurrentHandleOrgAreaName = handleOrgAreaName;

+ 4 - 6
src/XingTang.Sdk/XingtangCall.cs

@@ -5,13 +5,12 @@ namespace XingTang.Sdk;
 [SugarTable("call_cti_trafficlist")]
 public class XingtangCall
 {
-    [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+    [SugarColumn(IsPrimaryKey = true)]
     public int Id { get; set; }
 
     /// <summary>
     /// 客户id
     /// </summary>
-    [SugarColumn(ColumnName = "CustomerID")]
     public string CustomerId { get; set; }
 
     public string CallGuid { get; set; }
@@ -89,13 +88,13 @@ public class XingtangCall
     /// <summary>
     /// 呼出通道号
     /// </summary>
-    [SugarColumn(ColumnName = "CallOut_Channel")]
+    [SugarColumn(ColumnName = "callout_channel")]
     public int CallOutChannel { get; set; }
 
     /// <summary>
     /// 呼入通道号
     /// </summary>
-    [SugarColumn(ColumnName = "CallIn_Channel")]
+    [SugarColumn(ColumnName = "callin_channel")]
     public int CallInChannel { get; set; }
 
     /// <summary>
@@ -134,10 +133,9 @@ public class XingtangCall
     public int? CallForword { get; set; }
     public DateTime? RingStartTime { get; set; }
 
-    [SugarColumn(ColumnName = "Trans_Called")]
+    [SugarColumn(ColumnName = "trans_called")]
     public string? TransCalled { get; set; }
 
-    [SugarColumn(ColumnName = "UserListID")]
     public int? UserListId { get; set; }
 
     public int? Score { get; set; }

+ 1 - 1
src/XingTang.Sdk/XingtangSeatOperation.cs

@@ -13,7 +13,7 @@ namespace XingTang.Sdk
     [SugarTable("call_cti_seatingoperation")]
     public class XingtangSeatOperation
     {
-        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        [SugarColumn(IsPrimaryKey = true)]
         public int Id { get; set; }
 
         /// <summary>