|
@@ -14,7 +14,6 @@ using MapsterMapper;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using SqlSugar;
|
|
|
-using System.Diagnostics.Eventing.Reader;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
@@ -72,7 +71,7 @@ namespace Hotline.Api.Controllers
|
|
|
.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.EventTypeId.Any(), d => dto.EventTypeId.Contains(d.EventTypeId))//事项分类
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => dto.EventTypeId == d.EventTypeId)//事项分类
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title!)) //标题
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.Order.ProvinceNo.Contains(dto.ProvinceNo)) //省本地编号
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No)) //工单编码
|
|
@@ -212,39 +211,6 @@ namespace Hotline.Api.Controllers
|
|
|
return await _judicialComplaintsEventTypeRepository.Queryable().ToTreeAsync(it => it.Children, it => it.ParentId, null, it => it.Id);
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 执法部门办件统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="StartDate"></param>
|
|
|
- /// <param name="EndDate"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("enforcement_departmental_processing_statistics")]
|
|
|
- public async Task<object> GetDepartmentalProcessingStatisticsAsync(DateTime StartDate, DateTime EndDate)
|
|
|
- {
|
|
|
-
|
|
|
- EndDate = EndDate.AddDays(1).AddSeconds(-1);
|
|
|
- var data = await _enforcementOrdersRepository.Queryable()
|
|
|
- .Includes(x => x.Order)
|
|
|
- .Where(d => d.Order.Id != null)
|
|
|
- .Where(d => d.Order.FiledTime >= StartDate && d.Order.FiledTime <= EndDate)
|
|
|
- .GroupBy(d => new
|
|
|
- {
|
|
|
- OrgCode = d.Order.OrgLevelOneCode,
|
|
|
- OrgName = d.Order.OrgLevelOneName
|
|
|
- })
|
|
|
- .Select(d => new
|
|
|
- {
|
|
|
- OrgName = d.Order.OrgLevelOneName,
|
|
|
- CountNum = SqlFunc.AggregateCount(d.Order.OrgLevelOneCode),
|
|
|
- TheClueIsTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == true, 1, 0)),
|
|
|
- TheClueIsNotTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == false, 1, 0)),
|
|
|
- EnforcementOrder = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder, 1, 0))
|
|
|
- })
|
|
|
- .ToListAsync();
|
|
|
-
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 事项分类统计
|
|
|
/// </summary>
|
|
@@ -254,6 +220,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <param name="AreaCode"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("event_classification_statistics")]
|
|
|
+ [AllowAnonymous]
|
|
|
public async Task<object> GetEventClassificationStatisticsAsync(DateTime StartDate, DateTime EndDate, string Id, string AreaCode)
|
|
|
{
|
|
|
|
|
@@ -262,7 +229,7 @@ namespace Hotline.Api.Controllers
|
|
|
var items = await _judicialComplaintsEventTypeRepository.Queryable()
|
|
|
.LeftJoin<EnforcementOrders>((x, o) => o.EventTypeSpliceName != null && (x.EventTypeName == o.EventTypeSpliceName || o.EventTypeSpliceName.Contains(x.EventTypeName)))
|
|
|
.LeftJoin<Order>((x, o, p) => p.Id == o.Id)
|
|
|
- .Where((x, o, p) => p.FiledTime >= StartDate && p.FiledTime <= EndDate)
|
|
|
+ .Where((x, o, p) => p.CreationTime >= StartDate && p.CreationTime <= EndDate)
|
|
|
.WhereIF(!string.IsNullOrEmpty(AreaCode), (x, o, p) => p.AreaCode == AreaCode)
|
|
|
.Where((x, o, p) => x.ParentId == Id)
|
|
|
.GroupBy((x, o, p) => new { x.Id, x.EventTypeName })
|
|
@@ -284,17 +251,64 @@ namespace Hotline.Api.Controllers
|
|
|
Sublevel = false
|
|
|
};
|
|
|
|
|
|
+ var data = await _enforcementOrdersRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .Where(d => d.Order.Id != null)
|
|
|
+ .Where(d => d.Order.CreationTime >= StartDate && d.Order.CreationTime <= EndDate)
|
|
|
+ .GroupBy(d => d.Id)
|
|
|
+ .Select(d => new
|
|
|
+ {
|
|
|
+ TheClueIsTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == true, 1, 0)),
|
|
|
+ TheClueIsNotTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == false, 1, 0)),
|
|
|
+ EnforcementOrder = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder, 1, 0)),
|
|
|
+ PassTheBuckOrder = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsPassTheBuckOrder, 1, 0))
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
var orderCount = new
|
|
|
{
|
|
|
- TheClueIsTrue = 0,
|
|
|
- TheClueIsNotTrue = 0,
|
|
|
- EnforcementOrder = 0,
|
|
|
- PassTheBuckOrder = 0
|
|
|
+ TheClueIsTrue = data.Count > 0 ? data[0].TheClueIsTrue : 0,
|
|
|
+ TheClueIsNotTrue = data.Count > 0 ? data?[0].TheClueIsNotTrue : 0,
|
|
|
+ EnforcementOrder = data.Count > 0 ? data?[0].EnforcementOrder : 0,
|
|
|
+ PassTheBuckOrder = data.Count > 0 ? data?[0].PassTheBuckOrder : 0
|
|
|
};
|
|
|
|
|
|
return new { List = items, Total = total, OrderCount = orderCount };
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 执法部门办件统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="StartDate"></param>
|
|
|
+ /// <param name="EndDate"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("enforcement_departmental_processing_statistics")]
|
|
|
+ public async Task<object> GetDepartmentalProcessingStatisticsAsync(DateTime StartDate, DateTime EndDate)
|
|
|
+ {
|
|
|
+
|
|
|
+ EndDate = EndDate.AddDays(1).AddSeconds(-1);
|
|
|
+ var data = await _enforcementOrdersRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .Where(d => d.Order.Id != null)
|
|
|
+ .Where(d => d.Order.CreationTime >= StartDate && d.Order.CreationTime <= EndDate)
|
|
|
+ .GroupBy(d => new
|
|
|
+ {
|
|
|
+ OrgCode = d.Order.OrgLevelOneCode,
|
|
|
+ OrgName = d.Order.OrgLevelOneName
|
|
|
+ })
|
|
|
+ .Select(d => new
|
|
|
+ {
|
|
|
+ OrgName = d.Order.OrgLevelOneName,
|
|
|
+ CountNum = SqlFunc.AggregateCount(d.Order.OrgLevelOneCode),
|
|
|
+ TheClueIsTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == true, 1, 0)),
|
|
|
+ TheClueIsNotTrue = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsTheClueTrue.HasValue && d.IsTheClueTrue.Value == false, 1, 0)),
|
|
|
+ EnforcementOrder = SqlFunc.AggregateSum(SqlFunc.IIF(d.IsEnforcementOrder, 1, 0))
|
|
|
+ })
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 区域受理排行
|
|
|
/// </summary>
|
|
@@ -307,7 +321,7 @@ namespace Hotline.Api.Controllers
|
|
|
var list = await _enforcementOrdersRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Where(x => x.Order.Id != null)
|
|
|
- .Where(x => x.Order.FiledTime >= StartDate && x.Order.FiledTime <= EndDate)
|
|
|
+ .Where(x => x.Order.CreationTime >= StartDate && x.Order.CreationTime <= EndDate)
|
|
|
.LeftJoin<SystemArea>((x, o) => x.Order.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == o.Id)
|
|
|
.Where((x, o) => x.Order.Status >= EOrderStatus.Filed)
|
|
|
.GroupBy((x, o) => new
|
|
@@ -342,13 +356,10 @@ namespace Hotline.Api.Controllers
|
|
|
{
|
|
|
EndDate = EndDate.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
- var list =
|
|
|
- await _enforcementOrdersRepository.Queryable()
|
|
|
- .LeftJoin<OrderVisit>((x,o)=>x.Id==o.OrderId)
|
|
|
- .LeftJoin<OrderVisitDetail>((x, o,p) => o.Id == p.VisitId)
|
|
|
- .Where((x, o, p) => o.VisitTime >= StartDate && o.VisitTime <= EndDate && p.VisitTarget == EVisitTarget.Org
|
|
|
- && o.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(p.VisitOrgCode))
|
|
|
-
|
|
|
+ var list = await _enforcementOrdersRepository.Queryable()
|
|
|
+ .LeftJoin<OrderVisit>((x, o) => x.Id == o.OrderId)
|
|
|
+ .LeftJoin<OrderVisitDetail>((x, o, p) => o.Id == p.VisitId)
|
|
|
+ .Where((x, o, p) => o.VisitTime >= StartDate && o.VisitTime <= EndDate && p.VisitTarget == EVisitTarget.Org && o.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(p.VisitOrgCode))
|
|
|
.GroupBy((x, o, p) => new
|
|
|
{
|
|
|
VisitOrgCode = p.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|