|
@@ -30,6 +30,7 @@ namespace Hotline.Api.Controllers
|
|
|
private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
|
|
|
private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
|
|
|
private readonly ISessionContext _sessionContext;
|
|
|
+ private readonly IRepository<SystemArea> _systemAreaRepository;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -37,11 +38,12 @@ namespace Hotline.Api.Controllers
|
|
|
/// <param name="enforcementOrdersRepository"></param>
|
|
|
/// <param name="judicialComplaintsEventTypeRepository"></param>
|
|
|
/// <param name="enforcementHotspotRepository"></param>
|
|
|
- /// <param name="mapper"></param>
|
|
|
+ /// <param name="mapper"></param>
|
|
|
/// <param name="workflowApplication"></param>
|
|
|
/// <param name="sysDicDataCacheManager"></param>
|
|
|
/// <param name="systemOrganizeRepository"></param>
|
|
|
/// <param name="sessionContext"></param>
|
|
|
+ /// <param name="systemAreaRepository"></param>
|
|
|
public EnforcementOrderController(IRepository<EnforcementOrders> enforcementOrdersRepository,
|
|
|
IRepository<JudicialComplaintsEventType> judicialComplaintsEventTypeRepository,
|
|
|
IRepository<EnforcementHotspot> enforcementHotspotRepository,
|
|
@@ -49,7 +51,9 @@ namespace Hotline.Api.Controllers
|
|
|
IWorkflowApplication workflowApplication,
|
|
|
ISystemDicDataCacheManager sysDicDataCacheManager,
|
|
|
IRepository<SystemOrganize> systemOrganizeRepository,
|
|
|
- ISessionContext sessionContext)
|
|
|
+ ISessionContext sessionContext,
|
|
|
+ IRepository<SystemArea> systemAreaRepository
|
|
|
+ )
|
|
|
{
|
|
|
_enforcementOrdersRepository = enforcementOrdersRepository;
|
|
|
_judicialComplaintsEventTypeRepository = judicialComplaintsEventTypeRepository;
|
|
@@ -59,6 +63,7 @@ namespace Hotline.Api.Controllers
|
|
|
_sysDicDataCacheManager = sysDicDataCacheManager;
|
|
|
_systemOrganizeRepository = systemOrganizeRepository;
|
|
|
_sessionContext = sessionContext;
|
|
|
+ _systemAreaRepository = systemAreaRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -69,9 +74,12 @@ namespace Hotline.Api.Controllers
|
|
|
[HttpGet("getorderlist")]
|
|
|
public async Task<PagedDto<EnforcementOrderListDto>> GetOrderList([FromQuery] QueryEnforcementOrderDto dto)
|
|
|
{
|
|
|
+ var areaCode = _sessionContext.OrgAreaCode ?? "511500";
|
|
|
+
|
|
|
var (total, items) = await _enforcementOrdersRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Where(d => d.Order.Id != null)
|
|
|
+ .WhereIF(areaCode != "511500", d => d.Order.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)//线索是否属实
|
|
@@ -156,6 +164,30 @@ namespace Hotline.Api.Controllers
|
|
|
return rsp;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 获取省市区树形
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("area/tree")]
|
|
|
+ public async Task<List<SystemArea>> GetAreaTree()
|
|
|
+ {
|
|
|
+ var areaCode = _sessionContext.OrgAreaCode;
|
|
|
+ if (string.IsNullOrEmpty(areaCode))
|
|
|
+ areaCode = "511500";
|
|
|
+ if (areaCode == "511500")
|
|
|
+ {
|
|
|
+ return await _systemAreaRepository.Queryable().OrderBy(x => x.Id).ToTreeAsync(x => x.Children, q => q.ParentId, "510000");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string parentId = "510000";
|
|
|
+ var data = await _systemAreaRepository.GetAsync(p => p.Id == areaCode);
|
|
|
+ if (data != null)
|
|
|
+ parentId = data.ParentId;
|
|
|
+ return await _systemAreaRepository.Queryable().Where(p => p.Id.StartsWith(areaCode)).OrderBy(x => x.Id).ToTreeAsync(x => x.Children, q => q.ParentId, parentId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 线索核实
|
|
|
/// </summary>
|
|
@@ -408,13 +440,14 @@ namespace Hotline.Api.Controllers
|
|
|
public async Task<object> GetRegionalClassificationStatisticsAsync(DateTime StartDate, DateTime EndDate)
|
|
|
{
|
|
|
EndDate = EndDate.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
+ var areaCode = _sessionContext.OrgAreaCode ?? "511500";
|
|
|
var list = await _enforcementOrdersRepository.Queryable()
|
|
|
.Includes(x => x.Order)
|
|
|
.Where(x => x.Order.Id != null)
|
|
|
.Where(x => x.Order.StartTime >= StartDate && x.Order.StartTime <= 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)
|
|
|
+ .WhereIF(areaCode != "511500", (x, o) => x.Order.AreaCode.StartsWith(areaCode))
|
|
|
.GroupBy((x, o) => new
|
|
|
{
|
|
|
AreaCode = x.Order.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|