|
@@ -13,10 +13,12 @@ using Hotline.Share.Enums.Order;
|
|
using MapsterMapper;
|
|
using MapsterMapper;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using SqlSugar;
|
|
using SqlSugar;
|
|
|
|
+using StackExchange.Redis;
|
|
using XF.Domain.Authentications;
|
|
using XF.Domain.Authentications;
|
|
using XF.Domain.Exceptions;
|
|
using XF.Domain.Exceptions;
|
|
using XF.Domain.Repository;
|
|
using XF.Domain.Repository;
|
|
using XF.Utility.EnumExtensions;
|
|
using XF.Utility.EnumExtensions;
|
|
|
|
+using Order = Hotline.Orders.Order;
|
|
|
|
|
|
namespace Hotline.Api.Controllers
|
|
namespace Hotline.Api.Controllers
|
|
{
|
|
{
|
|
@@ -30,6 +32,7 @@ namespace Hotline.Api.Controllers
|
|
private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
|
|
private readonly ISystemDicDataCacheManager _sysDicDataCacheManager;
|
|
private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
|
|
private readonly IRepository<SystemOrganize> _systemOrganizeRepository;
|
|
private readonly ISessionContext _sessionContext;
|
|
private readonly ISessionContext _sessionContext;
|
|
|
|
+ private readonly IOrderRepository _orderRepository;
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
///
|
|
///
|
|
@@ -37,11 +40,12 @@ namespace Hotline.Api.Controllers
|
|
/// <param name="enforcementOrdersRepository"></param>
|
|
/// <param name="enforcementOrdersRepository"></param>
|
|
/// <param name="judicialComplaintsEventTypeRepository"></param>
|
|
/// <param name="judicialComplaintsEventTypeRepository"></param>
|
|
/// <param name="enforcementHotspotRepository"></param>
|
|
/// <param name="enforcementHotspotRepository"></param>
|
|
- /// <param name="mapper"></param>
|
|
|
|
|
|
+ /// <param name="mapper"></param>
|
|
/// <param name="workflowApplication"></param>
|
|
/// <param name="workflowApplication"></param>
|
|
/// <param name="sysDicDataCacheManager"></param>
|
|
/// <param name="sysDicDataCacheManager"></param>
|
|
/// <param name="systemOrganizeRepository"></param>
|
|
/// <param name="systemOrganizeRepository"></param>
|
|
/// <param name="sessionContext"></param>
|
|
/// <param name="sessionContext"></param>
|
|
|
|
+ /// <param name="orderRepository"></param>
|
|
public EnforcementOrderController(IRepository<EnforcementOrders> enforcementOrdersRepository,
|
|
public EnforcementOrderController(IRepository<EnforcementOrders> enforcementOrdersRepository,
|
|
IRepository<JudicialComplaintsEventType> judicialComplaintsEventTypeRepository,
|
|
IRepository<JudicialComplaintsEventType> judicialComplaintsEventTypeRepository,
|
|
IRepository<EnforcementHotspot> enforcementHotspotRepository,
|
|
IRepository<EnforcementHotspot> enforcementHotspotRepository,
|
|
@@ -49,7 +53,8 @@ namespace Hotline.Api.Controllers
|
|
IWorkflowApplication workflowApplication,
|
|
IWorkflowApplication workflowApplication,
|
|
ISystemDicDataCacheManager sysDicDataCacheManager,
|
|
ISystemDicDataCacheManager sysDicDataCacheManager,
|
|
IRepository<SystemOrganize> systemOrganizeRepository,
|
|
IRepository<SystemOrganize> systemOrganizeRepository,
|
|
- ISessionContext sessionContext)
|
|
|
|
|
|
+ ISessionContext sessionContext,
|
|
|
|
+ IOrderRepository orderRepository)
|
|
{
|
|
{
|
|
_enforcementOrdersRepository = enforcementOrdersRepository;
|
|
_enforcementOrdersRepository = enforcementOrdersRepository;
|
|
_judicialComplaintsEventTypeRepository = judicialComplaintsEventTypeRepository;
|
|
_judicialComplaintsEventTypeRepository = judicialComplaintsEventTypeRepository;
|
|
@@ -59,6 +64,7 @@ namespace Hotline.Api.Controllers
|
|
_sysDicDataCacheManager = sysDicDataCacheManager;
|
|
_sysDicDataCacheManager = sysDicDataCacheManager;
|
|
_systemOrganizeRepository = systemOrganizeRepository;
|
|
_systemOrganizeRepository = systemOrganizeRepository;
|
|
_sessionContext = sessionContext;
|
|
_sessionContext = sessionContext;
|
|
|
|
+ _orderRepository = orderRepository;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -243,7 +249,7 @@ namespace Hotline.Api.Controllers
|
|
.LeftJoin<EnforcementOrders>((x, o) => o.EventTypeSpliceName != null && (x.EventTypeName == o.EventTypeSpliceName || o.EventTypeSpliceName.Contains(x.EventTypeName)))
|
|
.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)
|
|
.LeftJoin<Order>((x, o, p) => p.Id == o.Id)
|
|
.Where((x, o, p) => p.StartTime >= StartDate && p.StartTime <= EndDate)
|
|
.Where((x, o, p) => p.StartTime >= StartDate && p.StartTime <= EndDate)
|
|
- .WhereIF(!string.IsNullOrEmpty(AreaCode), (x, o, p) => p.AreaCode == AreaCode)
|
|
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(AreaCode), (x, o, p) => p.AreaCode.StartsWith(AreaCode))
|
|
.Where((x, o, p) => x.ParentId == Id)
|
|
.Where((x, o, p) => x.ParentId == Id)
|
|
.GroupBy((x, o, p) => new { x.Id, x.EventTypeName })
|
|
.GroupBy((x, o, p) => new { x.Id, x.EventTypeName })
|
|
.Select((x, o, p) => new
|
|
.Select((x, o, p) => new
|
|
@@ -296,7 +302,7 @@ namespace Hotline.Api.Controllers
|
|
.Where(d => d.Order.Id != null)
|
|
.Where(d => d.Order.Id != null)
|
|
.Where(d => d.Order.StartTime >= dto.StartDate && d.Order.StartTime <= dto.EndDate && d.EventTypeId != null)
|
|
.Where(d => d.Order.StartTime >= dto.StartDate && d.Order.StartTime <= dto.EndDate && d.EventTypeId != null)
|
|
.WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => d.EventTypeId.StartsWith(dto.EventTypeId))
|
|
.WhereIF(!string.IsNullOrEmpty(dto.EventTypeId), d => d.EventTypeId.StartsWith(dto.EventTypeId))
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.Order.AreaCode == dto.AreaCode)
|
|
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.Order.AreaCode.StartsWith(dto.AreaCode))
|
|
.OrderByDescending(d => d.CreationTime)
|
|
.OrderByDescending(d => d.CreationTime)
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
.ToPagedListAsync(dto, HttpContext.RequestAborted);
|
|
|
|
|
|
@@ -671,5 +677,76 @@ namespace Hotline.Api.Controllers
|
|
return new PagedDto<EnforcementOrgSatisfactionOrderListDto>(total, _mapper.Map<IReadOnlyList<EnforcementOrgSatisfactionOrderListDto>>(items));
|
|
return new PagedDto<EnforcementOrgSatisfactionOrderListDto>(total, _mapper.Map<IReadOnlyList<EnforcementOrgSatisfactionOrderListDto>>(items));
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 处理司法历史工单数据
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="Year"></param>
|
|
|
|
+ /// <param name="Month"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("add_enforcement_old_order")]
|
|
|
|
+ public async Task AddEnforcementOldOrder(int Year, int Month)
|
|
|
|
+ {
|
|
|
|
+ DateTime StartDate = DateTime.Parse(Year + "-" + Month + "-01 00:00:00");
|
|
|
|
+ DateTime EndDate = StartDate.AddMonths(1).AddSeconds(-1);
|
|
|
|
+
|
|
|
|
+ var list = await _orderRepository.Queryable()
|
|
|
|
+ .Where(p => p.CreationTime >= StartDate && p.CreationTime <= EndDate && p.Status >= EOrderStatus.Filed && p.AcceptTypeCode != "10")
|
|
|
|
+ .Select(p => new EnforcementOldOrder()
|
|
|
|
+ {
|
|
|
|
+ Id = p.Id,
|
|
|
|
+ No = p.No,
|
|
|
|
+ HotspotId = p.HotspotId,
|
|
|
|
+ HandleTime = p.ActualHandleTime,
|
|
|
|
+ OrgLevelOneCode = p.OrgLevelOneCode,
|
|
|
|
+ ActualHandleOrgCode = p.ActualHandleOrgCode
|
|
|
|
+ })
|
|
|
|
+ .ToListAsync();
|
|
|
|
+
|
|
|
|
+ if (list != null && list.Count > 0)
|
|
|
|
+ {
|
|
|
|
+ //查询指定热点数据
|
|
|
|
+ var hotList = await _enforcementHotspotRepository.Queryable().ToListAsync();
|
|
|
|
+
|
|
|
|
+ //查询指定部门数据
|
|
|
|
+ var JudicialManagementOrg = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.JudicialManagementOrg).ToList();
|
|
|
|
+
|
|
|
|
+ foreach (var item in list)
|
|
|
|
+ {
|
|
|
|
+ bool isAdd = false;
|
|
|
|
+
|
|
|
|
+ //如果是特定热点写入数据
|
|
|
|
+ if (hotList.Exists(p => p.Id == item.HotspotId))
|
|
|
|
+ isAdd = true;
|
|
|
|
+
|
|
|
|
+ if (!string.IsNullOrEmpty(item.OrgLevelOneCode))
|
|
|
|
+ {
|
|
|
|
+ //如果是特定部门办理写入数据
|
|
|
|
+ if (JudicialManagementOrg.Exists(p => p.DicDataValue.Trim() == item.OrgLevelOneCode))
|
|
|
|
+ isAdd = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (isAdd)
|
|
|
|
+ {
|
|
|
|
+ //是否存在此工单
|
|
|
|
+ if (!await _enforcementOrdersRepository.AnyAsync(p => p.Id == item.Id, HttpContext.RequestAborted))
|
|
|
|
+ {
|
|
|
|
+ // 不存在写入
|
|
|
|
+ EnforcementOrders enforcementOrders = new()
|
|
|
|
+ {
|
|
|
|
+ Id = item.Id,
|
|
|
|
+ OrderNo = item.No,
|
|
|
|
+ IsEnforcementOrder = false,
|
|
|
|
+ IsTheClueTrue = null,
|
|
|
|
+ IsPassTheBuckOrder = false,
|
|
|
|
+ CreationTime = item.HandleTime != null ? item.HandleTime.Value : DateTime.Now
|
|
|
|
+ };
|
|
|
|
+ await _enforcementOrdersRepository.AddAsync(enforcementOrders, HttpContext.RequestAborted);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|